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

基于嵌入式Linux的雙目測距系統研究

2015-08-29 11:11:18謝永超王進華福州大學電氣工程與自動化學院福建福州350108
網絡安全與數據管理 2015年5期
關鍵詞:嵌入式系統

謝永超,王進華(福州大學 電氣工程與自動化學院,福建 福州 350108)

基于嵌入式Linux的雙目測距系統研究

謝永超,王進華
(福州大學電氣工程與自動化學院,福建福州 350108)

根據嵌入式系統的特點,設計了以ARM為核心的雙目立體視覺測距系統。系統使用雙目立體攝像頭采集圖像數據,可設置圖像的多種屬性。利用開源計算機視覺庫OpenCV對采集的圖像數據進行處理,分別完成了兩臺攝像機標定、匹配、重建等工作,最后實現攝像機測距功能。實驗結果表明,該系統測量結果合理,工作穩定,同時可用Qt/Embedded實時顯示圖像和數據,具有良好的人機交互功能和跨平臺移植性。

嵌入式;計算機視覺庫;立體視覺;雙目測距

0 引言

雙目立體視覺測距是計算機視覺技術中的一個分支,也是計算機視覺研究的重點和熱點之一。它通過雙攝像機模擬人眼的功能,對三維世界進行立體感知,恢復物體的三維幾何信息。隨著機器視覺理論的發展,雙目立體視覺在機器視覺研究中發揮了越來越來越重要的作用,具有廣泛的適用性[1]。

嵌入式ARM因處理速度快、使用方便、操作系統開源等特點而廣泛應用。目前,雙目視覺系統多是基于 PC平臺實現[2],而在嵌入式系統中,因其屏幕尺寸、處理速度等硬件資源受到限制,測距系統的實現具有新特點。本文以嵌入式處理器作為硬件核心,構建基于嵌入式系統的雙目測距系統,并具有圖像的實時顯示功能。

1 雙目測距原理

1.1攝像機模型

攝像機的針孔模型如圖1所示,攝像機之外物體X通過穿過針孔平面的針孔,光束在圖像平面成像,形成圖像x。其中,f為攝像機焦距,Z為攝像機與物體間距離。

圖1 針孔模型

根據相似三角原理可得:

1.2雙目測距模型

利用針孔模型,可以得到雙目測距模型[3]。如圖2所示,Ol、Or分別為兩攝像機的光心,焦距為 f1、f2。光軸經過兩個像平面的主點cl、cr。假設兩攝像機的像平面精確共面,圖像行對準,光軸嚴格平行,并且具有相同的焦距f(以上這些假設都是需要后面實現的)。物理世界中的P在左右平面上的成像點為 pl、pr,對應橫坐標xl、xr。

圖2 雙目測距模型

視差定義為 d=xl-xr。根據相似三角形原理,以左攝像機光心為原點,可以得到左攝像機坐標系下的深度Z:

2 實驗平臺

本系統主要分為硬件和軟件兩類。硬件是以S3C2440A為核心的ARM嵌入式開發平臺。S3C2440A以ARM920T為核心,低功耗,簡單,適合于成本和功耗敏感的應用。使用CMOS立體攝像頭視頻流數據,圖片格式JPEG。LCD液晶顯示器負責圖像數據的顯示和人機交互。軟件部分由攝像頭及屏幕驅動程序、OpenCV圖像處理算法、QT主程序設計等組成。

開放源代碼的計算機視覺類OpenCV是由一些C函數和C++類所組成的庫,用來實現圖像處理和常用的計算機圖像算法。具有開發效率高、執行速度快等優點。使用C函數和C++類可進行跨平臺移植,因此可以很好地應用于工程實際當中。

QT是跨平臺C++圖形用戶界面工具。它特有的“信號-插槽”機制是QT編程的基礎,當一個特定事件發生的時候,一個信號被發射。因此,執行按鈕等事件時,可以方便地執行各個功能,如界面切換、顯示和關閉等。本嵌入式系統的功能框圖如圖3所示,其功能都是利用“信號-插槽”機制實現。

圖3 系統的功能框圖

