DashCam ML模型训练





0/5 (0投票)
这个项目的主要目标是开发一个机器学习模型,用于检测道路上的物体,例如行人、汽车、摩托车、自行车、公共汽车等。
您是否使用高通开发者网络上提供的硬件和/或软件创建了一个项目? 您是否想让它在高通开发者网络上展示? 告诉我们您的项目!
该机器学习模型用于检测物体,设计用于使用单次检测器 (SSD) 算法,该算法在 Mobilenet 网络架构上进行训练,并通过将其转换为高通神经处理 SDK 支持的深度学习容器格式 (.dlc) 来优化 Snapdragon 移动平台上的应用程序。
所需材料 / 零件清单 / 工具
源代码 / 源代码示例 / 应用程序可执行文件
构建 / 组装说明
要求
软件 (S/W)
- Ubuntu 16.04 机器
- 高通神经处理 SDK
- Python 3.5
硬件 (H/W)
- 英特尔酷睿 i5 或更高版本的处理器
- 至少 16 GB 系统内存
- 基于 GTX 架构的显卡,超过 1050Ti (https://www.nvidia.com/en-in/geforce/products/10series/geforce-gtx-1050/)
为什么选择 MobilenetSSD
- 在骁龙 835 硬件开发套件上提供 8-13 FPS 的实时推理帧率
- 与 YOLO 等其他架构相比,性能和准确性更好。
如何训练模型
MobilenetSSD 和 Caffe 的安装
- 使用以下命令从 git 存储库克隆 Caffe 源代码
$ git clone https://github.com/weiliu89/caffe.git $ cd caffe $ git checkout ssd
- 根据所使用的处理器(CPU 或 GPU),通过执行 http://caffe.berkeleyvision.org/install_apt.html 中的相应指令来安装依赖包。
- 使用以下说明构建 Caffe
$ cp Makefile.config.example Makefile.config (Make necessary modification in the Makefile as per the device configuration) $ make -j8 (Make sure you add the $CAFFE_ROOT/python to your PYTHON PATH)
准备数据
- 按照给定的说明下载完全卷积精简 (atrous) VGGNet
$ git clone https://gist.github.com/2ed6e13bfd5b57cf81d6.git $ mv 2ed6e13bfd5b57cf81d6 $CAFFE_ROOT/models/VGGNet/
- 下载 VOC2007 和 VOC2012 数据集
$ mkdir home/<username>/data $ cd home/<username>/data $ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar $ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar $ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar $ tar -xvf VOCtrainval_11-May-2012.tar $ tar -xvf VOCtrainval_06-Nov-2007.tar $ tar -xvf VOCtest_06-Nov-2007.tar
- 创建 Lightning Memory-Mapped Database (LMDB) 文件
$ cd $CAFFE_ROOT $ ./data/VOC0712/create_list.sh $ ./data/VOC0712/create_data.sh
训练模型
- 创建指向训练和测试数据集的符号链接
$ ln -s PATH_TO_YOUR_TRAIN_LMDB trainval_lmdb $ ln -s PATH_TO_YOUR_TEST_LMDB test_lmdb
- 使用以下命令将 labelmap_voc.prototxt 文件从 ssd 仓库树复制到 MobileNetSSD 目录
$ cp $CAFFE_DIR/data/VOC0712/labelmap_voc.prototxt $MOBILENETSSD_DIR/labelmap.prototxt
运行 gen_model.sh,使用给定的类数生成训练和测试 prototxt。 请确保运行 gen_model.sh 时的类数与 labelmap.prototxt 中提到的类数匹配。$ ./gen_model.sh 21
现在使用 train.sh 训练您的模型,并持续训练,直到损失在 1.5 到 2.5 之间$ ./train.sh
使用 test.sh 脚本测试训练好的模型$ ./test.sh
如果需要,运行 merge_bn.py 以生成您自己的 no-bn Caffe 模型。$ python merge_bn.py --model example/MobileNetSSD_deploy.prototxt --weights snapshot/mobilenet_iter_xxxxxx.caffemodel
一旦 merge_bn.py 成功运行,您将在 MobileNetSSD 的根目录下获得两个文件。 这些是训练好的模型
-
no_bn.prototxt
-
no_bn.caffemodel
如何将 Caffe 转换为 DLC?
必备组件
神经处理 SDK 设置。 使用以下链接中的说明设置 SDK
https://developer.qualcomm.com/software/qualcomm-neural-processing-sdk/getting-started
使用 Caffe 初始化神经处理 SDK 的环境变量。 要将模型从 Caffe 转换为 DLC,您需要两个文件:prototxt 和 caffemodel。
使用以下命令转换为 DLC
$ snpe-caffe-to-dlc --caffe_txt MobileNetSSD_deploy.prototxt --caffe_bin MobileNetSSD_deploy.caffemodel --dlc caffe_mobilenet_ssd.dlc