實驗室復現高精度位姿估計演算法的時候,需要呼叫elsdc演算法,當時演算法是在mac上編譯的,而我在復現的時候用的ubuntu 16.04 ,所以進行了一輪踩坑,在半天之後搞定了演算法的復現,這裡記錄一下遇到自己填坑的過程。
elsdc原理介紹:鏈結
1 sh: 1: ./elsdc/elsdc:permission denied
解決辦法:
解決辦法:
**對於標準bash而言沒有錯,因為ubuntu/debian為了加快開機速度,用dash代替了傳統的bash,是dash在搗鬼,解決方法就是取消dash。
sudo dpkg-reconfigure dash
在選擇項中選no,搞定了!
參考到第二部完成,應該來說是可以使用**了,但是在執行的時候報錯:
這個錯誤找了會錯誤原因:
應該是編譯環境不一樣導致的編譯出來的二進位制檔案不同。參考
然後就是找解決辦法,倒騰了一會 學長發來了該演算法的原始碼位址
然後在readme中找到了問題的解決辦法:
然後就照著流程去解決這個問題拉。
1 安裝clapack/cblas庫
這兩個數學庫是很多linux科學計算軟體需要呼叫的,所以經常會用到。
lapack,其名為linear algebra package的縮寫,是一以fortran程式語言寫就,用於數值計算的函式集。lapack提供了豐富的工具函式,可用於諸如解多元線性方程序、線性系統方程組的最小平方解、計算特徵向量、用於計算矩陣qr分解的householder轉換、以及奇異值分解等問題。
blas,全稱basic linear algebrasubprograms,即基礎線性代數子程式庫,裡面擁有大量已經編寫好的關於線性代數運算的程式。
下面是安裝的過程
首先lapack原始碼:
blas原始碼:
cblas原始碼:/blast-forum/cblas.tgz
並且安裝gfortran編譯器
sudo
apt-get
install gfortran
準備工作完成後,開始編譯
1)編譯blas, 進入blas資料夾,執行以下幾條命令
gfortran -c -o3 *.f # 編譯所有的 .f 檔案,生成 .o檔案
ar rv libblas.a *.o # 鏈結所有的 .o檔案,生成.a 檔案
sudo
cp libblas.a /usr/local/lib #將庫檔案複製到系統庫目錄
2)編譯cblas, 進入cblas資料夾,首先根據你自己的計算機平台,將目錄下某個 makefile.***複製為 makefile.in , ***表示計算機的平台,如果是linux,那麼就將makefile.linux 複製為makefile.in,然後執行以下命令
sudo
cp../blas/libblas.a testing # 將上一步編譯成功的 libblas.a複製到 cblas目錄下的testing子目錄
make
# 編譯所有的目錄
sudo
cp lib/cblas_linux.a /usr/local/lib/libcblas.a #將庫檔案複製到系統庫目錄下
3)編譯lapack以及lapacke,這一步比較麻煩,首先當然是進入lapack-3.2.1資料夾,然後根據平台的特點,將install目錄下對應的make.inc.***複製乙份到 lapack-3.2.1目錄下,並命名為make.inc, 這裡我複製的是install/make.inc.gfortran,因為我這裡用的是gfortran編譯器。
修改lapack-3.4.2/makefile,因為lapack以來於blas庫,所以需要做如下修改
#lib: lapacklib tmglib
lib: blaslib variants lapacklig tmglib
make
# 編譯所有的lapack檔案 (時間比較久)
sudo
cp *.a /usr/local/lib # 將生成的所有庫檔案複製到系統庫目錄
生成的庫檔案包括:liblapack.a, liblapacke.a, librefblas.a,libtmglib.a
至此cblas和lapack就成功安裝到你的電腦上了。參考
2 使用開源**生成可執行二進位制檔案
比較簡單,找到makefile,然後新增lapack的路徑就好了。
在原始檔src下make一下
最後執行試試看,提取的效果還算不錯
2D到3D 外參矩陣估計
1.背景 最近正在做姿態估計,簡單搜姿態估計的關鍵字得到的資訊不夠完整,所以把搜到的資訊加上自己的理解整合在這篇文章。2.正向3d到2d的過程 首先3d物體在世界座標系,也就是我們現實世界,物體是現實中的絕對尺寸,以m為單位。現實世界的物體認為成剛體,那麼這個剛體和相機之間會有乙個相對位置。對於物體...
如何理解物體的6D位姿估計任務?
如何 感性 地理解物體的6d姿態估計任務?答 三維世界中,比如我們開車行駛在道路上,我們不僅需要關注前方是否有車輛,而且更在意前方車輛的狀態,或者說姿態,是正在轉彎,還是正在駛向自己,或是遠離自己。其實這就是乙個物體的6d姿態估計任務。物體就是前方車輛,其在當前時刻,並在我方視角下,它的三維空間位置...
6DoF位姿估計之SSD 6D
4 評價 ssd 6d網路模型的演算法流程為 輸入一張299 times 299的彩色影象到backbone網路 inceptionv4 中,得到6個不同尺度的特徵圖 接著對於每乙個特徵圖,通過3 times 3的滑動視窗得到特徵圖上每個畫素點的分類和回歸結果,分類結果包括c cc種物體類別 取樣得...