宋金波, 段志偉
(東北石油大學(xué) 電氣信息工程學(xué)院, 黑龍江 大慶 163318)
人體目標(biāo)識(shí)別與追蹤是智能監(jiān)控的重要內(nèi)容之一。經(jīng)過近幾年的研究與開發(fā), 已經(jīng)形成了很多完整的識(shí)別與追蹤系統(tǒng)[1-4]。在所有的追蹤系統(tǒng)中, 傳感器是必不可少的部分。目前, 傳感器技術(shù)已成為當(dāng)代科學(xué)技術(shù)發(fā)展的一個(gè)重要標(biāo)志, 而且其形式發(fā)生了巨大的變化, 在性能上有了較大的優(yōu)化和增強(qiáng)。因此, 在人體目標(biāo)識(shí)別領(lǐng)域, 傳感器類型也有了更多選擇[5-6]。特別是利用特殊傳感器感知的電信號(hào)進(jìn)行人體目標(biāo)自動(dòng)識(shí)別與追蹤更加方便快捷, 也使運(yùn)行費(fèi)用大幅度下降?,F(xiàn)有的大多數(shù)監(jiān)控系統(tǒng)都采用動(dòng)態(tài)圖像分析手段, 在此基礎(chǔ)上結(jié)合圖像識(shí)別和跟蹤方法對(duì)圖像序列中的目標(biāo)進(jìn)行識(shí)別跟蹤[3,7-8]。但這種運(yùn)行模式大多采用計(jì)算機(jī)仿真, 實(shí)際的圖像跟蹤也多用數(shù)字信號(hào)處理(DSP: Digital Signal Processing)、 現(xiàn)場(chǎng)可編輯門陣列(FPGA: Field Programmable Gate Array), 或兩者結(jié)合實(shí)現(xiàn), 而采用STM32結(jié)合特殊傳感器的人體目標(biāo)自動(dòng)識(shí)別與追蹤系統(tǒng)很少。筆者設(shè)計(jì)了一個(gè)高度智能化監(jiān)控?cái)z像系統(tǒng), 選用STM32F103RCT6單片機(jī)結(jié)合特殊功能傳感器組合實(shí)現(xiàn)人體目標(biāo)自動(dòng)識(shí)別與追蹤。在傳統(tǒng)的接近式傳感器的基礎(chǔ)上疊加SHARP-GP2Y0A21YK0F紅外測(cè)距傳感器, 設(shè)計(jì)了一個(gè)專用多傳感器組網(wǎng)識(shí)別系統(tǒng)。多傳感器組網(wǎng)的設(shè)計(jì)有效地解決了在人體目標(biāo)自動(dòng)識(shí)別與追蹤系統(tǒng)中可能遇到的一系列問題[9-11]。該系統(tǒng)可廣泛應(yīng)用于室內(nèi)不干擾紅外線工作的行業(yè), 例如在銀行中監(jiān)控柜臺(tái), 在生活中監(jiān)控小區(qū)的安全, 在特定環(huán)境中監(jiān)控人流量, 方式更加靈活方便。
該系統(tǒng)下位機(jī)主要由檢測(cè)端與執(zhí)行端組成。檢測(cè)端由傳感器組網(wǎng)和WIFI(Wireless Fidelity)無線通訊模塊構(gòu)成, 傳感器組網(wǎng)包括紅外接近式傳感器、 SHARP-GP2Y0A21YK0F紅外測(cè)距傳感器。檢測(cè)機(jī)構(gòu)中HARP-GP2Y0A21YK0F紅外測(cè)距傳感器為模擬式輸出, STM32通過其內(nèi)部ADC(Analog-to-Digital Converter)對(duì)傳感器輸出的模擬信號(hào)進(jìn)行數(shù)模轉(zhuǎn)換, 通過固定算法測(cè)量距離。執(zhí)行端的二自由度云臺(tái)由兩個(gè)舵機(jī)組成, 由STM32產(chǎn)生的兩路PWM(Pulse Width Modulation)信號(hào)驅(qū)動(dòng), 當(dāng)傳感器組網(wǎng)的信號(hào)反饋至STM32, 便控制二自由度云臺(tái)(攜帶攝像頭)轉(zhuǎn)動(dòng)至人體位置。系統(tǒng)原理框圖如圖1所示。
圖1 系統(tǒng)整體原理框圖Fig.1 System principle block diagram
系統(tǒng)上電后WIFI無線通信模塊初始化, 創(chuàng)建局域網(wǎng), 打開監(jiān)控中心, 連接當(dāng)前局域網(wǎng), 視頻信號(hào)即可在監(jiān)控中心顯示。舵機(jī)自動(dòng)轉(zhuǎn)動(dòng)至初始位置。傳感器網(wǎng)絡(luò)開始識(shí)別人體, 當(dāng)識(shí)別范圍內(nèi)有人出現(xiàn)時(shí), 傳感器組網(wǎng)判斷人體位置, 并預(yù)測(cè)其行進(jìn)路線, 檢測(cè)結(jié)束后, 傳感器組網(wǎng)將信號(hào)反饋給控制器, 控制器利用PWM信號(hào)驅(qū)動(dòng)舵機(jī)轉(zhuǎn)動(dòng), 使攝像頭對(duì)準(zhǔn)人體位置。整個(gè)過程全自動(dòng)完成, 不需要人為進(jìn)行任何操作。
該系統(tǒng)計(jì)采用SHARP-GP2Y0A21YK0F紅外測(cè)距傳感器, 由PSD(Position-Sensitive Detector)集成組合IRED(Infrared Red Emitting Diode)和信號(hào)處理電路構(gòu)成。該傳感器采用三角測(cè)量法, 環(huán)境溫度和持續(xù)操作時(shí)間是不容易影響距離測(cè)量的。設(shè)計(jì)過程中, 由于STM32單片機(jī)有內(nèi)部ADC轉(zhuǎn)換器, 所以并不需要外部擴(kuò)展專用的ADC轉(zhuǎn)換模塊, 只需將傳感器與STM32單片機(jī)的具有模數(shù)轉(zhuǎn)換功能的I/O(Input/Output)口直接連接即可, 節(jié)約了硬件資源和PCB(Printed Circuit Board)板的面積。SHARP-GP2Y0A21YK0F紅外測(cè)距傳感器接口電路如圖2所示。
圖2 紅外測(cè)距傳感器接口電路圖Fig.2 Interface circuit diagram ofinfrared ranging sensor
紅外光電接近式傳感器又叫光電開關(guān), 它把發(fā)射端和接收端之間光的強(qiáng)弱變化轉(zhuǎn)化為電流的變化以達(dá)到探測(cè)的目的。光電開關(guān)是由發(fā)射器、 接收器和檢測(cè)電路3部分組成。發(fā)射器對(duì)準(zhǔn)目標(biāo)發(fā)射光束, 發(fā)射的光束一般來源于LED(Light Emitting Diode)和激光二極管, 光束不間斷地發(fā)射, 或改變脈沖寬度。受脈沖調(diào)制的光束向空間發(fā)射, 經(jīng)被檢測(cè)目標(biāo)反射后送到接收器。接收器由光電二極管或光電三極管組成。在接收器的前面, 裝有光學(xué)元件如透鏡和光圈等。在其后面是檢測(cè)電路, 它能濾出有效信號(hào)并將該信號(hào)傳給單片機(jī)。光電傳感器原理電路如圖3所示。
圖3 紅外光電傳感器原理電路圖Fig.3 Schematic circuit diagram of infrared photoelectric sensor
設(shè)計(jì)使用的主控制芯片是STM32F103RCT6單片機(jī), 其工作電源電壓并不是傳統(tǒng)的5 V, 而是2.0~3.6 V, 工作頻率最高可達(dá)72 MHz, 并且芯片內(nèi)嵌經(jīng)出廠調(diào)校的8 MHz的RC振蕩器、 帶校準(zhǔn)的40 kHz的RC振蕩器和帶校準(zhǔn)功能的32 kHz的RTC振蕩器。STM32F103xx是一個(gè)完整的系列, 其成員之間是完全地腳對(duì)腳兼容, 軟件和功能上也兼容,目前應(yīng)用非常廣泛[11-15]。
由于設(shè)計(jì)的檢測(cè)端主控板需要長(zhǎng)期進(jìn)行檢測(cè)識(shí)別, 不斷進(jìn)行信號(hào)的傳送, 所以需考慮整體的功耗問題。STM32F103RCT6單片機(jī)最小系統(tǒng)原理圖如圖4所示。
圖4 STM32F103RCT6最小系統(tǒng)原理圖Fig.4 Minimum system schematic circuit of STM32F103RCT6
設(shè)計(jì)所使用無線數(shù)據(jù)傳輸模塊是802.11標(biāo)準(zhǔn)的WIFI無線通信模塊, 兩個(gè)設(shè)備之間的通信可自由直接地進(jìn)行, 實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)或一對(duì)多的無線通信。WIFI無線通信模塊的部分電路原理圖如圖5所示。C1~C4都為WIFI模塊電源輸入端的去耦電容, 作用是提供較穩(wěn)定的電源, 同時(shí)也可降低元件耦合到電源端的噪聲, 間接減少其他元件受此元件噪聲的影響。此處的去耦電容可采用普通的瓷片電容, 也可采用有極性的電解電容。其容值沒有嚴(yán)格的要求, 一般10 MHz取0.1 μF, 100 MHz取0.01 μF。
圖5 Wi-Fi無線通信模塊電路原理圖Fig.5 Circuit diagram of Wi-Fi wireless communication module
電源電路的設(shè)計(jì)主要分為兩部分。光電傳感器和紅外測(cè)距傳感器的工作電壓都為直流+5 V, 所以電源電路一部分是+5 V電源, 用于給傳感器供電。另外一部分為STM32F103RCT6進(jìn)行供電, 工作的電源范圍為2.0~3.6 V, 故電源電路的另一部分使用+3.3 V電源。本設(shè)計(jì)采用5 V直流電源對(duì)傳感器進(jìn)行供電, 然后由AMS1117-3.3芯片進(jìn)行電壓轉(zhuǎn)換后得到3.3 V直流電源, 最后接到STM32F103RCT6單片機(jī)上。其電源轉(zhuǎn)換電路如圖6所示。C17、C18、C19和C20分別為輸出端和輸入端濾波電容, 使輸出的直流+3.3 V電壓更平滑。
圖6 AMS1117-3.3電路圖Fig.6 AMS1117-3.3 circuit diagram
該系統(tǒng)的軟件采用C語(yǔ)言編程, 采用Keil μVision5進(jìn)行程序編譯, 通過串口燒錄程序軟件ISP進(jìn)行程序的燒錄。在軟件設(shè)計(jì)過程中, 首先設(shè)計(jì)各個(gè)部分的子程序, 然后再整合在一起調(diào)試。整個(gè)系統(tǒng)由ADC采集紅外測(cè)距傳感器數(shù)據(jù)、 WIFI模塊控制、 舵機(jī)驅(qū)動(dòng)、 光電傳感器檢測(cè)和上位機(jī)顯示程序等組成。人體目標(biāo)位置數(shù)據(jù)的采集主要通過由紅外測(cè)距傳感器和光電傳感器構(gòu)成的傳感器網(wǎng)絡(luò)實(shí)現(xiàn); WIFI無線通信模塊由STM32單片機(jī)通過串口實(shí)現(xiàn)下位機(jī)與上位機(jī)之間的視頻信號(hào)傳輸; 電機(jī)驅(qū)動(dòng)部分主要驅(qū)動(dòng)由兩個(gè)舵機(jī)構(gòu)成的二自由度云臺(tái), 目的是搭載攝像頭追蹤人體位置。通過核心控制單元STM32F103RCT6單片機(jī)將各個(gè)模塊有機(jī)整合, 按照程序設(shè)計(jì)有序、 準(zhǔn)確地完成相應(yīng)的功能。總體流程如圖7所示。
圖7 總體程序流程 圖8 上位機(jī)軟件設(shè)計(jì)流程 Fig.7 Flow chart of the system Fig.8 Flow chart of upper computer software design
上位機(jī)顯示使用Java開發(fā)集成環(huán)境Eclipse-Android軟件, 其設(shè)計(jì)流程如圖8所示。
該系統(tǒng)硬件控制板是FR-4工藝PCB板, 板載器件統(tǒng)一采用0603P貼片封裝。本設(shè)計(jì)的整體實(shí)物演示平臺(tái)如圖9所示, 人體識(shí)別模塊由長(zhǎng)方形鐵架為載體, 搭載了3個(gè)紅外接近式傳感器, 兩個(gè)紅外測(cè)距傳感器, 構(gòu)成扇形人體識(shí)別區(qū)和矩形人體行進(jìn)路線檢測(cè)區(qū)。二自由度平臺(tái)搭載攝像頭置于人體識(shí)別模塊后, 攝像頭的數(shù)據(jù)線以USB接口的形式插在WIFI模塊上。主控板由螺絲孔固定在二自由度云臺(tái)的側(cè)面。WIFI模塊置于主控板上, 使用螺桿螺母連接。整個(gè)演示平臺(tái)空間結(jié)構(gòu)合理, 演示流暢。
圖9 人體檢測(cè)系統(tǒng)實(shí)物圖Fig.9 Physical picture of human detection system
本次軟件調(diào)試主要對(duì)WIFI模塊、 紅外測(cè)距和舵機(jī)驅(qū)動(dòng)程序進(jìn)行調(diào)試。WIFI模塊程序主要針對(duì)視頻傳輸時(shí)的失真問題和傳輸過程突然掉線問題進(jìn)行調(diào)試。
對(duì)紅外測(cè)距程序的調(diào)試需確定紅外測(cè)距傳感器的電壓分辨率, 即距離的變化ΔL與傳感器輸出電壓變化ΔV之間的對(duì)應(yīng)關(guān)系。本設(shè)計(jì)的紅外測(cè)距傳感器的測(cè)量距離下限值Lmin=10 cm, 上限值Lmax=80 cm, 對(duì)應(yīng)的電壓輸出為Vmin=1.65 V,Vmax=2.15 V, 傳感器的輸出是線性的, 即ΔL=1 cm對(duì)應(yīng)ΔV≈0.007 V。
對(duì)舵機(jī)驅(qū)動(dòng)程序的調(diào)試需調(diào)用STM32庫(kù)函數(shù)中的定時(shí)器參數(shù)設(shè)置。因?yàn)镻WM信號(hào)占空比不同對(duì)應(yīng)舵機(jī)轉(zhuǎn)動(dòng)的角度不同, 所以在調(diào)試過程中需測(cè)試舵機(jī)參數(shù)角180°中每個(gè)角度所對(duì)應(yīng)的占空比, 這是一項(xiàng)耗時(shí)的測(cè)試過程, 需要仔細(xì)完成記錄。
筆者以STM32F103RCT6單片機(jī)為主控制器, 利用嵌入式、 傳感器、 WIFI和APP開發(fā)技術(shù), 對(duì)人體目標(biāo)進(jìn)行識(shí)別與追蹤, 并實(shí)時(shí)傳輸視頻信號(hào)至監(jiān)控中心。通過Keil μVision5和Eclipse-Android編程工具完成系統(tǒng)各部分的軟件設(shè)計(jì)。利用電路繪圖軟件Altium Designer13完成整體的硬件電路設(shè)計(jì)與PCB板的制作, 最終制作的硬件實(shí)現(xiàn)了預(yù)計(jì)的功能要求, 達(dá)到了人體檢測(cè)追蹤的預(yù)期目標(biāo)。