Python Python 活用 プログラミング

【python できること】簡単!ARマーカーの作り方と検知する方法

 

pythonではARマーカーを簡単に作ったり、検知することができます。

ARマーカーをつけることで、カメラで製品や部材の認識ができます。

また、動くものであれば、トラッキングもできます。

 

本記事はこんな方におすすめです。

hituji
ARのマーカーの作り方、検知する方法を知りたい。

 

本記事の内容

  • インストール
  • ARマーカーの作成
  • ARマーカーの読み込み
  • 検知座標の取得

 

この記事を読むと、ARマーカーの作成から、その検知の方法について知ることができます。

 

サンプルコード

 

スポンサーリンク

ARマーカーについて

今回作るARマーカーは次のようなコードです。

OpenCVのArUcoを使っています。

 

QRコードに近いですね。

QRコードは文字やURLのリンクを情報として入れて使いますが、ARマーカーでは1-1000などの数値を紐づけています。

ARマーカーは遠くからでも認識ができ、同時に何個も検出することが可能です。

 

 インストール

ARマーカーを使うために、opencv-contrib-pythonをインストールします。

インストールは、下記のようにpipを使ってインストールできます。

 

ライブラリの読み込み

画像読み込みと画像データを使うのにcv2,numpy

画像データ表示するのにmatplotを読み込みんでいます。

 

ARマーカーの作成

ARマーカーの作り方を紹介します。

 

マーカーの種類

ARマーカーの種類を決める必要があります。

種類は以下のリンクを参考にしてください。

>> ARマーカーの種類 OpneCVドキュメント

 

例えば、DICT_4X4_50であれば、縦横4ビットで0-49の50個のマーカーを作ることができます。

 

DICT_ビット数_ID数となっています。

多いもので、1000個とかですね。

少ない場合は、2つ並べて組み合わせることで、1000個以上に対応することができます。

 

マーカーの作成

種類がわかったところで、マーカーを作っていきます。

ar_id: 作成するARマーカーの番号
img_size: ARマーカーのサイズ
ar_img: 作成されたAR画像

としています。

 

画像サイズや、ARマーカーの表示もしています。

 

これで1つのマーカーができました。

欲しい分の番号を繰り返し処理で作っていきましょう。

 

連結したARマーカーの作成

先ほど作成した、ARマーカーを並べれば、もし1000個以上IDが欲しい場合に有効です。

連結する場合の関数を紹介します。

 

これを使うと簡単に横並びに連結したマーカーを作ることができます。

試しに、30, 23, 40を横並びにします。

 

作成できました。

これを複数読む場合が、読んだ後、連結して読む必要があるかどうかは、座標などから判断が必要となります。

ARマーカーの読み込み

次のようなビンにARマーカーを貼ったものを検知してみます。
*実物に貼り付けてないのでイメージです。

 

検知には、aruco.detectMarkersを使います。

実際のコードで見ていきましょう。

 

検知できていますね。

何百とある部材の管理する場合に、これであれば、一発で有無チェックができます。

 

座標データの取得

検知できた位置情報などは、detectMarkersから受け取った、corners、idsに入っています。

ループで順番に取得していきます。

 

以上がARマーカーの作り方と検知の方法でした。

棚の部材や、工具など一発で確認できるようになれば便利ではないでしょうか?

 

他の活用方法は「python 活用 できることまとめ」も参考にしてください。

>> python 活用 できることまとめ

Pythonスキルが身に付いたら、ぜひスキルを生かして稼いでいきましょう!

>> Pythonでの副業の始め方紹介【隙間時間 で可能】

-Python, Python 活用, プログラミング

© 2021 ひつじ工房