隨著樹莓派超低成本的計算模組的發布,依賴於樹莓派簡單的程式設計環境,簡單硬體擴充套件和豐富的開發資源,使我們利用樹莓派創造大量的產品變得可能,
pi具有強大的多**處理能力,但是因為通常在pi上程式設計比較簡單直接,最大限度的利用其多**系統和為它的videocore模組程式設計是較複雜的。
argon design精通於在此類系統上的程式設計,並且可以優化樹莓派上的多**演算法。為了評測計算模組的能力,展示我們的技能,我們設計了本次展示。
這次展示是關於立體深度感知-利用兩個放置位置具有一定間距的攝像機,從不同的視角拍攝物體來獲取深度資訊。與此同時這還使用了樹莓派計算模組的另乙個令人興奮的特性,那就是它支援雙攝像頭(標準樹莓派僅僅支援單一攝像頭)
###立體深度感知
– 假設攝像機都是水平對齊的。這使得二維搜尋降低到一維,節省了大量的處理時間。這需要對攝像機進行校準,不過我們可以使用已知的方法來進行校準,人工的或者自動的都可以。
– [1]. heiko hirschmüller, 「improvements in real-time correlation-based stereo vision」 cvpr 2001
特別的,我們決定結合使用[2] 中的」c5″相關方程(「c5″ correlation function)和[1]中提到的多視窗方案(multi-window scheme)。總的來講,我們的程式既可以使用5×5視窗方案或是7×7方案。7×7的方案計算時間更長但是也會稍微準確一些。
###效能
使用了三種不同版本的實現方式:
– 原始版本使用python和numpy,用以評價其他方****性。
– 使用c語言的版本,在變換中盡可能多的使用演算法來增強效果。最大的改進來自於通過仔細的安排**來避免冗餘的計算,我們也使用了乙個自定義的排序網路來替代通用排序演算法(多視窗方案使用的演算法),速度提高了大概4倍。
乙個中等大小(768×576畫素)的影象,在不同版本下的處理時間大概是:
– python, on x86 (~3ghz): 63 seconds
– python,x86平台(~3ghz):63秒
– c, on x86 (~3ghz): 56 milliseconds
– c,x86平台(~3ghz):56毫秒
– c, on pi arm core (700mhz): 1 second
– c, 樹莓派arm核心(700mhz): 1 秒
– assembler on videocore vpu (250mhz): 90 milliseconds
請注意videocore版本僅僅比x86平台上的c版本耗時長大約50%,而x86平台比videocore的時鐘速度快了12倍。
我們還編寫了乙個演示程式,它會從兩個攝像機獲取影象,處理他們並且把計算得出的深度資料以彩色的方式顯示。攝像機的處理和展示會新增少量的補償,來對我們減小影象尺寸到vga (640×480)進行補償。
最終的幀速率是12fps。對於概念驗證已經足夠,同時在某種程度上展示了影象處理工作,而且我們可以用比較合理的開發速度在樹莓派上實現它。
###應用
我們建立的示例程式可以以下面三種不同的方式進行展示
– 僅顯示攝像機原始影象
– 把視差資料轉換為彩色資料並覆蓋在影象上
– 把距攝像機某個距離上的所有點全部移除
結果的截圖如下,同時還有一些用到的裝置的**。
然而,能做的不僅僅只有這些,還包括:
– 把兩個或多個攝像機的縫合形成全景圖
– argon之前做過的乙個專案是使用擴充套件卡爾曼濾波(extended kalman filter)來分離攝像機的運動和乙個場景中物體的運動。結合這些可以生成某個環境的動態的3d地圖。
– 展示程式中的背景一處會切掉物體的一部分,這個問題可以結合邊緣檢測濾波的結果來進行補救。
###使用到的技能
[軟體工程](
[處理器架構](
[演算法及運算](
[影象處理](
[多**]( )
樹莓派(四)樹莓派上啟動samba服務
當開啟samba服務後,就可以通過samba服務遠端將樹莓派的儲存資源掛載在自己的電腦上,像瀏覽自己電腦上的資源一樣瀏覽樹莓派上的資源。當然個人pc也是支援連線samba服務。使用docker啟動samba docker run name samba d p 137 137 udp p 138 13...
樹莓派 4 尋跡小車
學習的時候百分之99參考了這篇文章 yzy 1996 方法 樹莓派小車自動循跡 攝像頭 具體內容都在裡面了,因為我用的是l298n電機驅動模組,所以是用enab來控制pwm的,所以適當更改一下 因為我是在辦公室地面,不像他一樣有顏色清楚的軌道,所以修改了二值化型別和腐蝕膨脹的順序係數 import ...
樹莓派 樹莓派上面安裝配置teamviewer
訪問樹莓派桌面,的另一種方式,就是使用teamviewer。參考這篇文章做了實驗 對其中部分進行了件要整理和總結。如下 2.安裝gdebi,解決依賴問題 install gdebi gdebi can install local deb packages with automatic depende...