目标检测+双目测距——基于yolov5

效果

测试例子1

输入:

左图
右图

输出:

 

测试例子2

输入:

左图
右图

输出:

 

测试例子3

输入:

左图
右图

输出:

 

核心代码

基于yolov5-6.1版本和双目测距+点云——使用MiddleBurry数据集的图片

在detect.py文件基础上修改

if save_img or save_crop or view_img:  # Add bbox to image
    c = int(cls)  # integer class
    depthMap = stereo.stereo.main()
    x1, y1, x2, y2 = list(map(int, xyxy))  # 目标检测获得的物体像素坐标,(x1,y1)左上角,(x2,y2)右下角
    # 计算平均深度
    depth = 0
    num = 0
    for i in range(x1,x2+1):
        for j in range(y1,y2+1):
            if depthMap[j][i] != 0:
                depth += depthMap[j][i]
                num+=1
    depth /= num
    depth /= 1000  # mm转为m
    # 修改标签
    label = None if hide_labels else (names[c] if hide_conf else f'{names[c]} {depth:.2f}m')
    # 画框和标签
    annotator.box_label(xyxy, label, color=colors(c+7, True))
    if save_crop:
        save_one_box(xyxy, imc, file=save_dir / 'crops' / names[c] / f'{p.stem}.jpg', BGR=True)
posted @ 2022-03-31 10:05  dotJunz  阅读(602)  评论(0编辑  收藏  举报