3D物件模型的來源有三,網路下載,程式自製,自行掃描既有物品。掃描的原理眾多,族繁不及備載,實際可運作商品也不少,例如Revopoint POP2 或Mini (連結),這裡討論的是Maker等級CICLOP,原理是藉由拍攝和計算單條雷射光在物體表面構成的線條,取得單一軸線的二維位置,再由旋轉補充整個物件。
- 硬體:整套僅台幣二千多元,連結,安裝步驟(連結),該偷的料都沒少(螺帽都是塑膠)。原本擔心粗製濫造零件衍生的組裝公差造成影響,最後發現都是多餘(理由後述)。
- 軟體
- 初次下載WIN版本,整包下載雖然立刻可用,但效果不佳,直到由理論開始重新了解運作機制,終於掃描出勉強可看成品。
- UI開發環境為wxpython,對比於wxqt的參考範例較多。
- 顯示部份使用python-opengl(並非open3d,也無關point cloud套件)。
- porting: 熱心人士維護系統(連結 ,有藍色的雷射)。
- 校正
- WEBCAM,先對chess board拍攝進行校正(隨便拍攝十五張照片),計算出變形等資訊,因此決定了相機角度位置。理論上,只要對焦位置更近,雷射線條夠細,應該可以掃描更微小的項目。
- 雷射,首先拍攝一張曝光很低的相片,然後打出雷射並且拍照,利用OpenCV取得最亮線條,因此計算出雷射的射出面,也就是雷射的法向量。在此條件下,雷射位置不重要,相反的螺絲鎖緊些才能得到穩定的數值。光線均質也是重點。
- 旋轉平台,理論上,到這階段為止就可取得物體相對於相機的座標系統,若是要放到轉台上,首先要知道轉台位置,程式介面會抓取chess board左下角點,且維持並fit到圓上,計算出圓心。盤面高度不重要(輸入27mm)。其中馬達會有卡頓現象,溫度偏高,需要處理。
- 掃描
- 理論上左右雷射可擇一運作。掃描過程會取得某一切面全線點位置,以及當時的顏色。轉動轉盤,被動的將360度資訊組合為一物體。
- 雙雷射的結果,會進行疊合,理論上應該緊密重疊,實際卻有誤差(還找不出原因,猜測原因是背景干擾反光),雙雷射的優點是可拍攝到被遮蔽凹處。
- 掃描BUG,物體粉紅色區域會影響位置,如口腔下半部,及某個顏色的神奇寶貝。透過掃描界面中觀察雷射取像畫面,會發現粉紅色與雷射顏色太接近而白成一片。這可以用噴灰漆或更換雷射顏色解決。
- 結果儲存
----
程式說明 目錄架構,使用siglon將GUI和engine區分
python horus.py
>engine
>algorithms
>calibration
>driver
>uvc
>scan
>uvc
>mac
.gui
>util
>wazard
>workbench
>adjustment
>calibration
>pages
>control
>scanning
main開始
>util
>mesh_loaders
>meshLoaders
沒有留言:
張貼留言