3 系統實現

3.1圖像采集

獲取立體圖像是圖像處理的基礎,圖像質量受到光照條件、攝像機性能以及景物特點等因素的影響。因此,獲得高質量的立體圖像是雙目測距前提。

V4L2(Video 4 Linux 2)是針對免驅 USB設備的編程框架,主要用于采集USB攝像頭。為了更方便地調節視頻設備的屬性,本系統并沒有使用OpenCV獲取圖像,而是調用V4L2的接口函數。在Linux系統編程中,一般使用 ioct()函數來對設備的 I/O通道進行管理[4]。

針對本嵌入式的特點,使用 ioct()函數可以設置圖片亮度、對比度、格式、尺寸,如設置320×240或者 640× 480的分辨率,以適應屏幕大小。

系統圖像采集過程如圖4所示。其中,圖像處理階段若是處在獲取標定,可以用 Opencv中的“角點檢測”函數計算角點個數,以判斷角點圖的好壞。在測距時,可以完成圖像的處理。利用V4L2采集圖像的主要過程如下:

(1)fd=open(″dev/video0″,O_RDWR),打開設備文件,即左、右攝像機。

(2)ioctl(fd,VIDIOC_QUERYSTD,&std),取得設備的功能,查看設備具有什么功能。

(3)ioctl(fd,VIDIOC_S_FMT,&fmt),設置攝像機視頻圖片格式。

(4)ioctl(fd,VIDIOC_REQBUFS,&req),向驅動申請幀緩沖。

(5)mmap(),申請物理內存,并將申請到的幀緩沖映射到用戶空間。

(6)ioctl(fd,VIDIOC_STREAMON,&type),開始視頻的采集。

(7)ioctl(fd,VIDIOC_DQBUF,&buf),出隊列以取得已采集數據的幀緩沖,取得原始采集數據。

(8)ioctl(fd,VIDIOC_STREAMOFF,&type),停止視頻的采集,然后使用munmap()函數刪除映射。

(9)close(fd),關閉視頻設備。

圖4 圖像采集流程圖

3.2基于QT的圖像顯示

在OpenCV中,圖片是IplImage類型,IplImage類型圖片的每個像素點是由24位的三通道B、G、R(藍、綠、紅)三種顏色組成。若使用QT庫內與圖像處理與顯示有關的QImage類,QImage類顏色的排列順序為R、G、B(紅、綠、藍)。為使IplImage類圖像能夠在 QT圖像界面中顯示,又不降低視頻圖像質量,需要通過程序將 BGR圖像轉化為RGB圖像,即交換R通道與B通道的順序,可采用 cvCvtColor()函數。由于本系統 QT的特殊性,圖片不能直接顯示,可將圖像顯示在label上。采用如下語句進行轉換及顯示:

QLabel label(this);

cvCvtColor(frame,frame,CV_RGB2BGR);

QImage image=QImage((const uchar*)frame->imageDa ta,

frame->width,frame->height,QImage::Format_RGB888);

label.setPixmap(QPixmap::fromImage(image));

label.show();

3.3攝像機標定

在雙目視覺中,可以通過兩幅二維圖像對應像素點計算得到三維世界坐標與二維世界坐標的對應關系,以此得到物體的三維坐標值[5]。

光軸與圖像平面的交點與中心的偏移形成兩個攝像機的內 cx、cy。單個像素點在成像儀上是矩形,形成另外兩個 x、y方向上的焦距內參 fx、fy。這樣,可以得到攝像機的內矩陣 M,將物理世界的點Q(X,Y,Z)投影到攝像機上q(x,y),利用齊次坐標,可表示為:

透鏡的球形形狀產生徑向畸變 k1、k2、k3,在成像儀上徑向位置按下式進行調節:

透鏡與圖像不平衡產生切向畸變,用兩個參數p1和p2表示:

其中,(x,y)是原來的點,(xcorrected,ycorrected)為修正后的點。

兩攝像機之間的旋轉矩陣R和平移向量T構成了攝像機的外參。OpenCV中利用cvStereoCalibrate()函數和多幅棋盤角點圖(圖5)進行立體標定。

