0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

YOLOv8+OpenCV实现DM码定位检测与解析

OpenCV学堂 来源:OpenCV学堂 2023-08-10 11:35 次阅读

YOLOv8是YOLO系列模型的最新王者,各种指标全面超越现有对象检测与实例分割模型,借鉴了YOLOv5、YOLOv6、YOLOX等模型的设计优点,全面提升改进YOLOv5的模型结构基础上实现同时保持了YOLOv5工程化简洁易用的优势。

7df4028a-372a-11ee-9e74-dac502259ad0.png

数据准备

工业码(DataMatrix码简称DM码)检测与识别是机器视觉最常用得场景之一,从DM码的定位、质量评估、预处理、检测与ROI截取、解析识别。每个环节都有很多技术细节,以DM码的发现于定位来说,早期都是基于传统的图像分析与寻边算法实现DM码定位,现在基本上都是基于轻量化的深度学习对象检测模型来完成。本文的数据集是来自一个网友的贡献,它的DM码图像。

传统方法分析相对来说比较容易收到其它因素干扰,导致解码率不高,因此我从他给我的2000多张图像中挑选出200张,用OpenMV做好了标注,制作生成了数据集。

7e2df1e8-372a-11ee-9e74-dac502259ad0.png

模型训练与量化部署

然后基于YOLOv8对象检测模型,使用迁移学习方式训练了一个DM码检测模型,训练结果如下:

7e4b30e6-372a-11ee-9e74-dac502259ad0.png

7e662ab8-372a-11ee-9e74-dac502259ad0.png

把训练生成的best.pt模型导出ONNX格式模型,再进一步量化为INT8,最终模型大小只有3MB,在端侧板子上都可以部署运行,然后运行测试。

采用ZXING开源解码结果

这其中最重要的就是定位查找DM码,使用YOLOv8训练一个自定义对象检测模型,可以很轻松的搞定,然后基于ROI使用OpenCV完成预处理之后即可解码。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3171

    浏览量

    48711
  • OpenCV
    +关注

    关注

    30

    文章

    628

    浏览量

    41259
  • 定位检测
    +关注

    关注

    0

    文章

    4

    浏览量

    8220
  • 迁移学习
    +关注

    关注

    0

    文章

    74

    浏览量

    5556

