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

OpenCV 技術在數字近景攝影測量中的應用與研究

2013-03-03 07:20:17劉娟郝建新
城市勘測 2013年1期
關鍵詞:檢測

劉娟,郝建新

(1.鄭州市規劃勘測設計研究院,河南鄭州 450052;2.鄭州市市政工程勘測設計研究院,鄭州鄭東新區 450046)

OpenCV 技術在數字近景攝影測量中的應用與研究

劉娟1?,郝建新2

(1.鄭州市規劃勘測設計研究院,河南鄭州 450052;2.鄭州市市政工程勘測設計研究院,鄭州鄭東新區 450046)

在闡述OpenCV技術的基礎上,從數字近景攝影測量的應用方面著手,具體介紹了OpenCV技術在數字近景攝影測量中相關應用到的函數、及其程序的實現過程。同時,通過給出的初步基于OpenCV的攝影測量模塊程序實現和實驗結果可行性的驗證分析。

OpenCV;攝影測量;數字近景攝影測量;軟件實現

1 引 言

OpenCV這一名詞包含了Open和Computer Vision兩者的意思。它是Intel公司推出的一個開源計算機視覺庫,由一系列C函數和少量C++類構成,實現了圖像處理和計算機視覺方面的很多通用算法。其以Linux為代表的開發源代碼軟件得到了HP、IBM、Sun、Intel和Novell等世界上幾乎所有計算機軟、硬件廠商的重視和支持,也紛紛啟動了開發和使用開放源代碼軟件的項目。作為開放的數字圖像處理和計算機視覺軟件平臺,可以很好地實現基本的計算機視覺、圖像處理和模式識別的開源項目,直接應用于很多領域的一個二次開發的理想工具。

本文正是在此基礎上,討論了基于OpenCV技術在數字近景攝影測量應用具體實現的嘗試和研究。

2 OpenCV簡介

2.1 數據結構及操作

OpenCV的矩陣操作分別有一個C和C++語言的矩陣接口,通常把向量當成是行或列為1的矩陣,并且矩陣在內存中的存儲方式是按行存儲,且每行按4字節對齊。

(1)矩陣的定義、分配、初始化和釋放;(2)矩陣的訪問;

(3)矩陣間、矩陣元素間的操作。

2.2 圖像處理

(1)圖像的定義、分配、初始化和釋放;

(2)圖像的讀取和訪問;

(3)圖像處理(圖像梯度、邊緣和角點提取等)。

2.3 OpenCV的特點

從上面我們不難得出OpenCV有以下特點:

(1)開放C源碼;

(2)基于Intel處理器指令集開發優化代碼;

(3)統一的結構和功能定義;

(4)強大的圖像和矩陣運算能力;

(5)方便靈活的用戶接口;

(6)同時支持MS-Windows和Linux平臺。

3 基于OpenCV的普通數碼相機原理與程序實現

3.1 數碼相機模型和變形及定標實現

(1)相機模型和變形原理

數碼相機模型的選擇直接影響最后的標定結果,因此要選擇合適的相機模型,確定內外部參數。內部參數描述相機的內部光學和幾何特性,如圖像中心、焦距、鏡頭畸變等;外部參數就是相對于世界坐標系的相機坐標的三維位置和方向。常用的針孔模型忽略了透鏡的厚度和畸變,故不能很好地反映實際情況。所以在針孔模型為基礎,并引入透鏡徑向畸變和切向畸變[1]。

一幅視圖是通過將三維空間中的點透視變換投影到圖像平面上得到的,其定義是

式中,(X,Y,Z)是一個點的世界坐標,(u,v)是點投影在圖像平面的坐標,以像素為單位;A稱為相機矩陣或內參數矩陣;(cx,cy)是基準點(通常在圖像的中心);fx,fy是以像素為單位的焦距。所以,如果因為某些因素對來自于相機的一幅圖像進行升采樣或降采樣,所有這些參數(fx,fy,cx和cy)都將被縮放同樣的尺度。內參數矩陣不依賴場景的視圖,一旦被計算出來,就可以重復使用(只要焦距固定)。旋轉-平移矩陣[R|t]稱作外參數矩陣,用來描述相機相對于一個固定場景的運動,或者是物體圍繞相機的剛性運動。也就是說,[R|t]將點(X,Y,Z)的坐標變換到某個坐標系上,該坐標系相對于相機來說固定不變。式(2)的變換等價于式(3)的形式,即

