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

関連記事

「ベンジャミン·バトン数奇な人生」でどうやってCGの顔を作ったのか

MVStudio:オープンソースのPhotogrammetryツール

Deep Learningとその他の機械学習手法の性能比較

画像認識による位置情報取得 - Semi-Direct Monocular Visual Odome...

Kinect for Windows V2のプレオーダー開始

OpenCV 3.1から追加されたSfMモジュール

Googleが画像解析旅行ガイドアプリのJetpac社を買収

Facebookの顔認証技術『DeepFace』

PythonでMayaのShapeノードプラグインを作る

Google App Engineのデプロイ失敗

書籍『3次元コンピュータビジョン計算ハンドブック』を購入

iOSデバイスと接続して連携するガジェットの開発方法

UnityでOpenCVを使うには?

科学技術計算向けスクリプト言語『Julia』

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

Russian3DScannerのトポロジー転送ツール『WrapX』

Raspberry Pi 2を買いました

AR (Augmented Reality)とDR (Diminished Reality)

RSSフィードを読込んで表示するWordpressプラグイン『RSSImport』

Human Generator:Blenderの人体生成アドオン

Iridescence:プロトタイピング向け軽量3D可視化ライブラリ

書籍『OpenCV 3 プログラミングブック』を購入

Unityで強化学習できる『Unity ML-Agents』

WordPress on Google App Engineを1週間運用してみて

SegNet:ディープラーニングによるSemantic Segmentation手法

ニューラルネットワークと深層学習

オープンソースのプリント基板設計ツール『KiCad』

顔画像処理技術の過去の研究

Kubric:機械学習用アノテーション付き動画生成パイプライン

TensorFlowでCGを微分できる『TensorFlow Graphics』

WinSCP

UnityでARKit2.0

COLMAP:オープンソースのSfM・MVSツール

Blender 2.8がついに正式リリース!

『手を動かしながら学ぶエンジニアのためのデータサイエンス』ハンズオンセミナーに行ってきた

Live CV:インタラクティブにComputer Visionコーディングができるツール

Raspberry PiでIoTごっこ

Open Shading Language (OSL)

フォトンの放射から格納までを可視化した動画

OpenCVの超解像(SuperResolution)モジュールを試す

海外ドラマのChromaKey

iOSデバイスのためのフィジカル・コンピューティングツールキット『konashi(こなし)』

コメント