基于LGMD网络的低成本视觉系统设计与实现*

2022-10-11 12:33郭小沛
传感器与微系统 2022年10期
关键词:灰度神经元内存

郭小沛, 雷 斌, 樊 力, 韩 晓

(武汉科技大学 机械自动化学院,湖北 武汉 430081)

0 引 言

目前的智能机器获取外界信息的主要方式是红外线[1~3]、雷达[4]、超声波[5]等,这些方式在动态环境下的处理能力有限,复杂的背景、移动的物体、快速变化的环境光为机器人的自主运行带来困难,产生的大量噪声使其丧失实时处理和快速反应的能力。在不需要对场景进行详细的内部表征的情况下,视觉可以在与系统相关的视觉行为的背景下得到最好的理解[6]。然而,将视觉系统廉价高效地应用于智能机器上,尤其是微型机器,依然是一件不容易的事。

生物视觉神经网络在自然界中已经进化了数百万年,并且在现实世界中运行完美,它可能是设计人工视觉系统的理想模型。视觉能为自然界中的动物提供大量环境信息,同样也为移动机器人在非结构化环境下的避碰带来灵感[7]。自然界中的昆虫视觉系统相对于人类而言结构简单,却依然可以为其避开天敌以及同类提供有效线索。例如,蝗虫视觉系统中的小叶巨型运动探测器(lobula giant movement detector,LGMD)[8]能对接近的物体产生快速的反应,经过数百万年的进化,对动态环境的应对是可靠而有效的。近几十年,随着对LGMD网络电生理学的研究[9]以及传入通路的揭示,使得模型的建立成为可能。1996年,Rind F C和Bramwell D I首次开发了基于LGMD输入通路的功能神经网络[8],其具有与蝗虫视觉系统相似的特性,并于2000年在仿真软件IQR421上进行了离线测试[10]。2006年,Yue S G和Rind F C[11]在LGMD网络的基础上进行改进,引入特征增强的GD层,通过分组激励来增>强检测目标的扩展边缘,提升了LGMD膜电位的区分度。2009年,Yue S G等人[12]将LGMD应用于双目视觉系统,每一个摄像头对宽视场中的一部分进行处理,最后比较左右LGMD网络的输出,并将其转换为可执行的电机命令,然而,该网络是采用MathWorks编写,利用PC计算的。2014年,Hu C等人[13]将基于分组激励的LGMD网络应用于嵌入式微系统STM32F4上,进行了离线和实物测试,并于2016年扩展了实验,提升了系统的鲁棒性[14],然而,其成本和耗费资源依然较高。

本文设计了一种低成本视觉系统,通过简化LGMD模型,降低输入图像的灰度等级,并采用更加紧凑的存储方式,使其占用的空间和资源更小,并成功应用于STM32F1嵌入式系统上,进一步降低了微机器人应用视觉网络的成本。通过离线测试,检测了LGMD网络的关键膜电位,分析了相互关系,验证了该系统的鲁棒性、实时性和有效性。为视觉系统的低功耗、低成本应用奠定了基础,有利于微机器人动态环境下的自主运行,同时可用于群机器人实验平台研究。

1 简化的LGMD算法

图1为本文所采用的LGMD网络架构,该神经网络模型由5层神经元细胞(P层,E层,I层,S层,G层),LGMD神经元,前馈抑制(feedforward inhibitory,FFI)神经元构成,在物体靠近时,其扩张边缘不断增加,LGMD神经元能够灵敏捕捉这一变化,产生碰撞检测的信号。为了降低算法运算耗费的资源,在P层去掉了需要大量指数运算的部分[15]。

图1 LGMD网络架构

1)P层

P层是LGMD网络的输入层,即光感受器细胞层,代表着输入图像相邻帧的亮度变化。P层每一个像素点模拟自然界中蝗虫的一个视觉元细胞。定义如式(1)

Pf(x,y)=Lf(x,y)-Lf-1(x,y)

(1)

式中f为视频帧数,L为灰度图像的灰度值,(x,y)为像素点的位置坐标。

2)E层,I层

P层细胞的输出作为下一层细胞的输入,它们分别是E层(兴奋细胞层)和I层(抑制细胞层)。当前帧P层的输出,直接传递给E层,如式(2),上一帧P层输出进行卷积运算后得到 I层,计算方式如式(3)

Ef(x,y)=Pf(x,y)

(2)

[I]f=[P]f⊗[w]I

(3)

(4)

式中Ef(x,y)为E层膜电位,[I]f为I层膜电位,[w]I为局部抑制权重。

3)S层

S层是合并细胞层,将I层抑制效果作用于E层上,削减E层膜电位如式(5),其中,Sf(x,y)为S层抑制系数,WI为抑制权重系数

Sf(x,y)=Ef(x,y)-If(x,y)×WI

(5)

4)G层

