Defart v017の使い方(その3)

視覚設定

AIBOがボールを追いかけて動くようなプログラムを作成する前にしなければならないことがあります。それはAIBOがボールを、ボールとして認識するように設定することです。
といってもDefartではボールをボールとして見ているのではなく、ボールにつけられた色を見てボールかどうか判断しています。たとえばAIBOの製品に付属するピンク色のボールを使う場合、あらかじめAIBOに「ピンク色のもの=ボール」と設定しておきます。そう設定した後は、ピンク色のものをボールと認識するというわけです。
このように「○○色=ボール」のような設定を行う作業を「視覚設定」と呼んでいます。

視覚設定の手順

視覚設定のおおまかな流れは以下のようになります。

  1. 認識したい対象を選ぶ。
  2. AIBOのカメラ画像を取り込む。
  3. カメラ画像に写った認識対象を画面上で塗りつぶす。
  4. 色の範囲を微調整する。
  5. 視覚設定をAIBOに送信する
  6. 別の認識対象について上記と同じ作業を繰り返す。

認識したい対象を選ぶ。

Defartではロボカップ4脚リーグで使用することを主な用途としているため、認識対象もロボカップのボールやフィールド上のモノを認識することを前提とした設定方法になっています。一応そのつもりで以下を読んでください。
まず視覚設定を始めるために、オレンジ色のカラーバーの●を押して視覚設定画面を表示させます。
設定画面右下に「現在のチャネル」と表示されているのが、認識のために設定したい色の番号(チャネル)です。つまみを左右に動かすことで7色(0:オレンジから6:白まで)を個別に設定することができるようになります。
なお、番号の右の色名はロボカップで使用するための参考として表示されているので、0:オレンジのところで別の色(例えばピンク)を認識させるよう設定しても大丈夫です。
チャネル=0はDefart内でボールを認識するためのチャネルです。チャネルを0にして後の設定を行えば、その色をボールと思ってAIBOが行動するようになります。

AIBOのカメラ画像を取り込む。

設定したチャネルに対する色を割り当てます。
まずは、AIBOと接続された状態で、設定画面左上の「画像を取り込む」ボタンを押すと、AIBOのカメラ画像が取り込まれてボタン下のエリアに表示されます。

カメラ画像に写った認識対象を画面上で塗りつぶす。

設定したいモノ(例えばボール)の画像を取り込んだら、取り込んだ画像中のボールをマウスで塗りつぶしていきます。こうすると、ドラッグした部分がオレンジ色で塗りつぶされていきます。
同時に設定画面右側の白いエリアに、塗りつぶした部分の色の情報が記録されていきます。設定画面右側の白いエリアはCbCrグラフといって、YCbCr色空間における青と赤の色差を2次元の座標上にあらわしたものです。
塗りつぶした部分の色は順に分解され、該当する箇所にプロットされます。また、その範囲を囲む四角形も表示されていきます。ボールまでの距離や配置を変えて何度か撮影して塗りつぶすと、CbCrグラフにボールの色の範囲が形作られていることがわかるでしょう。

色の範囲を微調整する。

この範囲がボールをボールとして認識するための色の範囲となります。つまり、AIBOがカメラ画像を分析して、得られた色がこの範囲に入った場合、ボールとみなすというわけです。
この範囲の設定は微妙です。この範囲を大きくするとボールと認識できる場合は増えますが、逆にボールでないモノをボールと考えてしまいます。逆に小さくすると光の加減によってボールをボールと認識できなくなる場合があります。
明るいところと暗いところでは輝度が異なります。輝度の違いによってボールは違う色に見えます。どの輝度でも正しくボールを認識できるよう調整しなければなりません。
なお、CbCrグラフに表示される情報は特定の輝度(Y)の値に限られています。輝度は設定画面右下の「現在の輝度」をスライドすることで変えることができます。輝度は0?31まで変化させることができます。いろいろと輝度を変えながら設定を調整してください。

視覚設定をAIBOに送信する

設定が一段落したら、右上の「視覚設定を送信する」ボタンを押してAIBOに送信します。こうすることでAIBOの視覚認識エンジンの設定が書き変わり、設定した色情報に基づいて物体の認識を始めます。
設定が正しければ、Defart画面の左側中段の画面にオレンジ色のボールが現れるでしょう。