軽量な AR ライブラリの ArUco について調査中

軽量な AR ライブラリの ArUco について調査中

###**OpenCVのcontribを利用する場合**
OpenCV3.2 ではcontrib の中にArUcoが含まれている。引用している記事に述べるように、サンプルプログラムのビルドには別途 CMakeLists.txt を作って(あるいは引用先のCMakeLists.txtをコピーして)、cmakeしてからビルドする。

- OpenCV3.2 /Related Pages [Tutorials for contrib modules](http://docs.opencv.org/3.2.0/d9/d6d/tutorial_table_of_content_aruco.html)
- ArUcoマーカー検出（aruco モジュール）
ArUcoマーカは、カメラの姿勢推定に使用できるバイナリの正方形の基準マーカです。その主な利点は、検出が堅牢で、迅速かつ簡単であることです。
arucoモジュールは、これらのタイプのマーカーの検出と、姿勢推定およびカメラ較正のために使用するツールを含む。
また、ChArUcoの機能はArucoマーカーと従来のチェスボードを組み合わせて、簡単で多彩なコーナー検出を可能にします。このモジュールにはChArUcoのコーナーを検出し、姿勢推定やカメラ較正に使用する機能も含まれています。

![ChArUoの図](http://docs.opencv.org/3.2.0/charucodefinition.png)

    - opencv_contrib-master/modules/aruco/src       モジュールとしてインストールされるもの
    - opencv_contrib-master/modules/aruco/samples　　ArUcoのモジュールを利用するsampleプログラム
- [OpenCV3 ArUcoサンプルのビルド](http://mickey-happygolucky.hatenablog.com/entry/2016/07/14/014333)
 このサイトにはopencv_contrib-master/modules/aruco/samplesのプログラムをbuildするためのCMakeLists.txtの見本がある。2つのプログラムだけ書かれている部分を、残り全てのプログラムについて同様に記述すれば十分だ。

> OpenCV3ではopencv_contributeというリポジトリにOpenCVを使用して作成されたライブラリがモジュールとして収録されている。 この中にAR向けマーカー認識ライブラリのArUcoがある。
opencv_contrib/modules/arucoにはCMakeLists.txtが存在するが、これはArUcoそのものをビルドするためのものであるため、 サンプルのビルドには使用できない。

--------------------------------
**ArUcoマーカー検出（aruco モジュール）**
ArUcoマーカーは、カメラの姿勢推定に使用できるバイナリの正方形の基準マーカーです。その主な利点は、検出が堅牢で、迅速かつ簡単であることです。
arucoモジュールは、これらのタイプのマーカーの検出と、姿勢推定およびカメラ較正のために使用するツールを含む。
また、ChArUcoの機能はArucoマーカーと従来のチェスボードを組み合わせて、簡単で多彩なコーナー検出を可能にします。このモジュールにはChArUcoのコーナーを検出し、姿勢推定やカメラ較正に使用する機能も含まれています。

[Arucoマーカーの検出](http://docs.opencv.org/3.2.0/d5/dae/tutorial_aruco_detection.html)
互換性：> OpenCV 3.0
著者：Sergio Garrido
単一のArUcoマーカーからの基本的な検出と姿勢推定。

[Arucoボードの検出](http://docs.opencv.org/3.2.0/db/da9/tutorial_aruco_board_detection.html)
互換性：> OpenCV 3.0
著者：Sergio Garrido
マーカボードを用いた検出と姿勢推定

[ChArUcoコーナーの検出](http://docs.opencv.org/3.2.0/df/d4a/tutorial_charuco_detection.html)
互換性：> OpenCV 3.0
著者：Sergio Garrido
ChArUcoコーナーを使った基本的な検出

[ダイヤモンドマーカーの検出](http://docs.opencv.org/3.2.0/d5/d07/tutorial_charuco_diamond_detection.html)
互換性：> OpenCV 3.0
著者：Sergio Garrido
ChArUcoマーカーを用いた検出と姿勢推定

[ArucoとChArUcoによる校正](http://docs.opencv.org/3.2.0/da/d13/tutorial_aruco_calibration.html)
互換性：> OpenCV 3.0
著者：Sergio Garrido
ArucoおよびChArUcoボードを使用したカメラキャリブレーション

[ArucoモジュールFAQ](http://docs.opencv.org/3.2.0/d1/dcb/tutorial_aruco_faq.html)
互換性：> OpenCV 3.0
著者：Sergio Garrido
arucoモジュールに関する一般的で有用な質問


---------------------------------------------------
サンプルのソースコード
opencv_contrib-master/modules/aruco/samples
calibrate_camera.cpp           Arucoによる校正
calibrate_camera_charuco.cpp   ChArUcoによる校正
create_board.cpp
create_board_charuco.cpp
create_diamond.cpp
create_marker.cpp
detect_board.cpp       Arucoボードの検出
detect_board_charuco.cpp
detect_diamonds.cpp    ダイヤモンドマーカーの検出
detect_markers.cpp     Arucoマーカーの検出



###**単独配布のArUcoを利用する場合**
- [ArUco: a minimal library for Augmented Reality applications based on OpenCV](http://www.uco.es/investiga/grupos/ava/node/26)
- Windows Visual Studio [ARライブラリ ArUco を CMake なしでビルドする](http://qiita.com/norisio/items/658271e4f7d9e81753e9)

- Mac clang [軽量な AR ライブラリの ArUco を Mac で使ってみた](http://tips.hecomi.com/entry/2015/06/17/234142)

- Mac Android [Unity で Android 向けの OpenCV x ArUco を利用した AR アプリを作ってみる](http://tips.hecomi.com/entry/2015/09/16/0141192)
    - github [unity-android-aruco-sample](https://github.com/hecomi/unity-android-aruco-sample)
- Github [ArUcoでマーカー検出（静止画&動画ファイル）](https://github.com/atinfinity/lab/wiki/ArUco%E3%81%A7%E3%83%9E%E3%83%BC%E3%82%AB%E3%83%BC%E6%A4%9C%E5%87%BA%EF%BC%88%E9%9D%99%E6%AD%A2%E7%94%BB&%E5%8B%95%E7%94%BB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%EF%BC%89)]
    -  動画ファイル中の全フレームを連続で処理するサンプルコード(aruco_simple.cppを改変)

- [OpenCVで気になったモジュールを試してみた](http://catalina1344.hatenablog.jp/entry/2016/01/20/143931)

##**aruco-2.0.13からビルドしたsampleプログラム**
aruco_calibration.exe
aruco_calibration_fromimages.exe
aruco_create_markermap.exe
aruco_markermap_pix2meters.exe
aruco_print_dictionary.exe
aruco_print_marker.exe
aruco_simple.exe
aruco_simple_markermap.exe
aruco_test.exe
aruco_test_markermap.exe
aruco_tracker.exe



##ROSの一部としてのArUco
 sudo apt install aruco_ros
 catkinが必要になった。
　sudo apt install catkinn

Github
JanezCim/Aruco-with-Python
https://github.com/JanezCim/Aruco-with-Python/tree/master/aruco_testproject/build