胡峰濤 傅自鋼 李建民 羅升 何鑫
摘要:人物追蹤技術(shù)一直是當(dāng)代的熱門技術(shù)話題之一,其研究和發(fā)展能夠更好的改善人們的生活。而基于樹莓派的人物追蹤系統(tǒng)是這一技術(shù)發(fā)展的重要體現(xiàn)。該系統(tǒng)主要設(shè)計(jì)了基于OpenCV的視頻圖像處理模塊、人物距離測定模塊、車體控制模塊,并采用了基于OpenCV的人物特征值提取技術(shù)和超聲波測距技術(shù),涉及到了圖像處理中的掩膜處理和腐蝕膨脹等重要方法。各個(gè)模塊通過參數(shù)的讀取協(xié)調(diào)工作,完成對人物的鎖定和小車的追蹤。
關(guān)鍵詞:人物追蹤;視頻圖像處理;腐蝕膨脹;超聲波測距;掩膜
1概述
隨著人類社會(huì)的發(fā)展進(jìn)步,智能技術(shù)不斷地改善著人們的日常生活,對人們的影響越來越大。人物追蹤作為機(jī)器視覺的重要組成部分,其發(fā)展和研究對智能技術(shù)的進(jìn)一步提升以及人與機(jī)器之間交互的推動(dòng)有著巨大的促進(jìn)作用,而基于樹莓派的人物追蹤系統(tǒng)及其小車實(shí)現(xiàn)則是研究所得的重要成果。對于搭載了基于樹莓派的人物追蹤系統(tǒng)的智能小車,用戶可以通過不斷的自身移動(dòng)來實(shí)現(xiàn)小車的自動(dòng)移位以完成小車的跟隨和避障等任務(wù)。
2設(shè)計(jì)流程和模塊處理
2.1基本設(shè)計(jì)概念和處理流程
基于樹莓派的人物追蹤系統(tǒng)主要基于搭載有四核ARMCortex-A53 1.2GHz型CPU、1GB大小RAM芯片的3代B型樹莓派,并配有1個(gè)卡帶式樹莓派攝像頭、4個(gè)超聲波傳感器、1張16GB大小的SD卡,同時(shí)還帶有一個(gè)充電寶作為DC 5V/2.5A的電源輸入。而小車則主要有電機(jī)、底板、橡膠輪和測試用的樹莓派組成。當(dāng)小車上電后,小車便自動(dòng)開啟跟隨功能。小車的攝像頭會(huì)對準(zhǔn)用戶,當(dāng)人物開始移動(dòng)時(shí),小車的攝像頭會(huì)始終跟隨用戶并鎖定,以防止目標(biāo)發(fā)生錯(cuò)亂,并且小車在移動(dòng)過程中,會(huì)始終距離用戶1米左右的距離,以便用戶的活動(dòng),同時(shí)又能確保小車不會(huì)跟丟用戶。若用戶開始加速移動(dòng),小車也會(huì)做加速度不恒定的加速運(yùn)動(dòng),在此過程中,小車會(huì)不斷根據(jù)小車距用戶的距離來調(diào)整自身的速度直到距離恒定為1米為止。當(dāng)小車在跟隨的過程中檢測到行進(jìn)路上有障礙物時(shí),會(huì)自動(dòng)調(diào)整方向以繞開障礙物,并加速跟上用戶。當(dāng)小車檢測到用戶有大幅度的拐彎時(shí),小車會(huì)加速前進(jìn),將用戶與小車的距離縮短至0.5米以防止跟丟目標(biāo)。
2.2模塊的劃分和相關(guān)技術(shù)的運(yùn)用
基于樹莓派的人物追蹤系統(tǒng)及其小車實(shí)現(xiàn)主要設(shè)計(jì)了OpenCV視頻圖像處理模塊、人物距離測定模塊和車體控制模塊三個(gè)模塊。在小車工作期間,OpenCV視頻圖像處理模塊主要負(fù)責(zé)處理攝像頭視頻流,并獲取相關(guān)信息。人物距離測定模塊主要負(fù)責(zé)捕獲周圍的環(huán)境信息并測定小車與用戶之間的距離,車體控制模塊則負(fù)責(zé)處理OpenCV視頻圖像處理模塊和人物距離測定模塊所傳來的信息,并將之轉(zhuǎn)化為電機(jī)驅(qū)動(dòng)信息,驅(qū)動(dòng)小車前進(jìn),實(shí)現(xiàn)小車的跟隨。圖一介紹的是模塊的劃分以及與外部的聯(lián)系。
2.2.1基于OpenCV的人物特征值提取技術(shù)
為了防止小車的跟隨目標(biāo)發(fā)生混亂,小車必須通過處理攝像頭傳來的視頻流獲取人物的相關(guān)信息并鎖定,基于樹莓派的人物追蹤系統(tǒng)采用了基于OpenCV的人物特征值提取信息來完成任務(wù)的識別鎖定。當(dāng)小車開始工作時(shí),樹莓派攝像頭會(huì)不斷的捕獲圖像形成視頻流并傳給OpenCV視頻圖像處理模塊。當(dāng)OpenCV模塊接收到外部傳來的視頻流后,會(huì)以幀為單位去處理視頻流,每次處理一幀圖像,并通過基于OpenCV的人物特征值提取技術(shù)提取出用戶的特征值。圖二是特征值提取的基本流程。
基于OpenCV的人物特征值提取技術(shù)主要又分為兩部分:興趣部分識別技術(shù)和人物邊緣提取技術(shù)。下文將詳細(xì)闡述兩個(gè)技術(shù)。
1)興趣部分識別技術(shù)
掩膜處理是進(jìn)行圖像處理的常用方法之一,主要是用選定的圖像、圖形或物體,對待處理的圖像(全部或局部)進(jìn)行遮擋,來控制圖像處理的區(qū)域或處理過程。目的是為了提取感興趣區(qū),用預(yù)先制作的感興趣區(qū)掩模與待處理圖像相乘,得到感興趣區(qū)圖像,感興趣區(qū)內(nèi)圖像值保持不變,而區(qū)外圖像值都為0。興趣部分識別技術(shù)就是基于掩膜處理技術(shù)。為了提取圖像中的任務(wù)信息,必須對每次截取的一幀圖片進(jìn)行掩膜處理。在接收到一幀圖像后,基于OpenCV的視頻圖像處理模塊會(huì)調(diào)用OpenCV中的顏色空間轉(zhuǎn)換函數(shù):
cv.CvtColor(img,hsv,cv.CV_BGR2HSV)
顏色空間轉(zhuǎn)換函數(shù)會(huì)自動(dòng)將RGB的原圖像轉(zhuǎn)化為HSV型的圖像,在轉(zhuǎn)化完成后,模塊會(huì)調(diào)用OpenCV函數(shù)庫中另外一個(gè)用于掩膜處理的函數(shù):
cv.InRangeS(hsv,lower_blue,upper_blue,mask、
函數(shù)會(huì)對已經(jīng)生成的HSV型圖像進(jìn)行遮掩處理,通過參數(shù)的調(diào)整只保留感興趣的部分,并將其值設(shè)為1,這樣也能同時(shí)完成保留圖像的圖像二值化,為后面的人物邊緣提取操作打下基礎(chǔ)。
2)人物邊緣提取技術(shù)
腐蝕和膨脹是對圖像處理的另外一種手段,對圖像采取腐蝕和膨脹處理主要是為了消除噪聲、分割出獨(dú)立的圖像元素以及在圖像中連接相鄰的元素。其視覺效果便是使高亮區(qū)域更大或是更小。對于腐蝕來說,就是讓高亮區(qū)域更小,即被將處理的二值圖像中的每一個(gè)點(diǎn)與結(jié)構(gòu)元素中的中心點(diǎn)進(jìn)行重合比較,若結(jié)構(gòu)元素中的高亮點(diǎn)都在二值圖像的高亮點(diǎn)內(nèi),則該點(diǎn)設(shè)為高亮點(diǎn)。而對膨脹來說,就是讓高亮區(qū)域更大,基即將被處理的二值圖像中的所有點(diǎn)與結(jié)構(gòu)元素中的中心點(diǎn)重合比較,結(jié)構(gòu)元素中的高亮點(diǎn)只要有一個(gè)落在被處理的二值圖像的高亮區(qū)域中,則該點(diǎn)就設(shè)置為高亮點(diǎn)。人物邊緣提取技術(shù)就基于腐蝕和膨脹這兩種算法。在完成了對圖像的掩膜處理后,輸出的圖像首先會(huì)被進(jìn)行腐蝕處理,其主要目的是獲取人物的邊緣輪廓,基于樹莓派的人物追蹤系統(tǒng)會(huì)調(diào)用OpenCV函數(shù)庫中的腐蝕函數(shù):
cv.Erode(mask,eroded,element,iterations)
該函數(shù)會(huì)將被掩膜處理后的圖像的邊界提取出來,生成的圖像會(huì)被進(jìn)行膨脹處理,基于樹莓派的人物追蹤系統(tǒng)會(huì)調(diào)用OpenCV函數(shù)庫中的膨脹函數(shù)
cv.Dilate(eroded,dilated,element,iterations)
該函數(shù)會(huì)將腐蝕得到的人物邊緣輪廓進(jìn)行放大,以便更好更精準(zhǔn)的識別。在完成了這些操作后,基于樹莓派的人物追蹤系統(tǒng)便通過樹莓派攝像頭獲得了目標(biāo)的特征值,并且每一次截取一幀圖像后所得的特征值都會(huì)與上一次獲得的特征值進(jìn)行比較,若發(fā)現(xiàn)人物特征值出現(xiàn)偏移,樹莓派會(huì)自動(dòng)調(diào)整攝像頭以鎖定目標(biāo),當(dāng)系統(tǒng)確定了特征值后,便會(huì)將信息傳遞給車體控制模塊,以便實(shí)現(xiàn)跟隨任務(wù)。
2.2.2超聲波測距技術(shù)
由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測量。為了保持小車與用戶之間的距離并躲避沿途的障礙,小車上搭載了4個(gè)HC-SR04型超聲波測距儀,實(shí)時(shí)對周圍信息進(jìn)行采集并及時(shí)躲避障礙。圖3是超聲波測距基本流程。HC-SR0d共有4個(gè)引腳,分別為VCC、Trig、Echo和GND。當(dāng)小車開始工作時(shí),樹莓派會(huì)通過10口給出10微秒的高電壓來觸發(fā)Trig,當(dāng)Trig被觸發(fā)后,超聲波測距模塊會(huì)產(chǎn)生8個(gè)40KHz的方波,并檢測是否有方波返回,若檢測到有方波返回則會(huì)通過Echo引腳輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是方波從發(fā)射到返回所經(jīng)歷的時(shí)間。通過距離計(jì)算公式便可得出障礙物的距離,公式如下:
S=T×C
s為障礙路距小車的距離,T為高電平持續(xù)的時(shí)間,C為光速。由于沒有溫度補(bǔ)償,可能會(huì)有一點(diǎn)誤差,但對小車的影響可忽略不計(jì)。小車的4個(gè)超聲波測距儀分別搭載于小車的四周,每次同時(shí)發(fā)射超聲波檢測障礙物,人物距離測定模塊會(huì)自動(dòng)處理四個(gè)超聲波測距儀傳來的信息,并生成相應(yīng)的信號傳給車體控制模塊,使小車能夠朝著沒有障礙物的路線行進(jìn)。
3實(shí)測分析
為了測試基于樹莓派的人物追蹤系統(tǒng)的穩(wěn)定性,小車經(jīng)歷了大量的試驗(yàn)。在測試期間,小車的攝像頭能實(shí)時(shí)鎖定人物,并隨之轉(zhuǎn)動(dòng),同時(shí)還能指引小車追蹤人物。當(dāng)小車與人物距離在增大時(shí),小車能夠及時(shí)加速追上人物并將距離穩(wěn)定在1米左右。當(dāng)目標(biāo)人物有較大幅度的方向改變時(shí),小車會(huì)自動(dòng)縮短與人物之間的距離。若在途中遇到障礙物,小車會(huì)自動(dòng)調(diào)整方向,選擇一條無障礙物的路線繼續(xù)行進(jìn)。大量的實(shí)測數(shù)據(jù)能夠證明,基于樹莓派的人物追蹤系統(tǒng)已經(jīng)十分穩(wěn)定。圖4是用戶實(shí)測的流程。
4結(jié)論
本文就如何實(shí)現(xiàn)基于樹莓派的人物追蹤系統(tǒng)作了詳細(xì)的闡述,各個(gè)模塊通過信息的傳遞、參數(shù)的讀取來實(shí)現(xiàn)各個(gè)模塊之間協(xié)調(diào)工作,以實(shí)現(xiàn)人物特征值提取功能,超聲波自動(dòng)測距避障功能。并且在測試時(shí)期間,小車能夠流暢的實(shí)現(xiàn)障礙物的躲避和攝像頭對用戶的鎖定,最終達(dá)到了預(yù)期要求,完成了對人物的追蹤任務(wù)。