当方の Youtube でもFPGAを使った高速な画像処理アルゴリズムのデモはいくつか紹介しておりますが、見た目のわかりやすさとしては下記の Microsoft Research のデモ動画がわかりやすいと思いますので、紹介しておきます。
テレビやPCモニタなどの動画映像ではしばし 60Hz 程度の速度が用いられます。
これは人間にとって個人差はあれどこの程度のフレームレートがあればそれ以上はだんだん認識が難しくなってくるため費用対効果を考えたうえで実用上の上限として良く用いられます。
そのせいか「人は60Hz以上を感知できないのだからそれ以上の撮影は無意味だ」という勘違いも結構生まれているようです。
60Hz はただそれだけで 16.6ms の遅延を生み出します(1ms は 1000分の1秒)。わずかそれだけの時間でも現実世界では十分に大きなずれが発生するのがわかるのではないかと思います。
そしてこれが16.6msで済めばよいのですが、現実には 16.6ms かけて露光し、結果を 16.6ms かけて例えば HDMI などの映像伝送規格で送られ、パソコンなどで画像認識などが行われ、結果を使ってグラフィックバッファに描画し、それからまた16.6msかけてDVIなどの規格でディスプレイに伝送されるわけです。そしてグラフィックスバッファなどはさらに複数バッファがチェインされていることをちょっとグラフィックをかじった方ならご存じでしょう。あっという間に数百msの遅延となってしまいます。
予測可能な動きであれば計算によってずれの補正は可能なのですが、世の中には動画のような人間の動きであったり、風に揺れるドローンであったり、振動のある環境下での計測であったり、予測困難な動きの中で、センシング→計算→アクチュエーション を行わなければならないケースは多々あります。
人間にとっても100msも遅れて見える視野で何か作業をするのはなかなかの苦痛です。
残念ながらこのような環境下に、例えば現在の Windows PC で実行されているような画像処理をそのまま持ってくると、誤差を許容したり、いちいち装置を止めたり、熟練しないと作業できないなどといったことになります。
このような分野に適用できる、計算機とそのためのアルゴリズムをセットで考えようというのがリアルタイムコンピューティングです。
そのような観点でもう一度当サイトの動画を見て頂けると凄さが少し伝わるのではないでしょうか?
本当に 現実世界を画像センシングして、1ミリ秒後にAIの認識結果を現実世界に表示しています。
このようなことは今のパソコンを今のアーキテクチャのまま高速にしても実現はできません。
入力を即座に出力に反映させることができる、新しい並列アルゴリズムと、それを実行する新しい計算機の仕組みがとても重要です。
当サイトでは FPGA を用いることで、この領域のコンピューティングを追求しているのです。
コメント