转载自:双目测距系列(十)基于自己数据集训练monodepth2模型的简要记录
作者:ltshan139
前言
本文主要记录的是对双目图像进行monodepth2模型训练的过程。
训练数据集准备
我们刚开始拿到的图片集是xxx1.jpg xxx2.jpg 。。。堆集在一个目录的图片,其中1表示左摄像头,2表示右摄像头。
这个原始数据集显然不能直接拿来进行训练。需要做以下转换。
1)新建两个子目录image_02和image_03,然后把xxx1.jpg放到image_02,xxx2.jpg放到image_03。
2)利用这左、右摄像头通过标定所得的内参和姿态参数分别将image_02和03对应图片进行行对齐。
3)将绝大部分image_02和image_03里面图片名放到train_files.txt,剩余放到val_files.txt。并将这两个txt文件放到split的子目录下,比如eign_zhou。后面训练会根据这两个txt里面所列文件进行。
由于样本图片一般比较多,所以上面三个步骤最好分别写一个脚本来实现。
训练和测试命令
训练命令:
python3 train.py --log_dir stereo_weights/ --model_name stereo --use_stereo --frame_ids 0 --data_path ../stereo --width 960 --height 320 --split eigen_zhou
测试命令:
python3 self_test_simple.py --image_path ../stereo/stereo_data/image_03/000316.jpg --model_name weights_18
测试log:
结论
目前基于自己数据集训练出来的模型其测距效果一般,具体原因还在分析。数据集太少? K参数需要更新?还是其它方面的原因?目前还不得而知。大家有什么好的意见也请告诉我。
推荐阅读
- 双目测距系列(九)monodepth2训练代码分析下
- 双目测距系列(八)monodepth2训练代码分析上
- 双目测距系列(七)monodepth2训练前数据集准备过程的简析
- darknet框架中两个版本nms函数(do_nms_obj和do_nms_sort)的比较
更多海思AI芯片方案学习笔记欢迎关注海思AI芯片方案学习。