APP下载

基于机器视觉技术的分拣系统设计*

2023-07-25杨世昌

科技与创新 2023年11期
关键词:条形码图像处理摄像头

舒 慧,张 融,李 皓,杨世昌

(1.武昌工学院智能制造学院,湖北 武汉 430065;2.绿色风机制造湖北协同创新中心,湖北 武汉 430065)

随着物流行业的蓬勃发展,条码被广泛应用于快递物流产品的传输、识别、记录等方面,旧的条码标识依赖人工较多,受旧识别技术、自身速度等因素的限制,识别速度过慢,工作效率过低[1-2]。针对这一问题,可以设计一种基于机器视觉和工业机器人的快速分拣自动控制系统。

机器视觉系统采集条码信息时,通过高清摄像头采集快递物流产品的图形、尺寸、质量等信息,发送到计算机中进行图像处理和识别,再将识别结果与产品特征参数和物流信息一起发送到执行单元,以此来实现视觉系统和工业机器人对目标物的有效信息的快速识别,以及对目标物的动态追踪和抓取分拣,与以往人工称重、人工复检相比,可靠性和工作效率大大提高[3]。

1 视觉分拣系统的方案设计

1.1 工作流程

本文研究的是基于机器视觉技术的分拣系统设计,针对物流线上出现的不同物品,进行跟踪拍照、扫码识别、区块分拣。

具体工作过程是将输送带上的快递包裹运送至视觉检测处,激活拍照传感器,输送带停止传送,智能相机根据外部信号触发拍照,获取静止状态下当前快递包裹的图片信息,视觉系统通过图像识别,将快递包裹的位姿进行提取和识别,再将识别结果传递给机械臂,从而实现快递包裹的自动分拣,具体工作流程如图1 所示。

图1 快递分拣视觉系统的工作流程

1.2 设备选型

硬件设备:树莓派博通BCM2837、工业相机HV3808、笔记本电脑、USB 串口通信线、网线。

软件环境:Python3.7、VS code 集成开发环境(Windows x64 User Installer 版本)、第三方Python库(QRcode 库、Pyzbar 库和Pillow 库)、VNC 软件、File Zilla 软件。

2 快递条码图像处理

图像处理是指利用计算机算法,对图像进行分析运算的处理技术,包括图像的存储、表示、提取、运算、增强、恢复和解译等[4]。

目前,快递信息通常采用条形码或者二维码的形式进行承载,本文主要对二维码的图像处理进行分析研究,具体处理流程如下:①图像获取与存储;②加载图像数据至内存并存盘;③操作、增强和复原,即图像转换(二值化、灰度化)、图像增强(清晰化处理)、图像去噪及复原;④图像分割;⑤信息提取与表示;⑥图像理解/图像结束,即图像分类、对象识别。

3 视觉分拣系统仿真测试

3.1 程序设计

本文基于Python 编写了一套程序来实现对快递二维码图像的识别处理,以树莓派作为微控制器,使用Python+OpenCV 库编程[5-6],其中,部分程序如下所示:

加载测试所需要的库

import cv2

import time

from PIL import Image

from pyzbar import pyzbar

提取二维码边框并绘出

def decodeDisplay(image):

barcodes=pyzbar.decode(image)

for barcode in barcodes:

# 提取二维码的边界框的位置,画出图像中条形码的边界框

(x,y,w,h)=barcode.rect

cv2.rectangle(image, (x, y), (x + w, y + h),(225,0,0),2)

提取二维码数据为字节对象并转换成字符串

barcodeData=barcode.data.decode("utf-8")

barcodeType=barcode.type

# 绘出图像上二维码的数据和条形码类型

text = "{} ({})".format(barcodeData,barcodeType)

cv2.putText(image, text, (x-200, y - 10),cv2.FONT_HERSHEY_SIMPLEX,1.2,(255,136,0),2)

向终端打印二维码数据和条形码类型

value=barcode.data.decode("utf-8")

print("[INFO] Found {} barcode:{}".format(barcodeType,barcodeData))

if value=='Beijing':

print(该快递包裹需要分发到北京地区.")

elif value=='Shenzhen':

print(该快递包裹需要分发到深圳地区.")elif value=='Shanghai':

print(该快递包裹需要分发到上海地区.")

else:

print(未找到该快递包裹需要分发的区域.")

return image

设置图像捕获设备参数和指令

def camera(cap):

print('请把含二维码图片放置摄像头正下方.')

print('开始捕获图像,按空格键确认拍照,ESC 键关闭窗口')

width=640

height=480

cap.set(cv2.CAP_PROP_FRAME_WIDTH,width)

cap.set(cv2.CAP_PROP_FRAME_HEIGHT,height)

while True:

# 捕获视频帧

ret,frame=cap.read()

image=frame.copy()

# 实时显示二维码

img=decodeDisplay(frame)

cv2.imshow('camera',img)

# 保持画面持续

key=cv2.waitKey(1)

# 空格键保存

if key==ord(""):

cv2.imwrite(".image/image.png",image)

#Esc 退出

if key==27:

break

# 关闭摄像头

# 关闭窗口

cap.release()

cv2.destroyAllWindows()

# 主程序入口

图像捕获设备的连接

if__name__=="__main__":

#0: 笔记本内置摄像头1:USB 摄像头

cap=cv2.VideoCapture(1)

video="http://admin:admin@192.168.31.177:8081/"

# 此处@后的ipv4 地址需要改为app 提供的地址

cap=cv2.VideoCapture(video)

while True:

# 开始捕获图像camera(cap)

# 二维码解码

time.sleep(1)

3.2 仿真测试结果

本文所设计的视觉分拣系统使用工业相机来获取快递二维码的图像,经过灰度化、二值化、去噪、增强、分割、提取等一系列图像处理后,得到快递二维码的信息,再使用MODBUS TCP/IP 协议将所获得的信息发送至工业机器人,由工业机器人进行分类分拣。

仿真测试结果如图2—图4 所示。

图2 深圳快递

图3 上海快递

图4 北京快递

4 结论

通过此次研究与分析,证明了利用机器视觉技术识别二维码实现快递分拣是切实可行的,采用工业相机实时获取快递二维码图像,再对图像进行识别处理、提取信息,并将获得的信息传递给机器人,从而对快递进行分类。机器视觉技术具有识别速度快、准确率高、抗干扰性强的优点,且此方案设计结构简单、便于组装,极大地提高了快递分拣效率,降低了人工成本。可以预见,机器视觉技术在传统物流行业将发挥越来越大的作用。

猜你喜欢

条形码图像处理摄像头
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
创意条形码
从条形码到二维码
从条形码到二维码
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
基于太赫兹技术的新一代摄像头及其在安防领域的应用探讨
条形码大变身
基于图像处理的定位器坡度计算