圖5 攝像機角點檢測圖

3.4立體校正

在實際應用中,攝像機幾乎不可能像圖1那樣嚴格地前向平行對準,但可以通過數學方法計算投影圖和畸變圖,從而將左右攝像機圖像校正為前向平行對準[6]。立體校正的目的就是使得兩臺攝像機準確共面并且相對準,因此需要進行校正。

立體校正算法有非標定校正(如Hartley算法)等。其可以簡單地通過場景中觀察點完成校正,然而不可獲知圖像比例。Bouguet算法為標定立體算法,使用兩臺攝像機之間的旋轉和平移參數進行校正計算。Bouguet立體校正可使得兩圖像中的每一幅重投影次數都最小化,同時使得觀測面積最大化。

通過 OpenCV中 cvStereoRectify()立體校正函數,可以得到重投影矩陣Q:

3.5立體匹配

圖像立體匹配實質上解決了對不同時間或空間位置下獲取的同一物體的兩幅或多幅圖像信息在位置空間或灰度空間上尋找對應匹配像素點的問題。簡言之,尋找這些圖像中相同物體的對應像素點。

立體匹配找到兩個不同攝像機圖像中具有相同特征的點。OpenCV中有BM算法、SGBM算法、GC算法等。其中BM算法測距速度很快,可以達到實時應用的要求,SGBM算法和 GC(Graph Cuts)算法的測距速度較慢,而BM算法誤差只比SGBM算法稍大,故系統采用BM算法[7]。BM塊匹配算法cvFindStereoCorrespondenceBM()函數,使用“絕對誤差累計”,查找左右兩幅立體校正圖像之間的匹配點,匹配代價函數:

其中E表示匹配窗口灰度均值,D為匹配窗口,d為窗口的位移量。代價越小,匹配度越高。通過規定視差的搜索范圍構成一個雙目視界。

3.6三維重建

利用立體匹配得到的視差d、圖像中通過角點檢測到的點(x,y)以及由立體校正得到的投影矩陣 Q,可得到3D深度:

其中三維坐標就是(X/W,Y/W,Z/W)。Opencv中的函數cvReprojectImageTo3d(),該函數輸入視差數據和每個像素坐標,輸出所需的三維點陣,這樣就可以提取物體的深度信息。

4 實驗結果

OpenCV利用張正友標定法,使用20幅擺放在不同位置的平面黑白棋盤圖,對攝像機標定。在應用過程中,攝像機標定誤差及系統結構參數對系統測量精度有著不同程度的影響[8],采取優化方法后的攝像機內參數如下。

利用上述參數,使用該系統測量多個目標物體的距離,將測量值與實際值進行比較,得到表1所示結果。

表1 測量結果

實驗表明,攝像機間的距離約 36.5 mm時,在300~2 500 mm的實驗范圍內,系統能夠識別匹配物體的圖像,得出物體的距離的測量誤差在10%以內。系統測距較為準確。但隨著距離的增加,導致匹配效果較差,誤差有逐漸擴大的趨勢。物體距離為2 500 mm時,測量距離誤差已超過100 mm。因此,本系統暫不適合遠距離測距。為提高測距精度,可從以下幾個方面入手:增加標定圖像數目,增加基線長度,調整相應參數,變換圖像處理方法,增大焦距等。如何更有效地減少測量誤差,擴大測距范圍,需要以后不斷研究和改進。

[1]趙鵬.機器視覺理論及應用[M].北京:電子工業出版社,2011.

[2]王杰,孟浩,張潔.基于嵌入式 Linux的雙目測距系統研究[J].世界科技研究與發展,2014,36(3):263-267.

[3]BRADSKI G,KAEHLER A.學習OpenCV[M].于仕琪,劉瑞禎,譯.北京:清華大學出版社,2009.

[4]白長清,陳沛.嵌入式終端基于 Linux V4L2的圖像采集系統[J].科技資訊,2012(2):22-23.

[5]陳勝勇,劉盛.基于 OpenCV的計算機視覺技術實現[M].北京:科學出版社,2008.

