変わりモノがいい!

変わりモノには価値がある・・・ハズ?

UnitVによるライン画像認識

ライントレースってどうやるの?

 今回のお題は、RoverCを走行路に書いたラインにそって走らせることです。
そのためにはラインを認識する必要があり、UnitVを使ってラインの画像認識を行います。

f:id:ken2017:20200715063354j:plain
僕は、約38年前に一次元イメージセンサやビジコンを使った画像処理システムを開発していましたが、あのころは原始的な言語を使ってプログラムを作っていました。
今回は、Maixpyという開発環境とmicropythonという言語を使ってプログラムを作るので、それらに関するドキュメントをまずはネットで探しました。
まず探したのは、Maixpyに関するドキュメントです。

maixpy.sipeed.com

この中にMachine visionの項があり、LCDへの表示方法、カメラセンサモジュールの使い方、画像認識事例がでています。

maixpy.sipeed.com

また、デモ用スクリプトの情報がgithubに入っています。

github.com

下に示すフォルダ内にカメラの設定から顔認証というようなアプリまで、画像処理に必要なデモスクリプトが入っています。
これは大変参考になるものです。

f:id:ken2017:20200715110231p:plain

これらのスクリプトを理解しようとしたらmicropythonの関係するクラスの情報も必要になります。
micropythonのクラスに関する情報は下のドキュメントのOpenMVに関するライブラリの中に纏まっています。
この中にある、image - machine visionとsensor - camera sensorのクラスに関する記載内容を参考にしてデモスクリプトの意味を理解していきました。

https://docs.openmv.io/library/omv.image.html#

 さて、それではMaixpyを動かしましょう。

Maixpyを使ってUnitVの動作確認ができます。
動作確認ができるということはプログラムを動かして結果の確認ができるということです。
ということで、具体的なライン認識をさせながらUnitVの取り付け位置等ハードの修正やプログラムの修正を進めていきましょう。 
まず、UnitVをパソコンに繋ぎMaixpyを起動します。
起動したら下のような画面が出ます。
画面には、左にプログラムコードが、右上にカメラの画像や処理結果を表示するためのウインドウが、その下にR、G、Bのヒストグラムが出ます。
これらの情報を見ながら調整やデバッグを行います。

f:id:ken2017:20200715115656p:plain
今回の実験の写真を添付します。
白紙にマジックで黒い線を描いています。
その上にRoverCを載せています。
RoverCには、レゴで足場を組んでその上にUnitVを載っけています。
デバッグなのでUnitVとパソコンをUSBで接続しています。

f:id:ken2017:20200715120557j:plain
Maixpyを操作してUnitVとの接続を確立しプログラムをUnitVに送ることでパソコンの画面に処理結果が表示されます。
RoverCとパソコンの画面の両方が入った写真がコレです。
パソコンの画面右上に黒い線が表示されていますが、これが白紙に描いた黒い線の画像です。

f:id:ken2017:20200715122801j:plain
処理画面をよく見てみると下のところに黄色いタイヤが写っています。

f:id:ken2017:20200715123738j:plain
その影響のためか、黒い線の中心線(画面の白線)が本来の中心線に対して少し傾いているように見えます。
これを改善するためにUnitVの取り付け位置を前方に少し出しました。
その甲斐あって処理結果に表示された白線を変更前に比べて黒い線の中心線に近づけることができました。

f:id:ken2017:20200715123933j:plain
何となくですが、うまく認識できていると思います。
これは期待できそうです。

ライン画像認識プログラムについて

今回使用したUnitVのプログラムは、
sensorやimageのようなライブラリの読み込み、
カメラの初期設定、
カメラからの画像入力、
入力した画像の不要領域のマスク処理、
を行った上で、
画像に対して最小二乗法で認識した線分の線形近似を取得
することで黒い線の中心線を求めています。
ステップ数は20ステップ程度です。
凄いですよね。
便利になったものです。
次回は、いよいよUnitVによるライントレースでRoverCを動かします。

では、また。

 

プライバシーポリシー お問い合わせ