AI技術は、デバイスが世界とどのように相互作用するかを急速に変えています。従来、プログラマーはシステムが現実世界のさまざまな予測不可能な状況にどのように反応するかを事前に決定する必要がありました。AIを使用すると、そのモデルは望ましい反応を捉えるように訓練され、予期しなかった状況に対しても信頼性の高い望ましい反応を提供できるようになります。
AIに新しい開発者が直面する課題の一つは、アプリケーションに合わせたAI実装をカスタマイズすることです。特定のアプリケーションが自身のボード実装を正当化するのに十分なボリュームを持っていない限り、市販のAIボードは一般的な効果に焦点を当てがちです。それらはすべてのアプリケーションに必要ではないリソースやインターフェースを持っているため、不必要にコストを増加させます。
例えば、Jetson Nano Developer Kit のような開発者キットは、基本的なAI実装を作成する方法に慣れるのに最適な方法です。Jetson Nanoにはさまざまなインターフェースが付属しており、非常に短時間でテストシステムを立ち上げて動かすことが簡単です。このキットは、センサー処理からビデオ分析、音声処理に至るまで、幅広い多様なアプリケーションの優れた出発点として機能します。
しかし、一般的なAIシステムの構築方法を理解すると、最終的な製造ハードウェアに可能な限り近いプロトタイプを使用してアプリケーションの開発を開始したくなるでしょう。これは、AIをエッジに移行する際に特に重要です。
クラウド内のGPUのコスト、可用性、およびスケーラビリティは非常に柔軟です。必要な応答性を得られない場合や、モデルが当初考えていたよりも多くのデータを効果的に処理する必要があることがわかった場合、簡単にクラウドリソースを追加できます。
しかし、エッジではそうはいきません。エッジでは、コスト、パフォーマンス、および精度のバランスを取りたい場合に最適なリソースの組み合わせを決定する必要があります。理想的には、大幅なハードウェア変更を強いることなく簡単にダウンスケールできるシステムが必要です。
また、センサー、カメラ、インターフェース、メモリ、MCUなど、アプリケーションの残りの部分を構成するコンポーネントも設計の容易さに影響します。これは、ある時点でAIシステムをアプリケーションの残りの部分と統合する必要があるためです。
ビデオイメージのサイズを増やす必要があることがわかった場合に必要となるカスケード変更を考えてみてください。AIモデルは異なるサイズのイメージを扱う必要があり、システム全体のパフォーマンスとメモリ要件が完全に変わります。さらに、新しいカメラを既存のファームウェアとシームレスに統合する必要があり、できればファームウェアの書き換えを避けたいところです。この新しいリソースの組み合わせをバランス良く最適化するには時間もかかります。さらに、2台目のカメラを追加し、実効フレームレートを上げる必要があると想像してみてください。
この統合段階は、手動で行う必要がある場合、非常に時間がかかり、イライラすることがあります。たとえば、同じベンダーのカメラドライバーであっても互換性がないことがよくあります。新しいドライバーが前のものと全く同じように動作することを確認するために、広範なテストを行う必要があります。
Geppetto のようなカスタムプラットフォームアプローチをデザインに採用することで、開発時間を大幅に短縮できます。Geppettoを使用すると、実証済みの機能ブロックをドラッグアンドドロップでカスタムボードに追加できます。AIアプリケーションの場合、Jetson Nanoから始めて、必要ない機能を削除できます。その後、センサー、インターフェース、プロセッサー、その他の回路を広範なモジュールライブラリから追加し、アプリケーションに最適化されたカスタムモジュールを構築できます。
このアプローチの主な利点は、初期の開発とテストのために少数のボードをコスト効率よく製造できることです。もし、より多くの処理能力が必要になった場合、またはそれ以下である場合でも、完全に新しいシステムを設計することなく、簡単にデザインを調整できます。
さらに、カスタムボードはOSとドライバーが事前に統合されています。すべてのコンポーネントを連携させる必要はありません。なぜなら、私たちがすでにそれを行っているからです。
AI技術は、本当に数クリックで手に入ります。Gumstix を訪問して、もっと学びましょう。