本节主要介绍如何采集数据来训练自己的模型。
1数据采集
1.1从模拟器中获取图像、里程计等信息到本地
(1)总体过程为:首先通过手机APP遥控仿真环境中的车辆,通过记录rosbag包的方式将想要的信息(图像、里程计)信息记录下来,然后回放rosbag包,通过一个脚本程序(已经写好在之前的资料里)将图像和里程计信息保存到本地文档中,后期的数据处理就是基于保存的这些图像和里程计信息。
(2)具体操作:
1)启动仿真模拟器。按照前面章节的流程启动完模拟器和链接好手机app。
2)启动命令,记录rosbag包。记录rosbag包的指令封装为get_carla_data/rosbag.sh
这个文件,在该目录下打开终端运行如下命令。
./rosbag.sh
3)遥控车辆沿着想要的路线运动(可以不用发布全局路线,注意:遥控车辆按照正常的逻辑行驶,不要出现原地掉头这种)。
4)结束rosbag记录。在第2)步中打开的终端里按ctrl+C
键结束录制,会生成一个xxx.bag
的文件。
5)回放xxx.bag
文件。将前面打开的所有仿真模拟器和终端全部关闭。在生成的xxx.bag
文件的位置打开终端,输入下面命令回放xxx.bag
文件:
roscore
rosbag play xxx.bag
6)启动脚本文件将图片和里程计保存到本地。qt打开脚本工程,位置为get_carla_data/get_carla_data/get_img_cpp.pro
。编译构建成功后(如果报错,修改.pro
文件的依赖关系)运行。至此,就会在该工程的目录下面生成一个data
文件夹,数据就在里面。
2数据处理
数据处理在这里的意思是生成数据的标签,在1.1中将图片和里程计保存到本地后需要生成图片的标签(导引点),数据处理程序在\carla_data\general_carla_data_new\
文件夹下(有些文件用不到,接下来只讲解用到的文件)。
2.1 调整data
文件夹文件目录
1.1最后保存到本地的文件在data目录下,每一次采集的数据按照城镇的序号命名,比如在town01下采集的某一次数据可以命名为town01_01,如下所示:
采集的数据可以按照如下的文件结构进行存储:
—data
——train2017(训练集)
———town01
————town01-01
————town01-02
————…
———town02
————town02-01
————town03-02
————…
2.2 生成gps.txt
打开1_total_general_gps_txt.py
,修改第6行代码换成自己的路径:
total_path = "/home/owx/桌面/carla/data/" #换成自己的路径
运行成功后会在rgb_img
文件夹所在的目录下生产一个gps_txt
文件夹,里面存有gps.txt
文件.
2.3 生成标签(导引点)
打开2_total_general_waypoint.py
,修改第77行代码换成自己的路径:
total_path = "/home/owx/桌面/carla/data/train2017/" #换成自己的路径
运行成功后会在rgb_img
文件夹所在的目录下生产一个waypoint_txt
文件夹,里面存有的.json
文件就是生产的导引点标签。
2.4 生成局部地图
打开3_total_general_map.py
,修改第58行代码换成自己的路径:
total_path = "/home/owx/桌面/carla/data/train2017/" #换成自己的路径
运行成功后会在rgb_img
文件夹所在的目录下生产一个map_img_tp
文件夹,里面存有的生成的局部地图。
经过上述的步骤即可完成数据的处理,处理结束后获得网络所需的三个输入信息(前视图RGB图片:rgb_img,导航下地图:map_img_tp,导引点标签:.json文件)。