《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > ar技術怎么實現 四種AR的實現方式

ar技術怎么實現 四種AR的實現方式

2017-08-14
關鍵詞: AR Python OpenGL SLAM

導讀:我們在實現AR效果時,為了大大減少我們的工程量,我們可以借助一些主流的ARSDK,比如EasyAR,Vuforia,太虛AR等等,當然,作為AR技術的狂熱愛好者

  我們在實現AR效果時,為了大大減少我們的工程量,我們可以借助一些主流的AR SDK,比如EasyAR ,Vuforia,太虛AR等等,當然,作為AR技術的狂熱愛好者,我們的追求遠遠不止于此。所以了,我今天給大家介紹了幾種“底層”實現AR的方式。

  Opencv和C++ 實現

  大概思路是OpenCV實現對Marker的識別和定位,然后通過OpenGL將虛擬物體疊加到攝像頭圖像下,實現增強現實。具體思路是:

使用SIFT算法進行識別(特征點的提取并用特征向量對特征點描述,接著當前視圖的特征向量與目標對象的特征向量進行匹配)

根據識別出來的原目標和幀圖像匹配關系得到變化矩陣,來顯示三維物體(使用OpenGL來繪制),實現跟蹤。

  對于基于標記的AR的Opencv實現,我們常常用到Marker:

97135f54812041e599c9affe02c63472.jpg.png

  黑色邊框中是編碼信息,白色為1,黑色為0,將每一行作為一個字,那么每個字有5bits。其中,1、3、5位為校驗位,2、4位為信息位。接下來用Opencv實現,其具體思路為:

對輸入圖像幀進行標記檢測,灰度化,找到圖像中輪廓,檢測和解碼標記,

估計標記的三維姿態,這里包括提前對攝像機進行相機標定,獲取相機內參數和失真系數,根據這個計算出標記的旋轉矩陣和平移矩陣,

由相機內參數和標記的旋轉矩陣和平移矩陣,用OpenGL進行渲染三維物體。

  項目地址:https://github.com/GeekLiB/opencv_iphoneAR

  參考資料:

  書籍:深入理解OpenCV 實用計算機視覺項目解析

 ?。ㄦ溄? https://pan.baidu.com/s/1mi0oCmG 密碼: erh5)

  文章:OpenGL與OpenCV實現增強現實

  (鏈接http://www.tuicool.com/articles/MNJjyam)

  Python 實現AR效果

  Python是世界上最優雅的語言,目前的計算機視覺項目大都用Python來實現,當然用Python的CV庫也可以很輕松的實現AR效果。

  用Python來實現AR效果,我們首先運用到兩個工具包----PyGame與PyOpenGL。PyGame是非常流行的游戲開發工具包,它可以非常簡單的處理顯示窗口,輸入設備,事件以及其他內容。PyGame是開源的(http://www.pygame.org/)。PyOpenGL是OpenGL圖形煸炒的Python綁定接口。并且它也是開源的(http://www.opengl.org/wiki/Getting_started)。在實現的過程中,我們需要獲取照相機矩陣并轉換到OpenGL格式,并以平面和標記物進行姿態估計,然后在圖像中放置虛擬物體。

  參考資料:

  python計算機視覺:鏈接: https://pan.baidu.com/s/1geArUUn 密碼: fnby

  當然,這里也有一個很好的Python AR框架BAR4Py,它是由百曉通客棧×創客項目群著手開發的“增強現實(AR)”的 Python 開發庫。

  項目地址:https://github.com/GeekLiB/AR-BXT-AR4Python

  特點:

  基于 OpenCV,以及 Python 的數學庫;

  跨平臺,可拓展,免費、開源;

  支持簡單的 Mark 標記物以及復雜的圖像標記;

  使用遺忘隊列結構動態更新相機標定;

  可以看看他們的測試效果:

4cd5682dc58a4fa4a55820a8f0a0ec0a_th.jpg

bab7ae93cf6d48f58f5a7e14f6e8ad04_th.jpg

0ef0d614527b449ebff53af57f891172_th.jpg

  AR+SLAM

  SLAM主要用于地圖重建,在AR中,我們主要運用SLAM算法來獲取camera pose(SLAM的結果是基于feature的點云,提前重建后可以remap拿到較好的camera pose)。

  在這里,我給大家收集了一些SLAM開發資源與AR-SLAM 項目案例,大家可以下載參考。

  SLAM開發資源匯總:https://github.com/GeekLiB/Lee-SLAM-source

  PTAM-AR:http://www.robots.ox.ac.uk/~bob/research/research_ptamm.html

b86df2e18cc347af842f34cfa87ac55c_th.jpg

81cde31cd94b4c1dba20444f4355a0de_th.jpg

c70c7c7850494e8391bb8d51f45774a0_th.jpg

  OpenCV-Marker-less-AR:https://github.com/takmin/OpenCV-Marker-less-AR

  Stereo_SLAM_AR(基于ORB-SLAM):https://github.com/ygx2011/Stereo_SLAM_AR

  效果:

174e5f78aa554b1bbb1fc6d0db957847_th.jpg

  opencv-markerless-AR-Mobile:https://github.com/meiroo/opencv-markerless-AR-Mobile

  ARToolkit

  這是一個老牌的AR工具包,ARToolKit 它是一個C/C++ 語言編寫的庫。對于開發一個AR程序來說,最困難的部分在于實時的將虛擬圖像覆蓋到用戶視口,并且和真實世界中的對象精確對齊。ARToolKit使用圖像技術計算攝像機和標記卡之間的相對位置,從而使程序員能夠將他們的虛擬對象覆蓋到標記卡上面。ARToolKit 提供的快速和準確的標記跟蹤,能夠讓你快速的開發出許多更新更有趣的AR程序。

  目前ARToolkit支持以下系統:

  相信大多數開發者學習或開發的第一個AR應用用的就是ARToolkit。ARtoolkit的實現步驟是:程序初始化----抓取一幀進行視頻的輸入----然后探測標示卡----計算攝像頭的轉移矩陣----繪制虛擬物體----關閉視頻捕捉。

513efa16137445c6a08ed05ff86b1fc3_th.jpg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 欧美午夜不卡 | a级毛片在线视频免费观看 a级免费看 | 99在线视频免费观看 | 毛片大全免费看 | 波多野结衣视频在线看 | 国产亚洲欧美另类一区二区三区 | 午夜剧场操一操 | 黄网免费 | 级毛片久久久毛片精品毛片 | 色偷偷网站 | 欧美黑人猛xxxxbbbb | 三级网站在线 | 成人网18入口 | 亚洲制服丝袜在线播放 | 色老汉视频 | 久久亚洲热 | 最近日本中文字幕免费完整 | 97福利视频导航欧美一区 | 久爱www免费人成福利播放 | 最近免费中文字幕大全视频 | 精品五夜婷香蕉国产线看观看 | 18成禁人视频免费网站 | 国产剧情一区二区三区 | 天堂网在线播放 | 狠狠色狠狠色综合网 | 久久精品国产一区 | 毛片在线视频在线播放 | 手机在线免费看毛片 | 午夜视频在线观看网站 | 国产成人欧美视频在线 | 天天干天日 | 综合成人在线 | 草草线在成人免费视频 | 美女视频网站黄色 | 国产一级一级片 | 香蕉色香蕉在线视频 | 在线黄色观看 | 日本一区中文字幕 | 337p色噜噜人体大胆欧美 | 成人18毛片 | 日韩一区二区中文字幕 |