真正的鏡頭是有形變的,主要包括有徑向形變,也會有輕微的切向形變,所以式(3)的模型可以擴展為:

其中,k1、k2分別為徑向形變系數,p1、p2是切向形變系數。形變系數不依賴拍攝的場景,也與拍攝圖像的分辨率無關[2]、[6]、[7]。

(2)程序實現

根據張正友標定法有一個精確定位角點陣的標準平面標定板,如圖1所示。然后通過自由移動相機或標定板,使得相機至少在兩個不同的位置(相對于標準平面標定板位置)拍攝標定板圖像,通過模板上的點和其圖像的對應點先用直接線性變換方法來確定相機的內部參數和外部參數,這一步暫不考慮相機鏡頭的畸變,計算過程都是求解線性方程,求解速度快。但由于沒有考慮透鏡畸變的影響,得到的參數值并不準確。然后再以這些參數為初始值,在考慮畸變的同時應用算法對圖像點與再投影點間的距離之和進行非線性最小優化,以得到一組精度更高的值[3]。

圖1 標定模板

圖2 標定輸出圖像(檢測出的角點用圓標記)

相機標定實現過程如圖3流程圖所示,首先是必要數據輸入,這里包括棋盤格的相關參數,即格子的長度、寬度和標定板上每行、每列的角點總數,然后選擇相機標定所拍攝的影像。

圖3 標定流程圖

其次是具體的標定計算過程:第一步:用OpenCV中的函數cvFindChessboardCorners()對標定圖像進行檢測是否符合標準,并對角點進行粗略地提取,為后面精確提取角點坐標做好準備。第二步:使用cvDraw-ChessBoardCorners()對前面檢測到的角點進行繪制,使操作人員能夠直觀地看到標定過程。第三步、通過cvFindCOrnerSubPix()對標定圖像中的角點進行精確提取。第四步:可以通過函數cvCalibrateCamera()運行標定算法來計算相機的內外參數值,至此標定計算過程結束。

最后就是計算結果輸入和誤差統計,通過cvProjectPoints2()來實現對誤差的統計。主要是利用得到的相機內外參數來計算三維角點(平面角點坐標加上一個焦距常數)投影到二維圖像平面上的坐標,將這些坐標和標定過程中提取的角點坐標做比較,便可以對標定過程中產生的誤差進行統計。以下為程序的相機標定輸出影像和相機標定內參數及透鏡畸變參數,如圖2、4所示。

圖4 相機標定內參數和畸變系數輸出

3.2 目標檢測及實現

(1)目標檢測原理

目標檢測方法最早由Paul Viola提出,并由Rainer Lienhart對這一方法進行了改進。在OpenCV中,首先利用樣本(至少幾百幅樣本圖片)的海爾(Haar)特征進行分類器訓練,得到一個級聯boosted分類器。訓練樣本分為正例樣本和反例樣本,其中正例樣本指待檢目標樣本,如圖5(a)所示,反例樣本指其他任意圖片,所有的樣本圖片都被歸一化為相同的尺寸大小。

分類器訓練完之后,就可以應用于輸入圖像中感興趣區域的檢測。為了搜索不同大小的目標物體,分類器被設計為可以改變尺寸,所以,為了在圖像中檢測未知大小的目標物體,掃描程序通常需要用不同比例大小的搜索窗口對圖片進行幾次掃描[4]。

(2)程序實現

①檢測目標圖片的正例樣本和反例樣本級聯訓練

OpenCV中有兩個程序可以訓練級聯分類器: opencv_haartraining和opencv_traincascade。后者是一個新程序,使用OpenCV 2.X API以C++編寫,支持Haar和LBP兩種特征,并可以增加其他的特征。正樣本必須由包含待檢測物體的圖片生成,如圖5(b)所示,選取了20個包含四分之一圓樣本的40×40大小影像作為正樣本。負樣本選取其他不包含待檢測的物體的影像。其次就是訓練分類器的生成,可以生成xml后綴名的文件即可。

標準標志模板(a)

自行設計標志模板(b)圖5

其具體操作如圖6所示,在DOS環境下,利用上面2個函數進行級聯分類器的訓練,主要指令有:

