ArUco:OpenCVベースのコンパクトなARライブラリ

最近、ARToolKit以外にもっとコンパクトなARライブラリがないか調べてる。
ARアプリを作りたいわけじゃなくて、アプリケーション開発の部品として、単眼カメラによるマーカー認識で3次元座標を取得する機能が欲しいだけなので、あんまりゴテゴテとデカくても困る。カメラの3次元位置を手軽に計測する手段として考えているのです。

そこで見つけたのがOpenCVベースのArUco。(なんて読むんだ?)
BSDライセンスだそうです。


スポンサーリンク

ArUco

ArUco + Ogre + Occlusion Mask

ArUcoの主な特徴:

  • たった1行のC++コードでマーカー検出が可能。
  • ArUcoボード(複数のマーカーで構成されたマーカー)の検出。
  • 依存ライブラリはOpenCVのみ。(バージョン2.4.9以上)
  • 1024個以上の異なる標準のマーカー辞書に加え、さらに多くのHRMマーカーに対応。
  • 手軽にOpenGLとOGREを統合可能。
  • OpenCVによる高速処理と信頼性、クロスプラットフォーム対応。
  • 5分足らずでARアプリを実装できるほど充実したサンプル。
  • BSDライセンス。
  • Python版Javaベータ版が利用可能。

ソースコードをダウンロードしてビルドしてみた感じだと、OpenCV バージョン3でもちゃんと動きそうな感じ。


スポンサーリンク


以前、凹みTipsで詳しく解説されていたので今さらではあるんですけどね。
http://tips.hecomi.com/entry/2015/06/17/234142
http://tips.hecomi.com/entry/2015/09/16/014119

つい最近OpenCVのバージョン3.1がリリースされたけど、リポジトリのopencv_contribに含まれているarucoってこれと同じものなのかな?
https://github.com/Itseez/opencv_contrib/tree/master/modules/aruco

追記:OpenCVのcontribモジュールに含まれているArUcoの使い方についてはdandelionさんがまとめている↓
https://github.com/atinfinity/lab/wiki/ArUco
https://github.com/atinfinity/lab/wiki/aruco%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A7%E3%83%9E%E3%83%BC%E3%82%AB%E3%83%BC%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B
https://github.com/atinfinity/lab/wiki/aruco%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A7%E3%83%9E%E3%83%BC%E3%82%AB%E3%83%BC%E3%82%92%E6%A4%9C%E5%87%BA%E3%81%99%E3%82%8B

Arucoマーカーだけじゃなくて、チェスボードや、両者を組み合わせたChArUcoマーカーも検出できる。
http://qiita.com/nonbiri15/items/b893cb614d7dd6c8c86a

OpenCV3.2のcontribに含まれているArUcoのチュートリアル↓
http://docs.opencv.org/3.2.0/d9/d6d/tutorial_table_of_content_aruco.html


スポンサーリンク

関連記事

ディープラーニングに対応したPythonの機械学習ライブラリ『Pylearn2』
機械学習に役立つPythonライブラリ一覧
オープンソースのPhotogrammetryフレームワーク『Alice Vision』
PythonのStructure from Motionライブラリ『OpenSfM』
ブラウザ操作自動化ツール『Selenium』を試す
Open3D:3Dデータ処理ライブラリ
Google App Engine上のWordPressでFlickrの画像を貼る
参考書
WordPressプラグインの作り方
OpenCV3.3.0でsfmモジュールのビルドに成功!
Javaで作られたオープンソースの3DCGレンダラ『Sunflow』
人体モデリングできるBlenderアドオン『ManuelBastioniLAB』
今年もSSII
Raspberry Pi
PyDataTokyo主催のDeep Learning勉強会
顔画像処理技術の過去の研究
COLMAP:オープンソースのSfM・MVSツール
Webスクレイピングの勉強会に行ってきた
Unity Scriptコーディング→Unreal Engine Scriptコーディング
Python拡張モジュールのWindows用インストーラー配布サイト
OpenCV
Raspberry Pi 2のGPIOピン配置
OpenCVの超解像処理モジュール『Super Resolution』
OpenMayaRender
Unity ARKitプラグインサンプルのチュートリアルを読む
TensorFlowでCGを微分できる『TensorFlow Graphics』
オープンソースの3Dメッシュデータライブラリ『OpenMesh』
Mechanizeで要認証Webサイトをスクレイピング
WordPressの表示を高速化する
OpenCVで顔のランドマークを検出する『Facemark API』
Unity MonoBehaviourクラスのオーバーライド関数が呼び出される順番
Mayaのレンダリング アトリビュート
SDカードサイズのコンピューター『Intel Edison』
機械学習のオープンソースソフトウェアフォーラム『mloss(machine learning ope...
Unityで使える数値計算ライブラリ『Math.NET Numerics』
iOSデバイスと接続して連携するガジェットの開発方法
AMIMOTO(PVM版)で作成したインスタンスをAMIMOTO (HVM版)へ移行する
3Dスキャンに基づくプロシージャルフェイシャルアニメーション
Leap MotionでMaya上のオブジェクトを操作できるプラグイン
海外ドラマのChromaKey
法線マップを用意してCanvas上でShadingするサンプル
オープンソースの顔認識フレームワーク『OpenBR』

コメント