颜永彪, 张璇璇, 程雯婷, 李晓辉
(安徽大学 电子信息工程学院,安徽 合肥 230000)
随着粮食产量的提高,储粮过程中粮虫造成的粮食损失也与日俱增,粮虫的高效、快速检测刻不容缓。当前国内外检测储粮害虫的方法有声测法、事物引诱、近红外法和图像识别法等[1],其中图像识别法因具有高辨识率、操作简易、成本低廉等优点,是近年来粮虫防治领域的研究热点和主要技术手段[2~4]。
文献[5,6]中设计了一种储粮害虫检测装置,实现了储粮害虫诱捕,采集粮虫图像,并远程传输功能。这些设计虽然减轻了大量人工,但由于其电容检测电路需要一直扫描,另外采集到的图像数据都是直接上传到终端,未经任何处理,包含了大量冗余信息,通过无线模块上传时会带来巨大的能量消耗,甚至造成网络拥堵。因此,本文设计了一种高效率、低功耗的储粮害虫图像采集装置,通过无线模块将采集到的图像数据上传到终端供分析、识别处理。
粮虫图像采集装置设计如图1所示。该装置主要是通过放置在集虫漏斗中的诱虫剂,引诱粮食中的粮虫从虫洞入口进入该装置,通过光滑斜口式漏口掉落到光滑落板上,其中,光电传感器会检测到粮虫落入信号,并通知单片机(microcontroller unit,MCU)从睡眠状态切换为正常工作模式,驱动摄像头模块采集图像。对采集后的图像进行背景减法,将提取出来的数据通过无线模块发送到终端后,控制步进电机旋转180°,并采集1次光滑落虫板背景色,存入到存储器中,供下次背景减法时使用,至此1次采集过程结束,MCU重新回到睡眠模式,除光电传感器外,其他模块全部掉电。
图1 装置内部
文献[7]验证了STM32系列芯片在图像采集中的优越性能,因此,本设计的MCU控制单元选用STM32F407ZG芯片,其自带了一个数字摄像头(DCMI)接口,该接口是一个同步并行接口,可以接收外部 8,10,12,14位CMOS摄像头模块输出的高速数据流。
本文设计通过反射式光电传感器来检测粮虫落入信号,光电传感器输出引脚接至MCU的外部中断1处,正常情况下,接收端可以接收到反射红外光,接收三极管导通,输出高电平;当有粮虫从漏口落下时,接收端接收不到反射光,此时输出低电平,并将该信号提供给MCU的I/O口,MCU被唤醒,并执行后续的操作。电路如图2(a)所示。
使用的ATK-OV5640摄像头是由ALIEBTEK公司推出的高性能500万像素高清摄像头。该模块集成有源晶振,且集成了自动对焦(auto-focusing,AF)功能,自带2个1W的可程序控制高亮发光二极管(light-emitting diode,LED)闪光灯。通过摄像头时序的分析[8],在设计中控制该模块帧内图像扫描方式为从左至右、从上到下,输出分辨率为640×480的RGB565格式数据。其与MCU的硬件连接电路如图2(b)所示。
图2 光电传感器检测电路与图像采集模块硬件连接
步进电机受MCU控制,其旋转轴和光滑落虫板的中间轴相连,当每采集完1次粮虫图像后,控制步进电机旋转180°进而将光滑落虫板翻转180°,此时粮虫落入到集虫漏斗中,防止对下次采集产生干扰。
由图3(为了便于观察图像缩小显示)可以看到该图像数据包含了粮虫和落虫板背景色,如果不进行任何处理,通过无线模块传送的字节数为共600 kB(640×480×2),即使使用JPEG压缩编码仍然有70 kB大小,显然不适合运用于低功耗应用中的低速网络传输。
对采集到的RGB565数据进行背景减法。每次MCU控制步进电机旋转180°后,会驱动图像采集模块采集背景色,也将其存储到存储器中,其中第1次背景色的采集是在模块上电初始化完成后,如图4所示。
图3 粮虫图片 图4 光滑落虫板背景色
在该装置中,每次拍照都在同样的光照下,基本处于一个稳定的监控场景,因此使用背景减法,将采集到的粮虫图像数据和背景色图像数据对应的像素相减,之后将差值图像进行阈值化处理,通过连通性分析后提取出图像中前景像素点即粮虫像素点。背景减法算法简单描述如下:
假设f(i,j),g(i,j)分别为从存储器中提取出来的粮虫落入后采集到的图片序列和光滑落虫板背景色图像序列,则差分序列为
D(i,j)=|f(i,j)-g(i,j)|
(1)
式中 (i,j)为离散图像坐标,对差分后的序列利用选取的阈值T来进行二值化处理,当差分后的序列中某一像素值大于给定的阈值T时,此时认为该像素为前景像素,即有用的粮虫像素点,反之则认为是背景像素,即背景色像素点
(2)
对采集的600 kB RGB565数据流,按行读取再差分,便于单片机直接处理。对差分后的序列每2个1组(RGB565数据一个像素点由2个字节表示)求2个数的均值,此时组成序列长度缩短为原来的1/2,同样按照式(2)找出前景像素和背景像素。循环至最后1行,依次找到可能的前景像素从而提取完整的粮虫所在区域。
由于可能会存在噪声干扰,最后对提取的区域进行连通性分析,当某一连通的区域面积大于给定的阈值时,认为采集到有效粮虫数据并提取出各个区域所在的最小行、最大行、最小列、最大列。当区域面积小于阈值时,认为是噪声干扰。通过对上述两幅图进行背景减法得到粮虫所在区域的最小行为第185行,最大行为第212行,最小列为第412列,最大列为第433列,然后将该信息代入到粮虫落入后采集到数据中进而提取出粮虫所在区域的数据。此时无线模块传输的数据量仅为(212-185)×(433-412)×2仅1 134 B,大大减少了无线模块需要传输的数据量,节省传输耗时。通过背景减法后得到有效粮虫图像如图5所示。
图5 有效图像
通过查阅STM32F407数据手册,可知在3.3 V供电条件下,使用72 MHz时钟时,芯片正常工作电流为69 mA,而停机模式下,所有时钟停止,电流仅为0.38 mA。使用电容检测电路检测粮虫落入信号时,仅MCU一天的耗电量为69 mA×24 h=1 656 mA·h,另外电容电路也持续耗电,且即使将图像采集模块设置为JPEG输出格式,在640×480的分辨率下,通过无线模块需要传输的字节数为70 kB。当使用光电传感器作为检测电路时,光电传感器的工作电流为50 mA,光电传感器和MCU一天的耗电量为50.38 mA×24 h=1 209 mA·h,另外本装置虽然需要通过背景减法对图像数据进行处理,但是通过无线模块传输的字节数仅为1 134 B,大大降低了系统的功耗。
粮虫图像采集装置能够保证系统在低功耗下实时地监测是否有粮虫落入,背景减法通过对粮虫落入后采集到的图片和背景色做差不需要其他复杂的计算即可快速提取出粮虫所在区域,并通过无线模块将数据发送出去,减轻了网络传输负担,同时更便于终端进行相关的识别、分类操作。