RV1126板子上跑YOLOV5目标检测模型——过程难题:大框包小框

        在yolov5目标检测模型进行训练和测试时,均成功检测,检测框、置信度均没有问题。

        但是在板子上测试检测模型时,出现了大框包小框,并且最大的框都不能将目标全部框住的问题。在全网搜索解决方法,分别排查:

  1. 是否是pt转换为onnx文件时出现的问题。5. YOLOv5(目标检测) — [野火]嵌入式AI应用开发实战指南—基于LubanCat-RK系列板卡 文档 (embedfire.com)icon-default.png?t=O83Ahttps://doc.embedfire.com/linux/rk356x/Ai/zh/latest/lubancat_ai/example/yolov5.html#
  2. 是否是模拟测试时量化的dataset.txt的问题。(量化的图片选择、量化图片质量、量化图片数量)
  3. 修改阈值和框的大小
    BOX_THRESH = 0.5
    NMS_THRESH = 0.6
    def draw(image, boxes, scores, classes):
        """Draw the boxes on the image.
    
        # Argument:
            image: original image.
            boxes: ndarray, boxes of objects.
            classes: ndarray, classes of objects.
            scores: ndarray, scores of objects.
            all_classes: all classes name.
        """
        for box, score, cl in zip(boxes, scores, classes):
            top, left, right, bottom = box
            print('class: {}, score: {}'.format(CLASSES[cl], score))
            print('box coordinate left,top,right,down: [{}, {}, {}, {}]'.format(top, left, right, bottom))
            top = int(top)
            left = int(left)
            right = int(right)
            bottom = int(bottom)
    
            cv2.rectangle(image, (top, left), (right, bottom), (255, 0, 0), 2)
            cv2.putText(image, '{0} {1:.2f}'.format(CLASSES[cl], score),
                        (top, left - 6),
                        cv2.FONT_HERSHEY_SIMPLEX,
                        0.6, (0, 0, 255), 2)
  4.  以上所有的方法都试验之后,均不能在根本上解决问题,最后发现是数据集的问题。训练的数据集中一大部分是网络图片,并不是真实场景的图片,而量化的时候采用的是真实场景中的图片,导致在板子上模拟测试效果极差。最后修改训练数据集,将网络图片删除,增加大量真实场景的图片,训练成功。


 如果大家也出现同样的问题,首先应检查数据集是否有问题,可首先少训练几轮看看结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值