?

雙目攝像頭在識別物體大小方面的應用

2017-01-13 09:18程子龍蔣馥蔓許峰
中國新通信 2016年22期
關鍵詞:計算機視覺嵌入式

程子龍+蔣馥蔓+許峰

【摘要】 在機器視覺的應用當中,雙目攝像頭對物體距離和大小的感知模仿了人眼的功能,實現了對現實世界的感知。該算法基于ARM Cortex-A9嵌入式開發平臺,在考慮了透鏡的徑向畸變和切向畸變影響的情況下,對雙目攝像頭進行了立體標定,給出了使用opencv雙目識別物體大小和距離的算法。其充分發揮了opencv圖像處理庫的實用性和雙目攝像頭的優勢,具有較高的識別準確性、跨平臺可移植性和實時性,可以滿足各個領域的需求。

【關鍵詞】 計算機視覺 嵌入式 雙目立體視覺 物體大小 opencv

引言

隨著計算機計算能力的提高,圖像分析越來越凸顯出其在各個領域的優勢,而單攝像頭所得到的單張平面圖像已經滿足不了人們在各個領域內對圖像處理的要求,雙攝像頭的圖像處理技術應運而生。人眼對世界的感知就是通過雙眼得到的,圖像工程領域模仿人眼的結構,設計了雙目攝像頭,在二維圖像的基礎上將圖像拓展成為了三維。

本文基于OpenCV庫,OpenCV是一個開源的計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上,它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,實驗平臺為Exynos 4412開發板,是一款基于ARM Cortex-A9架構的嵌入式開發平臺,從雙目測距的原理開始,使用了canny算子等算法實現了對雙目攝像頭中物體的提取和識別,并通過輪廓檢測實時計算出物體的尺寸大小。經實驗驗證,計算結果準確,具有很高的實用價值。

一、雙目測距的原理

1.1基本原理

雙目測距是基于視差的原理,該模型是基于一套無畸變、對準、已測量好的完美標準立體實驗臺的數學模型,即兩攝像頭所得圖像無任何畸變,完全基于小孔成像原理,兩圖像平面完全在一個平面內,每一行像素點平行且對其,兩攝像頭參數完全相同,如下圖。

深度與視差成反比,兩者是明顯的非線性關系,當視差接近0時,微小的視差變化會導致很大的深度變化;當視差較大時,微小的視差變化幾乎不會引起深度多大的變化。因此,立體視覺系統僅僅對于物體與攝像機相距較近時具有較高的深度精度。

1.2相機的標定的基本原理

對攝像機進行標定,其實質是求解攝像機成像模型中的相關參數。在眾多攝像機模型中,最簡單的是針孔模型。但是攝像機鏡頭都是采用的透鏡成像,并不是理想的針孔模型,透鏡的使用帶來了透鏡畸變。[1]在opencv中,常用的攝像頭畸變模型為

其中,R為兩攝像頭間的旋轉矩陣,T為兩攝像頭間的平移矩陣。Rr為右攝像頭經過張氏標定得到的相對標定物的旋轉矩陣,Tr為右攝像頭通過張氏標定得到的相對標定物的平移向量。Rl為左攝像頭經過張氏標定得到的相對相同標定物的旋轉矩陣,Tl為左攝像頭經過張氏標定得到的相對相同標定物的平移向量。

在opencv中,可以利用棋盤格標定盤進行標定,使用FindChessboardCorners()抓取角點。獲取亞像素角點坐標 FindCornerSubPix(),單目標定,求取攝像機內外參數ClibrateCamera2()。雙目標定,求取兩攝像機相對位置關系StereoClibrate()。

圖為立體標定后的修正圖。

二、物體識別

2.1物體識別的基本原理

首先對雙攝像頭得到的圖片進行立體匹配,然后對原始圖片進行二值化處理、高斯模糊、canny算子輪廓檢測,尋找物體輪廓并用最小四邊形將物體完整框出,通過計算四邊形四個頂點的坐標得到物體的像素大小。

2.1物體識別的opencv的實現

Opencv提供了BM算法、SGBM算法、GC算法三種立體匹配算法,三種算法的匹配速度從高到低,匹配質量從低到高,出于匹配速度和匹配質量的考慮,在這里使用SGBM算法進行計算,在opencv中提供了cv::Ptr類,運行效果如圖。

三、物體實際大小的計算

3.1物體實際大小的計算原理

獲得景深圖后,對物體輪廓進行檢測,并用最小四邊形框出物體的輪廓,通過計算四邊形四個頂點的坐標得到物體中心點的像素坐標,通過雙目測距的原理獲得物體中心點距離攝像頭的距離。根據三角形原理,可以計算出物體的寬度和高度,實現物體大小的測量。

3.1計算物體實際大小的實現

首先使用reprojectImageTo3D生成三維點云,使用findContours獲得物體輪廓,遍歷刪除最大最小的輪廓,使用minAreaRect獲得輪廓的最小矩形并得到矩形四個頂點的坐標,通過三角函數計算出物體的大小,并通過雷達扇形圖顯示在屏幕上。

四、結束語

通過對opencv平臺的利用,可以將注意力完全集中到圖像識別的算法上去,本文基于Exynos 4412開發板,所編寫的程序具有很高的可移植性和運行實時性。全文對雙目攝像頭物體大小識別的各個步驟進行了概括性的介紹,包括雙目測距的原理、攝像頭的標定、物體輪廓的識別等方面,并對各個步驟的原理做了簡要介紹。本文基于算法的實時性和準確性考慮,經過多次實驗選取了相對符合要求的算法,保證了實驗結果的穩定性。盡管如此,本套研究成果在算法的優化上仍有提高的空間,后面會繼續完善算法從而擴大算法使用的領域和準確性。

參 考 文 獻

[1](袁 利 劉海華 陸雪松. 基于 OpenCV 的雙目攝像機標定. 現代科學儀器 2013.4)

[2]于仕琪,劉瑞禎. 學習opencv(中文版)[M]. 清華大學出版社2009.10

[3](Heiko Hirschmuller的《Stereo Processing by Semi-global Matching and Mutual Information》)

猜你喜歡
計算機視覺嵌入式
機器視覺技術發展及其工業應用
危險氣體罐車液位計算機視覺監控識別報警系統設計
嵌入式LINUX操作系統的研究
嵌入式組件技術的研究及應用
“嵌入式系統概論”課程設計
電子設計應用(2004年7期)2004-09-02
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合