第一步、創建正樣本文件,指令為:createsample. exe-info(帶dat后綴文件名)-vec(帶vec后綴文件名)-num 20-w 40-h 40。

第二步、創建負樣本文件,手動建立負樣本文件,為dat后綴。

第三步、開始訓練,指令為:haartraining.exe-data (訓練結果輸出路徑)-vec(正樣本生成vec文件路徑)-bg(負樣本文件路徑)-npos 7000-nneg 3000-mode ALL-w 40-h40。具體指令說明可參看文獻[2,3]。

圖6 級聯分類器訓練

②根據級聯分類器進行目標檢測的程序實現

根據前面訓練得到的級聯分類器,利用cvLoad-HaarClassifierCascade()用于從文件中裝載訓練好的級聯分類器。及cvHaarDetectObjects()函數用于檢測圖像中的目標。該函數使用針對某目標物體訓練的級聯分類器在圖像中找到包含目標物體的矩形區域,并將這些區域作為一系列的矩形框返回。并以不同比例大小的掃描窗口對圖像進行幾次搜索。

如圖6、7所示,為實際檢測輸出影像。由此得出,該方法具有檢測速度快(約幾百微秒不等)、實現簡單的好處,同時,檢測效果主要依賴樣本影像的數量和具體特征,目前20個樣本情況是非常少的,具有較高的誤檢和漏檢。

圖7 檢測輸出圖(紅色為已檢測、其他顏色為不同區域誤檢點)

3.3 對極幾何

在計算機視覺中,對極幾何是用來描述空間物體投影圖像間的約束關系,同一場景兩幅圖像之間的幾何關系,它獨立于場景結構,只與相機的內、外部參數有關。換個角度,在數字近景攝影測量中,對極幾何就是像對的相對定向問題[4]。

在OpenCV中,有函數cvFindFundamentalMat()利用4種方法之一計算基礎矩陣,主要包括有7點算法、8點算法、RANSAC算法和LMedS算法。根據兩幅圖像中的對應點作為輸入數據,最后輸出兩幅圖像間的計算基本矩陣。

還有一個函數cvComputerCorrespondEpilines()主要是根據一幅圖像中的點計算其在另一幅圖像中對應的對極線。假定點位于第一幅圖像,則對應的對極線有:

每條對極線都可以用3個系數a、b和c來表示,并作為該函數的輸出值。即

以上函數在數字近景攝影測量的像對的相對定向上具有較好的應用[5]。

3.4 圖像處理

在OpenCV中,有豐富的較好的圖像處理相關函數,現就以下幾類為例:

(1)豐富的圖像數據結構和數據操作;例如,用于二維坐標點的CvPoint、以像素為單位定義矩形框大小的CvSize、定義多通道矩陣的CvMat等等。矩陣元素及操作函數。

(2)基本圖像處理;例如,圖像的梯度、邊緣和角點的提取算法、圖像的采樣、插值和幾何變換算法、圖像的濾波和去噪算法以及其他相關算法。

(3)具有很好的硬件接口及視頻處理函數等。

如圖8所示,我們自己制作若干個橢圓標志,并用A4紙打印出來,利用普通數碼相機進行不同角度下的影像,同時,利用OpenCV技術對圓形目標進行檢測,包括有圖像灰度化、自適應二值化、邊緣提取以及橢圓擬合等。

該實驗結果具有較好的識別率,但是其檢測計算過程將較長(約數分鐘或十幾分鐘不等)。接下去的目標是希望與級聯分類器目標檢測相結合,形成優勢互補,達到更好的效果。

圖8 圓形標志影像的檢測

4 結 論

從前面的討論中,不難得出:OpenCV在數字近景攝影測量方面有著自身的優勢,提供了一個很好的二次開發平臺,不但減少了數字近景攝影測量的開發時間,同時,也為提高精度及更好的圖像輸出提供更好的可能。

當然,僅靠OpenCV自身的函數是不可能完全實現數字近景攝影測量的全過程,必須在有針對性的問題上進行具體研究和實現。

[1] 李躍,汪亞明,黃文清等.基于OpenCV的攝像機標定方法研究[J].浙江理工大學學報.2010.5(27):417-420.

[2] 劉瑞禎,于仕琪.OpenCV教程:基礎篇[M].北京:北京航空航天大學出版社,2007.

