PR
連載 :
  インタビュー

エンジニアがAIアプリ開発に専念できる環境を提供、作り手と使い手の互恵関係を築くGStreamerベースの注目プラットフォーム

2021年6月21日(月)
Think IT編集部

GPUまわりの知見や技術力を最大限に活かす

Edge AI Boxのような組込系デバイスでは、コストや消費電力などを抑えようとの想いから潤沢なCPUリソースは用意せずに、アクセラレーター(専用ハードウェア)の技術を積極的に活用しようとの工夫がなされるのが通例だ。その点においてEDGEMATRIXはGPUまわりの技術を巧みに適用・応用している典型と見ることができる。まさにGPUに関する知見や技術力が、同社の躍進を支えていると言っても過言ではないだろう。

「Edge AI Boxには、映像解析に特化した機能を提供するAIアプリケーションの実行環境『EDGEMATRIX Stream』を実装しており、そこには弊社なりの知恵や工夫が凝縮されています」──。そう話すのは、同社の小林和徳氏(P&S開発本部 サービス開発部 シニアエッジAIエンジニア)だ。以下に、具体像を紐解いていこう。

EDGEMATRIXのP&S開発本部サービス開発部でシニアエッジAIエンジニアを務める小林和徳氏

EDGEMATRIX Streamのベースにあるのは、Linux向けのマルチメディア処理ソフトとしてOSSプロジェクトから生まれた「GStreamer」と、推論エンジン「TensorRT」をGStreamerから使えるようにすべくNVIDIAが開発したソフト「DeepStream」だ。

EDGEMATRIX Streamの概要と構成

特に骨格を成すのがGStreamerであり、これはプラグインと呼ぶ一塊の処理ロジックを順につなげていくことで目的の機能を具現化するパイプライン構造に立脚しているのが特徴だ。例えば、ビデオファイルを読み込むソースプラグイン、ビデオのデコードを司るフィルタープラグイン、ビデオを表示するシンクプラグインなどをパイプラインでつなぐことによってメディアプレーヤーが出来上がる。「GStreamerは、その単純で分かりやすいフレームワークがあったからこそ普及したと言えます。我々もその特性を活かそうと考えました」(小林氏)。

GStreamerが備えるパイプライン構造の特徴

一方のDeepStreamは、NVIDIAのGPU上で動く深層学習の推論エンジンであるTensorRTを、GStreamerから使えるようにするライブラリだ。TensorRTが、GPUのハードウェアアクセラレーションによって高速に動作する推論エンジンであることは広く知られている。もっとも、TensorRTそのものにはビデオを扱う機能はない。その一方で、GStreamerは外部の機能をプラグインとして持つことで、映像処理の一部としてその機能を利用可能にする。この特性を活用するため、GStreamerのプラグインからTensorRTを呼び、映像に対するAI解析を可能にしたのがDeepStreamである。

「このアイデアは非常に優れていると思いますが、それだけでは足りない機能群、例えばAIアプリとのキメ細かいやり取りやTensorRT以外の推論エンジンへの対応といった部分を弊社独自で開発し、EDGEMATRIX Streamとして拡張しました」と話す小林氏は、そのメリットとして次の3つを挙げる。

  • 1つのAIアルゴリズムに縛られない自由度
  • 複雑なメディアパイプライン制御の隠蔽
  • ハードウェアアクセラレーションによる高速なビデオストリーミング処理と映像解析

「AIのアルゴリズム開発に携わっているエンジニアの多くはビデオやオーディオの処理には精通していないことでしょう。コア領域でない部分はEDGEMATRIX Streamに任せてもらい、彼ら彼女らには持ち前のスキルやノウハウをAI開発に集中させてほしいのです。そんな環境を実現しようとEDGEMATRIX Streamを完成させました」(小林氏)。

パイプライン処理の動的組み替えを具現化

エンジニアがAI開発に専念できる環境を──。言葉でこそ簡単だが、その実現は並大抵のことではなく、EDGEMATRIXの技術力がそこかしこに活かされている。いくつかの具体例を見ていこう。

まずは複雑なパイプライン構成のルーティング制御だ。EDGEMATRIX Streamが、そのベースとなるGStreamerに則ってパイプライン構成のアーキテクチャを採用していることは先述の通り。実際にはカメラ入力、AI推論、WebRTCで送出するためのエンコーダーといった数々のプラグインが綿々とつながっている。ここで、ユーザーのオペレーションに応じてパイプラインを動的に組み替えることができるのだ。

