YOLOv3 车辆,行人,自行车检测
参考地址
https://github.com/ghimiredhikura/Complex-YOLOv3
(另有基于YOLOv4的https://github.com/maudzung/Complex-YOLOv4-Pytorch)
Requirements
numpy
torch=1.1
torchvision
tensorflow
terminaltables
tqdm
opencv-python
shapely
实测torch 1.2.0+cu92及tensorflow 2.3.0可运行
安装及测试
按照项目说明安装并运行test_both_side_detection.py即可进行测试,预研过程中并未发生异常
测试数据集替换
模型须要指定data/KITTI/object中的一个文件夹作为–folder的参数给出测试数据集,
并给出data/KITTI/ImageSets中的一个文件作为–split的参数给出具体测试样本的编号,
可参考data/KITTI/object/sampledata及data/KITTI/object/sample.txt
由于Complex-YOLO进行的是detection,其自带的sample也是KITTI的detection dataset,呈现结果时缺乏连续直观性
可考虑在KITTI的tracking dataset上进行测试:
- 下载http://www.cvlibs.net/datasets/kitti/eval\_tracking.php的calib、velodyne、image\_2
提取特定sequence作为测试数据,例如0019:
2.1 提取data_tracking_velodyne.zip的training/velodyne/0019为tracking/velodyne
2.2 提取data_tracking_image_2.zip的training/image_02/0019为tracking/image_2(不是02)
2.3 提取data_tracking_calib.zip的training/calib/0019.txt,将其中R_rect、Tr_velo_cam、Tr_imu_velo分别改成
R0_rect、Tr_velo_to_cam、Tr_imu_to_velo
2.4 修改并执行如下所示的代码:import os
from shutil import copyfilesrc = “/mnt/43BFE6BAB7D5B0D9/KITTI_TMP/tracking/0019.txt” #0019.txt的位置
dst = “/mnt/43BFE6BAB7D5B0D9/KITTI_TMP/tracking/calib/“ #先创建的tracking/calib文件夹在tracking/calib中为sequence0019的每一帧创建calib文件,从000000开始编号
for i in range(1059): #1059为sequence0019的帧数
name = '%06d'%i+'.txt'
copyfile(src,dst+name)
生成放在ImageSets中的测试样本编号,这里为整个sequence0019
with open(‘/mnt/43BFE6BAB7D5B0D9/KITTI_TMP/tracking/track.txt’,’w’) as f:
for i in range(1059):
f.writelines('%06d'%i+'\n')
2.5 按照sampledata、sample.txt的方式,将tracking放到data/KITTI/object,track.txt放到ImageSets即可
效果评价
能同时识别car、pedestrian、cyclist,准确率和召回率都非常好,没有明显误判和漏判;
能够很好地捕捉目标的朝向;
因为逐帧detection效果很好,有做成tracking的潜质;
由于测试代码包含可视化部分,且GPU并未完全利用起来,测试过程中FPS较低(~3),尚不清楚模型本身的推断速度;
还没有评论,来说两句吧...