《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 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。
主站蜘蛛池模板: 日韩欧美亚洲一区二区综合 | 九九精品在线播放 | 黄色青青草 | 1024你懂的国产在线播放 | 一级毛片在线免费视频 | caoporn免费视频国产 | 精品国产免费人成在线观看 | 国产麻豆一级在线观看 | 国产精品视频无圣光一区 | 久草免费福利 | 狠狠色狠色综合曰曰 | 老妇女毛片 | 黄色精品在线 | 成人午夜激情 | 毛片在线看免费版 | 久久国产综合精品欧美 | 妞干网免费看 | 国产色爽免费视频 | 国产成人午夜片在线观看 | 国产福利亚洲 | 一本大道香蕉中文在线高清 | 天天干天天干天天天天天天爽 | 亚洲一区二区黄色 | 激情小视频在线播放免费 | 亚洲色图.com| 欧美一级专区免费大片野外交 | 色我网站| 91污污视频| 日韩色网站 | 国产精品成人h片在线 | 国外成人在线视频 | 成年视频xxxxxx在线 | 日韩小视频网站 | 97理论三级九七午夜在线观看 | 看中国国产一级毛片真人视频 | 激情五月俺来也 | 性欧美4khdxxxx | 99视频在线观看免费视频 | 日本综合在线 | 波多野结衣一区免费作品 | 欧美一区二区三区不卡免费 |