AIロボット、AIカメラ

ChemiCo-SAN Eye

目のひみつ

今回は、ロボットの目、カメラについての話です。時間がありましたら、まずは動画をご覧ください。

カメラ入力によるパターン認識

5種類の国旗を見分けられるパターン認識システムです。これそのものをロボットの目に使うわけではありません。似たようなハードウェアは使いますが、ソフトウェアがまったく別物になります。

動画中でも言及していますが、M5CAMERA、もしくは前回の動画に出てきたM5CAMERA5Xは、どちらも仲良く販売中止です。それを言ったら動画に出てくるM5StackFireも出始めの頃のものでかなり古いです。機材自体は2~3年くらい前のものとお考え下さい。別のものを使います、と動画中では言っていますが、ESP-EYE AI Board I Espressifを使う予定です。パッケージングは3Dプリンターで作り直す予定だったので、中身だけのESP-EYEのほうが良いという面もあります。

AIロボットの目を構成する

このシステムの構成は以下の通りです。

パターン認識システム構成図

実際のパターン認識はFPGA2Iというユニットが行っています。これは北海道大学主導で開発されたArduinoシールドでFPGAを用いて機械学習を行います。詳細はFPGA2I コンソーシアムをご覧ください。コンソーシアム会員になると国旗認識のPythonコードやM5Camera用のスケッチソースなどを入手できます。

マイクロコントローラーであるM5Stackはサーボの制御とカメラからのデータをFPGA2Iに流すのが主な仕事です。実際の機械学習はFPGA2Iで行っています。コロナがなければFPGA2Iはすでに市販されているはずだったのですが、昨今の半導体不足の影響をモロに受けてしまったらしく計画が遅れています。動画で使っているFPGA2Iは北海道大学から無償貸与していただいている開発用基板です。

というわけで、こちらも非売品ですからFPGA2Iの部分もこのまま使うわけにはいかないのです。発売まで待つというのも一手ですが、そこまで辛抱強くはない。

構成図をご覧いただくと気がつくかと思いますが、幸か不幸か学習データのロードストア用にラズパイ4BベースのLinux-データサーバをWiFi接続してあります。AI演算もそちらでやってしまえばなんとかなりますので、そうしようかなと考えています。

機械学習はやりません

ここまで引っ張ておいてからこんなことを言うのもなんですが、現時点ではAIロボットに搭載するAIエンジンに機械学習を使わない方向で考えています。入力ネットワークモデルからハッシュ値を計算してその値で出力ネットワークを駆動するものにするつもりです。ハッシュにするとネットワークの内部構造がつぶれるので逆伝搬が機能しなくなりますが、別に順伝番さえあればパーセプトロンは収束するので、まあ、いいかと考えています。いつ収束するかは神のみぞ知るですけども。

じゃあ、何で機械学習モデルなんか紹介してるのだ、という話なんですが、「できないんだろ」と言われるのが嫌だったのです。「できるけど、やらないよ」と言いたいためだけにこんなことしているわけです。自分でもつくづく面倒な性格だと思います。

答えを探すのに疲れる前に

機械学習は何にでも適用可能な魔法の技術ではありません。とくに目的関数がうまく記述できないようなものには向いていないのです。これから作ろうとしているAIロボットには目的がありません。これはかなり古いタイプのAIで、AIの歴史上、何度か試みられた(そしてあまりうまくいかなかった)問題発見型のAIに属するものです。基本のアルゴリズムが全数総当たりのブルートフォースになるので、問題サイズが小さい場合には運よく答えが出ることもありますが、昨今の巨大な問題サイズには太刀打ちできないと言われています。

20世紀初頭、世の中には答えの出ない問題というものが無数に存在することが数学的に証明されました。ゲーデルの不完全性定理からの一連の流れです。そこで現代数学は「この世のすべてを説明してみせる」という方針を捨てて、「主として答えのあると思われる問題に取り組む」方向に大きく舵を切り直しました。残念ながら、AIロボットはその性格上、答えのない(と思われる)問題にも対応しないといけません。機械学習は答えがある前提で駆動するアリゴリズムのひとつですので、今回のAIロボットへの採用を断念した次第です。

コメント

タイトルとURLをコピーしました