原文标题:实战 | YOLOv8+OpenCV 实现DM码定位检测与解析

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【飞凌嵌入式OKMX8MP-C 开发板试用体验】OpenCV-DNN移植&使用体验(基于YOLOV3模型识别物体)

    接引用了。使用OpenCV检测摄像头输入图像并显示的Demo非常简单:void * Thread_Opencv(void *arg){ // IplImage* img = cvLoadImage
    发表于 02-21 00:22

    使用Yolov5 - i.MX8MP进行NPU错误检测是什么原因?

    的时机(yolov5s 模型,输入为 448x448 ~ 70ms)。 现在我正在尝试使用 Yolov5(uint8 量化),但我尝试使用不同的预训练模型获得相同的行为,在 CPU 上进行良好
    发表于 03-31 07:38

    DM6446的车牌定位快速算法实现与优化

    DM6446的车牌定位快速算法实现与优化
    发表于 10-26 15:27 1次下载
    <b class='flag-5'>DM</b>6446的车牌<b class='flag-5'>定位</b>快速算法<b class='flag-5'>实现</b>与优化

    使用OpenCV与微信二维引擎实现二维识别

    微信开源了其二维的解码功能,并贡献给 OpenCV 社区。其开源的 wechat_qrcode 项目被收录到 OpenCV contrib 项目中。从 OpenCV 4.5.2 版本
    的头像 发表于 04-06 10:01 3968次阅读

    使用OpenCV+ONNXRuntime部署YOLOV7目标检测

    使用opencv部署的程序,有一个待优化的问题。onnxruntime读取.onnx文件可以获得输入张量的形状信息, 但是opencv的dnn模块读取.onnx文件无法获得输入张量的形状信息,目前是根据.onnx文件的名称来解析
    的头像 发表于 07-23 11:31 1w次阅读
    使用<b class='flag-5'>OpenCV</b>+ONNXRuntime部署<b class='flag-5'>YOLOV</b>7目标<b class='flag-5'>检测</b>

    YOLOv5在OpenCV上的推理程序

    YOLOv5官方给出的YOLOv5在OpenCV上推理的程序相对来说是比较通俗易懂的,条理清晰,有基本的封装,直接可用!但是我也发现,模型的推理时间跟前后处理的时间相差无几,特别是当视频流有多个
    的头像 发表于 11-02 10:16 1845次阅读

    使用YOLOv8做目标检测和实例分割的演示

    YOLOv8是来自Ultralytics的最新的基于YOLO的对象检测模型系列,提供最先进的性能。
    的头像 发表于 02-06 10:11 7311次阅读

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8目标检测模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评 YOLOv8 的分类模型,本文将介绍在 AI 爱克斯开发板上使用 OpenVINO 加速
    的头像 发表于 05-12 09:08 1261次阅读
    在AI爱克斯开发板上用OpenVINO™加速<b class='flag-5'>YOLOv8</b>目标<b class='flag-5'>检测</b>模型

    YOLOv8版本升级支持小目标检测与高分辨率图像输入

    YOLOv8版本最近版本又更新了,除了支持姿态评估以外,通过模型结构的修改还支持了小目标检测与高分辨率图像检测。原始的YOLOv8模型结构如下。
    的头像 发表于 05-16 11:14 1.2w次阅读
    <b class='flag-5'>YOLOv8</b>版本升级支持小目标<b class='flag-5'>检测</b>与高分辨率图像输入

    AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检测模型

    《在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型》介绍了在AI爱克斯开发板上使用OpenVINO 开发套件部署并测评YOLOv8的分类模型,本文将介绍在AI爱克斯开发板上使用OpenVINO加速YOLOv8目标
    的头像 发表于 05-26 11:03 1187次阅读
    AI爱克斯开发板上使用OpenVINO加速<b class='flag-5'>YOLOv8</b>目标<b class='flag-5'>检测</b>模型

    OpenCV4.8+YOLOv8对象检测C++推理演示

    自从YOLOv5更新成7.0版本,YOLOv8推出以后,OpenCV4.6以前的版本都无法再加载导出ONNX格式模型了,只有OpenCV4.7以上版本才可以支持最新版本
    的头像 发表于 09-27 11:07 1444次阅读
    <b class='flag-5'>OpenCV4.8+YOLOv8</b>对象<b class='flag-5'>检测</b>C++推理演示

    YOLOv8实现旋转对象检测

    YOLOv8框架在在支持分类、对象检测、实例分割、姿态评估的基础上更近一步,现已经支持旋转对象检测(OBB),基于DOTA数据集,支持航拍图像的15个类别对象检测,包括车辆、船只、典型
    的头像 发表于 01-11 10:43 1678次阅读
    <b class='flag-5'>YOLOv8</b><b class='flag-5'>实现</b>旋转对象<b class='flag-5'>检测</b>

    OpenCV4.8 C++实现YOLOv8 OBB旋转对象检测

    YOLOv8框架在在支持分类、对象检测、实例分割、姿态评估的基础上更近一步,现已经支持旋转对象检测(OBB),基于DOTA数据集,支持航拍图像的15个类别对象检测,包括车辆、船只、典型
    的头像 发表于 02-22 10:15 1467次阅读
    <b class='flag-5'>OpenCV</b>4.8 C++<b class='flag-5'>实现</b><b class='flag-5'>YOLOv8</b> OBB旋转对象<b class='flag-5'>检测</b>

    基于OpenCV DNN实现YOLOv8的模型部署与推理演示

    基于OpenCV DNN实现YOLOv8推理的好处就是一套代码就可以部署在Windows10系统、乌班图系统、Jetson的Jetpack系统
    的头像 发表于 03-01 15:52 1395次阅读
    基于<b class='flag-5'>OpenCV</b> DNN<b class='flag-5'>实现</b><b class='flag-5'>YOLOv8</b>的模型部署与推理演示

    YOLOv8中的损失函数解析

    YOLO长期以来一直是目标检测任务的首选模型之一。它既快速又准确。此外,其API简洁易用。运行训练或推断作业所需的代码行数有限。在2023年下半年,YOLOv8在框架中引入了姿态估计后,该框架现在支持最多四个任务,包括分类、目标检测
    的头像 发表于 11-05 17:15 433次阅读
    <b class='flag-5'>YOLOv8</b>中的损失函数<b class='flag-5'>解析</b>