999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于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ā)展。利用視覺傳感器采集,進行靜態(tài)及動態(tài)目標圖像處理分析成為當下研究應(yīng)用的主題。如在家居安全監(jiān)測中,利用視覺系統(tǒng)對目標進行運動跟蹤和檢測,監(jiān)測和智能人機交互及分析目標行為,可分析發(fā)現(xiàn)異常行為,從而監(jiān)控系統(tǒng)發(fā)出報警,進而進行科學(xué)處理,從而提高日常生活質(zhì)量。計算機視覺其目的是分析、研宄讓計算機智能化一定程度實現(xiàn)人的眼睛和大腦感知外部環(huán)境,分析和執(zhí)行等功能[1]。而其中目標運動檢測與跟蹤是通過視頻圖像的處理,采用如閾值分割、高斯模糊、濾波算子等算法進一步掌握目標圖像的運動信息和特征,為后續(xù)執(zhí)行系統(tǒng)提供信息數(shù)據(jù)依據(jù),可以實現(xiàn)對運動物體的圖像檢測。

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

1.1 樹莓派

樹莓派是一款基于ARM的信用卡大小的單板計算機[2],擁有豐富的接口,能夠安裝任何ARM平臺的操作系統(tǒng),如Android、Windows等。一臺這么多接口的單板計算機,實際只有掌心大小,樹莓派CPU功耗低,處理能力強。比較其他開發(fā)板控制平臺,樹莓派提供的引腳能直接控制其他底層硬件。樹莓派細小靈活,性價比高,應(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è)備對處理平臺簡潔性的需求,而樹莓派作為一個微型計算機同樣可以進行圖像處理,只要通過OpenCV就可以在樹莓派上使用幀差法把樹莓派攝像頭采集到的圖像進行運動檢測,再通過控制程序就可以直接控制執(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)一個可以自動跟蹤目標并時刻拍攝的控制系統(tǒng),除了自動跟蹤外還可以通過控制調(diào)節(jié)攝像頭的拍攝方向。在這個設(shè)計中,要做到一個自動識別物體并且實現(xiàn)運動目標的監(jiān)測系統(tǒng),需具備這幾個模塊圖像傳感器采集模塊、圖像數(shù)據(jù)處理模塊、運動目標提取及跟蹤、執(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ù)傳輸以及信號初始處理等。圖像傳感器采集是圖像處理、確定邊緣、定位目標及執(zhí)行控制的前提。

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

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

(3)運動目標提取

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

(4)運動目標跟蹤

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

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

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

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

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

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

sudo raspi-config

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

(2)準備視頻流設(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語言進行編譯與優(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ù)圖像幀信息中進行對比或進行背景圖像分離等從而跟蹤得到運動目標的信息等。整個過程體系如圖3所示。

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

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

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

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

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

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

5 高斯模糊算法

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

式中, (,)Huv表示頻率域;σ表示高斯曲線標準差,是方差: (u,v)D表示傅里葉變換后某點距離遠點的距離。當 0Dσ= 時,即 0D取到截止頻率,當濾波器的頻率域下降到其最大值時,經(jīng)過這種濾波后能夠增強圖像的細節(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ù),進行圖像處理,通過OpenCV庫可以做到物體的自動識別和跟蹤。OpenCV庫的是C和C++所編寫的函數(shù)庫,它提供了Python的接口,可以用Python來調(diào)用OpenCV的函數(shù),結(jié)合了Python和CC++的優(yōu)點,選取幀差法、閾值分割、高斯模糊等合適高效的算法進行圖像序列的分析和處理,可以分析出運動物體的運動情況和軌跡,控制舵機轉(zhuǎn)動,實現(xiàn)目標物體的跟蹤。

猜你喜歡
檢測
QC 檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
“有理數(shù)的乘除法”檢測題
“有理數(shù)”檢測題
“角”檢測題
“幾何圖形”檢測題
主站蜘蛛池模板: 99久久精品免费看国产电影| 老司机午夜精品网站在线观看| 永久在线精品免费视频观看| 久久精品66| 香蕉视频在线观看www| 欧美a级在线| 在线精品视频成人网| 免费不卡视频| 欧美亚洲第一页| 亚洲黄色网站视频| 亚洲精品va| 国产噜噜噜| 日韩在线1| 精品国产黑色丝袜高跟鞋| 国产无码精品在线| 国产女人综合久久精品视| 一区二区三区精品视频在线观看| 青青青国产精品国产精品美女| av色爱 天堂网| 中文字幕在线日韩91| 亚洲国产理论片在线播放| 国产丰满成熟女性性满足视频| 日韩AV无码免费一二三区| 国产爽妇精品| 日本一本正道综合久久dvd| 亚洲精品第一页不卡| 亚洲色图欧美在线| 色综合中文| 国产一区三区二区中文在线| 天堂亚洲网| 国产欧美综合在线观看第七页| 女人一级毛片| 免费A级毛片无码免费视频| 亚洲无码一区在线观看| 久久久精品国产亚洲AV日韩| 久久久精品久久久久三级| 日韩不卡高清视频| a网站在线观看| 伊人中文网| yy6080理论大片一级久久| 国产精品刺激对白在线| 久久久久中文字幕精品视频| 国产一二三区在线| 全午夜免费一级毛片| 成人国产精品2021| 9966国产精品视频| 无码人妻免费| 亚洲精品欧美日韩在线| 精品视频福利| 久久精品免费看一| 国产成人91精品免费网址在线| 国产啪在线91| 中国黄色一级视频| 九月婷婷亚洲综合在线| 91午夜福利在线观看| 亚洲伦理一区二区| 97在线免费| 久草视频精品| 无码国产伊人| 91麻豆国产视频| 性欧美久久| 亚洲午夜福利在线| 国产va免费精品观看| 91网在线| 99热这里都是国产精品| 日本尹人综合香蕉在线观看| 日韩精品一区二区三区中文无码| 亚欧成人无码AV在线播放| 欧美成人精品高清在线下载| 2020极品精品国产 | 亚洲AV色香蕉一区二区| 久久精品日日躁夜夜躁欧美| 久久久久人妻一区精品色奶水 | 欧美成人影院亚洲综合图| 国产精品第一区| 国产乱视频网站| 免费不卡视频| 秋霞国产在线| 亚洲无码免费黄色网址| 国产91特黄特色A级毛片| 98精品全国免费观看视频| 色窝窝免费一区二区三区|