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

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

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

ArUco

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

関連記事

SSD (Single Shot Multibox Dete...

Paul Debevec

PCA (主成分分析)

IronPythonを使ってUnity上でPythonのコー...

SSII 2014 デモンストレーションセッションのダイジェ...

3D復元技術の情報リンク集

OANDAのfxTrade API

Structure from Motion (多視点画像から...

株式会社ヘキサドライブの研究室ページ

ディープラーニング

UnityでOpenCVを使うには?

HerokuでMEAN stack

Open Shading Language (OSL)

Kaolin:3Dディープラーニング用のPyTorchライブ...

ブログが1日ダウンしてました

NeuralNetwork.NET:.NETで使えるTens...

1枚の画像からマテリアルを作成できる無料ツール『Materi...

Webスクレイピングの勉強会に行ってきた

Runway ML:クリエイターのための機械学習ツール

Leap MotionでMaya上のオブジェクトを操作できる...

WordPress on Windows Azure

HD画質の無駄遣い その2

PyDataTokyo主催のDeep Learning勉強会

コンピュータビジョンの技術マップ

ヘッドマウントディスプレイとビジュアリゼーションの未来

UnityでPoint Cloudを表示する方法

VCG Library:C++のポリゴン操作ライブラリ

Mitsuba 2:オープンソースの物理ベースレンダラ

trimesh:PythonでポリゴンMeshを扱うライブラ...

Mitsuba 3:オープンソースの研究向けレンダラ

Geogram:C++の3D幾何アルゴリズムライブラリ

SVM (Support Vector Machine)

Kinect for Windows v2の日本価格決定

OpenCVの顔検出過程を可視化した動画

マルコフ連鎖モンテカルロ法

ブラウザ操作自動化ツール『Selenium』を試す

Fast R-CNN:ディープラーニングによる一般物体検出手...

Gource:バージョン管理の履歴を可視化するツール

SONY製のニューラルネットワークライブラリ『NNabla』

Caffe:読みやすくて高速なディープラーニングのフレームワ...

スクレイピング

WordPressのテーマを自作する

コメント