G层是分组细胞层,通过组效应强化扩展边缘,使孤立的像素点退化,提升LGMD膜电位判别准确度与分辨率。G层膜电位计算方式如(6)

Gf(x,y)=Sf(x,y)Cef(x,y)ω-1

(6)

式中Gf(x,y)为G层膜电位,Sf(x,y)为S层膜电位,Cef(x,y)为单位细胞传递系数,ω为一个标量,传递系数Cef(x,y)为S层膜电位和[w]e卷积核共同作用的结果,传递系数,卷积核和标量的定义如式(7)~式(9)

[Ce]f=[S]f⊗[w]e

(7)

(8)

(9)

(10)

5)LGMD

LGMD的膜电位是G层细胞膜电位的总和,Kf的计算如式(11),其刺激值采用Sigmoid激活函数,映射范围在[0.5,1],如式(12)所示

(11)

(12)

若Kf大于设定阈值Ts,则视为接收到一个刺激值Sf,如式(13),若连续nts帧检测到刺激值,则视为即将发生碰撞,判别方式如式(14)

(13)

(14)

6)FFI神经元

FFI神经元起到对G层膜电位的抑制作用,当机器人的瞬间转动和电机噪声导致成像画面发生剧烈抖动,也会使G层达到触发阈值,为了提升系统鲁棒性,引入FFI神经元对于误检测的碰撞进行判断并取消刺激,计算细胞的整体阈值变化Ff,如式(15),若超过设定值TFFI,则视为发生一次碰撞误检测,如式(16)

(15)

(16)

2 低成本视觉系统硬件设计

2.1 总体设计

LGMD系统硬件主要包含移动机器人底盘和视觉模块两个部分。Hu C等人[13]采用ATMEL AVR控制微型移动机器人的底盘,采用STM32F4控制器控制视觉模块。本文采用单个微处理器STM32F103对两个模块进行控制,提高了系统的集成度,进一步降低功耗与成本。图2(a)为微机器人整体。

图2 LGMD视觉系统硬件设计

2.2 底盘部分

底盘部分为微机器人提供了基本的运动功能,主要包含N 20减速电机和驱动模块。减速电机尺寸12 mm×10 mm×25 mm,对称分布于直径为50 mm的印刷电路板(printed circuit board,PCB)上,适合于紧凑的结构设计,工作电压为3 V。驱动模块采用TB6612FNG芯片,高性能,体积小,可以达到20 cm/s的运行速度。电机的控制方式采用脉冲宽度调制(PWM)技术,采用差速原理来控制微机器人的转向。

2.3 视觉部分

为了适配小型移动机器人的体积,采用了紧凑的相机模块OV7725。OV7725是一种低电压CMOS设备,在一个小内存包中提供了单片机VGA摄像头和图像处理器的全部功能[15]。相机尺寸26 mm×27 mm,相机采用SCCB接口协议,工作电压2.45~3.0 V,功耗120 mW,可输出RGB565和YUV等多种图像格式,相机的水平视角为70°。综合考虑图像的质量和内存空间,采用了80×80分辨率30帧/s的视频流,以及8位的灰度图像。

主要的微处理器以ARM-CortexM3作为处理器架构,选择了STM32F103进行微机器人的控制。STM32F103的工作频率为72 MHz,可以满足实时图像处理的需求和N 20电机的控制,内存SRAM为64 kB,最大耗散功率434 mW。OV7725摄像头通过嵌入式I/O口将将采集到的视频流数据返回单片机,通过调节I/O口的状态可以复用输入与输出。基于STM32F103的LGMD硬件架构如图2(b)所示。

2.4 功耗特性

微机器人采用DC5V供电,功耗特性分析如表1所示,在原有功耗上得到了大幅降低,处理器频率以及微型电机的型号是主要影响因素。

表1 功耗特性 mW

3 低成本视觉系统内存分配

如前所述,LGMD视觉网络适合微型机器人的视觉避碰,然而,在SRAM为64 kB的STM32f103芯片上实现图像的存储依然不是一件容易的事,采用压缩算法也耗费了芯片大量的计算资源。故本文提出灰度等级降低,采用4位来表示一帧图片,使得SRAM总耗费34 kB,满足微型机器人图像处理的需求。本文中LGMD网络的内存分配如图3,L1,L2,L3表示3帧连续的视频流,OV7725传输图像格式为16位的RGB图像,通过灰度转换公式定义如式(17)

gray=0.299R+0.587G+0.114B

(17)

为了降低双精度浮点数对于低功耗芯片计算资源的耗费,采用移位运算,故公式转换如式(18)

gray=(38R+75G+15B)≫7

(18)

为进一步降低内存消耗,转换公式如式(19),读取对灰度值影响较大的高4位,按小端顺序存储在Lf数组中,每一个字节存储2个像素值,根据帧数标志位Frame_flag判断存储区域,将OV7725返回的视频数据流发送到不同的数组进行存储,如式(20)

