孔圣文,马平帅,丁永贤
(银川能源学院,宁夏 银川 750100)
0 引 言物联网浪潮推动着互联网和人工智能行业的变革,计算机实时图像处理技术也成为研究的热点之一。图像拼接技术在实际的工作和生活场景中应用广泛,是进一步开展双目摄像系统设计的核心内容。目的是将双目摄像头所拍摄图像之间重复的部分进行特征匹配和融合处理合成,最终形成一张宽视觉的场景图像。
在机器视觉应用中,图像拼接技术经常被用来获取宽视觉图像,打破图像传感器自身视觉的限制。双目摄像系统作为多种高新技术相融合的集成系统,不仅融合了嵌入式、传感器、编程、计算机硬件、人工智能等多门学科知识,而且还积极引入前沿技术,具有较强的市场竞争力和巨大的现实意义。
1 系统设计本设计将双目摄像系统分为五个部分:系统控制部分、图像采集部分、电源部分、网络通信部分和显示部分。选择树莓派控制平台、双目摄像头、随身Wi-Fi和手机等相关模块,结合计算机视觉技术和通信技术相关知识实现双目摄像系统的图像拼接功能。以Python为开发语言,经过图像采集、图像处理、图像配准、图像融合流程输出全景拼接图,显示到手机端和电脑端,实现设计目标。设计基于树莓派4B
开发板的双目摄像系统,即实现基于计算机视觉的图像拼接。系统设计包含硬件设计和软件设计,系统软件设计可以分为静态图像拼接和实时图像拼接两大部分。树莓派4B开发板中搭载的是Raspbian系统,自带PythonIDE编译环境。双目摄像系统借助树莓派开发板实现Python编程控制图像拼接。系统设计示意图如图1所示。
图1 系统设计示意图
2 设计实现2.1 总体设计根据设计需求,系统硬件主要是树莓派控制板,系统软件分为图像采集、图像处理、图像拼接和图像显示四个模块。图像采集是指通过双目摄像头将图片转化成电子图像;图像处理是指对电子图像进行初步分析和处理,为后续的图像拼接做好准备;图像拼接是指对经过处理的图像进行算法处理,获得全景图;图像显示是指通过网络通信模块将图像拼接图传输到手机端或电脑端。系统总体设计包括静态图像拼接和实时图像拼接。总体设计流程图如图2所示。
图2 总体设计流程图
2.2 树莓派控制板设计树莓派控制板时,在追求稳定性和可靠性的同时,还要注重整个系统的性能,所以在材料和部件的选择上尤为慎重。之所以选择树莓派作为双目摄像系统的控制板是因为树莓派只有一张银行卡大小的控制板,却拥有计算机的各种组件,完全可以看作是一款微型计算机。它搭载了类似于Linux系统的Raspbian系统,该系统经历了近10年的发展,随着版本不断的更新迭代,最新版本为树莓派4B。因其具有体积小、价格低、功能强和技术开源等优点而受到无数开发人员的追捧。树莓派不仅具有Python编译开发环境,还支持Python、JAVA、C语言,这些优势使树莓派成为通信、嵌入式行业中一款广为流行的控制平台。
2.3 图像采集及处理使用双目摄像头对某景象进行拍照,生成电子图片,并将其拷贝到树莓派系统。系统采集完图像后,静态拼接图像并将图像保存到example文件夹中,动态拼接时由双目摄像头实时拍摄采集,采集帧数为15帧,树莓派对采集的每一帧图像进行实时处理,处理过程包括图像特征点提取、图像配准和图像融合,完成图像拼接,最后通过网络通信将每一帧拼接的图像显示到手机端和电脑端,形成动态拼接视频。图像处理流程如图3所示。
图3 图像处理流程图
在计算机视觉算法中,图像预处理是一个重要环节,也是图像拼接的主要步骤。图像预处理包括图像尺度构建和特征点检测,前者所采用的方法是通过式(1)高斯函数构造高斯金字塔多尺度表示的方法,它是一项应用于图像处理、计算机视觉和信号处理领域的技术;后者所采用的方法是基于缩放不变特性原理,比较两个图像中所有像素点的计算复杂又耗时,通常会选择图像中的一些特殊点进行部分分析,而选择的特征点应该是左右图像所共有的和容易区分的点。由式(2)得到像素点梯度,在式(3)梯度幅值的基础上,用式(4)在左右图像间构建对应的关系和方向,和表示像素点坐标,使选择的特征点具有对称性,在平移、翻转过程中保持尺度不变的特性。
根据以上理论知识对图像特征点进行提取后,所获取的左右两幅图像在尺度上会产生不同的空间坐标,而图像配准则是将两幅图像的不同坐标系统进行配准,最终形成一个坐标系统。该方法首先是对两幅图像及两幅图像之间的特征点进行定位,通过式(5)欧氏几何公式对其进行配准。
图像配准完成后,会将一张图像作为模板,而将另外一张图像投影到模板图像的坐标系上,最后融合两幅图像的相同匹配点和特征点。图像融合在图像拼接中具有承上启下的作用,也是最为关键的一步。通过合并重叠区域中的相同位置和像素,同时保留没有重叠区域的像素,将所有对齐的图像融合到全局平面坐标系中完成图像的融合。
融合过程中,由于光照、视角、场景和摄像角度的不同而导致两张图像出现一明一暗的效果,使得图像拼接时会出现拼接缝隙线。鉴于此,本文采用Alpha羽化融合方法,即采用式(6)加权平均值的方法(需满足任意条件下+=1),对两幅图像的像素进行平均化,使得两幅图像的像素适中,该方法适用于图像拼接时弱化拼接缝隙线。
在系统的设计与制作中融合了现有的图像拼接技术,同时对图像进行实时拼接。图像拼接是一个被广为研究的课题,本文将对双目摄像系统的图像静态拼接和实时图像拼接做进一步的探索和创新。
2.4.1 图像静态拼接
静态图像的拼接是根据需要选取图像进行拼接。首先是特征点的提取和描述,其次是特征点的匹配,在两个图像上寻找对应的点,利用对点求出变换矩阵,再将变换矩阵应用于左图,以产生右图的对应,最后,将右侧的图像与对应的图像进行拼接,完成图像的拼接。拼接的成功与否取决于特征点的选取,如果选取了匹配错误的特征点,拼接将会失败,所以选择相似重叠部分图像中的最强匹配点作为拼接点。
静态图像拼接采用SIFT特征不变换算法实现,重要的一步是找到图4和图5中最强匹配点所在的位置,通过映射矩阵变换,得到右图像的最强匹配点经过映射后投影到新图像上的位置坐标,在新图像最强匹配点的映射坐标处拼接两幅图像,如图6所示。
图4 双目左图像
图5 双目右图像
图6 静态图像拼接图
2.4.2 图像实时拼接
结合使用Python和OpenCV进行图像拼接。左右双目镜头拍摄两张共享某些公共区域的图像,目的是实现图像拼接,“缝合”它们并创建一个全景图像。通过Wi-Fi模块提供网络并与流媒体相结合,在系统中搭建轻量级的Web框架,并将拼接图像显示到手机端和电脑端。
图像拼接是计算机机器视觉中最成功的应用之一。为了便于图像拼接,将左右图片变换到统一的平面上,使目标图像在坐标系中记录下来,根据匹配关系将投影变换后的图片再次变换,再次采样图像并融合。图像融合的目的是消除因几何校正、动态场景或光照变化而引起的相邻图像间强度或颜色不连续问题,以获得具有广角场景和高分辨率信息的新图像,如图7所示。
图7 图像实时拼接图
该设计所用的图像拼接算法为尺度不变特征变换算法(Scale-invariant feature transform, SIFT),是图像处理领域的一种描述方式,具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述的图像拼接算法。
2.5 图像显示采用 flask框架将拼接图像传送到电脑端和手机端。Flask是用Python语言编写的Web微框架,也是树莓派所集成的功能之一,使用便捷并且能够快速实现一个微型网站或Web服务。
在文件框架中引入 flask类,并给它创建一个实例,name代表模块的名称,route定义一个路由,告诉 flask如何访问该函数,最后运用run函数使这个Web应用在服务器上运行起来。完成上述工作后使手机端、树莓派和电脑三者处于同一Wi-Fi网络下,在手机端输入树莓派IP地址可以显示图像实时拼接窗口。
2.6 网络通信树莓派和双目摄像系统的网络通信模块选用的是随身Wi-Fi。Wi-Fi是基于IEEE 802.11标准的无线局域网技术,通过无线路由器把有线网转化为一定覆盖能力的无线网络;通常情况下工作的频段是2.4 GHz或者5.0 GHz,传输距离一般为0~100米,Wi-Fi覆盖的终端设备可以组成一个无线局域网实现多设备的互联。本设计中Wi-Fi为系统提供网络。
2.7 动力电源本设计的控制模块需要供电。系统供电所采用的是基于Raspberry PiGPIO的接口,适用于树莓派系列主板的不间断电源(UPS)模块。采用弹簧顶针式设计,可通过I2C接口通信,测量电池电压、电流、功率和剩余电量等参数,实时检测模块的工作状态,可避免因控制板突然断电而导致数据丢失。
UPS板可保护电路、防过充、防过放、防过流、防短路和防反接,均衡充电,工作稳定安全;板载5 V稳压芯片,提供稳定的5 V电压输出、2.5 A电流输出;板载USB接口便于为其他模块供电。
3 结 论本文设计的双目摄像系统包含硬件设计和软件设计。主要目标是实现图像拼接,通过模拟人眼实现机器视觉扩大可见视野的目的,其中硬件部分采用树莓派开发板、双目摄像头、电源驱动模块、移动网络模块和手机终端,软件部分运用Python语言开发设计,系统的主要功能是实现了双目图像的静态拼接和实时拼接。系统的设计可以作为一系列硬件的载体,应用于虚拟现实、医学图像、机器视觉、空中遥感、监控安防、地面远程协助等领域,扩大可见视野。