pretty code

2023年9月13日 星期三

遺珠之憾的雞肋

這個標題下的有點誇張,但我的感覺還真是如此XD


上面是一個使用 binary code 的結構光專案,有趣的是作者使用 blender 軟體來建構所有物件資訊,並非由真實的照相機及投影機所產生。

純以 decode 來說,gray code 相臨數字只差一個 bit 的編碼特性會比 binary code 在找對應點時好很多,故實務上應該是比較少使用它來編碼,目前以我在大衛朗基羅的經驗來看,gray code + phase shift method 應該是有比較好的成像品質。

之前在開始學習結構光相關主題時,我就把 github 上的 700 多個專案看過一遍,坦白說這是個苦差事,在只知道結構光皮毛知識下,要如何分辨哪個專案能幫助學習確實有點困難!單純看 README.md 不太能得到有用資訊,除非專案作者很用心在寫文件XD

故我的 SOP 就是檢查 code 是否齊全,有沒有相機圖片,是否有給相機內參或 R、t,當然最重要的一點就是 code 是否能跑?

如果單純是 Python 還好辦,相關 modules 裝一裝就好;Matlab 沒有軟體就算了,只要有 code 可以 porting 就好;但遇到 C++ 類的就沒輒,我一定要先能成功編譯它才能夠去跑它! 

這個專案很不巧的就屬於這種,即使我有 vcpkg 的加持,還是要經歷邊報錯邊檢查少了什麼再繼續安裝的無限循環,這個專案為了平行處理還使用了 halide 的函式庫,故還需要 llvm 的相關工具,印象中當初為了這個專案,假日時常要遠端登入公司電腦好確保 vcpkg 安裝相關函式庫時有順利執行,沒有半途發生錯誤被中斷,因為 llvm 很吃硬碟空間,為了這個還要搬移資料分割區資料,並執行微軟硬碟工具內建動態擴充功能擴充 C 槽才能順利安裝。

我還記得當初因為硬碟空間不足,vcpkg 安裝常出現莫名錯誤,當時沒意會到是這個原因,故我在某一次的放假遠端登入中終於放棄,改使用家裡電腦安裝。雖然最後有成功安裝,但因為兩邊電腦發生過的安裝錯誤實在太多,故我也來不及寫筆記XD

好不容易順利執行,即使都是使用 blender 的假資料,binary code 的 dense match 還是很吃二值化設定,故成像品質也只是 so so,所以最後這個專案也沒有放進我安排的學習清單中,所以我才說它是一個遺珠之憾的雞肋XD

剛在電腦看到殘缺的筆記資料,還是把它記錄一下好了,凡走過必留下痕跡。

build llvm error
'atlbase.h': No such file or directory

印象中,這個 error 是 VS building tool 少裝 ATL 相關的套件,再 Google 一下應該就有答案?

-----------------------
vcpkg install halide:x64-windows
vcpkg install glm:x64-windows
vcpkg install glfw3:x64-windows
vcpkg install llvm[target-all,clang-tools-extra]:x64-windows

-----------------------
cmake . -A x64 -DCMAKE_TOOLCHAIN_FILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake
msbuild xxx.sln /p:Configuration=Release

2023/09/14 更新

花了好幾個假日編譯好的東西還是想要留個記錄,於是在辦公室的電腦又做了一次XD

果然,憑著殘缺的筆記是不夠的,這次在 build halide 又遇到奇怪的問題,改先安裝 llvm,It is building …

2023/09/14 更新

llvm 遇到錯誤了,沉思中…

2023/09/27 更新

擴充記憶體到 16G 後,看起來記憶體不足的問題有解決,但在寫入檔案時會失敗。

mt.exe : general error c101008d: Failed to write the updated manifest of xxxxx.

試著將 C:\src\vcpkg 加到 Windows Defender 的例外掃瞄資料夾,但這個問題還是沒解決,可能真的必須關掉防毒軟體才行,我們可能沒有權限做此件事?

沒有留言: