- Charmed Labs Pixy2 ロボットビジョンイメージセンサ
- 従来のPixy1より小型で高速 (毎秒60フレーム)
- ラインを検出し追従するカスタムアルゴリズムによる新しい「ラインフォロー」モードを搭載
- 改善したPixyMonソフトウェア (PC/Mac/Linux アプリケーション)
Charmed Labs Pixy 2.1 ロボットビジョンイメージセンサは、従来のPixyと比べて小型、高速で、高機能になっています。
Pixy2は、ボタンを押すだけで、教えた物体の検出を学習することができます。 さらに、ライン追従ロボット用のラインを検出し追従する新しいアルゴリズムを搭載しています。 さらに、交差点や「道路標識」を検出するアルゴリズムも新たに搭載しました。道路標識は、左折、右折、減速など、ロボットに何をすべきかを伝えることができます。
Pixy2は、この全ての処理をを毎秒60フレームで行うことができますので、ロボットの高速動作が可能です。Pixy2にはArduinoに直接接続できる専用ケーブルとRaspberry Piに接続できるUSBケーブルが付属しているので、すぐに使うことができます。 ArduinoもRaspberry Piもなくても問題ありません。 Pixy2 には複数のインタフェース (SPI、I2C、UART、USB) とシンプルな通信機能があるので、選択したコントローラと Pixy2 をすぐに通信させることができます。
広視野
新バージョン2.1では、視野角が80°となり、より広い視野を確保しました。ただし、広視野化に伴い球面収差が発生します。
レンズ交換が可能でフォーカスも調整可能
M12レンズマウントを使用してレンズ交換が可能で、フォーカスも調整可能で6.35mmの近距離までのあらゆる距離にある被写体に焦点を合わせることができます。
色収差と画素ノイズの低減
従来のPixyでは色収差が顕著でしたが、新しいレンズでは周辺部での色収差がほとんどありません。
また、従来のレンズはF値が3.0以上でしたが、新しいレンズはF値が2.0になっています。これは、一定量の周囲光に対して、集光能力が向上し、信号が多くなり、ノイズが少なくなることを意味します。ノイズが少ないということは、この新しいPixyバージョンの検出精度が高いということです。
物体を持ち上げ、ボールを追いかけ、充電ステーションを探すなどの仕事をロボットに実行させ、これらすべての仕事を 1個のセンサで実行できるようにするには、ビジョンセンサが必要です。ビジョン (画像) センサは非常に柔軟なので便利です。適切なアルゴリズムを使用すると、画像センサは事実上あらゆるものを感知または検出することができます。
しかし、画像センサには2種類の欠点があります。1)1秒間に数十メガバイトという大量のデータを出力すること、2)このデータ量を処理するために多くのプロセッサの負荷が大きくなることです。そして、もしプロセッサがデータに追いつくことができれば、その処理能力の大部分を他のタスクに使うことができなくなります。
Pixy2は、強力な専用プロセッサを画像センサと組み合わせることで、この問題に対処しています。Pixy2は画像センサからの画像を処理し、有用な情報(例えば、x=54, y=103で検出された紫の恐竜)だけをマイクロコントローラに送ります。そして、これをフレームレート(60Hz)で処理します。情報は、UARTシリアル、SPI、I2C、USB、デジタル/アナログ出力などのインタフェースの1経路を介して利用できます。したがって、Arduinoやその他のマイクロコントローラは、Pixy2と簡単に通信することができ、CPUが他のタスクを問題なく処理することができます。
毎秒60フレーム
60フレーム/秒とはどういう意味でしょうか? 簡単に言うとPixy2 が高速であることを意味します。Pixy2 は、1秒の1/60 (16.7ms) の間隔で画像フレーム全体を処理します。つまり、16.7ms毎に検出したすべての物体の位置を完全に更新できることになります。
このレートであれば、落下/バウンドするボールの軌道を追跡することが可能です。(時速64.4Kmで移動するボールが16.7msで移動するのは30cm未満です)ロボットがライン追従を行っている場合、フレーム間の移動距離はわずか25.4mmです。
紫色の恐竜 (およびその他)
Pixy2は、Color Connected Components(CCC)アルゴリズムと呼ぶカラーベースのフィルタリングアルゴリズムを使用して、物体を検出します。カラーベースのフィルタリング手法は、高速で効率的、かつ比較的安定であることから人気があります。私たちの多くは、RGB(赤、緑、青)で色を表現することに慣れ親しんでいます。Pixy2は、画像センサからRGBの各ピクセルの色(色相)と彩度を計算し、これを主要なフィルタリングパラメータとして使用します。
被写体の色相は、照明や露出が変わってもほとんど変化しません。照明や露出の変化は、カラーフィルタリングのアルゴリズムに影響を与え、壊してしまうというもどかしさがあります。Pixy2のフィルタリングアルゴリズムは、照明や露出の変化に対して高い安定性があります。
7種類のカラーシグネチャ
Pixy2のCCCアルゴリズムは、最大7種類の異なるカラー シグネチャを記憶します。つまり、固有の色を持つ 7個の物体がある場合でも、Pixy2のカラーフィルタリングアルゴリズムはそれらを問題なく識別できることを意味します。7種類以上必要な場合は、カラーコードを使用することができます。
興味のあるオブジェクトを教える
Pixy2のユニークな点は、あなたが興味のあるものを物理的に教えることができることです。紫色の恐竜をPixy2の前に置いてボタンを押したり、オレンジのボールをPixy2の前に置いて、ボタンを押すことで簡単に素早く教えることができます。
具体的には、Pixy2のレンズの前に物を置き、上部にあるボタンを押しながら、Pixy2に教えていきます。このとき、レンズの下にあるRGBのLEDが、どの物体を直接見ているのかをフィードバックします。例えば、オレンジ色のボールを目の前に置くと、LEDはオレンジ色に変わります。ボタンを離すとPixy2は対象物に含まれる色の統計モデルを生成し、それをフラッシュメモリに保存します。そして、この統計モデルを用いて、それ以降、フレーム内で似たような色の特徴を持つ物体を見つけることができるようになります。
Pixy2は1〜7の7種類のカラーシグネチャを学習することができます。カラーサイン1はデフォルトのサインです。他の色名(2〜7)は、ボタンを押すだけの簡単な操作で学習できます。
PixyMon でPixyが見ているものを確認することができます
PixyMonは、Windows、macOS、Linux上で動作するアプリケーションです。これによりPixyが見ているものを、未処理または処理済のビデオとして確認することができます。また、Pixyの設定、出力ポートの設定、カラーシグネチャーの管理も可能です。PixyMonは、標準的なミニUSBケーブルでPixyと通信します。PixyMonは、アプリケーションのデバッグに最適です。
コントローラのサポート
Pixyは、複数のインタフェースオプション(UARTシリアル、SPI、I2C、USB、デジタル/アナログ出力)をサポートしているので、様々なコントローラに簡単に接続できますが、PixyはArduinoとの通信から始まり、Arduino Due、Raspberry Pi、BeagleBone Blackのサポートを追加しました。