2010-02-10 71 views
9

對於我的工作,我一直在使用ARToolkit(NyARTookit)的Java版本。到目前爲止,它已經被證明足夠滿足我們的需求,但是我的老闆開始希望將框架移植到其他平臺,例如web(Flash等)和移動設備。雖然我想我可以使用其他港口,但我越來越討厭不知道該套件是如何工作的,除此之外,還有一些限制。之後,我還需要擴展套件的功能,以添加諸如交互(卡片上的虛擬按鈕等)之類的功能,而據我所知在NyARToolkit中不受支持。所以基本上,我需要用自定義標記檢測器替換ARToolkit(並且在NyARToolkit的情況下,嘗試擺脫JMF並通過JNI使用更好的解決方案)。然而我不知道這些探測器是如何工作的。我知道3D圖形,我已經構建了一個很好的框架,但我需要知道如何構建底層技術:-)。基於標記的增強現實算法(如ARToolkit的算法)如何工作?

有沒有人知道有關如何從頭開始實施基於標記的增強現實應用程序的任何來源?當在谷歌搜索我只找到AR的「應用程序」,而不是底層算法: - /。

+0

搜索「計算機視覺」。基本上,它只是很多線性代數。 – 2010-02-11 01:13:18

回答

10

'從頭開始'是一個相對術語。真正做到這一點,如果不使用任何預先存在的視覺代碼,將是非常痛苦的,你不會比整個計算機視覺社區做得更好。

但是,如果你想用現有的視覺代碼做AR,這是更合理的。必要的子任務是:

  1. 在圖像或視頻中查找標記。
  2. 確保它們是你想要的。
  3. 找出它們相對於相機的方向。

第一個任務是關鍵點本地化。這方面的技術包括SIFT關鍵點檢測,Harris角點檢測器等。其中一些具有開源實現 - 我認爲OpenCV在函數GoodFeaturesToTrack中有哈里斯角點檢測器。

第二項任務是製作區域描述符。這方面的技術包括SIFT描述符,HOG描述符以及許多其他的描述符。應該有一個地方的開源實現。

第三項任務也由關鍵點本地化器完成。理想情況下,您需要仿射變換,因爲這會告訴您標記如何坐在三維空間中。哈里斯仿射探測器應該爲此工作。欲瞭解更多詳情,請點擊此處:http://en.wikipedia.org/wiki/Harris_affine_region_detector

+1

感謝您的參考。我並不想完成比整個計算機視覺社區更好的工作,我只是想實現查找標記的特定任務所需的子集:-)。然而,我需要知道的是每個部件是如何工作的,從具有該框架的位圖到用於放置3D對象的轉換矩陣的構造的步驟。詳細:-) 基本上: 1.從相機獲取圖像 2.將其轉換爲RGB或其他可處理的格式 3. ??? N.使用變換矩陣。 我需要確切地知道步驟3..N-1 :-) – 2010-02-12 15:09:55

+0

我建議購買O'Reilly OpenCV書籍。 – forefinger 2010-02-12 17:30:54

+0

它解釋算法還是隻是API? – 2010-02-22 11:11:03