gray=(38R+75G+15B)≫11≪4

(19)

(20)

整个图像存储流程如图3(a),这种方式可以将8位灰度值转换为4位进行存储。

总体的内存分配如图3(b),图中灰色箭头代表图3(a)的存储流程,总耗费34 kB,仅占用整体SRAM的50 %,无需外加可变静态存储器FSMC,节省了整体硬件资源所占用的结构空间,满足了在微机器人平台上实现视觉算法的需要。

图3 低成本视觉系统内存分配

4 结果与分析

4.1 图像处理流程

整个基于LGMD网络的图像处理流程如图4,系统上电复位后,初始化设备,包括USART串口,时钟,定时器,外部中断和OV7725摄像头等。当检测到摄像头开始传输数据,系统进入100 ms的反复循环来不断更新视频流数据,使其存放于内存数组Lf和Lf—1中,同时进行当前帧LGMD膜电位计算与判断,若连续多帧检测到刺激值,则视为检测到前方碰撞物,单片机给N 20电机发出避碰指令,差速电机差速旋转改变行进方向,微机器人产生避碰动作。

图4 微机器人平台软件架构

4.2 图像分析

基于MATLAB对采集到的图片进行处理,设置LGMD网络算法的相关参数如表2。

表2 GMD网络参数

为了分析不同层之间的算法特性,在室内通过布置如图5场景对微机器人接近字母P图标的过程进行离线测试,得到各层的图像如下,第一行(a),(b),(c)代表连续视频流中的三帧;第二行中,(d)代表P1层,(e)代表P2层,(f)代表I层;第三行中,(g)代表S层,(h)代表Ce层,(i)代表G层。实验结果表明, I层和P1,Ce层和S层相比均产生了模糊效果,符合卷积滤波过程。G层相对于S层颜色变浅,噪声减弱,符合组效应保留边缘,降低刺激值的特性。综上可得,基于STM32f103设计的微机器人LGMD系统对图像的处理正常。

图5 LGMD不同层图像显示

4.3 膜电位分析

为了量化LGMD网络的避碰性能,同时布置如图6(a)场景进行避碰测试,在照度约为100 lx的室内环境布置微机器人和水杯,使微机器人以10 cm/s的速度接近蓝色水杯,检测其LGMD网络Kf刺激值,LGMD膜电位和FFI膜电位。

图6 膜电位分析

整个实验过程持续90帧,通过串口RS—232实时返回帧间图像处理值,其中,图6(b)为LGMD Kf值随时间的变化;图6(c)为LGMD细胞膜电位随时间的变化,阈值0.85;图6(d)为LGMD FFI值随时间的变化,阈值40。

微型机器人在40~45帧持续4帧检测到LGMD刺激值,并产生了避碰动作。由于电机震荡以及机器人回转导致图像画面整体亮度剧烈变化,FFI神经元在机器人起步(第9帧)以及避碰响应之后(第47帧)发挥了抑制作用,防止误判以及持续响应。实验测试与算法的预期一致,验证了基于STM32f103搭建的 LGMD网络的稳定性,鲁棒性和可靠性。

4.4 避碰轨迹分析

为了分析速度对于微机器人避碰的影响,设置场景如图7(a)所示,采用光流法,通过串口摄像头捕捉微机器人的运行轨迹如图7(b)~(d),微机器人的速度分别为10,15,20 cm/s。随着速度的增加,微机器人的避碰响应距离也在增加,图7(d)中,机器人在较远的距离已经产生了避碰响应,并且轨迹平滑,回转角度变小。综上所述,微机器人能对不同接近速度作出及时响应,验证了实际动态场景下避碰的准确性。

图7 微机器人避碰轨迹分析

5 结 论

本文设计了一种基于LGMD网络的低成本视觉系统,利用仿生技术和成像传感器实现了微机器人的自主避碰,在硬件上减少了模块层级,通过降低灰度等级的方式减小了网络所需的内存空间,并且在不同的环境场景下作了测试,对于LGMD膜电位进行了详细的记录。实验表明:系统具有良好的可靠性和鲁棒性,进一步降低了视觉应用于微机器人的成本与功耗,有利于非结构化环境下的自主运行,为视觉算法在群体机器人中的应用奠定了基础。

猜你喜欢
灰度神经元内存
基于二值化灰度图像的大豆蛋白液喷雾相对雾化程度的研究
天津港智慧工作平台灰度发布系统和流程设计
AI讲座:神经网络的空间对应
Arduino小车巡线程序的灰度阈值优化方案
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
仿生芯片可再现生物神经元行为
这个神经元负责改变我们的习惯
研究人员精确定位控制饮酒的神经元
内存搭配DDR4、DDR3L还是DDR3?