源码:
www.hedaoapp.com/goods/goods…
【应用介绍】 车辆检测与盯梢在交通监控、自动驾驶等方向都具有广泛应用,PP-Vehicle中集成了检测盯梢模块,是车牌检测、车辆特点识别等使命的根底。咱们提供了预训练模型,用户能够直接下载运用。
【模型下载】
使命 | 算法 | 精度 | 猜测速度(ms) |
---|---|---|---|
车辆检测/盯梢 | PP-YOLOE-l | mAP: 63.9 MOTA: 50.1 | 检测: 25.1ms 盯梢:31.8ms |
车辆检测/盯梢 | PP-YOLOE-s | mAP: 61.3 MOTA: 46.8 | 检测: 16.2ms 盯梢:21.0ms |
- 检测/盯梢模型精度为PPVehicle数据集训练得到,整合了BDD100K-MOT和UA-DETRAC,是将BDD100K-MOT中的
car, truck, bus, van
和UA-DETRAC中的car, bus, van
都合并为1类vehicle(1)
后的数据集,检测精度mAP是PPVehicle的验证集上测得,盯梢精度MOTA是在BDD100K-MOT的验证集上测得(car, truck, bus, van
合并为1类vehicle
)。训练具体流程请参照[ppvehicle] - 猜测速度为T4 机器上运用TensorRT FP16时的速度, 速度包括数据预处理、模型猜测、后处理全流程。
运用办法
【装备项说明】
装备文件中与特点相关的参数如下:
DET:
model_dir: output_inference/mot_ppyoloe_l_36e_ppvehicle/ # 车辆检测模型调用途径
batch_size: 1 # 模型猜测时的batch_size巨细
MOT:
model_dir: output_inference/mot_ppyoloe_l_36e_ppvehicle/ # 车辆盯梢模型调用途径
tracker_config: deploy/pipeline/config/tracker_config.yml
batch_size: 1 # 模型猜测时的batch_size巨细, 盯梢使命只能设置为1
skip_frame_num: -1 # 跳帧猜测的帧数,-1表明不进行跳帧,主张跳帧帧数最大不超越3
enable: False # 是否开启该功用,运用盯梢前有必要确保设置为True
【运用指令】
- 从上表链接中下载模型并解压到
./output_inference
途径下,并修正装备文件中模型途径。默以为自动下载模型,无需做改动。 - 图片输入时,是纯检测使命,发动指令如下
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_ppvehicle.yml \
--image_file=test_image.jpg \
--device=gpu
- 视频输入时,是盯梢使命,留意首要设置infer_cfg_ppvehicle.yml中的MOT装备的
enable=True
,假如希望跳帧加快检测盯梢流程,能够设置skip_frame_num: 2
,主张跳帧帧数最大不超越3:
MOT:
model_dir: https://bj.bcebos.com/v1/paddledet/models/pipeline/mot_ppyoloe_l_36e_ppvehicle.zip
tracker_config: deploy/pipeline/config/tracker_config.yml
batch_size: 1
skip_frame_num: 2
enable: True
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_ppvehicle.yml \
--video_file=test_video.mp4 \
--device=gpu
-
若修正模型途径,有以下两种方式:
- 办法一:
./deploy/pipeline/config/infer_cfg_ppvehicle.yml
下能够装备不同模型途径,检测和盯梢模型别离对应DET
和MOT
字段,修正对应字段下的途径为实践期望的途径即可。 - 办法二:指令行中–config装备项后面增加
-o MOT.model_dir=[YOUR_DETMODEL_PATH]
修正模型途径。
- 办法一:
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_ppvehicle.yml \
--video_file=test_video.mp4 \
--device=gpu \
--region_type=horizontal \
--do_entrance_counting \
--draw_center_traj \
-o MOT.model_dir=ppyoloe/
留意:
-
--do_entrance_counting
表明是否计算收支口流量,不设置即默以为False。 -
--draw_center_traj
表明是否制作盯梢轨迹,不设置即默以为False。留意制作盯梢轨迹的测验视频最好是停止摄像头拍照的。 -
--region_type
表明流量计数的区域,当设置--do_entrance_counting
时可选择horizontal
或许vertical
,默认是horizontal
,表明以视频图片的中心水平线为收支口,同一物体框的中心点在相邻两秒内别离在区域中心水平线的两侧,即完结计数加一。
- 区域闯入判别和计数
留意首要设置infer_cfg_ppvehicle.yml中的MOT装备的enable=True,然后发动指令如下
python deploy/pipeline/pipeline.py --config deploy/pipeline/config/infer_cfg_ppvehicle.yml \
--video_file=test_video.mp4 \
--device=gpu \
--draw_center_traj \
--do_break_in_counting \
--region_type=custom \
--region_polygon 200 200 400 200 300 400 100 400
留意:
- 区域闯入的测验视频有必要是停止摄像头拍照的,镜头不能颤动或移动。
-
--do_break_in_counting
表明是否进行区域收支后计数,不设置即默以为False。 -
--region_type
表明流量计数的区域,当设置--do_break_in_counting
时仅可选择custom
,默认是custom
,表明以用户自定义区域为收支口,同一物体框的下边界中点坐标在相邻两秒内从区域外到区域内,即完结计数加一。 -
--region_polygon
表明用户自定义区域的多边形的点坐标序列,每两个为一对点坐标(x,y),按顺时针次序连成一个关闭区域,至少需求3对点也即6个整数,默认值是[]
,需求用户自行设置点坐标,如是四边形区域,坐标次序是左上、右上、右下、左下
。用户能够运转)获取所测视频的分辨率帧数,以及能够自定义画出自己想要的多边形区域的可视化并自己调整。 自定义多边形区域的可视化代码运转如下:
python get_video_info.py --video_file=demo.mp4 --region_polygon 200 200 400 200 300 400 100 400
快速画出想要的区域的小技巧:先恣意取点得到图片,用画图工具翻开,鼠标放到想要的区域点上会显示出坐标,记录下来并取整,作为这段可视化代码的region_polygon参数,并再次运转可视化,微调点坐标参数直至满意。