蘭振平, 孫巖國, 王智森, 蒙會民
(1.大連工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,遼寧大連 116034; 2.大連醫(yī)科大學(xué)附屬第二醫(yī)院信息中心,遼寧大連 116023)
基于STM32單片機(jī)的自適應(yīng)視頻識別
蘭振平1, 孫巖國2, 王智森1, 蒙會民1
(1.大連工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,遼寧大連 116034; 2.大連醫(yī)科大學(xué)附屬第二醫(yī)院信息中心,遼寧大連 116023)
通過對通用的位移傳感器的特點以及問題進(jìn)行分析與研究,提出并設(shè)計了一種利用模擬攝像頭采集視頻圖像信息,進(jìn)行實時處理的自適應(yīng)視頻識別。系統(tǒng)采用STM32系列ARM微控制器作為主控制器,包括模擬攝像頭、視頻圖像分離、高速AD轉(zhuǎn)換、光線檢測及433 MHz無線通信等模塊,通過C語言編程實現(xiàn)。在檢測物體位移的同時,可以判別物體的移動方向,彌補(bǔ)了現(xiàn)存位移傳感器無法檢測物體移動方向的空缺,在確?;緳z測功能的同時又增加了對環(huán)境的自適應(yīng),最后通過試驗證明了設(shè)計的可行性。
位移傳感器;視頻處理;移動方向;自適應(yīng)
在物聯(lián)網(wǎng)技術(shù)飛速發(fā)展的今天,作為信息感知層的傳感器顯得尤為重要。目前比較成熟的位移傳感器有紅外熱釋電傳感器、超聲波傳感器以及微波傳感器等。每種位移傳感器都有各自的優(yōu)缺點及適用環(huán)境。例如紅外熱釋電傳感器,在用于檢測位移時如果被檢測物體不是人體,無法判斷與識別,且該傳感器受溫度影響較大,在低溫環(huán)境下精確度將大幅度下降。另外幾種位移傳感器同樣也是優(yōu)缺點并存。而在視頻處理領(lǐng)域,目前多采用ARM9、ARM11、DSP和FPGA,不可否認(rèn)它們的處理效果與準(zhǔn)確度,但如果把攝像頭作為普通傳感器用于檢測物體位移,再用上述的處理器來實時處理就顯得大材小用,而且從成本以及操作等方面來考慮也是不可行的。為了解決上述問題,本文提出了一種基于價格低廉的STM32單片機(jī)的視頻圖像實時處理方法,用于某些對圖像分辨率要求不高的場合,例如傳感器領(lǐng)域。具體解決方法如下:
系統(tǒng)采用分辨率較低的攝像頭作為采集模塊。首先攝像頭將采集到的模擬信號的圖像信息進(jìn)行模/數(shù)轉(zhuǎn)換,采用高速8位AD轉(zhuǎn)換芯片,同時利用視頻分離芯片將PAL制式的圖像信息進(jìn)行行、場分離。再將AD轉(zhuǎn)換后的數(shù)字信號與視頻分離的行、場中斷信號存入單片機(jī),最后單片機(jī)將采回來的圖像信息進(jìn)行二值化處理。與以往直接設(shè)定閾值直接比較式二值化不同的是,該系統(tǒng)采用自適應(yīng)二值化方法,是單片機(jī)通過光線傳感器采集光線信息,同時根據(jù)光線的強(qiáng)弱來標(biāo)定二值化的閾值。
系統(tǒng)中無線傳輸模塊采用TI(德州儀器)公司生產(chǎn)的CC1101,將傳感器的處理結(jié)果無線傳輸給用戶,方便實用,不需要有線連接。
1.1 最小系統(tǒng)電路設(shè)計
STM32F系列屬于中低端的32位ARM微控制器,該系列芯片是意法半導(dǎo)體(ST)公司出品,其內(nèi)核是ARM Cortex-M3。該系列芯片按片內(nèi)Flash的大小可分為三大類:小容量(16和32 k B)、中容量(64和128 k B)、大容量(256、384和512 kB)。該系統(tǒng)使用的VET6便是512 kB的大容量芯片[1]。該芯片集成有USB、CAN,3個串口通信模塊,2個ADC、SPI、I2C等多種功能。采用2.0~3.6 V供電,具有超低功耗的睡眠、停機(jī)和待機(jī)模式,還備有紐扣電池接口,具有停機(jī)數(shù)據(jù)不丟失功能[2]。
該單片機(jī)的最小系統(tǒng)電路,需要將外圍的時鐘電路、復(fù)位電路、備用電池電路以及程序下載電路搭建完成即可。具體電路如圖1所示。
1.2 視頻采集模塊的硬件設(shè)計
1.2.1 AD轉(zhuǎn)換部分
選用美國TI(德州儀器)公司生產(chǎn)的高速8位半閃速結(jié)構(gòu)AD轉(zhuǎn)換器TLC5510來完成模擬-數(shù)字信號轉(zhuǎn)換。TLC5510采用CMOS工藝制造,可提供最小20 Mbps的采樣率[3]。該AD芯片工作時需要單片機(jī)提供一個20 MHz的時鐘信號,而STM32單片機(jī)有8個定時器,其中有兩個高級定時器,任意一個都可以提供20 MHz的方波。如圖2所示,視頻信號直接連接到VIO,在滿足硬件連接與時鐘后,8位數(shù)字信號直接由DB0~DB7輸出,由單片機(jī)的PA口直接采集,并存入數(shù)組[4]。
圖2 AD轉(zhuǎn)換電路Fig.2 AD conversion circuit
1.2.2 圖像信號同步分離電路
視頻分離電路采用視頻同步分離芯片LM1881(TI),該芯片能夠從復(fù)合視頻信號(經(jīng)電容接2腳)中分離出行同步信號(1腳)、場同步信號(4腳)和奇偶場信號(7腳,未用)[5]。各同步信號由單片機(jī)的比較捕捉模塊采集。
1.3 無線數(shù)傳模塊組成及與MCU的通信連接
433 MHz無線數(shù)傳模塊選用德州儀器(TI)公司生產(chǎn)的CC1101無線收發(fā)器芯片與VET6微控制器搭配構(gòu)成。CC1101是低成本的1 GHz以下的無線收發(fā)器,為極低功耗的無線應(yīng)用而設(shè)計。符合本設(shè)計選型規(guī)則,可以延長系統(tǒng)的使用壽命。CC1101的工作頻段在315、433、868和915 MHz,本設(shè)計綜合考慮工作功耗以及通訊距離,最終將工作頻段選在了433 MHz頻段內(nèi)[5]。
CC1101通過四線SPI兼容接口(SI、SO、SCLK和CSn)進(jìn)行配置,由于V8T6具有硬件SPI,不需要通過程序來模擬,直接接入MCU的硬件SPI接口即可[6]。傳輸?shù)臄?shù)據(jù)包模式如圖4所示。
數(shù)據(jù)包由前導(dǎo)碼、同步字節(jié)、可選的數(shù)據(jù)包長度、可選的目標(biāo)地址、真正數(shù)據(jù)區(qū)和2 B的CRC校驗碼構(gòu)成。只需要將要發(fā)送的圖像處理結(jié)果信息加載到數(shù)據(jù)區(qū)即可完成數(shù)據(jù)的發(fā)送。
CC1101具體的工作流程[5]:
(1)初始化SPI、MCU各引腳。當(dāng)有數(shù)據(jù)接收或發(fā)送狀態(tài)聲明時,有中斷和查詢兩種方式。GDO0與GDO2引腳輸出至MCU引腳,若要用中斷則要接至V8T6外部中斷引腳,查詢時則可用V8T6的GPIO。
(2)復(fù)位CC1101。
圖3 視頻同步分離電路Fig.3 Image signal synchronous separation circuit
圖4 數(shù)據(jù)包模式Fig.4 Packet mode
(3)初始化CC1101。(寫操作時可從SO中讀出CC1101狀態(tài))。初始化后CC1100為IDLE狀態(tài)。
(4)狀態(tài)機(jī)轉(zhuǎn)換,寫/讀FIFO數(shù)據(jù)。每次寫操作時SO返回的值為寫操作前的CC1100狀態(tài)值,讀狀態(tài)命令為當(dāng)前CC1100狀態(tài)值,兩者具有一定的區(qū)別。
對于無線模塊的天線,選取較小型的彈簧式天線,雖然通信效果與通用型大功率天線有差距,但是考慮系統(tǒng)的應(yīng)用范圍,這里排除了后者。這樣視頻的處理結(jié)果既可以通過有線介質(zhì)傳輸給監(jiān)控主機(jī),也可以通過無線鏈路傳輸來,為一些特殊應(yīng)用環(huán)境提供了便捷。
1.4 照度傳感器電路
采用照度傳感器的主要目的是可以實時采集設(shè)備工作環(huán)境的光照強(qiáng)度,據(jù)此設(shè)定圖像二值化的閾值。通常視頻處理中對于圖像二值化的閾值是由人工直接設(shè)定的,無法實現(xiàn)對環(huán)境的適應(yīng)能力,大大降低了系統(tǒng)普適性。本設(shè)計通過對環(huán)境的光線進(jìn)行采集分析,自適應(yīng)的改變閾值,以解決上述問題。
對于光照度的采集采用日本羅姆(ROHM)公司生產(chǎn)的BH1750照度傳感器,照度信號通過I2C協(xié)議輸出,STM32具有2個硬件I2C模塊,可以直接讀取BH1750輸出的光照度信息,不需要格外的軟件模擬。具體硬件連接如圖5所示。
圖5 照度傳感器電路Fig.5 Sensor circuit of illumination
2.1 調(diào)試軟件KEIL-MDK-ARM
采用C語言編程,在KEIL編譯器下進(jìn)行編譯、仿真和調(diào)試。KEIL公司于2005年被ARM公司收購,開始推出基于u Vision界面,用于調(diào)試ARM7、ARM9、Cortex-M內(nèi)核的MDK-ARM開發(fā)工具,用于控制領(lǐng)域的開發(fā)[7-8]。本設(shè)計采用的微控制器VET6正是Cortex-M3內(nèi)核,MDKARM編譯器完全支持STM32系列處理器[9]。
2.2 系統(tǒng)程序框圖
2.2.1 主程序
主程序主要由模塊的初始化以及while循環(huán)組成,為了防止系統(tǒng)程序執(zhí)行時出現(xiàn)故障,將數(shù)據(jù)采集以及控制部分放在了定時器中斷中進(jìn)行[10]。系統(tǒng)正式運行后while循環(huán)中只有OLED液晶屏的顯示函數(shù)[11-12]。主程序如圖6所示。
圖6 主程序流程圖Fig.6 Flow chart of main program
2.2.2 外部中斷
外部中斷主要用于行、場信號的觸發(fā),并進(jìn)行AD轉(zhuǎn)換后的數(shù)字信號采集。當(dāng)行中斷觸發(fā)時,進(jìn)行行數(shù)據(jù)的采集;當(dāng)場中斷觸發(fā)時,進(jìn)行場數(shù)據(jù)的采集[13]。程序流程圖如圖7所示。
圖7 外部中斷程序流程圖Fig.7 Flow chart of external interrupt program
2.2.3 定時中斷
定時器中斷一共分為3部分,分別為數(shù)據(jù)采集部分(IO口讀取數(shù)據(jù)、串口數(shù)據(jù)發(fā)送)、控制函數(shù)部分以及視頻數(shù)據(jù)處理部分[14-15]。定時器的定時時間為1 ms,也就是經(jīng)過1 ms CPU便進(jìn)入一次中斷[16]。這樣做的優(yōu)點是如果由于故障而導(dǎo)致系統(tǒng)進(jìn)入死循環(huán),程序不會跑飛各個功能依舊進(jìn)行[17-18]。設(shè)計沒有將上述3部分同時放入定時器中斷服務(wù)中,而是通過循環(huán)的方式,依次來執(zhí)行各個部分,程序框圖如圖8所示。
2.3 視頻數(shù)據(jù)處理
圖8 定時中斷程序流程圖Fig.8 Flow chart of timer interrupt program
圖9 視頻數(shù)據(jù)處理Fig.9 Video data processing
視頻數(shù)據(jù)處理結(jié)果如圖9所示。系統(tǒng)采集到的視頻數(shù)據(jù)是一個128×240的二維數(shù)組,需要對該數(shù)據(jù)數(shù)組進(jìn)行軟件二值化,即對數(shù)組中的每一個數(shù)據(jù)進(jìn)行0/1判斷。具體的判斷方法是將該數(shù)據(jù)與BH1750照度傳感器數(shù)據(jù)算出的閾值進(jìn)行比較,大于閾值的就是1,而小于閾值的就為0[19-20]。這樣將數(shù)據(jù)變成了由0和1組成的二值信息,單片機(jī)的處理負(fù)荷大大降低。然后,對圖像進(jìn)行分割,將128×240的圖像分割成了16×30,即把一副圖像分成了64份,相當(dāng)于有64個傳感器在同時進(jìn)行監(jiān)測。在系統(tǒng)工作伊始,單片機(jī)選取一副圖像作為標(biāo)準(zhǔn)圖像,以后單片機(jī)每采集一副圖像,就與該圖像進(jìn)行比較,64份中的每一份都在進(jìn)行著比較,結(jié)果如果大于所設(shè)定的范圍就設(shè)為1,反之就設(shè)定為0,最后單片機(jī)將這64份“傳感器”的狀態(tài)0/1,以字符串的形式傳輸出來,完成信號處理。
本研究提出了一種基于STM32F103VET6 (ARM7)微控制器的視頻識別及處理系統(tǒng)方案,并對系統(tǒng)硬件以及軟件程序進(jìn)行了分析與設(shè)計,實現(xiàn)對環(huán)境的實時監(jiān)控,相當(dāng)于在一處監(jiān)控環(huán)境內(nèi)安放了64個位移監(jiān)控傳感器。該系統(tǒng)傳感器與紅外熱釋電傳感器相比,在監(jiān)控的準(zhǔn)確度上并無太大差異,但在對環(huán)境的適應(yīng)能力上前者超越后者,而且前者在被監(jiān)控物體非動物體時仍然可以做出準(zhǔn)確的判斷。在某些特殊應(yīng)用環(huán)境中體現(xiàn)不可估量的價值。
[1]邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法[M].北京:清華大學(xué)出版社,2004.
[2]喻斌.STM32F系列ARM內(nèi)核微控制器開發(fā)與應(yīng)用[M].北京:清華大學(xué)出版社,2011.
[3]GONZALEZ C R,WOODS E R.數(shù)字圖像處理[M].阮秋琦,阮宇智,譯.北京:電子工業(yè)出版社,2003.
[4]布魯克斯.信號完整性與PCB設(shè)計[M].劉雷波,趙巖,譯.北京:電子工業(yè)出版社,2012.
[5]Chipcon Products from Texas Instruments.CC1101 Low-Cost Low-Power Sub-1GHz RF Transceiver[S]. Dallas:Texas Instruments,2010.
[6]陳黎敏,朱越奇.基于嵌入式視頻服務(wù)器的綜合監(jiān)控系統(tǒng)[J].電子工程師,2008,34(9):72-74.
[7]呂麗剛,謝曉竹.遠(yuǎn)程視頻監(jiān)控中的目標(biāo)檢測和多播傳輸[J].微計算機(jī)信息,2007,24(5-3):306-307.
[8]李冰,孫建平.嵌入式視頻服務(wù)器在電廠遠(yuǎn)程監(jiān)控中的應(yīng)用[J].自動化儀表,2007,28(S1):207-208.
[9]殷劍宏,吳開亞.圖論及其算法[M].合肥:中國科學(xué)技術(shù)大學(xué)出版社,2003.
[10]彭剛,袁兵.基于雙ARM Cortex架構(gòu)的移動機(jī)器人控制器設(shè)計[J].華中科技大學(xué)學(xué)報(自然科學(xué)版), 2013,41(S1):284-287.
[11]吳健.基于ARM的嵌入式USB圖像采集與顯示[J].現(xiàn)代顯示,2011(8):39-42.
[12]李超,李運華,王國棟,等.一種基于嵌入式圖像處理的工程車輛導(dǎo)向裝置[J].北京航空航天大學(xué)學(xué)報, 2007,33(10):1213-1215.
[13]宋凱,嚴(yán)麗平,甘嵐.嵌入式圖像處理系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)工程與設(shè)計,2009,30(19):4368-4370.
[14]林立忠,張惠濤,段麗英.新型嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計[J].制造業(yè)自動化,2010,32(10):151-153.
[15]何腆舉,陳明,段磊強(qiáng),等.基于嵌入式Web服務(wù)器的遠(yuǎn)程視頻監(jiān)控系統(tǒng)[J].測控技術(shù),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的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)[J].測控技術(shù),2007,26(5):55-57.
[19]盧海彥,程義民,何兵兵,等.基于自適應(yīng)閾值的視頻文本檢測方法[J].計算機(jī)仿真,2008,25(9):204-205.
[20]劉少華,張茂軍,熊志輝,等.一種魯棒高效的視頻運動目標(biāo)檢測與跟蹤算法[J].自動化學(xué)報,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ī)的自適應(yīng)視頻識別[J].大連工業(yè)大學(xué)學(xué)報,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.