複雑なパイプライン構成のルーティング制御の例

例えば、カメラ映像を取り込んで推論処理を実行している最中に、ユーザーから「カメラ映像を参照したい」というリクエストが来た場合、既存のパイプライン処理の後に、ユーザーにWebRTCで映像を送出するパイプライン処理をつなぐといったことができる。詳細は割愛するが、動的な制御にはパスやシェア、その組み合わせなどのバリエーションがあり、ユーザーの目的に沿ってキメ細かく運用できるし、効率も良い。

複数のパイプラインに分岐するような非同期の制御では、前段からビデオフレームが送られてくるバッファの取り扱いにも注意を払わなければならない。メモリーリークを起こさないようにバッファをクリアするにしても、非同期のパイプラインごとにバッファの参照がいつ終わったかを適切に把握する必要がある。単純な対策としては、それぞれのパイプラインごとに専用のバッファを作ってデータを複製する方法があるものの、メモリーからメモリーにデータをコピーする際のCPU負荷は大きく、できれば避けたい。「EDGEMATRIX Streamの環境下では、複数の参照元から1つのバッファの参照を可能とするGStreamerの機構を駆使し、それぞれのパイプラインがバッファを参照し終えた際に通知を上げ、誰も参照していないことが分かったタイミングでバッファを閉じる工夫が盛り込まれています」(小林氏)。

GPUベースのアルゴリズム資産を
着実に未来へつなぐ

GStreamerは元々はLinux環境におけるマルチメディアフレームワークとして生まれたこともあり、堅牢性の観点では必ずしも十分な配慮がされていない。例えば、ビデオ映像のAI解析を続け、問題が発生したならアラームメールを送るといった用途では24時間365日稼働し続けるのが望ましい。2時間ほどの映画コンテンツを視聴できればよいという用途とは全く異なるのだ。

ここでEDGEMATRIX Streamでは、GStreamerのパイプラインとAIアプリケーションのプロセスを独立させることで、アプリケーションの堅牢性(可用性)を高めている。プロセスとプロセスを、Linuxが備えるプロセス間通信の手段で疎結合型でつないで運用できる。GStreamerのプロセスがクラッシュして落ちても、AIアプリケーションを含む他のプロセスには影響がない。落ちたプロセスを自動で再起動することで、AIアプリケーションはGStreamerのプロセスが落ちたことを知ることなく粛々と稼働を続けることになる。

マルチプロセス化による堅牢性の強化

このようなブラッシュアップを続けてきたEDGEMATRIX Streamに今、市場から熱い視線が送られている。昨今、ビッグデータ解析やデジタル変革といった文脈でAIへの取り組みに本腰を入れる動きがますます活発になっている。何よりもスピードが優先されるだけに、かつての組込系の領域で多く見られた“じっくり作り込む”ような時間感覚では通用せず、GPUに照準を当てたアルゴリズム開発へとシフトする動きも顕著のようだ。そこで、取り組みやすさや既存資産の移植のしやすさなどに鑑みて、EDGEMATRIX Streamへと触肢を伸ばしているのである。

「繰り返しになりますが、当社はエンジニアの方々がAIアプリケーションの開発だけに専念できる環境を用意していますし、作り手も使い手も共にハッピーになれるプラットフォームとして今後も成長させていきます。先々では、映像だけにとどまらず各種のセンサーが生成するデータのAI解析などにも着実に広げ、スマートシティの具現化に向けて皆さんと歩みを共にしていきたいと願っています。何かあればぜひお声がけください」と長谷川氏は取材を締めくくった。

“オープンソース技術の実践活用メディア” をスローガンに、インプレスグループが運営するエンジニアのための技術解説サイト。開発の現場で役立つノウハウ記事を毎日公開しています。

2004年の開設当初からOSS(オープンソースソフトウェア)に着目、近年は特にクラウドを取り巻く技術動向に注力し、ビジネスシーンでOSSを有効活用するための情報発信を続けています。クラウドネイティブ技術に特化したビジネスセミナーや、Think ITと読者、著者の3者をつなぐコミュニティづくりのための勉強会「Think IT+α勉強会」、Web連載記事の書籍化など、Webサイトにとどまらない統合的なメディア展開に挑戦しています。

また、エンジニアの独立・起業、移住など多様化する「働き方」や「ITで社会課題を解決する」等をテーマに、世の中のさまざまな取り組みにも注目し、解説記事や取材記事も積極的に公開しています。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています