基于STM32单片机的自适应视频识别
2017-03-02兰振平孙岩国王智森蒙会民
兰振平, 孙岩国, 王智森, 蒙会民
(1.大连工业大学信息科学与工程学院,辽宁大连 116034; 2.大连医科大学附属第二医院信息中心,辽宁大连 116023)
基于STM32单片机的自适应视频识别
兰振平1, 孙岩国2, 王智森1, 蒙会民1
(1.大连工业大学信息科学与工程学院,辽宁大连 116034; 2.大连医科大学附属第二医院信息中心,辽宁大连 116023)
通过对通用的位移传感器的特点以及问题进行分析与研究,提出并设计了一种利用模拟摄像头采集视频图像信息,进行实时处理的自适应视频识别。系统采用STM32系列ARM微控制器作为主控制器,包括模拟摄像头、视频图像分离、高速AD转换、光线检测及433 MHz无线通信等模块,通过C语言编程实现。在检测物体位移的同时,可以判别物体的移动方向,弥补了现存位移传感器无法检测物体移动方向的空缺,在确保基本检测功能的同时又增加了对环境的自适应,最后通过试验证明了设计的可行性。
位移传感器;视频处理;移动方向;自适应
0 引 言
在物联网技术飞速发展的今天,作为信息感知层的传感器显得尤为重要。目前比较成熟的位移传感器有红外热释电传感器、超声波传感器以及微波传感器等。每种位移传感器都有各自的优缺点及适用环境。例如红外热释电传感器,在用于检测位移时如果被检测物体不是人体,无法判断与识别,且该传感器受温度影响较大,在低温环境下精确度将大幅度下降。另外几种位移传感器同样也是优缺点并存。而在视频处理领域,目前多采用ARM9、ARM11、DSP和FPGA,不可否认它们的处理效果与准确度,但如果把摄像头作为普通传感器用于检测物体位移,再用上述的处理器来实时处理就显得大材小用,而且从成本以及操作等方面来考虑也是不可行的。为了解决上述问题,本文提出了一种基于价格低廉的STM32单片机的视频图像实时处理方法,用于某些对图像分辨率要求不高的场合,例如传感器领域。具体解决方法如下:
系统采用分辨率较低的摄像头作为采集模块。首先摄像头将采集到的模拟信号的图像信息进行模/数转换,采用高速8位AD转换芯片,同时利用视频分离芯片将PAL制式的图像信息进行行、场分离。再将AD转换后的数字信号与视频分离的行、场中断信号存入单片机,最后单片机将采回来的图像信息进行二值化处理。与以往直接设定阈值直接比较式二值化不同的是,该系统采用自适应二值化方法,是单片机通过光线传感器采集光线信息,同时根据光线的强弱来标定二值化的阈值。
系统中无线传输模块采用TI(德州仪器)公司生产的CC1101,将传感器的处理结果无线传输给用户,方便实用,不需要有线连接。
1 系统的硬件设计
1.1 最小系统电路设计
STM32F系列属于中低端的32位ARM微控制器,该系列芯片是意法半导体(ST)公司出品,其内核是ARM Cortex-M3。该系列芯片按片内Flash的大小可分为三大类:小容量(16和32 k B)、中容量(64和128 k B)、大容量(256、384和512 kB)。该系统使用的VET6便是512 kB的大容量芯片[1]。该芯片集成有USB、CAN,3个串口通信模块,2个ADC、SPI、I2C等多种功能。采用2.0~3.6 V供电,具有超低功耗的睡眠、停机和待机模式,还备有纽扣电池接口,具有停机数据不丢失功能[2]。
该单片机的最小系统电路,需要将外围的时钟电路、复位电路、备用电池电路以及程序下载电路搭建完成即可。具体电路如图1所示。
1.2 视频采集模块的硬件设计
1.2.1 AD转换部分
选用美国TI(德州仪器)公司生产的高速8位半闪速结构AD转换器TLC5510来完成模拟-数字信号转换。TLC5510采用CMOS工艺制造,可提供最小20 Mbps的采样率[3]。该AD芯片工作时需要单片机提供一个20 MHz的时钟信号,而STM32单片机有8个定时器,其中有两个高级定时器,任意一个都可以提供20 MHz的方波。如图2所示,视频信号直接连接到VIO,在满足硬件连接与时钟后,8位数字信号直接由DB0~DB7输出,由单片机的PA口直接采集,并存入数组[4]。
图2 AD转换电路Fig.2 AD conversion circuit
1.2.2 图像信号同步分离电路
视频分离电路采用视频同步分离芯片LM1881(TI),该芯片能够从复合视频信号(经电容接2脚)中分离出行同步信号(1脚)、场同步信号(4脚)和奇偶场信号(7脚,未用)[5]。各同步信号由单片机的比较捕捉模块采集。
1.3 无线数传模块组成及与MCU的通信连接
433 MHz无线数传模块选用德州仪器(TI)公司生产的CC1101无线收发器芯片与VET6微控制器搭配构成。CC1101是低成本的1 GHz以下的无线收发器,为极低功耗的无线应用而设计。符合本设计选型规则,可以延长系统的使用寿命。CC1101的工作频段在315、433、868和915 MHz,本设计综合考虑工作功耗以及通讯距离,最终将工作频段选在了433 MHz频段内[5]。
CC1101通过四线SPI兼容接口(SI、SO、SCLK和CSn)进行配置,由于V8T6具有硬件SPI,不需要通过程序来模拟,直接接入MCU的硬件SPI接口即可[6]。传输的数据包模式如图4所示。
数据包由前导码、同步字节、可选的数据包长度、可选的目标地址、真正数据区和2 B的CRC校验码构成。只需要将要发送的图像处理结果信息加载到数据区即可完成数据的发送。
CC1101具体的工作流程[5]:
(1)初始化SPI、MCU各引脚。当有数据接收或发送状态声明时,有中断和查询两种方式。GDO0与GDO2引脚输出至MCU引脚,若要用中断则要接至V8T6外部中断引脚,查询时则可用V8T6的GPIO。
(2)复位CC1101。
图3 视频同步分离电路Fig.3 Image signal synchronous separation circuit
图4 数据包模式Fig.4 Packet mode
(3)初始化CC1101。(写操作时可从SO中读出CC1101状态)。初始化后CC1100为IDLE状态。
(4)状态机转换,写/读FIFO数据。每次写操作时SO返回的值为写操作前的CC1100状态值,读状态命令为当前CC1100状态值,两者具有一定的区别。
对于无线模块的天线,选取较小型的弹簧式天线,虽然通信效果与通用型大功率天线有差距,但是考虑系统的应用范围,这里排除了后者。这样视频的处理结果既可以通过有线介质传输给监控主机,也可以通过无线链路传输来,为一些特殊应用环境提供了便捷。
1.4 照度传感器电路
采用照度传感器的主要目的是可以实时采集设备工作环境的光照强度,据此设定图像二值化的阈值。通常视频处理中对于图像二值化的阈值是由人工直接设定的,无法实现对环境的适应能力,大大降低了系统普适性。本设计通过对环境的光线进行采集分析,自适应的改变阈值,以解决上述问题。
对于光照度的采集采用日本罗姆(ROHM)公司生产的BH1750照度传感器,照度信号通过I2C协议输出,STM32具有2个硬件I2C模块,可以直接读取BH1750输出的光照度信息,不需要格外的软件模拟。具体硬件连接如图5所示。
图5 照度传感器电路Fig.5 Sensor circuit of illumination
2 系统的软件设计
2.1 调试软件KEIL-MDK-ARM
采用C语言编程,在KEIL编译器下进行编译、仿真和调试。KEIL公司于2005年被ARM公司收购,开始推出基于u Vision界面,用于调试ARM7、ARM9、Cortex-M内核的MDK-ARM开发工具,用于控制领域的开发[7-8]。本设计采用的微控制器VET6正是Cortex-M3内核,MDKARM编译器完全支持STM32系列处理器[9]。
2.2 系统程序框图
2.2.1 主程序
主程序主要由模块的初始化以及while循环组成,为了防止系统程序执行时出现故障,将数据采集以及控制部分放在了定时器中断中进行[10]。系统正式运行后while循环中只有OLED液晶屏的显示函数[11-12]。主程序如图6所示。
图6 主程序流程图Fig.6 Flow chart of main program
2.2.2 外部中断
外部中断主要用于行、场信号的触发,并进行AD转换后的数字信号采集。当行中断触发时,进行行数据的采集;当场中断触发时,进行场数据的采集[13]。程序流程图如图7所示。
图7 外部中断程序流程图Fig.7 Flow chart of external interrupt program
2.2.3 定时中断
定时器中断一共分为3部分,分别为数据采集部分(IO口读取数据、串口数据发送)、控制函数部分以及视频数据处理部分[14-15]。定时器的定时时间为1 ms,也就是经过1 ms CPU便进入一次中断[16]。这样做的优点是如果由于故障而导致系统进入死循环,程序不会跑飞各个功能依旧进行[17-18]。设计没有将上述3部分同时放入定时器中断服务中,而是通过循环的方式,依次来执行各个部分,程序框图如图8所示。
2.3 视频数据处理
图8 定时中断程序流程图Fig.8 Flow chart of timer interrupt program
图9 视频数据处理Fig.9 Video data processing
视频数据处理结果如图9所示。系统采集到的视频数据是一个128×240的二维数组,需要对该数据数组进行软件二值化,即对数组中的每一个数据进行0/1判断。具体的判断方法是将该数据与BH1750照度传感器数据算出的阈值进行比较,大于阈值的就是1,而小于阈值的就为0[19-20]。这样将数据变成了由0和1组成的二值信息,单片机的处理负荷大大降低。然后,对图像进行分割,将128×240的图像分割成了16×30,即把一副图像分成了64份,相当于有64个传感器在同时进行监测。在系统工作伊始,单片机选取一副图像作为标准图像,以后单片机每采集一副图像,就与该图像进行比较,64份中的每一份都在进行着比较,结果如果大于所设定的范围就设为1,反之就设定为0,最后单片机将这64份“传感器”的状态0/1,以字符串的形式传输出来,完成信号处理。
3 结 论
本研究提出了一种基于STM32F103VET6 (ARM7)微控制器的视频识别及处理系统方案,并对系统硬件以及软件程序进行了分析与设计,实现对环境的实时监控,相当于在一处监控环境内安放了64个位移监控传感器。该系统传感器与红外热释电传感器相比,在监控的准确度上并无太大差异,但在对环境的适应能力上前者超越后者,而且前者在被监控物体非动物体时仍然可以做出准确的判断。在某些特殊应用环境中体现不可估量的价值。
[1]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:清华大学出版社,2004.
[2]喻斌.STM32F系列ARM内核微控制器开发与应用[M].北京:清华大学出版社,2011.
[3]GONZALEZ C R,WOODS E R.数字图像处理[M].阮秋琦,阮宇智,译.北京:电子工业出版社,2003.
[4]布鲁克斯.信号完整性与PCB设计[M].刘雷波,赵岩,译.北京:电子工业出版社,2012.
[5]Chipcon Products from Texas Instruments.CC1101 Low-Cost Low-Power Sub-1GHz RF Transceiver[S]. Dallas:Texas Instruments,2010.
[6]陈黎敏,朱越奇.基于嵌入式视频服务器的综合监控系统[J].电子工程师,2008,34(9):72-74.
[7]吕丽刚,谢晓竹.远程视频监控中的目标检测和多播传输[J].微计算机信息,2007,24(5-3):306-307.
[8]李冰,孙建平.嵌入式视频服务器在电厂远程监控中的应用[J].自动化仪表,2007,28(S1):207-208.
[9]殷剑宏,吴开亚.图论及其算法[M].合肥:中国科学技术大学出版社,2003.
[10]彭刚,袁兵.基于双ARM Cortex架构的移动机器人控制器设计[J].华中科技大学学报(自然科学版), 2013,41(S1):284-287.
[11]吴健.基于ARM的嵌入式USB图像采集与显示[J].现代显示,2011(8):39-42.
[12]李超,李运华,王国栋,等.一种基于嵌入式图像处理的工程车辆导向装置[J].北京航空航天大学学报, 2007,33(10):1213-1215.
[13]宋凯,严丽平,甘岚.嵌入式图像处理系统的设计与实现[J].计算机工程与设计,2009,30(19):4368-4370.
[14]林立忠,张惠涛,段丽英.新型嵌入式网络视频监控系统的设计[J].制造业自动化,2010,32(10):151-153.
[15]何腆举,陈明,段磊强,等.基于嵌入式Web服务器的远程视频监控系统[J].测控技术,2004,23(6): 62-64.
[16]LAN Z P.Research and design of the unified communications in the campus network[J].ICIC Express Letters,2012,6(9):2351-2352.
[17]LAN Z P.Design of an intelligent help system[J]. Applied Mechanics and Materials,2014,538:285-286.
[18]赵方鹏,杨建华,赵忠,等.基于嵌入式Linux的网络视频监控系统[J].测控技术,2007,26(5):55-57.
[19]卢海彦,程义民,何兵兵,等.基于自适应阈值的视频文本检测方法[J].计算机仿真,2008,25(9):204-205.
[20]刘少华,张茂军,熊志辉,等.一种鲁棒高效的视频运动目标检测与跟踪算法[J].自动化学报,2009,35 (8):1056-1057.
An adaptive video recognition and processing scheme based on STM32 single chip microcomputer
LAN Zhenping1, SUN Yanguo2, WANG Zhisen1, MENG Huimin1
(1.School of Information Science and Engineering,Dalian Polytechnic University,Dalian 116034,China; 2.The Second Hospital of Dalian Medical University,Information Center,Dalian 116023,China)
A kind of adaptive video recognition was designed using analog camera to capture video images by analyzing the characteristics and problems of the general displacement sensor.The system used STM32 series ARM microcontroller as the main controller,including analog camera,video image separation,high-speed AD conversion,light detection and 433 MHz communication module by C language programming.The moving direction of the object also could be detected to overcome the shortcomings that the existing displacement sensor could detect the moving direction,and enhance the adaptability to the environment.The design was proved to be fine in feasibility.
displacement sensor;video processing;mobile direction;adaptive
TN941
A
1674-1404(2017)01-0061-06
2015-11-09.
兰振平(1978-),女,副教授.
时间:2016-05-16T09:30:46.
:http://www.cnki.net/kcms/detail/21.1560.ts.20160516.0930.004.html
兰振平,孙岩国,王智森,蒙会民.基于STM32单片机的自适应视频识别[J].大连工业大学学报,2017,36(1):61-66.
LAN Zhenping,SUN Yanguo,WANG Zhisen,MENG Huimin.An adaptive video recognition and processing scheme based on STM32 single chip microcomputer[J].Journal of Dalian Polytechnic University,2017,36(1):61-66.