OpenCVとARUcoマーカーを利用した画像マッピング

こんにちは、AMDlabの森山です。私は修士課程の研究で画像処理の研究について行っていました。
その中で没になったけど役に立ちそうだな、と思うものがあったので、紹介したいと思います。

OpenCVとは

OpenCVはOpen Source Computer Vision Libraryという正式名称で、Intelで開発されたコンピュータービジョンライブラリです。主に画像や動画処理系のライブラリで、CppやPythonで利用できます。
BSDライセンスによって公開されており、現在はItseezによって開発が進められています。

https://opencv.org/

ARUcoマーカーとは

OpenCV3から、contribの中にARUcoというマーカーが含まれています。検出精度が優れていて、かなり簡単に扱うことができます。
Pythonで扱う場合は
python -m pip install opencv-contrib-python
によって利用することができるようになります。

マーカーの生成

マーカーの生成は以下のコードで行います

これにより以下のようなマーカーが生成されます。

マーカーの検出

上記で検出したマーカーを検出して、コーナーの座標をとってくるようなプログラムを書いてみます。

画像をマッピングする

検出されたマーカーに画像をマッピングしてみましょう。以下のようなコードでできます。

配置したマーカーに大きく画像を貼る

コーナーの座標をとり、画像のマッピングする方法ができているため、ここから配置されたマーカーのそれぞれの四隅の点から、大きな画像を貼る方法について説明します。言葉で説明するとわかりにくいですが、
例えば、建築の図面なんかを見せたいときに、四隅にマーカーを配置することで、簡単にサイズを変えたり、配置場所を変えたりできます。

これによって、マーカーを四隅に配置することで、大きな画像をマッピングすることができます。
もちろんARマーカーなので、カメラでリアルタイムに検出することも可能です。四枚のマーカーでレイアウトを考えたりすることができるので便利ですね

ARTICLES