基于MCU的驅(qū)動(dòng)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)
在視頻監(jiān)控方面,設(shè)計(jì)師及其客戶長(zhǎng)期以來(lái)一直被迫選擇依賴“啞”大量圖像捕獲和存檔的極其低效的系統(tǒng),絕大部分記錄的內(nèi)容都沒(méi)有興趣,以及感興趣的內(nèi)容本身太難以在檔案中找到,假設(shè)它已被存檔。然而,現(xiàn)在,功能強(qiáng)大,高能效且經(jīng)濟(jì)高效的處理器,圖像傳感器和存儲(chǔ)設(shè)備與日益復(fù)雜的軟件相結(jié)合,為系統(tǒng)開(kāi)發(fā)人員提供了將寶貴的計(jì)算機(jī)視覺(jué)處理功能整合到從消費(fèi)者監(jiān)控系統(tǒng)到可穿戴的“生命博客”攝像機(jī)。
智能的,事件驅(qū)動(dòng)的視頻監(jiān)控僅在人或其他感興趣的物體進(jìn)入框架時(shí)記錄圖像,并且僅在物體保留的情況下記錄圖像。框架。這種自主智能可能歷史上只能用于政府,軍隊(duì)和其他高端客戶使用的昂貴,笨重,耗電的設(shè)備,現(xiàn)在它可以以消費(fèi)者友好的價(jià)格提供,電池壽命長(zhǎng),并且形式因素小而輕,足以美觀地坐在架子上。
您如何利用當(dāng)今的視覺(jué)處理硬件和軟件所帶來(lái)的潛力?以下是基于消費(fèi)者監(jiān)控系統(tǒng)案例研究的一些想法:
基本設(shè)計(jì)可能會(huì)在幀中感知到運(yùn)動(dòng)并且持續(xù)一段固定時(shí)間時(shí)開(kāi)始記錄。稍微更精細(xì)的方法是可變長(zhǎng)度記錄,直到看到物體運(yùn)動(dòng)停止和/或物體從框架中消失為止。
然而,這種方法可能產(chǎn)生大量“誤報(bào)” “由吹葉子,經(jīng)過(guò)的車(chē)輛等引起的。因此,如果溫血?jiǎng)游锸俏ㄒ桓信d趣的物體,您可能需要使用紅外探測(cè)器或其他熱傳感器來(lái)補(bǔ)充可見(jiàn)光攝像機(jī)。更一般地說(shuō),可用的算法可以讓你微調(diào)你的對(duì)象“觸發(fā)器”的大小,顏色,距離,移動(dòng)速率和其他閾值參數(shù)。
如果你所關(guān)心的人都知道怎么辦?面部檢測(cè)功能可以在這方面提供幫助。你可能甚至有興趣在一個(gè)人進(jìn)入框架時(shí)觸發(fā)相機(jī)...除非那個(gè)人是你自己,你的配偶,你的孩子,郵遞員等等。為此,你需要更強(qiáng)大的面部識(shí)別設(shè)施。
OpenCV計(jì)算機(jī)視覺(jué)庫(kù)
該項(xiàng)目通常以其軟件定義和開(kāi)發(fā)計(jì)劃(并從根本上受其約束)開(kāi)始。在過(guò)去的幾十年中,計(jì)算機(jī)視覺(jué)主要是一個(gè)學(xué)術(shù)研究領(lǐng)域;因此,在這個(gè)特定領(lǐng)域還沒(méi)有一個(gè)龐大,成熟的行業(yè)專業(yè)知識(shí)庫(kù)。另外,學(xué)術(shù)實(shí)驗(yàn)往往不能廣泛地應(yīng)用于現(xiàn)實(shí)世界的實(shí)施,例如,環(huán)境照明和天氣條件可以在不同的使用情況之間變化,并且偏離研究實(shí)驗(yàn)室中發(fā)現(xiàn)的更受控制的條件。
幸運(yùn)的是,像往常一樣,開(kāi)源社區(qū)需要資源幫助。 OpenCV(開(kāi)源計(jì)算機(jī)視覺(jué))庫(kù)起源于英特爾的研究部門(mén);該公司在2000年CVPR(IEEE計(jì)算機(jī)視覺(jué)和模式識(shí)別,一個(gè)著名的計(jì)算機(jī)視覺(jué)會(huì)議)上正式將其交給公眾。在上半年的測(cè)試版中,OpenCV在2006年獲得了v1.0“黃金”地位,其次是三年后的v2.0和2015年中期的v3.0(v3.1是最新版本,截至去年12月) )。
OpenCV,根據(jù)BSD許可證發(fā)布,可免費(fèi)用于學(xué)術(shù)和商業(yè)用途。它采用優(yōu)化的C/C ++編寫(xiě),具有C ++,C,Python和Java接口,支持Windows,Linux,Mac OS,iOS和Android操作系統(tǒng)。特別是對(duì)于這個(gè)特殊的監(jiān)控?cái)z像機(jī)項(xiàng)目,該庫(kù)包含超過(guò)2,500種算法,包括可用于識(shí)別物體以及跟蹤物體,以及檢測(cè)和識(shí)別人臉以及對(duì)人類行為進(jìn)行分類的算法。
Microchip Technology的PIC32MZ EF系列MCU
然而,值得一提的是使用OpenCV的一個(gè)潛在缺點(diǎn)。該庫(kù)的以Intel和PC為中心的起源反映在其中包含的大部分基礎(chǔ)代碼都是基于浮點(diǎn)的事實(shí)中,這對(duì)于某些僅定點(diǎn)的嵌入式系統(tǒng)設(shè)計(jì)而言可能是有問(wèn)題的。說(shuō)實(shí)話,大多數(shù)計(jì)算機(jī)視覺(jué)功能甚至不需要浮點(diǎn)精度。因此,一些處理器供應(yīng)商已經(jīng)開(kāi)發(fā)了部分或全部OpenCV庫(kù)的體系結(jié)構(gòu)定制版本,解決了代碼的浮點(diǎn)到定點(diǎn)轉(zhuǎn)換以及提供其他優(yōu)化。但是,如果您自己堅(jiān)持進(jìn)行轉(zhuǎn)換,那么這種努力可能會(huì)成本和時(shí)間過(guò)高。
Microchip的新型PIC32MZ EF MCU為OpenCV浮點(diǎn)問(wèn)題提供了直接的替代解決方案(圖1) )。其核心是高性能32位MIPS microAptive處理器,運(yùn)行頻率高達(dá)200 MHz,能夠處理各種計(jì)算機(jī)視覺(jué)功能。此外,反映了48個(gè)成員產(chǎn)品系列中的“EF”后綴,Microchip還在整數(shù)CPU旁嵌了一個(gè)32位和64位IEEE 754兼容的七級(jí)FPU,能夠運(yùn)行浮點(diǎn)OpenCV代碼不變
圖1:高性能CPU與32位和64位FPU協(xié)處理器的組合使Microchip的PIC32MZ EF MCU成為可能使用開(kāi)源代碼時(shí)引人注目的候選人。 (圖片由Microchip Technology提供)
PIC32MZ EF的其他有用方面包括其集成的10/100 Mbit以太網(wǎng)MAC和一系列系統(tǒng)接口(各種類型和數(shù)量在某種程度上取決于封裝和引腳排列...... MCU系列有多種選擇) 。 MAC與外部PHY相結(jié)合,可直接支持監(jiān)控?cái)z像機(jī)的網(wǎng)絡(luò)連接需求(如果有線以太網(wǎng)是您選擇的網(wǎng)絡(luò)技術(shù)),或通過(guò)外部有線到無(wú)線以太網(wǎng)橋間接支持?;蛘?,您可以通過(guò)連接到PIC32MZ EF USB 2.0或其他接口端口的外部收發(fā)器實(shí)現(xiàn)無(wú)線蜂窩和/或以太網(wǎng)連接。
圖像傳感器替代方案
前面提到的MCU接口分集不僅有利于提供網(wǎng)絡(luò)連接的多樣性,而且有利于圖像傳感器的靈活性。將攝像機(jī)連接到PIC32MZ EF的一種簡(jiǎn)單方法是在設(shè)計(jì)中集成OmniVision Technologies OVM7690 VGA分辨率攝像機(jī)模塊,通過(guò)8位I/O端口連接到MCU(圖2)。這種方法有利于幾個(gè)關(guān)鍵原因;例如,OVM7690已經(jīng)包含64°視場(chǎng)(對(duì)角線),F(xiàn)/3.0鏡頭形式的晶圓級(jí)光學(xué)元件,因此您無(wú)需在設(shè)計(jì)中添加單獨(dú)的光學(xué)子系統(tǒng)。此外,OVM7690嵌入了專用的圖像處理器,從而減輕了PIC32MZ EF的圖像預(yù)處理任務(wù),例如去馬賽克,重新縮放,格式轉(zhuǎn)換和曝光控制。
圖2:集成的相機(jī)模塊簡(jiǎn)化設(shè)計(jì)(頂部),但它提供的圖像雖然賞心悅目,但可能不太適合計(jì)算機(jī)視覺(jué)處理比傳統(tǒng)圖像傳感器的未處理輸出(底部)。 (圖片分別由OmniVision Technologies和安森美半導(dǎo)體提供)
然而,存在可能的情況,可能迫使您使用傳統(tǒng)的圖像傳感器,例如安森美半導(dǎo)體的VGA分辨率NOIL1SM0300A,結(jié)合您自己設(shè)計(jì)的鏡頭,并通過(guò)其SPI端口連接到PIC32MZ EF。首先,相反,人眼賞心悅目的圖像可能被視為對(duì)計(jì)算機(jī)視覺(jué)處理算法有害。例如,由圖像預(yù)處理器自動(dòng)完成的邊緣增強(qiáng)可能會(huì)導(dǎo)致使對(duì)象與其背景區(qū)分開(kāi)來(lái)的任務(wù)變得復(fù)雜。自動(dòng)曝光控制,白平衡和黑平衡,色彩校正以及通常由相機(jī)模塊中內(nèi)置的圖像協(xié)處理器默認(rèn)執(zhí)行的類似任務(wù)也是如此。
例如,您可能還需要不同于傳感器模塊制造商提供的鏡頭焦距和/或光圈。然而,無(wú)論您使用集成攝像頭模塊還是獨(dú)立圖像傳感器,您都可能會(huì)發(fā)現(xiàn)具有成本效益的VGA分辨率產(chǎn)品選項(xiàng)就足夠了;有時(shí),甚至更便宜的QVGA或CIF分辨率產(chǎn)品甚至都是你需要的。您可能需要在分辨率上超過(guò)3 M像素的唯一情況是,如果您試圖辨別遠(yuǎn)處的物體,或者在特別差的環(huán)境觀察條件下,這兩種情況都會(huì)受益于更大的源圖像細(xì)節(jié)。如果您的目標(biāo)客戶堅(jiān)持觀看“HD”視頻,您也可以選擇更高分辨率的圖像傳感器或相機(jī),無(wú)論計(jì)算機(jī)視覺(jué)軟件是否需要它。
本地大容量存儲(chǔ)
回想一下,該項(xiàng)目的基本目標(biāo)是僅在相機(jī)“看到”感興趣的事件時(shí)記錄視頻,并且僅在該事件持續(xù)的時(shí)間內(nèi)記錄視頻。在這樣做時(shí),該實(shí)現(xiàn)最小化了設(shè)計(jì)所需的閃存或其他存儲(chǔ)技術(shù)所需的容量(更不用說(shuō)在該過(guò)程中節(jié)省寶貴的電池壽命)。盡管如此,512 KB到2 MB的閃存,以及集成在各種PIC32MZ EF MCU系列成員中的128 KB到512 KB的RAM,可能足以滿足非易失性代碼存儲(chǔ)和瞬態(tài)數(shù)據(jù)存儲(chǔ)的需要,更高容量的外部存儲(chǔ)用于視頻剪輯本身仍然是必要的。
您可以隨時(shí)使用獨(dú)立的NAND閃存設(shè)備(或其中一些),當(dāng)然,通過(guò)I/O總線與MCU配對(duì)。但是,您需要開(kāi)發(fā)自己的媒體管理軟件,以處理背景“垃圾收集”清理閃存擦除塊,這些塊已經(jīng)填滿了有效和/或退役的視頻數(shù)據(jù),例如,以及磨損等級(jí)媒體是為了防止某些擦除塊與其他擦除塊“過(guò)熱”。此外,這種媒體管理需要由MCU本身處理,從而消耗寶貴的處理器周期,否則可能會(huì)用于計(jì)算機(jī)視覺(jué)處理和其他任務(wù)。
相反,請(qǐng)考慮使用閃存大容量存儲(chǔ)解決方案其中包括自己的媒體管理控制器。選項(xiàng)包括可移動(dòng)SD卡(以及更小的迷你SD和micro SD兄弟),以及美光科技的BGA封裝的e.MMC NAND閃存;這兩個(gè)選項(xiàng)都通過(guò)幾個(gè)引腳的I/O總線連接到PIC32MZ EF MCU(圖3)。根據(jù)捕獲的幀分辨率,幀速率和壓縮格式,例如,Micron的32 GByte e.MMC應(yīng)該可以存儲(chǔ)數(shù)十分鐘到數(shù)小時(shí)的視頻。此外,通過(guò)電子郵件,短信或其他提醒,您可以將新視頻的捕獲狀態(tài)(以及可選地,與所有視頻本身一起)傳達(dá)給監(jiān)控系統(tǒng)所有者;視頻將保留在相機(jī)中,以供后續(xù)查看,存檔和/或刪除。
圖3:帶有集成媒體管理控制器的閃存大容量存儲(chǔ)解決方案可以釋放系統(tǒng)處理器來(lái)處理其他任務(wù)并簡(jiǎn)化軟件開(kāi)發(fā)工作。 (圖片由Micron Technology提供)
結(jié)論
該項(xiàng)目描述無(wú)疑是無(wú)所不包的;例如,仍然需要添加AC/DC和DC步進(jìn)電源子系統(tǒng),您可能還需要包括麥克風(fēng)和ADC,以便與圖像一起記錄音頻。但是,它涵蓋了設(shè)計(jì)的一些關(guān)鍵部分。每個(gè)算法越復(fù)雜,你組合的越多,你最有可能最終使PIC32MZ EF的CPU和FPU的處理能力過(guò)載。話雖如此,新的算法,如用于對(duì)象識(shí)別的新興卷積神經(jīng)網(wǎng)絡(luò)“深度學(xué)習(xí)”技術(shù)(圖4),以及現(xiàn)有算法的優(yōu)化一直在出現(xiàn)。
圖4:卷積神經(jīng)網(wǎng)絡(luò)(CNN)和其他“深度學(xué)習(xí)”方法,一旦經(jīng)過(guò)一系列參考圖像的訓(xùn)練,已被證明可以在實(shí)質(zhì)性處理和實(shí)際處理的權(quán)衡中提供令人印象深刻的物體識(shí)別結(jié)果。內(nèi)存要求。 (圖片由維基百科提供)
強(qiáng)烈建議在生產(chǎn)前進(jìn)行大量現(xiàn)場(chǎng)測(cè)試;不可避免地,您將遇到在產(chǎn)品開(kāi)發(fā)過(guò)程中未考慮的環(huán)境條件和使用場(chǎng)景,這將需要進(jìn)行算法微調(diào)。除了實(shí)現(xiàn)細(xì)微差別之外,將運(yùn)行開(kāi)源軟件(如OpenCV)的PIC32MZ EF MCU等經(jīng)濟(jì)高效的處理器與傳感器或相機(jī)模塊捕獲的圖像相結(jié)合,存儲(chǔ)到駐留閃存并通過(guò)網(wǎng)絡(luò)連接進(jìn)行傳輸,各種有趣的應(yīng)用:現(xiàn)有產(chǎn)品的增強(qiáng)和全新的產(chǎn)品類別。