【Pythonでプログラミング】arucoライブラリを使ってARマーカを認識してみた

プログラミング

スポンサーリンク

こんにちは、おかてんです。

今回は少しエンジニアらしくコードを書いてみました。

会社の勉強会でARマーカを認識しようというのがあったので、自分でも簡単に実装してみました。

 

今回の環境は

Max OS X El Capitan
Python

で実装します。

 

arucoというARマーカを読み取るライブラリがあるので、まずは使えるか確認してみました。

なんかエラーが出た。

ググってみると、どうやらopencv-pythonとopencv-contrib-pythonというパッケージが足りなかったようです。

ちなみにエラーが出てきたときにオススメなのがtaratailです。エンジニア向けのQ&Aサイトで、わからないエラーが出たらここで質問してみましょう。

★合わせて読みたい

 

それではそのパッケージを入れてみました。

もう一度arucoライブラリが使えるかを確認。

エラーが出ずうまく通りました。

ではAR認識ライブラリarucoを使って実装してみました。

出来上がったコードをこちらに載せます。

 

このファイルを実行するのですが、引数をとって実行するようにしました。

引数→Generator:ARマーカ画像を出力
引数→Reader:ARマーカを認識するためにカメラを起動

というような設定になっています。

まずはARマーカを作らないといけないので、以下のコマンドをターミナルで以下を実行し、4×4のARマーカを50枚作成します。arMaker.pyはファイル名です。

出来上がったマーカがこんな感じ。こちらはid=0のARマーカです。

では、これを使って実際にARマーカを読み込んでみます。

我が家にプリンタがないので、スマホからARマーカを表示させてみました。

ターミナルで以下のコマンドを実行して、カメラを起動。

早速読み込ませてみました。

きちんと認識できてますね。idも0と表示されています。。

斜めに傾けても認識率は高そうです。

僕はスマホの画面からやりましたが、できるなら紙に印刷してやった方が認識率は高くなるでしょう。

 

 

これを何に使うかって話なのですが、1つはARアプリなどに応用できます。駅や空港などでスマホをかざすと、外国人に向けた翻訳なども可能に。

まあ、最近は光IDなどでもっと近未来的な開発も進んでいますが、原理としては似たようなものなので一応押さえておくこともありかなと。

 

Pythonを使った画像処理について学びたい方はUdemyのこちらの講座がオススメです。
【Pythonで学ぶ】OpenCVでの画像処理入門

スポンサーリンク