一、环境安装: deepsort环境:: 名称 deepsort_cuda110 !!
正确的步骤(前两个,是错误示范!!!)
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
#### 正确的配置::: torch 1.7.1 + cuda 110 !!!
二、代码准备:
1、修改权重,为官网下载的 yolov5s.pt的预训练文件,发现测试效果不怎么样,IDswitch,还有没跟踪上等问题,因为没有针对特定场景训练,所以我们自己训练一个!
2、摄像头截屏,作为数据集,利用yolov5寻里哪一个自己的预训练模型pt,
2.1 标注: 划分好文件夹,训练集和测试集,
2.2 训练:
1、修改yaml文件,位置dataset文件coco_hightways.yaml,路径path,相对path下的train和val路径,nc=2两类,类名:nc_nmae = ['car','track'],
2、修改yaml文件,模型models规格,yolov5n、s、m.yaml,只需修改类别数量nc,nc为2即可!!!
3、如同上次训练工地防护检测项目,再次进行训练即可。
3、deepsort文件部分:
deepsort文件夹下的deepsort,里面的deep文件,
表征网络,外貌网络的特征提取文件,放在checkpoint 里的 ckpt7.t7 【 checkpoint7.t7 】
ckpt7放在,最外层的deepsort的 configs文件夹的yaml文件里!
4、deepsort的训练【 re-ID 】:
类似于 yolov5训练的检测模型
创建一个类似yolov5的文件夹,里面放置所有文件夹,每个文件里,是每辆车在不同运动时间下的不同状态图,
若需要训练:可以使用deep文件夹下的train.py文件,修改下,--data-dir 数据所在目录即可,
类目(多少个车的文件夹),model.py里,有一个nun_classes,相当于yolov5的nc,修改成文件夹车辆的数量
## 实践: 进入deep目录,python train.py --data-dir ./car-reid-dataset/ ,训练一个epoch即可,因其网络较深,训练较慢!--data-dir 即为你数据集的目录!!!
注意: 训练过程中 ckpt7.t7 会被覆盖,所以最好先备份一个《副本》!
结束后: 他会保存一个训练结果最好的 epoch,模型文件,放在原来的ckpt.t7 的文件夹,覆盖掉原来的那个
deep文件夹下,会生成每一个epoch 下的训练集和测试集的 loss图!!
5、速度估计:
速度 = 距离/时间
时间: 好估计,因为视频帧数 FPS = 1秒内 的画面数,只需每每过 fps帧,即为时间上的 1秒!!
不能用物理上的1 s,因为视频运算,不同模型下,性能有差异,算力不同计算速度不同,不一定是真实的 1秒!!!
距离: 因为视频画面,斜着拍的,非平面,必须采用《逆透视》,根据经纬度,标注画面,估算出距离!
高德地图: 找出坐标点、点击分享,url地址里,有对应的经纬度信息,
逆透视: 采用网上别人写好的脚本,经纬度逆透视成 距离,pixel_to_dis
视频画面 jupyter 脚本:
魔法函数%matplotlib qt5,而不是%inline,
jupyter lab 中打开截图,标记坐标点,像素位置xy,
记得点击放大镜,划出矩形位置,放大画面!!!
左上角标记完成,点击一下home,再放大镜放大,要回右下角的xy坐标,
绘制一下原点,以四个点为坐标,看看对不对!!!
高德地图: 获取具体位置的经纬度,
这是哪里,更多,分享!!! url打开后,会有具体的经纬度坐标!!!