配置目标的实际长宽

如果想输出目标位置,需要在类别描述文件中填写目标的高度与宽度(单位:m)同时需要完成相机标定,具体位置如下:

<path-to-Prometheus>/Modules/object_detection/py_nodes/yolov5_tensorrt_client/class_desc/coco.txt

如下图所示:

image-20210403231019265.png

如上图,以人(person)为例,设置宽度0.5m,高度1.8m

然后,需要修改源代码,这里以高度估计人距离摄像机的距离,并以此估计目标位置,所在源码位置如下:

<path-to-Prometheus>/Modules/object_detection/py_nodes/yolov5_tensorrt_client/yolov5_tensorrt_client.py
# 112-114行

如下图所示:

image-20210403231510904.png

cls==0用来判断是否为类别personcls_hs[cls]用来读取目标高度(读到的数就是我们写在coco.txt里的1.8m),camera_matrix[1][1]为垂直方向像素焦距(由相机标定参数文件决定),h物体的像素高度(为实时检测结果,并被归一化到[0,1]

附录:目标位置测量原理

image-20210404002310773.png