曹国锋 殷文慧 陈雅婷 郝孝颉 韩腾昊 罗丰瑞 钱诚
摘要:针对人们日常的寻物需求,文章设计了一款基于视觉目标检测的室内自动寻物系统。该系统主要由视觉信息采集、目标检测算法和云台运动控制组成。其中,ESP32读取OV2640摄像头拍摄的室内场景视频图像,PC服务器接收ESP32上传的图像。随后,文章采用YOLOv5目标检测算法确定目标物的空间位置,并在图像中检测红外激光发射器投射的光斑,通过增量式PID算法计算两者的位移偏差,由串口向STM32F103C8T6主控芯片发送运动指令,驱动2台舵机调整二自由度云台位姿,最终使得光斑能够对准目标物,形成寻物引导信号。实际测试结果验证了系统的有效性,该设计为室内自动视觉寻物提供了一种新的解决方案。
关键词:室内寻物;目标检测;二自由度云台
中图分类号:TP391文献标志码: A
0 引言
在家庭室内环境中,由于各种日常物品的随意摆放,物品很容易被遗忘在角落。随着时间的推移,人们经常需要花费较多的时间来搜寻这些物品。视频监控在家居生活中有着较为广泛的应用。目前,视频监控的主要功能是以影像的方式记录家庭室内环境,为家居生活提供安防服务。但是,家用视频监控装置的应用大多仅停留在视频的拍摄、存储层面,视频数据利用率低。随着目标检测、跟踪等计算机视觉技术的发展,从视频数据中自动提取人们感兴趣的目标物成了可能,这也延拓了家居视频数据的应用。针对人们日常家居生活中的寻物需求,本文引入YOLOv5目标检测算法,结合视频采集模块、云台运动控制和红外激光发射器,构建一个可实现室内自动寻物的物联网系统,引导人们快速找到家用日常物品,缓解人们的日常寻物的困扰[1]。
近年来,受益于深度卷积神经网络研究的深入,目标检测算法在分类准确性、定位精度等指标上有了极大的提升。其中,Faster RCNN(Faster Region-based Convolutional Neural Network)采用卷积神经网络提取图像特征[2],对目标候选区域进行采样,并使用分类和坐标回归输出头在图像中确定目标框。该类检测方法依赖于先验性的锚框长宽限制,为了降低预置锚框对目标物定位精度的影响,YOLO系列目标检测方法提出将目标定位问题转化为网格回归问题[3]。其中,YOLOv3将残差结构引入网络设计,解决了网络训练时梯度消失的问题,通过在多尺度特征图定位目标框,提高了小目标的检测成功率。YOLOv4引入了Mish激活函数,提高了主干网络的非线性特征描述能力。YOLOv5将特征金字塔网络和路径聚合网络进行结合,从而融合了局部特征和全局特征,提高了网络对目标外观的表征能力。此外,YOLOv5网络结构丰富,利用网络模块的组合能够满足目标快速检测的需求。
据此,本文基于YOLOv5目标检测算法,设计实现了一款可用于室内寻物的云台系统。通过前端摄像头采集视频数据,该系统在服务器上部署YOLOv5目标检测算法检测室内物品。该系统控制云台调整位姿使得红外激光光斑对准目标物,形成目标物定位信号,引导人们快速找到物品,为室内寻物提供了一种计算机视觉解决方案[4]。
1 系统总体结构
整个自动视觉寻物系统由视觉信息采集传输模块、视频图像处理模块和运动控制模块3个部分组成,如图1所示。视觉信息采集传输模块负责获取关于家居环境的图像视频并上传至PC服务器。部署在PC服务器上的视频图像处理模块对上传的图像进行目标检测处理,以此获得激光发射器投射的红色光斑以及待检测目标物的空间位置。运动控制模块根据图像上检测所得的红色光斑与目标物位置之间的距离,驱动舵机调整云台位姿,使红色光斑对准目标物位置。
系统的总体结构如图2所示。系统基于ESP32芯片和OV2640摄像头,设计实现了视觉信息采集传输模块[5-6]。在PC服务器上,系统部署了视频图像处理软件,负责接收ESP32芯片上传的图像数据;采用YOLOv5算法在图像上实施目标检测,在得到目标检测结果后计算激光光斑和目标物在世界坐标系中的位置偏移量;通过串口通信的方式将运动指令发送到运动控制芯片,由其驱动舵机调整云台位姿,使得光斑能够投射到目标物上。
1.1 视觉信息采集和传输
本系统基于ESP32芯片,设计实现了一个视觉信息采集、传输模块。其中,ESP32芯片采用5 V电源供电,搭载OV2640摄像头模组作为外围设备用于室内场景的拍摄。在视频图像数据的读取方面,ESP32芯片通过向OV2640发送PCLK时钟信号读取寄存器内的数据;随后,将图像数据以JPEG格式进行存储。在组网方面,ESP32使用自带的Wi-Fi模块接入局域网,局域网内ESP32与服务器之间建立TCP连接,两者通过套接字进行通信;ESP32通过ESP32侧的客户端套接字将视频数据逐帧发送到PC服务器;PC服务器在接收图像数据后向ESP32下发接收成功响应,使得ESP32可以继续发送后续的视频帧。
1.2 视频图像处理
ESP32采集的视频图像需要在PC服务器上完成处理,最终输出舵机角度移动偏移量。整个视频图像处理包括目标检测算法、红外激光光斑的检测和舵机偏移量换算。
目标检测算法负责在ESP32上传的视频图像上定位用户感兴趣的目标物。为了更高效准确地进行目标检测,自动寻物系统选用了YOLOv5作为目标检测算法。YOLOv5是一个在COCO数据集上预训练的目标检测架构和模型,其网络结构共分为4个模块。
(1)输入模块:负责接收原始输入图像数据。
(2)Backbone模块:作为骨干网络部分,负责从输入图像中提取特征。这些特征可以是高、中、低3个层次的特征。
(3)Neck模块:该部分由一系列Neck结构的模块组成,网络特点是特征的尺寸变化,同Neck类似,先减小一半,然后再恢复到原来的尺寸。这样既可以减少计算量,又可以增加特征的提取能力。该部分作用是将各层次的特征进行融合,以提取出大、中、小的特征图。
(4) Head模块:该部分负责目标框空间位置的确定,对目标的位置坐标参数进行回归,生成目标的中心坐标、目标框的宽度和高度以及最终目标分类的置信度。
YOLOv5预训练模型能够进行80个类别的目标检测任务,涵盖了日常生活用品的类别。据此,本系统直接使用YOLOv5预训练模型对视频图像进行推理,以此获得目标物在视频图像中的空间位置。
为了给出现实世界中目标物的空间位置信息,以此引导用户进行寻物,系统采用红外激光光斑对目标物进行定位,为此需要从图像中检测出红外激光光斑。针对红外激光光斑的外观特征,本文使用图像的通道分量特征设计了一种光斑快速检测算法用于定位光斑的位置。
假设视频图像为I,各像素包含红色、绿色和蓝色3个分量,于是该像素可以标识为I(x,y),其中(x,y)表示像素的横坐标和纵坐标(其中,0≤x≤W-1,0≤y≤H-1,W、H分别表示图像I的宽度和高度),在此基础上进一步构建特征F(x,y):
其中,I(x,y)[r]、I(x,y)[g]和I(x,y)[b]分别表示该像素的红色通道、绿色通道和蓝色通道分量值。红外激光光斑在红色通道上的值比其他2个通道高,白色背景在3个通道上的值均较高;与其他2个通道相比,其他背景色在红色通道上的值并没有显著的提升。因此,在该特征上红外激光光斑与背景有着明显的可区分性。据此,在全图上利用式(1)计算所有像素的特征F(x,y),最后选取具有最大特征值像素的位置作为光斑中心位置(xs,ys):
由于特征可分性较高且计算复杂度低,借助于式(1)和式(2)可以快速地完成光斑定位。
通过上述目标检测算法和光斑检测算法,可以获得关于目标物和光斑在像素坐标系的空间位置坐标,进一步可以计算得到目标物定位框中心与光斑中心的位置坐标偏移量,具体计算式为:
其中,(xo,yo)表示目标定位框中心在像素坐标系中的坐标值,(xs,ys)表示红外激光光斑在像素坐标系中的坐标值,(Δx,Δy)表示目标物定位框与光斑中心的坐标偏移量。
因为红外激光发射器和摄像头均由同一架云台承载,所以根据偏移量(Δx,Δy)可进一步估算云台需要旋转的角度偏移量,使得在世界坐标系中光斑能够对准目标物。在此需要将像素坐标系中的坐标偏移量转化为世界坐标系中的位置坐标偏移量,以此控制云台调整位姿。为此,系统将(Δx,Δy)作为比例积分微分(Proportional Integral Differential,PID)算法的输入,通过整定PID算法参数,使得PID控制器能够输出云台舵机的运动角度值。在具体PID控制算法实现上,本文选择增量式PID算法来计算云台旋转的角度偏移量,如式(4)所示。
其中,kp、ki和kd分别表示比例、积分和微分参数,而k时刻误差偏移量e(k)=[Δx,Δy]T。由式(4)可以输出云台旋转的角度偏移量yout。最后,PC服务器将偏移量yout通过串口下发给舵机,以此驱动舵机的旋转,当激光光斑落入目标物的定位框后,寻物过程结束。
1.3 云台运动控制
摄像头部件和红外激光发射器由一架云台承载,云台运动控制模块包括STM32F103C8T6主控芯片、水平方向数字舵机DS3115和垂直方向舵机DS3115主要构件。该云台使用2台数字舵机构建二自由度云台,其中2台舵机的运动均由STM32F103C8T6主控芯片进行控制,STM32F103C8T6主控芯片在收到PC服务器下发的偏移量yout后,该主控芯片则可驱动舵机来调整云台位姿。
PC服务器与STM32F103C8T6主控芯片之间采用串口通信方式。其中,CH340芯片起到转接口的作用,将PC主机的USB接口转换为串口。随后,CH340与STM32F103C8T6主控芯片建立正常的串口通信,STM32F103C8T6主控芯片上PA10引脚设置为UART功能的RX接收端,PA9引脚设置为UART功能的TX发送端。
PC服务器通过发送的角度位置数据触发STM32 F103C8T6主控芯片上的串口中断。在中断程序中,将PC服务器发送的角度位置值换算为脉冲宽度调制(Pulse Width Modulation,PWM)的占空比,分别在水平面和垂直面驱动舵机DS3115调整位置,以此改变云台的位姿。
云台所控制的水平自由度和垂直自由度由2个DS3115舵机来实现,其5 V电压的供电需求依靠STM32F103C8T6主控芯片,垂直舵机控制信号通过STM32F103C8T6主控芯片的PB0引脚输出得到,水平舵机控制信号则通过STM32F103C8T6主控芯片的PB5引脚输出得到。云台顶部通过夹持构件固定ESP32芯片、OV2640摄像头和激光发射器,以此实现器件在云台上的承载。
2 系统验证
为了验证本系统的寻物功能,在室内场景中,本文对该系统进行了测试。实验选择小尺寸水瓶作为待搜索的目标物,搜寻过程如图3所示。在实验中,光斑被检测出并以圆圈形式标出,水瓶的空间位置则由矩形定位框标定,两者之间的直线线段表示距离差。由图可见:在舵机运动过程中,两者之间的距离差不断缩小,当光斑最终停留在水瓶上时,舵机也停止运动,此时光斑形成引导信号。
3 结语
本文设计实现了一款适用于室内视觉自动寻物云台系统,核心部分由基于ESP32的视觉信息采集传输模块、基于YOLOv5的目标检测算法模块和云台运动控制模块等组成。系统通过调整云台位姿缩小红外激光光斑与目标物定位框之间的距离,最终使得激光光斑对准目标物,形成寻物引导信号。本文所提设计方案为室内寻物提供了一种视觉解决方案。
参考文献
[1]李书阁,赵鹏举,程诗妍,等.基于目标检测技术的自动售货机商品识别系统设计[J].无线互联科技,2023(24):53-56.
[2]REN S, HE K, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017(6):1137-1149.
[3]JIANG P, ERGU D J, et al. A review of Yolo algorithm developments[J]. Procedia Computer Science, 2022, 199: 1066-1073.
[4]牛鑫宇,毛鹏军,段云涛,等.基于YOLOv5s室内目标检测轻量化改进算法研究[J].计算机工程与应用,2024(3):109-118.
[5]崔金涛,佟瑞栋.基于ESP32及MQTT协议的视觉追踪机器人设计[J].辽宁师专学报(自然科学版),2021(4):67-71.
[6]冷宇.基于ESP32的远程家居控制系统设计[J].无线互联科技,2022(24):86-88.
(编辑 王雪芬编辑)
Design of automatic system for indoor searching lost items based on visual object detection
Cao Guofeng, Yin Wenhui, Chen Yating, Hao Xiaojie, Han Tenghao, Luo Fengrui, Qian Cheng*
(Changzhou Institute of Technology, Changzhou 213032, China)
Abstract: Aiming at the daily demand of searching lost items, an automatic system for indoor searching lost items based on visual object detection is designed in this paper. The system is made up of the collection of vision information, algorithm of object detection and the motion control of pan-tilt. Specially, video images of indoor scene are read from OV2640 camera by ESP32. PC server receives images uploaded by ESP32. Spatial locations of a target are determined by YOLOv5 object detection algorithm. Laser spots cast by an infrared laser emitter are detected in images. Position offsets between the locations of the target and the laser spot are computed through incremental PID algorithm, and then the motion commands are send from PC server to STM32F103C8T6 chip through serial port. Two servos are driven so as to regulate the posture of the two-degree-of-freedom pan-tilt. Eventually, the laser spot are thrown to the target, and it turns out to the guiding signals for finding lost items. The effectiveness of the system is validated by the results in the real world. It offers a new solution for indoor searching lost items based on visual object detection.
Key words: indoor searching lost items; object detection; two-degree-of-freedom pan-tilt