ZYNQ上基于FPGA加速的 雙目立體視覺 三維重建 生成 實時深度圖彩虹圖 。
1.在ZYNQ上完成雙目采內建像,PS+PL協同處理。
2.在ZYNQ上完成相機标定,鏡頭校準。
3.在ZYNQ上完成立體比對算法,目前已實作局部立體比對BM以及半全局立體比對SGBM
4.在ZYNQ上完成了立體比對後的深度圖轉換彩虹圖,即彩色深度圖
5.在ZYNQ上也完成了測距算法,但是目前沒有識别算法,隻能取圖像一點計算距離。精度在10mm内。有效距離目前測試在5m内。
6.優化了所有的算法,目前接近720p的圖像品質,并且幀率在30fps左右。
詳細的實作過程會出一個專欄,每周更一次,從零開始的項目搭建ZYNQ上的實時三維重建。

部分實驗過程記錄:
标定過程:
近年來,機器學習,無人駕駛等領域是十分熱門的研究話題。在這些領域中,電腦對環境的感覺十分重要。是以三維的環境重建是必然的趨勢,友善我們實作虛拟世界與現實世界之間的互動。
在三維重建中,主流的方式有視覺和雷射雷達兩種。視覺技術的測距方法是基于三角的測距法,最大範圍是 5-8m,并不适用于較大的空間,且這種方法受光線的影響很大。相比之下,雷射雷達可以用于的場景更為廣泛。
1.2 應用領域
三維模組化的應用很廣泛,例如無人機、無人駕駛汽車的即時避障,路徑規劃。同時也可以與機器視覺、3D 列印等技術也可以融合。在文物複刻和重建也是十分有意義的應用。本次設計的基于 ZYNQ 的雷射雷達三維模組化系統,可以深入目标環境, 進行點雲采集,重建三維空間模型,測量等機器視覺方面的應用。
1.3 主要技術特點
首先,本系統采用 pcl 點雲庫中的 icp 算法,可将雷射雷達傳回的資料進行多次疊代計算,實作精确配準。
其次,本系統将雷射雷達搭載在麥輪小車上,通過小車陀螺儀和電機編碼器,實時傳輸小車的位置和速度資訊,通過坐标系變換可得到雷射雷達的實時精準定位。
本設計可以對距離為 1~5m,盲區較少的室内物體進行實時的三維重建, 不易受光線的影響。雷射雷達搭載在可遠端控制的小車上,可以用于勘察人無法進入的環境。
1.4 關鍵性能名額
1.5 主要創新點
(1) 可通過移動 app 對小車進行遠端控制;
(2) 算法基于 PCL 點雲庫;
(3) 通過 Icp 算法可達到實時資料配準;
(4) 利用 pynq 的 PL 子產品對 icp 算法進行 HLS 加速。
第二部分 系統組成及功能說明
2.1 整體介紹
系統由雷射雷達、基于 STM32 的麥輪小車 和 Xilinx 公司 PYNQ-Z2 組成的。其中雷射雷達通過網口将采集到的點雲資料傳給 PYNQ-Z2,麥輪小車上搭載了電機編碼器、陀螺儀和藍牙子產品。轉向和移動可y由手機藍牙程式控制。在運動過程中,将位移和姿态資訊傳遞給 STM32 單片機,通過 UART 協定 STM32 将這些資訊傳遞給 PYNQ-Z2,ZYNQ 根據位移和姿态資訊計算出雷射雷達的位移和姿态偏移。ZYNQ 根據姿态和位置資訊的偏移将點雲資料利用 ICP 算法拼接起來,拼接後用網口傳出資料。
在本設計中,我們采用小車搭載雷射雷達進行移動掃描,采集左、右和頂三面的資訊進行重構。
2.2 各子產品介紹
2.2.1 R-Fans-16 雷射雷達
本系統中雷射雷達采集采用的是 R-Fans-16 導航型雷達,它通過 16 線 360°掃描實作三維探測成像。基于高精度雷射回波信号測量技術,R-Fans-16 具備測程遠(探測能力最遠達到 200m),測量精度高(測距精度優于 2cm),回波強度準确(目标反射回波強度達到 8 位)等技術特點,同時兼顧了俯仰方向的角度覆寫和角分辨率。運作雷射雷達時,通過網口将實時點雲資料傳輸給 PYNQ-Z2。
2.2.2 基于 STM32 的麥輪小車
在這個麥輪小車上搭載了 STM32 單片機,本次實驗中,利用了小車上的陀螺儀、編碼器和藍牙。小車上的陀螺儀和電機編碼器通過 SPI 協定将資料傳給 STM32 單片機,單片機通過計算得到小車的姿态和輪胎轉速,然後利用 UART 協定,以 115200 的波特率将資料循環實時發送給 ZYNQ。小車的移動和轉向利用藍牙遠端控制。
2.2.3 坐标系轉換
本設計中采用的是 R-Fans-16 導航型雷達,它采集的資料是建立在自身的坐标系之中的,三維重建的本質是将雷射雷達坐标系中的資料轉換為大地絕對坐标系,即球坐标系轉化為直角坐标系。
球坐标系是一種利用球坐标(r,θ,φ)表示一個點 P 在三維空間的位置的三維正交坐标系。如圖 2.2.1 所示,原點與點 P 之間的“徑向距離”為 r,原點到點 P 的連線與正 z 軸之間的“極角”為 θ,原點到點 P 的連線在 xy 平面的投影線與 x 軸之間的“方位角”為 φ。
球坐标系與直角坐标系之間的公式轉化如下:
在本設計中,以車啟動時的坐标為絕對坐标系的坐标原點,此後在每圈雷射雷達的資料期間,以雷射雷達為坐标原點建立一個個子坐标系,并記錄此刻雷射雷達在初始絕對坐标系下的位移偏轉量。
xyz 三個坐标軸的方向與雷射雷達坐标系的軸方向一緻。借助電機的編碼器, 可測得雷射雷達的水準平面移動速度和方向,即可得知雷射雷達坐标系與絕對坐标之間的平移量;通過陀螺儀,可測得雷射雷達的姿态角,以得知雷射雷達坐标系與絕對坐标系之間的旋轉量。借助以上測得的兩個數值以及球坐标系與直角坐标系之間的轉換公式,即可将雷射雷達坐标系中的點映射到大地絕對坐标系中。
2.2.4 點雲配準(ICP 算法)
ICP 算法配準就是要将兩個不同坐标系下的點集,利用它們的幾何特性比對起來。需要求解目标點集和參考點集之間的剛體變換矩陣和平移矩陣,利用剛體變換矩陣作用在目标點集,使兩個點集盡可能重合。對于目标點集 P 和參考點集 Q 來說,轉換公式為:
上式不總是成立的,是以我們要最小化目标函數
求解 R 和 T 常用的方法有:SVD 和非線性優化。本設計中使用了 SVD 的方法。
ICP 算法問題通常轉換為最小二乘最優解問題,将整個問題分為兩部分,第一部分是第二部分的基礎和輸入。第一部分稱為粗略配準或全局配準,粗略配準即通過計算兩點集間的位姿,得出點集間的大緻重合結果,為下一步的精确配準提供合适初值。第二部分稱精确配準或局部配準,對兩個距離足夠接近的點集使用疊代優化政策以達到最終的配準結果。
第三部分 完成情況及性能參數
3.1 總述
本系統本設計完成了雷射雷達的點雲采集、 陀螺儀、編碼器的姿态資訊采 集。PYNQ-Z2 開發闆的控制晶片 ZYNQ 使用的 PS-PL 設計極大地提高了系 統設計的便捷性、可行性,降低了系統的設計難度。PS-PL 主從設計在保留系 統設計的簡易性同時提高了系統的運作速度和處理能力。PL 端 IP 核的設計極 大地加快了算法的計算速度。本設計的點雲拼接部分通過 PL 端的 IP 核加速, 增強了拼接效果,成功地實作了實時三維重建的功能。
3.2 完成情況
在室内走廊中,我們擺放了一排桌子、一個消防滅火器,兩側分别為牆壁和 窗戶。
每采集 200 幀作為一組資料,存入 pcd 檔案,得到每組資料生成的原始圖像如圖 3.2.2 所示,圖像右側為擺放桌子一側,可看到明顯桌面和桌腳的細節,左側較低側為擺放的消防滅火器。
每相鄰兩組點雲進行 icp 配準,得到完整的小車駛過走廊的三維模型。
圖檔右側離散的小點雲為走廊中的窗戶投射到室外傳回的雷射,若走廊兩側都為牆面,則可傳回得到完整的三維模型。
3.3 性能參數
雷射雷達點雲采集時距離越遠分辨率越低,在有效探測距離内對物體的寬度和深度的測量誤差取決于裝置的穩定性(這裡指雷射雷達的抖動程度)。寬度測量誤差在 2cm 内,傾斜物體的測量誤差為 6cm,傾斜角度的誤差為 4°。由于測量時小車自身會有輕微抖動,是以結果有一定的誤差。
第四部分 總結