MathWorks Principal Technical Marketing ManagerのBruce Tannenbaum氏

MathWorksは11月2日、都内でMATLAB EXPO 2011を開催し、MATLABおよびSimulinkの活用方法などの紹介を行った。また、それに併せて、同社Principal Technical Marketing ManagerのBruce Tannenbaum氏がコンピュータビジョン向けに2011年4月より提供を開始した研究開発ツール「Computer Vision System Toolbox」の記者向け説明会を開催したので、その模様をお伝えする。

コンピュータビジョンがどういったものなのかは、弊誌連載の「コンピュータビジョンのセカイ - 今そこにあるミライ」をお読みいただければご理解いただけるだろうし、すでに幅広い分野で活用されていることもお分かりいただけると思うので割愛するが、「コンピュータビジョンの活用は、ハードウェアの高性能化、低消費電力化もそれを後押しもあり、コンシューマ製品での顔認識/顔検出や超解像、クルマの衝突安全、セキュリティなどで求められるようになってきた」(同)ということで、今後、さらに活用範囲が拡大することが見込まれている。しかし、一言にコンピュータビジョンといっても、用途に応じて、さまざまなアルゴリズムが存在し、また、同一用途に対しても複数のアルゴリズムが存在することから、それを開発し、さらに組込機器では、実機や開発ボードに搭載し、実際に動かして評価ということを、その都度行っていたのでは、開発期間はどんどん伸びていくだけで、同ツールボックスはそうした課題を解決することを目的に開発されたという。

コンピューティングパワーの向上により、従来、大型の専用機などでしか出来なかったコンピューティングビジョンが携帯端末クラスでも出来るようになってきた

同ツールボックスを用いることで、カメラからの画像データの取得、アルゴリズム開発および方式の確認、ポーティングまでを一括してMATLAB/Simulink上で行うことが可能となる。特に動画の取り回しを容易に行えるように工夫が施されており、動画の取り込み、前処理、動き検出、解析といった一連のワークフローの提供により、ハードウェアの知識が乏しいアルゴリズム開発者でも、プロトタイピングとして実機と同じような環境での動作確認などができるようになっている。

「Computer Vision System Toolbox」の登場以前からコンピュータビジョンをMATLAB/Simulink上で活用することはできたが、より体系的かつ専用関数などを用意することで、簡単にコンピュータビジョンの処理を出来るようにしたのが今回のポイント

例えば、組込機器で実際にカメラからの動画を処理しようと思うと、メモリの容量や処理速度、プロセッサやOSの種類などを加味して、実機の制作側のエンジニアと一緒に開発し、アルゴリズムにそうした問題を加味してやる必要があり、その都度、実機での評価を行い、再設計、再び実機での評価、という手戻りが発生していたが、より上流のアルゴリズム設計者がプロトタイピングをすることで、開発工数と負担の軽減を狙えるようになるというのが同社の主張である。

コンピュータビジョンのデモの1つ。適当に1台のカメラを横スライドさせて2枚の画像を撮影し、その差分から立体データを作り出すというもの。近くのものほど位置の座標のずれが大きく、奥に言うほど小さいことから、深さ方向を割り出している

そのため、同社では組込開発環境向けにSimulink上でコードの生成を行い、FPGAやCPU/DSP、EDAなどとの連携のほか、最近は組み込み分野でもエクリプスベースの開発が増えてきており、そうした連携も加味したソリューションを構築することが可能な各種ツールボックスの提供も行っている。

実際のデモでは、Simulinkのブロック線図とMATLABのコードを連動させ、かつLinux対応の画像ブロックを用いることで、MATLABベースおよびSimulinkのブロックベースという2種類のアルゴリズムをスイッチ1つで、オンザフライで切り替えて試すことが可能な様子も披露された。

MATLAB EXPO 2011会場でもデモ展示されていたWebカメラを用いて、無作為に動く虫をトレースするというデモのスライド各種。処理はBeagleBoardで行われている

実際に会場で公開されていたデモ

なお、同ツールもMATLAB/Simulinkのアップデート同様半年に1回のアップデートが行われており、現在MATLAB/Simulink 2011bの提供に合わせた機能強化として、特徴点の抽出アルゴリズムである「Speeded-Up Robust Features(SURF)」が採用されたほか、深さ方向の検出機能も搭載されており、今後も半年ごとにアップデートを繰り返していくことで、幅広いコンピュータビジョンの適用領域すべてに対応を図っていきたいとしている。

MATLAB/Simulinkを用いたモデルベース開発のイメージ。同ツールを用いることでコンピュータビジョンシステムの開発もモデルベースに落とし込んで実行できるようになる