初窺AR(基於AR的自動定位初級思路)

年前老師給了個愛普生的投影儀要我用它來學習AR,經過一個星期的探索做出了一個簡單的雛形程序,可以結合投影儀投影出來的圖形進行簡單的投影定位,也藉着年前沒有什麼事情了寫篇博客來分享記錄一下我的初窺經歷。

首先關於AR,經過一個星期的查閱資料以及實踐我自己的拙見就是將虛擬的物體通過投影出來結合實際物體來進行處理,這裏的處理部分就不得不使用到攝像頭,我初步做的是用的RGB攝像頭,還沒有使用雙目或者深度攝像頭,關於做這個基於AR的自動定位,我來簡單介紹一下我的大致方案和設施。

首先,我使用的器材很簡單,一個攝像頭,一個投影儀,找了一個空的地方,把攝像頭和投影儀先固定好,然後將投影儀投影於一處乾淨的白色牆面,牆的前面放了一個傾斜的畫板(就地取材),在傾斜的畫板上貼了一張白紙,白紙上面繪製了一個黑色的三角形框,剛開始我的思路是準備進行三個座標系的轉換(攝像頭像素座標系,投影儀投影於實際畫板上的座標系,OpenGL繪製時候的座標系),其實投影儀投影於實際畫板上的座標系可以細分爲兩個,一個是投影儀正投影出來的,還一個纔是畫板上的座標系,這上面有一個傾斜角度。

說下我目前的一個思路,思路就是隻用管像素座標系和OpenGL座標系,就是先化繁爲簡,首先我們是要定位白紙上的黑色三角形框,那麼我就首先是用OpenGL在顯示界面繪製一個參考框(此處其實可以選擇參考點或者其它任意適合於實際情況的形狀),然後投影於畫板上,這時候我們再調用攝像頭捕獲當前畫面,當前畫面就存在了一個已知參考框和我們要定位的三角形框,此時我們就對圖像進行處理,在像素座標系中得出參考框的像素座標,三角形框的像素座標,同時根據參考框的OpenGL中的座標關係,我們可以得出三角形框在OpenGL座標系中的值,此時我們就可以直接得出所要檢測的三角形框的OpenGL中的座標並且繪製出來就可以了。

此處其實我忽略了一個很關鍵的問題,就是我們攝像頭採集的圖片實際上已經是失真了的圖片,我們通過圖像處理得出的座標值也是對應失真圖片的尺寸,所以說應該還需要進行座標矩陣轉換,我此處運用的背景只是一個傾斜了一定角度的畫布,所以說此處座標矩陣轉換關係理論上是可以求出來的,此處傾斜座標系矩陣和原座標系矩陣之間轉換就是一個旋轉角度Theta矩陣和位移Trans矩陣的變化,而且目前就我做的這個階段性成果及測試效果來看,目前侷限性還很大,雖然目前是擺脫了定點定位置的侷限性,可以在有限的攝像頭視野範圍內進行任意移動,但是圖像處理方面還僅僅只針對於規則形狀擬合,相對於那種不規則的多邊形就不能擬合出輪廓來,還有就是目前幕布僅僅是一個傾斜了一定角度的平面,然後實際中很多情況都是球狀或者柱面幕布,這也是我仍需要進行研究的,第一篇先暫時只寫這些,我感覺我這個入門主要還是思想上邏輯關係理清楚,其實實現起來的代碼並沒有什麼難度,所以說我也就不獻醜了,主要還是記錄一下我的初步思路以及我接下來準備要做的,這篇可能寫的比較水,不好意思了。

發佈了4 篇原創文章 · 獲贊 2 · 訪問量 2920
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章