【问题标题】:Image comparison and Angle Estimation [closed]图像比较和角度估计
【发布时间】:2022-08-24 13:16:44
【问题描述】:

我在图像中有一个目标对象和许多其他对象。目标对象预先定义好一个已知的形状,如图所示。

我的任务是检测图像中存在的所有目标对象,并找到检测到的对象相对于目标对象的角度。出于对象检测的目的,我使用了 YOLO-V5-OBB 模型,它给了我检测信心和旋转的边界框坐标。见下面的结果

我想知道 yolo-obb 模型如何预测旋转角度,以便围绕检测到的对象制作旋转边界框?

  • 你能分享一个未注释的图像吗?

标签: data-science artificial-intelligence angle yolov5 image-comparison


【解决方案1】:

寻找对象:

在使用重型机器学习模型之前,请尝试使用经典的计算机视觉算法。

寻找对象: 如果上面的对象是您要搜索的唯一对象: 使用cv2.HoughCircles()

https://docs.opencv.org/3.4/d4/d70/tutorial_hough_circle.html

如果您希望能够搜索任意对象: 尝试使用模板匹配。

https://pyimagesearch.com/2021/03/22/opencv-template-matching-cv2-matchtemplate/

检测到物体后:

应用霍夫变换提取顶线并使用线拟合算法检测角度。

OpenCV line-fitting(可能已弃用)

【讨论】:

    【解决方案2】:

    我想你可以尝试使用 YOLOv5-OBB 来训练并得到边界框的坐标,然后很容易找到方向的角度。查看detect.py。

    1. https://www.youtube.com/watch?v=iRkCNo9-slY
    2. https://github.com/hukaixuan19970627/yolov5_obb
      # Write results
      for *poly, conf, cls in reversed(det):
                          if save_txt:  # Write to file
                              # xywh = 
      (xyxy2xywh(torch.tensor(xyxy).view(1, 4)) / gn).view(-1).tolist()  
      # normalized xywh
      

    【讨论】:

    • 根据您的建议,我训练了 yolo_obb 模型并获得了旋转的边界框,但来自检测结果的角度信息有些令人困惑。你能解释一下如何计算角度吗?
    猜你喜欢
    • 2011-08-07
    • 2019-02-27
    • 1970-01-01
    • 2011-08-09
    • 2017-10-23
    • 2020-04-18
    • 2012-12-23
    • 2019-10-21
    • 2016-06-06
    相关资源
    最近更新 更多