complex-YOLOv4(二):浅test下complex_yolov3源码
一、代码下载和环境准备
$ git clone https://github.com/ghimiredhikura/Complex-YOLOv3
$ cd Complex-YOLO-V3/
$ sudo pip install -r requirements.txt
建议装到Anaconda虚拟环境中,因为这个代码是三年前发的了,配置的第三方库都是旧版本,仅仅适用于当前的项目。用完删掉就好,不会污染环境。
二、快速测试(不用下载KITII数据集)
1、首先下载预训练权重
$ cd checkpoints/
$ python download_weights.py
这里代码实现是从google云盘下载的。需要用梯子,不然权重下载不下来。我下载好放到网盘里了。自取。
链接:https://pan.baidu.com/s/1CfAwzms5CPPfyv-X-WHRig
提取码:0yeh
如果从网盘下载就不需要执行downloadweights这一行代码了。将下载好的权重文件放到checkpoints文件夹下。 2、测试
1. $ python test_detection.py --split=sample --folder=sampledata
2. $ python test_both_side_detection.py --split=sample --folder=sampledata
三、整理数据集并检查
不要对下载好的点云进行什么剪裁操作,直接用原始数据集。按照下图文件结构移动文件到相应位置。 也不需要进行train、val的划分什么的,因为代码读取数据集时会根据参数读取train.txt 或val.txt,本身就会自动划分的,所以不需要我们手动划分。
└── data/KITTI/object
├── training <-- 7481 train data
| ├── image_2 <-- for visualization
| ├── calib
| ├── label_2
| ├── velodyne
└── testing <-- 7580 test data
├── image_2 <-- for visualization
├── calib
├── velodyne
检查 $ pyhon check_dataset.py 要想成功运行,得改下代码。改下这行,不然会报错。
kitti_bev_utils.py line 174
//
cv2.line(img, (corners_int[0, 0], corners_int[0, 1]), (corners_int[3, 0], corners_int[3, 1]), (255, 255, 0), 2)
改改split参数和folder参数,看看能不能读取对应的数据集文件,数据集数量对不对,行就说明数据集整理好了,可以进行下一步了。
train:5763
valid:1414
test:7518
这里的数据集个数比原始的少,是过滤了没有包含关注目标的点云文件
四、浅测下mAP
1)可视化显示测试结果
$ python test_detection.py
$ python test_both_side_detection.py
结果: 速度真的蛮快!
2)mAP测试: tiny-yolov3 yolov3 跟代码作者给的数据一致。
这里就先不训练了,我试了试训练,我的cuda是11.4版本,训练时会出现非法内存访问。可能是版本不支持的问题,就没管了。
|