当前位置:首页 期刊杂志

巡逻机器人的图像采集与处理技术研究*

时间:2024-05-04

卢应虎 张青春 王劲尧 杨 阳

(1.淮阴工学院研究生院 淮安 223003)(2.淮阴工学院自动化学院 淮安 223003)

1 引言

移动监控是电子巡逻机器人最基本的智能行为。如何在移动过程中有效地采集高质量的画面、识别运动中的目标并对目标进行跟踪,是电子巡逻机器人领域研究的关键问题之一。

在此背景下,基于Visual Studio 2017作为开发环境,使用Opencv3.4.1强大的函数库,Python作为编程语言,通过移动机器人搭载网络摄像头对监控区域进行实时监控,并完成图像去除光照、噪声等影响因素以及监控内移动目标的检测、识别。

2 系统设计要求与方案

2.1 设计要求

监控设备能够清晰地采集图像;监控摄像头能够自由旋转角度[1];对于图像处理可以分为图像的前期处理与后期处理,前期处理主要是图像的预处理,包括对图像作去噪声、图像增强等处理[2],后期处理主要是对监控内移动目标进行检测、目标的识别,对可疑对象跟踪[3]。

机器人为四层,由上到下的顺序,第一层为LCD显示屏,第二层为核心板区域,第三层为扩展板区域,第四层为带电机的底板。

2.2 方案设计

选择使用萤石C6C摄像头。它的感光元件为COMS传感器,该摄像头的云台可实现不同位置不同角度的旋转,监控范围更大。

使用Opencv进行图像处理。Opencv是一个跨平台的计算机视觉库[4]。它是一个开放源代码可视化库,它为开发者提供了许多常规的图像处理或计算机视觉算法[5]。Opencv库包括CV、CVAUX、CVCORE、HIGHGUI和CVAM。这里的CV模块主要用于图像处理、动态分析、目标跟踪等。CVAUX模块是额外的库,在概括实验函数后形成。CXCORE模块包含几套基本结构和算法,以便对不同的数据类型进行基本运算处理。HIGHGUI是glji库,包括用户互动部分。CVAM是Opencv中使用相机的重要模块。

3 图像处理的算法研究

由于气候、照明、传感器和系统的非线性,目标快速移动等原因,监测系统中图像质量不高,图像需要进行事前的处理,能有效地清除噪音,改善图像质量,使图像清晰[6],并能提供对目标识别和跟踪的可靠保证。

3.1 图像增强算法

图像增强是数码图像处理的基本方法[7]。空间域方法和频域方法是图像增强技术的两种方法[8]。对空间域中灰度值直接计算的方法为空间域方法[9]。图像增强技术提供的公式(1)来描述处理过程。

图1 空间域增强模型

f(x,y)表示图像处理前的函数,g(x,y)是图像经增强后的图像[10]。h(x,y)为计算处理图像的相关函数。

频率区域的方法意味着将现有的域名转换为其他域名。如果在现有的域名中计算或分类不顺利时,则转换成更高水平的域名,计算量就会减少,计算工作就会简单化。图2为频域变换增强的流程图。

图2 频域的变换增强

F(u,v)为频率域增强处理之前的图像函数,G(u,v)是处理后图像的函数,f(x,y)经过傅里叶正变换变成F(u,v)[11],再经修正变换为G(u,v)。H(u,v)是关于修正方法的一个滤波数。

图3 图像强化效果图

3.2 图像二值化算法

图像的灰度化,就是将图像中各个位置的像素值用0和1两个值来表示[12],图像的二值化在移动目标检测中被用来分离检测目标和非检测目标[13],在移动目标检测中,在目标被检测出来后,我们通常将检测出的目标与背景进行二值化,通过设置合适的阈值,将背景与检测的移动目标分离开来[14]。式(3)给出了图像二值化的表达式。

上式中,T是我们选定的阈值,图像中处于位置(x,y)的像素的值Dk(x,y)大于等于阈值T时,则将该点的像素值赋值为1,当像素值小于阈值T时将该点的像素值赋值为0。在计算机屏幕显示中,像素值为1的像素点显示为白色,像素值为0的像素点显示为黑色,这样二值化后的图像,将由彩色图像或者灰度图像转换为黑白图像,能够更加突出我们检测出的目标。图4为图像二值化效果图。

图4 图像二值化

3.3 图像滤波算法

图像噪音是由于拍摄过程中出现失误而晃动以及拍摄环境等原因导致拍摄图像模糊的现象。另外,在传输过程中,由于外部的干涉或者多媒体等问题,产生了椒盐噪声和高斯噪音。过滤器可以用来过滤噪音,过滤噪声的光谱一般位于高频部分,因此要过滤高频部分,保留低频组件,这样可以大大提高图像的质量,过滤高频并在光滑的图像中运行,使用低回放过滤器可以过滤高频,以下公式是空间单位脉冲响应矩阵设计的系统。

