这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 【转载】基于OpenCV的机器人分拣系统设计学习笔记(一)--from森

共1条 1/1 1 跳转至

【转载】基于OpenCV的机器人分拣系统设计学习笔记(一)--from森

工程师
2024-11-19 19:19:40     打赏

随着各大电商的快速发展,我国快递行业的整体规模迅速壮大,包裹数量逐年增多,快递的错派、丢件等问题也日渐凸显,传统人工分拣已经无法适应当前的分拣需求,亟需一种用于自动检验、工件加工和装配自动化以及生产过程的控制和监视的图像识别机器,按任务需要从原始图像数据中提取有关信息、高度概括地描述图像内容,以便对图像的某些内容加以解释和判断。

目前,针对机器人分拣系统的方案研究成为众多学者关注的热点。韦志文基于机器视觉设计了一种轻量化的分拣机器人,搭建了实验平台并完成了小型铸件的分拣。李殷基于深度学习提出了工业机器人物品识别分拣系统设计,在建模解析分类之后工业机器人对物品进行实践分拣操作。马泽明等人将视觉技术、搬运机器人和无线控制网相结合,设计了一种智能搬运机器人的实验平台。王连庆等人构建了一套针对无序来料的定位系统,引导机械手对无序物料进行精确抓取和有序摆放。

本文设计的工业机器人分拣系统与工业相机的快速拍照功能相结合,可实现包裹读码后的快速分拣及信息记录交互等功能,大量减少了分拣过程中的人工需求,提高了分拣效率及自动化程度,并大幅度提高了分拣准确率。

1 OpenCV图像识别

图像处理技术是用计算机对图像信息进行处理的技术,通过图像处理可以提取图像中的有用信息并精简数据量,是决定分拣过程是否能够达到精准且高效的关键。本设计采用OpenCV对原始图像进行预处理,提取图像特征,进行图像识别。本项目通过扫描物流包裹上的数字,对包裹进行识别,构建坐标系对机械臂完成协同控制,实现在复杂环境下的包裹分拣,提高了分拣过程中机械臂末端执行器的效能,物流快递包裹可进行有效分拣,达到快速分拣的目的,提高了工业生产效率,降低了工作成本。OpenCV图像处理流程图如图1所示。

屏幕截图 2024-11-19 191112.png

1.1基于OpenCV的OCR文字识别

传统的条形码虽然识别简单,但是需要学习多种编码方式。识别条形码下方数字单号可以直接把数据录入计算机进行数据处理,得到快递信息。

OCR文字识别是指对图像文件进行分析识别处理,获取文字及版面信息的过程。首先,对快递信息进行图像读取及图像预处理,再用openCV内置的图像检测算子进行检测,最后传入tesseract一OCR进行识别。这种方法不仅速度快,而且抗外部干扰能力也比较好,可以准确识别快递的相关数字信息。OCR的技术路线如图2所示。

屏幕截图 2024-11-19 191119.png

1.2图像预处理

图像预处理是在图片识别之前对图片进行前期处理,抑制图片中的无关信息,增强开发者想要的重要信息。

1.2.1图像灰度化

图像灰度化是将一张彩色图像向灰色图像转化的过程。相比于彩色图像,灰色图像更容易处理,可以消除颜色干扰。原图像如图3所示,灰度图像如图3所示。c42.c4tCv1vr()函数是颜色空间转换函数,可以实现图像的灰度化,代码如下:

屏幕截图 2024-11-19 191131.png

1.2.2图像掩膜

图像掩膜是用选定的图形对需要处理的图像(局部或全部)进行遮挡,来处理图像特定区域的处理过程。提取感兴趣区,用预先制作的感兴趣区掩膜与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为Y。掩膜图像如图4所示。

屏幕截图 2024-11-19 191200.png

1.2.3黑帽操作(突出更黑暗的区域)

黑帽运算就是取出图片中亮度低的地方,即突出更黑暗的区域。黑帽操作图像如图5所示。mvrphv1vgyEx()是形态学操作函数,可以方便地对图像进行黑帽操作,代码如下:

屏幕截图 2024-11-19 191209.png

1.3文字检测

1.3.1边缘检测

图像边缘检测可以大幅减少数据量,并剔除可以认为不相关的信息,保留图像重要的结构属性。基于查找的方法,通过寻找图像一阶导数中的最大和最小值来检测边界,通常是将边界定位在梯度最大的方向。Canny算子边缘检测函数的目标是找到一个最优的边缘检测算法,从而检测出图像边缘,代码如下:

1.3.2获取轮廓

cv2.findContours()函数用于查找检测物体的轮廓,cv2.drawContours()函数用于在图像上绘制轮廓。代码如下:

(1)检测轮廓:

cnts=cv2.findContours(edged.copy(),cv2.RETR一1IT,

cv2.CsH1AHNNRoxI1MN一E)

(2)绘制轮廓:

cv2.drawContours(image,[screenCnt],-1,(0,255,0),2)

1.4文本识别

文本识别采用tesseract-OCR识别技术,tesseract-OCR是由TesseractGoog1e开发并维护的OCR开源库,有着极高的精确度和灵活性,它可以通过训练识别出任何字体,也可以识别出数字和字符。识别出的轮廓图如图7所示,文本识别图如图8所示。

屏幕截图 2024-11-19 191232.png

来源: 整理文章为传播相关技术,网络版权归原作者所有,如有侵权,请联系删除。


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]