• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于OpenCV自動運動檢測控制系統(tǒng)設(shè)計

      2022-06-10 07:26:40鄒振興張國安梁俊銘
      電子制作 2022年11期
      關(guān)鍵詞:樹莓圖像處理高斯

      鄒振興,張國安,梁俊銘

      (廣東職業(yè)技術(shù)學(xué)院,廣東佛山,528041)

      0 引言

      近年來,隨著人工智能技術(shù)迅猛發(fā)展,計算機設(shè)備己經(jīng)深入涉及到社會生活中的各個方面,計算機機器視覺得到快速發(fā)展。利用視覺傳感器采集,進(jìn)行靜態(tài)及動態(tài)目標(biāo)圖像處理分析成為當(dāng)下研究應(yīng)用的主題。如在家居安全監(jiān)測中,利用視覺系統(tǒng)對目標(biāo)進(jìn)行運動跟蹤和檢測,監(jiān)測和智能人機交互及分析目標(biāo)行為,可分析發(fā)現(xiàn)異常行為,從而監(jiān)控系統(tǒng)發(fā)出報警,進(jìn)而進(jìn)行科學(xué)處理,從而提高日常生活質(zhì)量。計算機視覺其目的是分析、研宄讓計算機智能化一定程度實現(xiàn)人的眼睛和大腦感知外部環(huán)境,分析和執(zhí)行等功能[1]。而其中目標(biāo)運動檢測與跟蹤是通過視頻圖像的處理,采用如閾值分割、高斯模糊、濾波算子等算法進(jìn)一步掌握目標(biāo)圖像的運動信息和特征,為后續(xù)執(zhí)行系統(tǒng)提供信息數(shù)據(jù)依據(jù),可以實現(xiàn)對運動物體的圖像檢測。

      1 硬件選型與系統(tǒng)搭建

      1.1 樹莓派

      樹莓派是一款基于ARM的信用卡大小的單板計算機[2],擁有豐富的接口,能夠安裝任何ARM平臺的操作系統(tǒng),如Android、Windows等。一臺這么多接口的單板計算機,實際只有掌心大小,樹莓派CPU功耗低,處理能力強。比較其他開發(fā)板控制平臺,樹莓派提供的引腳能直接控制其他底層硬件。樹莓派細(xì)小靈活,性價比高,應(yīng)用成熟,開源代碼多,利于開發(fā)與應(yīng)用。樹莓派核心板及外接引腳圖如圖1所示。

      圖1 樹莓派核心板及外接引腳圖

      對比常規(guī)的8位單片機和32位嵌入式等控制器,樹莓派擁有豐富的I/O,還能搭配靈活的操作系統(tǒng),完成各種任務(wù)管理與調(diào)度,支持上層應(yīng)用的開發(fā),為了開發(fā)與設(shè)計提供更多的可能性和可靠性。隨著圖像處理技術(shù)發(fā)展和各種微型計算機研發(fā),使用傳統(tǒng)計算機作為處理圖像的平臺已經(jīng)無法滿足很多運動檢測設(shè)備對處理平臺簡潔性的需求,而樹莓派作為一個微型計算機同樣可以進(jìn)行圖像處理,只要通過OpenCV就可以在樹莓派上使用幀差法把樹莓派攝像頭采集到的圖像進(jìn)行運動檢測,再通過控制程序就可以直接控制執(zhí)行機構(gòu)。所以把OpenCV與樹莓派結(jié)合起來處理圖像就可以得到一個簡潔高效的自動運動檢測控制系統(tǒng)。

      1.2 Linux系統(tǒng)

      Linux是開源免費和自由傳播的操作系統(tǒng),具有豐富的社區(qū)資源。開源能讓用戶自由裁剪,靈活性高,功能強大,成本低。Linux的開源性和穩(wěn)定性,都能更好地使用戶調(diào)用硬件功能,方便了查看資源的利用率。

      無論是Linux的開源性、多線程、多任務(wù)的性能優(yōu)點,還是其別具一格的開發(fā)用途都使得用戶在學(xué)習(xí)和開發(fā)上的難度有一定的降低,尤其是Linux的開源性對本次設(shè)計有很大的幫助,由于本設(shè)計作品需要連接局域網(wǎng)之外還需要配置相關(guān)的編譯軟件和開發(fā)環(huán)境,所以Linux的開源性在搭建開發(fā)環(huán)境上就有了很大的便利性。

      2 系統(tǒng)設(shè)計思路

      基于OpenCV自動運動檢測控制系統(tǒng)是由一塊4B、2GB的樹莓派、2個可調(diào)舵機和1個攝像頭所組成。開發(fā)環(huán)境是在Linux系統(tǒng)上使用Python調(diào)用OpenCV數(shù)據(jù)庫來實現(xiàn)一個可以自動跟蹤目標(biāo)并時刻拍攝的控制系統(tǒng),除了自動跟蹤外還可以通過控制調(diào)節(jié)攝像頭的拍攝方向。在這個設(shè)計中,要做到一個自動識別物體并且實現(xiàn)運動目標(biāo)的監(jiān)測系統(tǒng),需具備這幾個模塊圖像傳感器采集模塊、圖像數(shù)據(jù)處理模塊、運動目標(biāo)提取及跟蹤、執(zhí)行舵機動作模塊等這些流程。其設(shè)計思路如圖2所示。

      圖2 設(shè)計思路圖

      (1)圖像傳感器采集

      圖像傳感器采集模塊是利用傳感器內(nèi)部的光電器件的光電轉(zhuǎn)換功能。將感光面上的光像轉(zhuǎn)換為與光像成相應(yīng)比例關(guān)系的電信號,從而實現(xiàn)對研究對象的視頻及圖像信息的抓取。包含了傳感器視頻數(shù)據(jù)的采集、傳感器采集圖像顯示幀數(shù)和分辨率的調(diào)整、數(shù)據(jù)傳輸以及信號初始處理等。圖像傳感器采集是圖像處理、確定邊緣、定位目標(biāo)及執(zhí)行控制的前提。

      (2)圖像數(shù)據(jù)處理

      傳感器采集數(shù)據(jù)后,往往是進(jìn)行數(shù)據(jù)處理,由于圖像往往會受環(huán)境的影響,存在噪聲的干擾、亮度不足、曝光不足或過度等情況,這樣的數(shù)據(jù)是會增加處理難度、產(chǎn)生濾波的延長及邊緣不清晰等。因此可以傳感器采集到的視頻圖像數(shù)據(jù)進(jìn)行預(yù)處理,進(jìn)行濾波處理去除干擾,實現(xiàn)顏色空間轉(zhuǎn)換、亮度和色度達(dá)到合理,方便二值化的處理使邊緣清晰,減少算法處理時間。這部分是實現(xiàn)運動目標(biāo)檢測的關(guān)鍵。

      (3)運動目標(biāo)提取

      運動監(jiān)測技術(shù)日益成熟,視頻圖像信息通常包括多個元素,但一般背景是相對固定的,相近各幀特征變化不大,所以運動目標(biāo)的提取也成為可能。運動目標(biāo)提取主要就是在圖像數(shù)據(jù)序列中檢測出運動目標(biāo),并將前景與背景圖像做分割處理,再做目標(biāo)跟蹤算法,這方面的算法常見有光流法、幀間差分法、背景減除法等。

      (4)運動目標(biāo)跟蹤

      在系統(tǒng)設(shè)計中要求監(jiān)測對象要在圖像處理模板的中心,所以記得多監(jiān)測對象的運動軌跡進(jìn)行控制。目標(biāo)跟蹤算法就是在相鄰每幀圖像之間的數(shù)據(jù)形成與監(jiān)測對象匹配的關(guān)系。把運動目標(biāo)在數(shù)據(jù)序列中一一對應(yīng),再通過模板匹配和算法計算得到運動目標(biāo)的中心、定位、路線、速度等特征與參數(shù)。進(jìn)一步將這些參數(shù)輸送給后續(xù)算法處理分析,最終實現(xiàn)對運動目標(biāo)的跟蹤和定位分析。

      (5) 執(zhí)行舵機動作

      舵機接收到上級信息信號后,執(zhí)行動作,往往是系統(tǒng)的后續(xù)執(zhí)行機構(gòu)。執(zhí)行舵機根據(jù)信號往往會判斷圖像視頻中目標(biāo)物體在拍攝窗口內(nèi)移動的情況,按照設(shè)定的條件算法進(jìn)行運動動作,達(dá)到指定位置。

      3 軟件環(huán)境搭建

      在Linux系統(tǒng)下搭建OpenCV開發(fā)環(huán)境需要以下步驟:

      (1)首先要啟用攝像頭,進(jìn)入Interfacing Options->Camera->Yes,即可啟用攝像頭。

      sudo raspi-config

      檢測攝像頭是否正常,可以使用以下命令進(jìn)行檢測:raspivid -t 0 -cs 0

      (2)準(zhǔn)備視頻流設(shè)備,在OpenCV中,若要讀取攝像頭數(shù)據(jù),需要開啟v4l2(video for linux 2),開啟后,攝像頭設(shè)備文件為/dev/video0,OpenCV將從該文件中讀取視頻流文件。

      sudo vim /etc/modules

      (3)更換樹莓派軟件源

      # 編輯 `/etc/apt/sources.list` 文件,刪除原文件所有內(nèi)容,用以下內(nèi)容取代:

      git clone -b 4.1.0 --recursive https://github.com/opencv/opencv_contrib.git

      4 OpenCV的運動檢測設(shè)計

      運動檢測設(shè)計這部分是往往最復(fù)雜的,不僅要把物體和背景區(qū)分開來,還要讓機器知道物體是否在移動,這需要大量的算法和數(shù)據(jù)處理支持,所幸的是在C和C++的庫里有這么一個數(shù)據(jù)庫可以支持計算機視覺程序開發(fā)的,這就是OpenCV函數(shù)庫。它可以在Windows、Linux、Mac OS等系統(tǒng)上面運行。由于它的底層是C和C++所以O(shè)penCV數(shù)據(jù)的處理能力很強, OpenCV是一個廣泛應(yīng)用于視頻圖像處理、機器視覺方、運動監(jiān)測等方面的開源函數(shù)庫,該庫主要采用C語言進(jìn)行編譯與優(yōu)化,編程靈活數(shù)據(jù)處理快。OpenCV具有模塊化結(jié)構(gòu)能為設(shè)計友好的視覺對接函數(shù)提供簡便的支撐,這意味著該包包含多個共享庫或靜態(tài)庫。這次設(shè)計加上使用Python作為開發(fā)語言,其數(shù)據(jù)與函數(shù)的調(diào)用能力相結(jié)合使得這一獲取視頻和識別物體的程序變得簡單和方便了起來。

      基于OpenCV的運動物體的視頻檢測原理:根據(jù)監(jiān)測對象的圖像處理提取特征信息,如邊緣、二值化圖像等, 在捕獲連續(xù)圖像幀信息中進(jìn)行對比或進(jìn)行背景圖像分離等從而跟蹤得到運動目標(biāo)的信息等。整個過程體系如圖3所示。

      圖3 圖像分離背景程序流程圖

      視頻圖像預(yù)處理:是針對于捕獲到的視頻流信息進(jìn)行圖像處理。預(yù)處理目的是平滑圖像濾除噪點,然后再進(jìn)行邊緣檢測輪廓提取等處理,為圖像特征提取分析與處理打好基礎(chǔ)。

      捕獲最小包圍領(lǐng)域,從其中圖像中提取目標(biāo)對象可以進(jìn)一步減小算法計算量提高圖像處理時間,也可以對圖像進(jìn)行灰度處理、閾值分割及二值化處理等。采用幀差法將相鄰的兩幀圖像對應(yīng)像素點進(jìn)行相減而得到運動目標(biāo)數(shù)據(jù)[3]。在幀差法運動檢測前對灰度圖像可進(jìn)行濾波平滑。然后使用灰度重心法確定運動物體的坐標(biāo),進(jìn)而將背景與目標(biāo)分離。為減小噪聲對運動檢測的影響,可對運動檢測結(jié)果進(jìn)行閾值分割,閾值分割處理得到運動物體的二值化圖像。對于從圖像中提取目標(biāo)對象,本質(zhì)就是對于目標(biāo)邊緣檢測及分割的過程。通常就是利用圖像像素之間的差異性,判斷是否有運動目標(biāo),算法處理步驟一般為相鄰幀對比相減、閾值分割、濾波噪聲、膨脹處理、邊緣檢測、繪制外接矩形區(qū)域等,其中閾值的選擇也很重要,閾值過低無法去除噪聲,太高則影響圖像中變化數(shù)據(jù),可能會無法提取完整運動目標(biāo)信息。

      在OpenCV中可將運動部分劃為感興趣區(qū)域ROI(region of interest)[4],來計算出運動目標(biāo)的幾何中心。ROI的幾何中心在運動目標(biāo)上,通過計算ROI幾何中心的坐標(biāo),可得出其與圖像中心的距離,通過控制執(zhí)行機構(gòu),將幾何中心與圖像中心重合則選定運動目標(biāo)中心。計算采集到的圖像的中心坐標(biāo)算法用灰度重心法?;叶戎匦姆ㄔ砭褪菍^(qū)域內(nèi)每一個像素位置處的灰度值當(dāng)作該點的質(zhì)點,其求區(qū)域中心的公式如下:

      (1)式中,f(u,v)是坐標(biāo)為 (u,v)的像素點的灰度值, Ω是目標(biāo)區(qū)域的集合,是區(qū)域的中心坐標(biāo)。

      設(shè)計過程中還需留意OpenCV的設(shè)置,因為它是C和C++所提供的庫,所有OpenCV類和函數(shù)都放在cv命名空間中。因此,要從代碼中訪問此功能,需要在程序中說明cv:符或using namespace cv;指令,由于設(shè)計需要用到Python來進(jìn)行編譯程序所以需要把OpenCV和Python對接,而OpenCV for Python就是通過NumPy進(jìn)行綁定的,如果讀取圖像首先要導(dǎo)入OpenCV包。

      5 高斯模糊算法

      對于檢測物體圖像可以利用幀差法可將背景與目標(biāo)分離,從而獲得的前景和背景的差圖,再使用閾值分割技術(shù),從而將目標(biāo)物體分離出圖像。在本項目設(shè)計中使用OpenCV處理圖像時除了用閾值分割法之外,還用到了高斯模糊算法。高斯模糊可有效過濾掉可能被誤認(rèn)為運動檢測目標(biāo)的高斯噪聲[5],所謂模糊其實相當(dāng)就是將每一個像素都取周邊像素的平均值。高斯模糊本質(zhì)是屬于低通濾波器,它是將正態(tài)分布用到了圖像處理中,處理得出圖像的每個像素點是原圖像相應(yīng)像素點與相鄰像素點的加權(quán)和。其計算公示如下所示:

      式中, (,)Huv表示頻率域;σ表示高斯曲線標(biāo)準(zhǔn)差,是方差: (u,v)D表示傅里葉變換后某點距離遠(yuǎn)點的距離。當(dāng) 0Dσ= 時,即 0D取到截止頻率,當(dāng)濾波器的頻率域下降到其最大值時,經(jīng)過這種濾波后能夠增強圖像的細(xì)節(jié)部分。即在保證全部圖像清晰的同時又能濾除局部的干擾噪聲。

      使用cv2做高斯模糊,需要調(diào)用GaussianBlur函數(shù)

      void GaussianBlur( InputArray src,OutputArray dst, Size ,Ksize double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT )

      Ksize 為高斯濾波器窗口大??;double sigmaX 為X方向濾波系數(shù);

      double sigmaY=0 為Y方向濾波系數(shù)。

      6 總結(jié)

      通過實驗證明,本文選用樹莓派作為運動檢測的核心硬件,使用智能攝像頭結(jié)合了庫和實時釆集視頻幀數(shù)據(jù),進(jìn)行圖像處理,通過OpenCV庫可以做到物體的自動識別和跟蹤。OpenCV庫的是C和C++所編寫的函數(shù)庫,它提供了Python的接口,可以用Python來調(diào)用OpenCV的函數(shù),結(jié)合了Python和CC++的優(yōu)點,選取幀差法、閾值分割、高斯模糊等合適高效的算法進(jìn)行圖像序列的分析和處理,可以分析出運動物體的運動情況和軌跡,控制舵機轉(zhuǎn)動,實現(xiàn)目標(biāo)物體的跟蹤。

      猜你喜歡
      樹莓圖像處理高斯
      小高斯的大發(fā)現(xiàn)
      天才數(shù)學(xué)家——高斯
      基于樹莓派的騎行智能頭盔設(shè)計
      電子制作(2019年11期)2019-07-04 00:34:32
      機器學(xué)習(xí)在圖像處理中的應(yīng)用
      電子制作(2018年18期)2018-11-14 01:48:20
      基于樹莓派的遠(yuǎn)程家居控制系統(tǒng)的設(shè)計
      電子制作(2017年17期)2017-12-18 06:40:43
      模糊圖像處理,刑事偵查利器
      圖像處理技術(shù)的實戰(zhàn)應(yīng)用
      響應(yīng)面法優(yōu)化紅樹莓酒發(fā)酵工藝
      中國釀造(2016年12期)2016-03-01 03:08:19
      有限域上高斯正規(guī)基的一個注記
      Photo Shop通道在圖像處理中的應(yīng)用
      河南科技(2014年1期)2014-02-27 14:04:06
      巫山县| 称多县| 凤城市| 定远县| 商河县| 乌鲁木齐市| 江孜县| 宁都县| 织金县| 永修县| 会同县| 台东县| 旺苍县| 毕节市| 英德市| 新建县| 西充县| 马山县| 正阳县| 佛山市| 宁津县| 隆德县| 高淳县| 洛浦县| 武威市| 平乡县| 台东市| 剑阁县| 天全县| 灵璧县| 尖扎县| 崇文区| 卓资县| 尖扎县| 平乡县| 扎兰屯市| 大余县| 来宾市| 米林县| 临武县| 喜德县|