ノーコードでエッジAIアプリを開発するクラウド上の統合開発環境。NVIDIA Jetsonやラズパイなどデバイス毎に最適化するコンパイラ搭載。「GENESIS DevEnv」[PR]
IoT分野での活用が予想されている「エッジデバイス」は、カメラやセンサーなどを接続し、店舗や工場などの現場に設置され、その場で画像処理やデジタル信号処理などの処理を行うことが期待されています。
これによりエッジでのリアルタイムな処理や、センシティブな情報をエッジで処理することによりネットワークに流さなくて済むなどのメリットがあるのです。
こうしたエッジデバイスへの期待の高まりに応えるように、その選択肢が急速に充実し始めています。NVIDIAのJetson、Google Coral Dev Board、Raspberry Piなどはその代表例でしょう。
これらのエッジデバイスには、低消費電力を実現しつつ画像処理や機械学習など高度な処理が行えるよう、独自のSoC(システムオンチップ)、GPU、FPGA、ASICによるアクセラレータやAIチップなどを備えています。
エッジデバイスの充実に伴う課題
それぞれ特長を持つエッジデバイスの選択肢が増えることは、エッジにおける処理のニーズが高まるなかで好ましいことです。
しかし一方で、エッジデバイスごとの開発環境や最適化の手間とノウハウなどがデバイス毎に分散してしまうことも意味します。
これは次のような課題を生みます。
- ある処理に最適なエッジデバイスの選択をどうやって正確に判断するか?
- エッジデバイスごとに異なる開発環境の手間とスキル獲得をどのようにするか?
- SoCやプロセッサに対して最適化したコードやバイナリをどうやって生成するか?
クラウドと比較すると限られた電力と能力しかないエッジデイバイスで、特に、機械学習のような高度な処理をエッジで迅速に実行する場合、ソフトウェアをデバイスに最適化させることで最大限に能力を引き出すことは、間違いなく重要になります。
ノーコード開発、最適化コンパイラ、適確なデバイス選択
こうした課題を解決するために登場したのが、クラウドサービス(SaaS)として提供されるエッジデバイス向けの統合開発環境「GENESIS DevEnv」です。
GENESIS DevEnvは、次の4つの特徴を備えています。
そのうえで各社のメジャーなエッジデバイス、例えば「NVIDIA Jetson NX」「NVIDIA Jetson NANO」「AAEON UP Core plus」「Google Coral Dev Board」への対応はすでに実現しており、今後Raspberry Piを含むさまざまなデバイスへの対応も計画しています。
GENESIS DevEnvのおもな特長である、ノーコード開発、最適化コンパイラ、適確なデバイス選択などをもう少し詳しく見ていきましょう。
実機不要、WebブラウザでエッジAIアプリを開発
GENESIS DevEnvは開発をWebブラウザで行えるため、完成するまで実機は必要ありません。実機を開発者が手元に置かなくても開発できる環境は、在宅勤務が増えた現在、非常に有用な開発環境といえるでしょう。
前述の通り、GENESIS DevEnvは、テンプレートをベースにしたノーコード開発を可能にしています。
例えば、カメラに写った範囲の人数を数え、人の性別、年齢などを推測したり、あるいは工場や倉庫内の特定のモノを認識して数えることなど、比較的ニーズの高いアプリケーションのテンプレートが用意されています。今後もさらに追加されていく予定です。
テンプレートから作られたひな形の上に、ビルディングブロックとしてあらかじめ用意された機能群をさらに組み合わせていくことで、機能を作りこんでいくことができます。
ビルディングブロックには、USBなど各種I/Oの対応、カメラのRAWデータを通常の画像形式に変換、ガンマ補正などのフィルタ処理、深度推定、物体認識など、さまざまなものが用意されています。
開発者はエッジデバイスの種類を気にすることなく、画面上のドラッグ&ドロップこれらを組み合わせ、パラメータの調整などを行います。
開発中のアプリ全体の動作、個々のビルディングブロックの動作のいずれも、プレビュー機能を通じて確認できるのも非常に便利です。
デバイス毎に最適化バイナリを生成、実機のデバイスプールで比較評価
アプリケーションの開発が終了すると、次はエッジデバイス上で実行可能なバイナリを生成するコンパイラの出番です。
GENESIS DevEnvの開発元であるフィックスターズ社は、ソフトウェア高速化を実現する上で重要な、アルゴリズムの実装、最適化されたバイナリを生成するコンパイラなどの分野を得意としています。
この技術はGENESIS DevEnvにも活かされており、アプリケーションから各エッジデバイスのハードウェアに対して個別に最適化されたバイナリが生成されます。
GENESIS DevEnvでは、複数のエッジデバイス向けに最適化されたバイナリを同時に生成し、クラウド内のエッジデバイスのプール上に配置された実際のデバイスへデプロイ、実行し、実行時間、消費電力推定値、コストパフォーマンスなどのメトリクスを比較。
要件に合ったエッジデバイスの選択を容易かつ適確に行えます。
ここまでの作業がGENESIS DevEnvではクラウド化されているわけです。
そして最後にバイナリ化されたアプリケーションをクラウドからダウンロードし、実機に転送、実行することができます。
エッジAIアプリケーションに革新的な価値を提供
このようにGENESIS DevEnvでは、テンプレートとビルディングブロックを用いたノーコードによる開発、高度なノウハウを活用し最適化されたバイナリを生成するコンパイラ、クラウド上のデバイスプールを用いてハードウェアを評価することで、的確なハードウェア選択の実現という、3つの革新的な価値をエッジAIアプリケーションの開発にもたらします。
今後も、モバイルビジョン、自動モビリティ、ロボット、産業用画像処理などの業界向けテンプレートや、超解像変換、ノイズリダクション、ジェスチャ認識などの新たなビルディングブロックなどのビルディングブロックの追加や、RISC-V SoC、インテルやXLINXなどのFPGA SoC対応、各種AIチップ対応などのアップデートを行い、さらに幅広いニーズに応えていくクラウドサービスへと発展していくことになるでしょう。
GENESIS DevEnvは無料で開発、デバイスプールを用いた評価、実機へのデプロイまで可能なトライアル版を提供。気軽に試せるようになっています。
また、フィックスターズではGENESIS DevEnvの機能拡充に向けて協力してくれるユーザーや開発パートナーも募集しています。興味のある方はぜひお問い合わせください。
(本記事は株式会社フィックスターズ提供のタイアップ記事です)
あわせて読みたい
Google、オープンソースソフトウェアの脆弱性をバージョンごとにデータベース化する「OSV」(Open Source Vulnerabilities)プロジェクトを開始
≪前の記事
Google、API管理プラットフォームの「Apigee X」発表。Cloud CDNで性能向上、機械学習でインテリジェントにデータ保護など