基於目標檢測的實時單目測距

2021-10-08 21:06:50 字數 619 閱讀 7733

單目攝像頭的大致測距原理,是先通過影象匹配進行目標識別(各種車型、行人、物體等),再通過目標在影象中的大小去估算目標距離。

環視魚眼相機因為鏡頭朝下,且畸變係數大,基於相機模型,採用數學幾何的方式進行測距不再試用,會造成誤差較大;採用的是基於單應性矩陣和仿射變換的思路來進行測距。核心知識點是得到畸變校正圖的四個點和自定義四個點對應的單應性矩陣求解,與標定的準確性極為相關。

前視相機為普通的畸變較小的相機,可以基於相機模型,推導出畫素座標和世界座標之間的關係即可。下面的推導過程是基於前視相機的單目測距過程。

兩種方案的前提是都是基於地面假設的前提,因為單個攝像頭失去了空間資訊。

舉個例子,假設現在我們有一張a4紙(8.27in x 11.69in), in代表英吋,1in = 25.4mm。紙張寬度w=11.69in,相機距離紙張的距離d = 32in,此時拍下的**中a4紙的畫素寬度為p=192px(我的相機實際測量得到的值)。

此時我們可以算出焦距f=(192x30)/11.69。

當我們將攝像頭遠離或者靠近a4紙時,就可以用相似三角形得到相機距離物體的距離。

此時的距離: d』 = (w』 x f ) / p』

(注意:這裡測量的距離是相機到物體的垂直距離,產生夾角,測量的結果就不準確了。)

雙目測距步驟二 單 雙目標定

打算直接使用matlab來標定,畢竟opencv自帶的標定不太準確,數學工具還是要利用起來的。1 單目標定參考 已完成單目標定。具體的內外畸變引數部落格寫的很詳細了。程式執行示例 include opencv2 opencv.hpp include using namespace cv using ...

基於FPGA的雙目測距工程

先寫點,後面準備把自己做了半年的東西拿出來寫寫,今天先寫個預告,後面詳細寫出來,包括演算法,rtl,後面再zedboard上進行了測試,不過由於資源的問題還暫時放不下,後面還沒找到時間進一步優化 後面有時間把這些過程全寫出來 趁著有時間開始寫一寫,自己一直從事傳統fpga影象處理方面,主要是編譯碼,...

基於Transformer的目標檢測DETR

transformer之前在nlp領域大放異彩,但是在cv界平平無奇。自從eccv20這篇基於transformer的目標檢測模型detr發表以後,transformer在cv中應用的探索越來越廣泛,今天先粗淺的解讀一下這篇 剩下的慢慢學習。在目標檢測領域,faster rcnn無疑是最經典的模型之...