式中,g(i,j)是经过卷积变化之后得到的结果,f(m,n)为初始的灰度值,H是低通卷积因子。

图5 滤波效果对比图

3.4 运动目标检测算法

移动目标将会对图像中的关键帧和图像框进行比较,以确认图像是否会被更改。视频流由三个类型的编码框架、预测框架和可持续性双向框架组成,以框架间的差异为例,分析标准检测原理。框架之间的差异算法是指对两个或三个框架的连续的两个框架进行差异对比,去除有差异的像素,判断差异的绝对值是否超过了临界值,如果超过了,就可以决定移动对象达到目标探测功能。

本文采用三帧差别化方案,减少了视频捕捉的重影现象,核心是选择合适的临界值。如果选择的临界值太小,则无法抑制差异图像的噪音。如果将临界值选得过大,就能分辨出差异图片的部分信息。选择固定临界值时,框架之间不可能存在差异。取判决条件为

其中N是检测的区域中的像素总数,并且A可以被设置为整个帧图像。最后一项的数值用来表示整个帧图像中的照明变化情况,数值越大明亮变化越大。可以看出,添加项减轻了光变化造成的影响。

帧间差分可以快速检测目标,三帧比两帧效果更好,前者解决后者因缓慢移动引起的“重影”现象。

3.5 运动目标的跟踪算法

本文使用了基于活动轮廓模式的移动目标追踪算法,原理是将目标的轮廓信息连续用曲线表示,设定具有能量的函数,设定该函数的参数之一的曲线,用函数解决最小值的方法代替图像的分割过程,把函数最小化,作出相应的变化,解函数方程的数值计算。模式的进化遵循拉格朗州力学法则,当各种力量达到平衡状态时,进化就停止,函数达到最小,在这种状态下曲线进化到目标的轮廓——最佳位置。

在实平面内定义活动轮廓曲线:

活动轮廓模型能量函数表示为

其中,I表示图像,▽是梯度算子,其它各项分别表示如下:

根据上述算法,将矩形框与运动目标的轮廓优化,使得轮廓逼近,从而得到目标轮廓,检测物体检测是否结束,如果没有,就预测下一帧运动目标大概位置,重复之前的步骤继续对目标跟踪。

4 软件设计

4.1 目标识别部分设计

目标的识别主要对物体目标类型的具体识别,包括人、动物、书等各种类型的识别,并对物体置信度进行评估,将低于5.0评分的物体不进行显示,下面将具体介绍识别的具体工作过程。

图6 目标识别具体步骤图

在这个过程中,可以通过非最大抑制函数得到一系列的矩形,并对这些得到的矩形按置信度评分排序,消除低于置信度的矩形,我们还需要定义一个FLANM匹配器函数,最后通过数据的关联实现识别的功能。

4.2 目标的跟踪部分设计

目标跟踪是对视频中的移动目标进行位置的跟踪[15]。本文用到了Opencv中提供的cv2.findContours和cv2.boundinRect函数,cv2.findContours主要是计算图像中目标的轮廓,cv2.boundinRect主要计算矩形的边界框,利用YOLOv3算法预测出边界框,通过对剩余的边界框使用非最大抑制算法,去除重叠的边界框,再对图片的尺寸进行设计,通过以上操作就可以实现了对目标跟踪的功能。

通过上述程序介绍,首先需要获取输出层的名称,绘制预测的边界框,获取物体类型的标签和置信度,然后将较低的置信度的矩形框删除。最终实现运动目标的识别与跟踪。

5 系统调试

通过打开Visual Studio 2017软件,打开所属程序文件,点击运行按钮,等待程序的运行,等待大约1min,视频图像就可以通过调取本地摄像头显示出来了,可以看到视频中识别出的人、动物和物体,因为软件的问题,只能通过英文显示物体的类型。可以发现在物体名称后面有一个小数,每一个物体都有,这就是置信度,最高的置信度为1,最低的0.5,低于0.5的不予显示。调试结果如图7~8所示。

图7 图像识别调试

图8 目标跟踪

6 结语

本文的研究主要是基于Visual Studio 2017作为系统的开发环境,利用Opencv与Python对图像进行处理,主要分为对图像采集以及图像处理方面的研究,在图像采集方面,我们根据了用户所需的要求,保证实时数据的采集,在图像处理方面,首先本文对图像先进行了图像增强、图像灰度变换以及图像滤波的处理,通过特定的算法进行预处理,然后研究了图像中运动目标的跟踪,利用Opencv中的函数库进行检测图像中的目标类型,然后进行目标的跟踪,在此过程中,如果检测出异常行为,系统会立即发送信息给巡视机器人的控制端,保持异常行为或者可疑目标一直出去镜头内,如果不在镜头内,机器人自动寻找目标并继续检测。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!