陳雪嬌
摘要:該文基于OpenCV的計(jì)算機(jī)視覺技術(shù)進(jìn)行研究,探討了視頻中計(jì)算機(jī)對(duì)運(yùn)動(dòng)物體視覺檢測的原理,并對(duì)OpenCV的應(yīng)用情況進(jìn)行說明,闡述了基于OpenCV的計(jì)算機(jī)視覺技術(shù)體系,最終重點(diǎn)敘述了計(jì)算機(jī)視覺三維模擬技術(shù),以期能為相關(guān)工作提供參考。
關(guān)鍵詞:OpenCV;計(jì)算機(jī)視覺技術(shù);三維模擬技術(shù)
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)30-0137-02
21世紀(jì)是國際計(jì)算機(jī)技術(shù)高度發(fā)展的時(shí)代,人們生活中的每個(gè)角落都可以看到計(jì)算機(jī)技術(shù)的身影,尤其是現(xiàn)代計(jì)算機(jī)視覺技術(shù)和圖像處理功能發(fā)展更加迅猛,各技術(shù)分支也逐漸趨于成熟。計(jì)算機(jī)視覺技術(shù)主要指的就是利用智能計(jì)算機(jī)系統(tǒng)來代替人類的眼睛對(duì)現(xiàn)實(shí)三維世界進(jìn)行辨識(shí)和理解,整個(gè)過程均是計(jì)算機(jī)自我學(xué)習(xí)的過程,而隨著這項(xiàng)技術(shù)研究的不斷深入,其不再僅僅包含計(jì)算機(jī)技術(shù)科學(xué),同時(shí)還涉獵了包括生理學(xué)、神經(jīng)學(xué)、物理學(xué)、應(yīng)用數(shù)學(xué)等多門學(xué)科,為人類科技的進(jìn)步提供了有效的動(dòng)力。
1 計(jì)算機(jī)對(duì)視頻中運(yùn)動(dòng)物體檢測的原理概述
在現(xiàn)代計(jì)算機(jī)技術(shù)基礎(chǔ)下,對(duì)視頻當(dāng)中的運(yùn)動(dòng)物體檢測原理主要包括兩種,分別是從微觀和宏觀的角度出發(fā)。其中宏觀檢測技術(shù)指的是當(dāng)計(jì)算機(jī)截取了視頻中的某一個(gè)圖像,其以整幅圖像為對(duì)象進(jìn)行檢測;微觀檢測技術(shù)是指在截取圖像后,根據(jù)實(shí)際需求對(duì)某一區(qū)域內(nèi)的圖像內(nèi)容進(jìn)行檢測。在計(jì)算機(jī)視覺技術(shù)實(shí)際應(yīng)用時(shí),其第一步就是對(duì)圖像的采集,第二步是對(duì)已經(jīng)采集的圖像進(jìn)行預(yù)分析處理,如果采用宏觀檢測技術(shù)則對(duì)圖像整體進(jìn)行分析;如果采用微觀檢測技術(shù)則首先將圖像進(jìn)行分割,然后對(duì)分割后各圖像內(nèi)容中出現(xiàn)的運(yùn)動(dòng)物體影像進(jìn)行分析。在圖像數(shù)據(jù)獲取過程中應(yīng)用的是背景差分法,這一技術(shù)主要是將背景和運(yùn)動(dòng)物體進(jìn)行分離提取,以獲取沒有背景圖像的運(yùn)動(dòng)物體影像數(shù)據(jù)。還可以利用幀間差分法,這種方法主要是對(duì)一個(gè)視頻圖像的逐幀畫面進(jìn)行差別比較,從而獲得各幀圖像上的差值,而將這些差值幀圖結(jié)合起來就是一個(gè)物體在計(jì)算機(jī)視覺下的運(yùn)動(dòng)軌跡?,F(xiàn)代研究者更傾向于將背景和幀間差分法進(jìn)行結(jié)合運(yùn)用,這樣可以獲得無背景下的運(yùn)動(dòng)物體軌跡,進(jìn)而提升計(jì)算機(jī)視覺系統(tǒng)捕捉數(shù)據(jù)的準(zhǔn)確性。
2 OpenCV的應(yīng)用概述
OpenCV是現(xiàn)代計(jì)算機(jī)視覺技術(shù)當(dāng)中具有開源性的視覺庫,其最早是由俄羅斯Intel分公司所研發(fā),不僅高效,而且具有兼容的優(yōu)勢。同時(shí)與傳統(tǒng)IPL圖像處理系統(tǒng)相比,OpenCV所處理的圖像數(shù)據(jù)等級(jí)更高,例如在對(duì)運(yùn)動(dòng)物體進(jìn)行特征跟蹤、目標(biāo)分割、運(yùn)動(dòng)軌跡分析以及三維模型重建等方面都有著巨大的優(yōu)勢。
OpenCV本身編輯的源代碼是開放式的,編寫過程簡潔且方便,并且程序中大多數(shù)函數(shù)已經(jīng)通過了匯編的最優(yōu)化,使其能夠更加高效地被應(yīng)用。在使用OpenCV的攝像機(jī)標(biāo)定模塊已經(jīng)為用戶設(shè)計(jì)了實(shí)用性較強(qiáng)的接口,并且能夠支持Windows界面的操作平臺(tái),使得這一技術(shù)的操作更加簡便。這一技術(shù)本身操作簡便,對(duì)于編程人員和檢驗(yàn)人員個(gè)人技能素質(zhì)要求并不高,視覺技術(shù)系統(tǒng)研發(fā)人員可以利用簡便的操作來檢驗(yàn)其設(shè)想是否能夠?qū)崿F(xiàn),這就使得現(xiàn)代計(jì)算機(jī)視覺技術(shù)開發(fā)團(tuán)隊(duì)能夠形成更好的協(xié)作研發(fā)關(guān)系,進(jìn)一步提升技術(shù)研究效率。目前已知OpenCV編程系統(tǒng)在航空航天定位、衛(wèi)星地圖繪制、工廠大規(guī)模生產(chǎn)視覺檢測等方面得到了廣泛的應(yīng)用,同時(shí)對(duì)于無人飛行器的視覺捕捉技術(shù)也有極大的幫助。最為重要的是OpenCV編程語言的兼容性較強(qiáng),編程人員可以根據(jù)自己的意愿對(duì)源代碼進(jìn)行披露,并且國內(nèi)也已經(jīng)形成了規(guī)模較大的交流社區(qū),給更多同行業(yè)者提供答疑解惑的場所,進(jìn)一步擴(kuò)大了OpenCV的應(yīng)用范圍。
3 基于OpenCV的計(jì)算機(jī)視覺技術(shù)
3.1 基于OpenCV下的運(yùn)動(dòng)物體檢測技術(shù)
在常規(guī)運(yùn)動(dòng)物體檢測技術(shù)下,均是直接通過圖像背景和運(yùn)動(dòng)物體的區(qū)分來實(shí)現(xiàn)運(yùn)動(dòng)物體的捕捉。而基于OpenCV下的運(yùn)動(dòng)物體檢測技術(shù)則不僅能夠針對(duì)于圖像背景的分離實(shí)現(xiàn)運(yùn)動(dòng)物體的觀察,還可通過物體本身特定的信息來進(jìn)行檢測,主要包括形狀、輪廓以及顏色等。這樣就能夠?qū)崿F(xiàn)在復(fù)雜的背景當(dāng)中將特定的運(yùn)動(dòng)物體完整抽離出來。其基本流程包括:首先,對(duì)影像數(shù)據(jù)當(dāng)中某一時(shí)間點(diǎn)的圖像進(jìn)行捕捉,然后對(duì)這一視頻圖像的格式進(jìn)行轉(zhuǎn)化;其次,對(duì)轉(zhuǎn)化格式后的視頻圖像進(jìn)行早期處理,并將運(yùn)動(dòng)物體和復(fù)雜的背景區(qū)分開,降低周圍各環(huán)境因素對(duì)運(yùn)動(dòng)物體主體圖像的影響;第三,根據(jù)完成提取后的運(yùn)動(dòng)物體圖像進(jìn)行辨識(shí),然后再從視頻當(dāng)中捕捉擁有相同特征的物體,并對(duì)該物體進(jìn)行跟蹤識(shí)別。而這一過程的實(shí)質(zhì)則在于先利用圖像捕捉技術(shù)對(duì)畫面進(jìn)行截取,然后同時(shí)利用背景差分法和幀間差分法對(duì)圖像進(jìn)行分割,逐幀地將運(yùn)動(dòng)物體完成提取出來,以供計(jì)算機(jī)進(jìn)行視覺跟蹤處理。
3.2 基于OpenCV的圖像預(yù)處理技術(shù)
一般情況下,計(jì)算機(jī)視覺處理技術(shù)應(yīng)用的環(huán)境情況較為復(fù)雜,大多數(shù)應(yīng)用環(huán)境當(dāng)中均有光照的變化,并且部分計(jì)算機(jī)視覺處理設(shè)備還需要在露天環(huán)境下進(jìn)行工作,此時(shí)周圍環(huán)境中的風(fēng)、溫度、光照、氣候以及運(yùn)動(dòng)物體數(shù)量等對(duì)視頻圖像的采集均有著極大的影響。環(huán)境因素會(huì)使圖像采集的質(zhì)量大幅度降低,同時(shí)圖像當(dāng)中的噪點(diǎn)問題也難以避免,而噪點(diǎn)是視覺捕捉和圖像處理當(dāng)中最大的影響因素。因此,在基于OpenCV下的計(jì)算機(jī)視覺技術(shù)在捕捉視頻圖像之后先對(duì)其進(jìn)行預(yù)處理,然后再由系統(tǒng)對(duì)運(yùn)動(dòng)物體進(jìn)行分離、檢測和跟蹤。一般的預(yù)處理過程主要包括平滑度濾波、圖像填充、背景實(shí)時(shí)更新等。
1)圖像的平滑度濾波預(yù)處理技術(shù)
由于在實(shí)際計(jì)算機(jī)視覺捕捉過程中圖像噪點(diǎn)是難以避免的問題,以此在對(duì)圖像中運(yùn)動(dòng)物體進(jìn)行檢測前,應(yīng)該相對(duì)這些噪點(diǎn)進(jìn)行預(yù)處理,降低環(huán)境噪聲對(duì)圖像的影響。圖像的平滑度濾波處理共分為兩種方式,分別為線性和非線性。其中線性處理方式就是通過計(jì)算機(jī)處理設(shè)備的簡單運(yùn)算,對(duì)圖像當(dāng)中的噪點(diǎn)進(jìn)行直接清除,但這一技術(shù)使用后會(huì)造成截獲圖像模糊不清的情況,因此僅對(duì)噪點(diǎn)較少的圖像采用該處理方式;非線性濾波處理則是利用復(fù)雜的圖像處理運(yùn)算,將截獲圖像當(dāng)中的噪點(diǎn)無限縮小,使其不對(duì)圖像整體造成影響,并且可以有效保證圖像的局部調(diào)整,但這種處理方式在運(yùn)算時(shí)速度沒有線性濾波處理快,因此需應(yīng)用在噪點(diǎn)較多,圖像信息較復(fù)雜的處理當(dāng)中。
2)圖像的填充預(yù)處理技術(shù)
這一處理技術(shù)在使用過程中運(yùn)算速度較慢,主要是由于其需要對(duì)逐幀的圖像均進(jìn)行處理,也包括兩種處理方式,分別為邊緣填充和腐蝕膨脹處理。其中邊緣填充處理主要指的是在確定運(yùn)動(dòng)物體之后,利用計(jì)算機(jī)系統(tǒng)自身的邊緣檢測處理技術(shù),對(duì)物體的輪廓進(jìn)行辨識(shí),并利用形態(tài)學(xué)上的漫水填充方式對(duì)運(yùn)動(dòng)物體周圍的噪點(diǎn)進(jìn)行顏色填充,減小其對(duì)畫面整體元素的影響。而腐蝕膨脹處理與邊緣填充處理原理相類似,但這種處理技術(shù)主要是針對(duì)于噪點(diǎn)進(jìn)行腐蝕和膨脹,使其在畫面當(dāng)中所占比例擴(kuò)大,但對(duì)運(yùn)動(dòng)物體本身不造成影響,這使運(yùn)動(dòng)物體和噪點(diǎn)之間的差異就會(huì)更加明顯,就可以將噪點(diǎn)的影響降到最低,但這種處理方法的效果和攝像機(jī)本身的性能、質(zhì)量等有著密切的關(guān)聯(lián)。
3)背景的實(shí)時(shí)更新預(yù)處理技術(shù)
在進(jìn)行運(yùn)動(dòng)物體和背景分離過程中,計(jì)算機(jī)系統(tǒng)需要對(duì)圖像上的背景元素進(jìn)行辨識(shí),并對(duì)其開展初始化處理,這樣就能夠?yàn)楹笃趯?shí)時(shí)背景圖像的差異進(jìn)行凸顯,以增加前景圖像的效果,降低噪點(diǎn)對(duì)圖像的影響。在運(yùn)用這一技術(shù)時(shí),首先要先對(duì)第一幀的圖像進(jìn)行確定,并將第一幀圖像當(dāng)中的背景圖像元素進(jìn)行辨識(shí),然后在后期圖像更新和運(yùn)動(dòng)物體檢測過程中對(duì)背景進(jìn)行實(shí)時(shí)更新處理。在更新的過程中其流程主要包括:首先,系統(tǒng)要對(duì)所讀取的畫面進(jìn)行有效的判斷,了解該圖像是否為第一幀;其次,將Opencv處理的圖像轉(zhuǎn)變?yōu)閱瓮ǖ阑叶戎?;第三,?duì)轉(zhuǎn)變后的圖像進(jìn)行高斯平滑度濾波處理,將圖像當(dāng)中的噪點(diǎn)進(jìn)行去除;第四,采用形態(tài)學(xué)噪點(diǎn)填充技術(shù)對(duì)圖像當(dāng)中的噪點(diǎn)進(jìn)行二次處理,以獲得所需要更新的背景圖像。
3.3 前景運(yùn)動(dòng)物體的提取技術(shù)
在計(jì)算機(jī)視覺技術(shù)進(jìn)行運(yùn)動(dòng)物體的檢測時(shí),只有有效保障檢測流程的準(zhǔn)確度,才能夠有效保障對(duì)前景運(yùn)動(dòng)物體的跟蹤效果。其主要分為兩大步驟,其一是對(duì)二值化后的圖像數(shù)據(jù)進(jìn)行分割處理;其二是在圖像分析前對(duì)其進(jìn)行充分的填充處理,保證前景圖數(shù)據(jù)的完整性。同時(shí),在前景圖像提取的過程中也分為多個(gè)步驟,其包括:首先,對(duì)所提出的前景圖像和背景圖像進(jìn)行差分處理;其次,將差分處理后的圖像二值化處理;第三,對(duì)背景當(dāng)中前景物體的輪廓或邊緣進(jìn)行辨識(shí),根據(jù)前景圖像的輪廓對(duì)其進(jìn)行填充。由于在實(shí)際操作過程中,攝像頭所處環(huán)境的變化較大,并且會(huì)在不同場所內(nèi)的不同角度捕捉畫面,因此就需要在前景圖像提取時(shí)有效提高背景圖像實(shí)時(shí)更新的效果。
利用閥值二值化的分割方式能夠有效將前景圖像和背景圖像分離開,從而使目標(biāo)運(yùn)動(dòng)物體能夠呈現(xiàn)獨(dú)立化,并且閥值分割方式開展前要相對(duì)每個(gè)像素點(diǎn)進(jìn)行確定,判斷其是否位于灰度值的范圍內(nèi)。而將該圖像的像素灰度和閥值進(jìn)行對(duì)比后會(huì)出現(xiàn)兩種結(jié)果,分別是灰度值低于或高于閥值。在實(shí)際應(yīng)用過程中,有效確定圖像的分割閥值T,就能夠降低環(huán)境當(dāng)中光照因素對(duì)圖像質(zhì)量的影響。
4 計(jì)算機(jī)視覺技術(shù)當(dāng)中的三維重建技術(shù)
1)三維重建的視覺系統(tǒng)
計(jì)算機(jī)視覺技術(shù)在對(duì)圖像進(jìn)行捕捉時(shí)可以視為是對(duì)大量的圖像信息進(jìn)行處理,從攝像機(jī)的視覺角度出發(fā),其所輸入的圖像一般為二維屬性,但輸出的信息確是三維數(shù)據(jù),而這種三維空間數(shù)據(jù)能夠提升對(duì)運(yùn)動(dòng)物體所處空間位置、距離等描述的準(zhǔn)確性。在三維重建視覺系統(tǒng)工作過程中,其相對(duì)基本的圖像數(shù)據(jù)框架進(jìn)行確定,然后利用一個(gè)坐標(biāo)點(diǎn)建立2.5D圖像數(shù)據(jù),即以此點(diǎn)為視角能夠觀察到的圖像數(shù)據(jù),再將2.5D圖像數(shù)據(jù)進(jìn)行整合從而建立三維圖像。
2)雙目視覺系統(tǒng)
當(dāng)人體利用雙眼在不同角度、同一時(shí)間內(nèi)觀察同一個(gè)物體時(shí),就可以利用算法來測量該物體和人體之間的距離,而這種方法也被稱為雙目立體感,其應(yīng)用的原理主要是人體視覺差所帶來的影響。同時(shí)利用兩臺(tái)攝像機(jī)對(duì)同一圖像從不同角度進(jìn)行觀察,就能夠獲得人體雙目觀察后的效果,因此這一三維重建技術(shù)也被稱為“雙目視覺系統(tǒng)”。兩臺(tái)不同的攝像機(jī)即可代表人體雙眼,其對(duì)圖像進(jìn)行逐幀捕獲,但由于角度不同和環(huán)境影響因素的差異,因此造成了圖像差異,必須對(duì)其捕捉的圖像進(jìn)行預(yù)處理。
3)三維重構(gòu)算法
在計(jì)算機(jī)視覺技術(shù)中對(duì)于視頻流的采集主要依靠的是彩色攝像機(jī)、紅外攝像機(jī)、紅外接收攝像頭等設(shè)備。還可以利用微軟所提供的Kinect設(shè)備,在進(jìn)行運(yùn)動(dòng)物體檢測前能夠?qū)UI進(jìn)行初始化處理,將系統(tǒng)內(nèi)函數(shù)的參數(shù)設(shè)定為用戶信息深度圖、彩圖、骨骼追蹤圖等數(shù)據(jù)。在使用Kinect設(shè)備對(duì)視頻流進(jìn)行打開時(shí),其可以遵循三個(gè)步驟,其一是彩色和深度數(shù)據(jù)的處理;其二是根據(jù)數(shù)據(jù)的索引添加顏色信息,并將其引入到深度圖數(shù)據(jù)當(dāng)中;其三是骨骼追蹤數(shù)據(jù)。
5 結(jié)束語
計(jì)算機(jī)視覺捕捉技術(shù)是現(xiàn)代計(jì)算機(jī)應(yīng)用當(dāng)中較為先進(jìn)的內(nèi)容,其應(yīng)用范圍較廣,對(duì)于運(yùn)動(dòng)物體的捕捉準(zhǔn)確度較高,能夠有效推進(jìn)現(xiàn)代計(jì)算機(jī)模擬技術(shù)的發(fā)展。
參考文獻(xiàn):
[1] 張???基于Opencv的人手識(shí)別與跟蹤定位技術(shù)研究與實(shí)現(xiàn)[D].昆明: 云南大學(xué),2013.
[2] 李旭港.計(jì)算機(jī)視覺及其發(fā)展與應(yīng)用[J].科學(xué)技術(shù),2010(3): 42.
[3] 馬玉真,胡亮,方志強(qiáng),等.計(jì)算機(jī)視覺檢測技術(shù)的發(fā)展及應(yīng)用研究[J].濟(jì)南大學(xué)學(xué)報(bào): 自然科學(xué)版,2014(3): 222-227.