[6]任繼昌,楊曉東.基于角點檢測的雙目視覺測距新方法[J].電光與控制,2013,20(7):93-95.

[7]王浩,許志聞,謝坤,等.基于OpenCV的雙目測距系統[J].吉林大學學報(自然科學版),2014,32(2):188-193.

[8]肖志濤,張文寅,耿磊.雙目視覺系統測量精度分析[J].光電工程,2014,41(2):6-11.

Research of binocular ranging system based on embedded Linux

Xie Yongchao,Wang Jinhua
(College of Electrical Engineering and Automation,Fuzhou University,Fuzhou 350108,China)

According to the characteristics of embedded system,this paper designs a binocular stereo vision measuring system based on ARM.it uses two binocular stereo cameras to capture image data and can also set various attributes of the image.Then,the system completes two camera calibration,matching and reconstruction with OpenCV(open source computer vision library).Finally the distance Measuring is realized.Experiments show that the results of the measurement system is reasonable and stable.The function of real-time display of images and data with Qt/Embedded can be achieved.It has good interactive features and crossplatform portability.

embedded;OpenCV;stereo vision;binocular ranging

TP391

A

1674-7720(2015)05-0039-04

(2014-12-06)

謝永超(1990-),男,碩士研究生,主要研究方向:嵌入式系統。

王進華(1963-),男,博士,教授,博士生導師,主要研究方向:魯棒控制、非線性系統控制、嵌入式系統。

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 在线观看精品国产入口| 高清亚洲欧美在线看| 素人激情视频福利| 四虎精品黑人视频| 午夜少妇精品视频小电影| AV天堂资源福利在线观看| 日韩中文无码av超清| 免费在线色| 欧美精品另类| 国产在线第二页| 91精品免费高清在线| 麻豆AV网站免费进入| 日韩第一页在线| 夜精品a一区二区三区| 青青青国产视频| 全免费a级毛片免费看不卡| 亚洲精品天堂在线观看| 色婷婷成人网| 中国国产一级毛片| 成人福利在线视频免费观看| 91久久国产综合精品| 久久99国产综合精品1| aaa国产一级毛片| 日韩美一区二区| 亚洲视频免费在线看| 免费一级无码在线网站| 国模极品一区二区三区| 国产Av无码精品色午夜| 国产精品浪潮Av| 亚洲国产高清精品线久久| 免费人欧美成又黄又爽的视频| 国产免费高清无需播放器| 亚洲国产欧洲精品路线久久| 在线播放国产99re| 久久亚洲日本不卡一区二区| 91在线无码精品秘九色APP| 激情六月丁香婷婷四房播| 亚洲成人黄色网址| 国产激情国语对白普通话| 亚洲日韩久久综合中文字幕| av大片在线无码免费| 亚洲大尺码专区影院| 青青草原国产精品啪啪视频| 色婷婷电影网| 欧美午夜在线视频| 中文精品久久久久国产网址| 国产精欧美一区二区三区| 日韩免费毛片视频| 亚洲一区二区三区中文字幕5566| 亚洲综合狠狠| 美女一区二区在线观看| 日韩精品无码一级毛片免费| 国产一区在线观看无码| 中国黄色一级视频| 蜜臀AV在线播放| 91丝袜美腿高跟国产极品老师| 色香蕉网站| 免费在线播放毛片| 国产精品自在线拍国产电影| 无码中文AⅤ在线观看| 伊在人亚洲香蕉精品播放| 欧美全免费aaaaaa特黄在线| 免费欧美一级| 全部免费特黄特色大片视频| 国产日本视频91| 乱系列中文字幕在线视频| 亚洲国产精品不卡在线 | 欧美成人精品高清在线下载| 日韩视频免费| 99热这里只有精品免费国产| 欧美a在线看| 亚洲狼网站狼狼鲁亚洲下载| 国产尤物在线播放| P尤物久久99国产综合精品| 国产青青操| 欧美不卡视频在线观看| 亚洲欧美成人网| 国产全黄a一级毛片| 婷婷色一二三区波多野衣| 精品久久蜜桃| 亚洲成在线观看| 性视频一区|