[3] http://www.opencv.org.cn/index.php/.[OL]

[4] 鐘鍵.基于對極幾何的圖像匹配研究[D].中南大學.2010.

[5] 王佩軍,徐亞明.攝影測量學[M].武漢:武漢大學出版社,2005.

[6] 李健,史進.基于OpenCV的三維重建研究[J].微電子學與計算機.2008.12(25):29-32.

[7] 吳幅朝,胡占義.PnP問題的線性求解算法[J].軟件學報. 2003.14(3):682-688.

App lication and Research of Open CV Technology in Digital Close-range Photogrammetry

Liu Juan1,Hao Jianxin2
(1.Zhengzhou Urban Planning Design&Survey Reasearch Institute.Zhengzhou 450052,China 2.Zhengzhou City Municipal Engineering Design&Survey Reasearch Institute.Zhengzhou 450046,China)

The paper systematically expounded on its application function and software implementation about digital close-range photogrammetry based on the OpenCV technology.By the software implementation of digital close-range photogrammetry and the feasibility analysis of experimental results,it has some reference significance and practical guiding for the implementation of digital close-range photogrammetry.

OpenCV;photogrammetry;digital close-range photogrammetry;software implementation

1672-8262(2013)01-25-05

P234.1 文獻標識碼:A

2012—04—23

劉娟(1979—),女,工程師,主要從事城市工程測量技術工作。

猜你喜歡
檢測
QC 檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
“有理數的乘除法”檢測題
“有理數”檢測題
“角”檢測題
“幾何圖形”檢測題
主站蜘蛛池模板: 精品国产自| 色综合中文综合网| 一级成人a做片免费| 国产一区亚洲一区| 亚洲第一国产综合| 国产免费羞羞视频| 91青草视频| 久久久精品无码一区二区三区| 国产精品无码作爱| 国产欧美日韩精品第二区| 国产一区二区免费播放| 狠狠色婷婷丁香综合久久韩国| 精品伊人久久久香线蕉| 精品国产成人a在线观看| 免费观看成人久久网免费观看| 国产精品久久久久久久久| 中文字幕乱码中文乱码51精品| 一级毛片在线免费看| 亚洲色图欧美| 國產尤物AV尤物在線觀看| 亚洲A∨无码精品午夜在线观看| 国产精品永久在线| 香蕉国产精品视频| 欧美国产日韩一区二区三区精品影视| 99re在线视频观看| 国产成人免费| 色悠久久久久久久综合网伊人| 亚洲精品大秀视频| 激情无码字幕综合| 国产一区二区三区日韩精品| 全裸无码专区| 久久99国产综合精品女同| 日本精品一在线观看视频| 国产www网站| 亚洲无码A视频在线| 999国产精品| 亚洲中久无码永久在线观看软件 | 亚洲日韩日本中文在线| 国内精品久久人妻无码大片高| 亚洲性视频网站| 白丝美女办公室高潮喷水视频| 国产尤物在线播放| 亚洲一区二区日韩欧美gif| 久久免费观看视频| 秋霞午夜国产精品成人片| 亚洲中文精品人人永久免费| 亚洲无码视频图片| 久久九九热视频| 天天综合色网| 91精品啪在线观看国产| 日本免费新一区视频| 国产玖玖视频| 青青国产成人免费精品视频| 日本亚洲欧美在线| 72种姿势欧美久久久大黄蕉| 亚洲高清免费在线观看| 青青草91视频| 国产成本人片免费a∨短片| 青青操视频免费观看| 日本免费福利视频| 青青国产视频| 日韩精品欧美国产在线| 天堂av高清一区二区三区| 久久精品免费看一| 91探花在线观看国产最新| 国产毛片片精品天天看视频| 亚洲精品黄| 成人午夜视频网站| 精品日韩亚洲欧美高清a | 国产欧美精品午夜在线播放| 欧美激情一区二区三区成人| 亚洲天堂视频网站| 亚洲成人免费看| 凹凸国产分类在线观看| 国产成人午夜福利免费无码r| 国产成人亚洲综合A∨在线播放| 亚洲精品欧美重口| 久久精品国产电影| 久久久久亚洲精品成人网| 国产成人区在线观看视频| 国产精品永久在线| 日本少妇又色又爽又高潮|