画像AI処理PCの導入ハードルとは
通常、画像AIには多くのデータ量・計算量が伴い、GPUなどを積んだようなハイスペックPCが必要となります。しかし、このレベルのスペックPCはサイズ・価格面でのユーザー負担が課題とされてきました。クラウド上での処理、という選択肢もありますが、データ量が大きいがゆえにネットワーク負荷、クラウド使用料なども課題となります。
そこで、ここでは前述の導入ハードルとなっている課題の解決策の1つとして、Axiomtek製のRSC101の画像AI処理を検証したいと思います。RSC101とは、AIアクセラレーターとしてHailo-8™ を搭載しており、AI処理を任せることでパフォーマンスの向上を狙った製品です。
Axiomtek社 RSC101について
RSC101はCPUにIntel® Elkhart Lakeプロセッサーを採用した小型、ファンレスの扱いやすいBOX PCです。AIアクセラレーターにHailo-8™ を採用、26TOPSのAI処理性能を実現し無線通信のOptionも多く、使いやすいBOX PCかと思います。
以下に主要なスペックをまとめておきます。
AI Accelerator | Hailo-8™ SoC, up to 26 TOPS |
CPU | Intel® Celeron® Processor J6413 |
System Memory | 1 x DDR4 SO-DIMM slot, up to 32GB |
Storage | 1 x M.2 Key B 2242 SSD slot (SATA3) |
USB |
1 x USB 3.2 Gen1 1 x USB 2.0 |
Ethernet | 2 x 10/100/1000 Mbps Ethernet |
Display | 1 x HDMI 1.4 with 4K2K supported |
Digital I/O | 1 x 8-CH DI/DO |
Expansion |
1 x M.2 Key E 2230 for Wi-Fi/Bluetooth 1 x M.2 Key B 3052 for 5G 1 x SIM slot |
サイズについてはヒートシンクのサイズで2種類あり、以下のようになっています。
・150.0mm x 111.0mm x 71.7mm (-10℃ to +70℃対応) ←写真はこちらです
・150.0mm x 111.0mm x 49.4mm (-10℃ to +60℃対応)
RSC101の画像AIパフォーマンス検証
OSはUbuntu22.04を使用し、Hailo社提供のTappasツール、PCIeドライバーをインストールしています。Tappasとは画像取り込みからAI処理、表示まで一連の機能を含むデモアプリケーションツールとなります。まず、紹介したいのはHailo-8™ とのPCIe接続の状態です。以下のlspciコマンドの結果をご覧ください。
上記のようにPCIeはHailo-8™ の上限のGen3 x 4laneで接続されております。安価な組み込み用PCではまだまだGen2での接続、さらにlane数も1ないし2での接続しかできない、というものも多いかと思います。
Gen2とGen3の実際の転送レートは以下のようになっており、約2倍の差があります。
・PCIe Gen2の実際の転送レート---4Gbits/s (5Gbits/s×80%)
・PCIe Gen3の実際の転送レート---7.877Gbits/s (8Gbits/s×98.462%)
さらに1laneと4laneの違いがあれば合わせて約8倍の転送レートの差となります。Hailo-8™ はAIネットワークモデルをPCIe経由でロードして実行するため、特に大きなモデルではPCIeの帯域が重要なファクターとなります。RSC101ではHailo-8™ の仕様の最大値でPCIe接続できているため、高いパフォーマンスが期待できます。
では実際のパフォーマンスを確認してみましょう。
検証①:物体検出(Yolov5m、Yolov3)
まずはTappasにてYolov5mの物体検出をしてみます。その結果は以下の画面をご確認ください。
上記ではターミナル上にfpsを表示するようにしておりますが、180fps以上の動作が確認いただけるかと思います。単純計算で30fpsカメラを6台分推論できる計算となりますので、なかなかのAIパフォーマンスですね。
次にYolov3での実行結果です。Yolov3はネットワークサイズがそれなりに大きく、Hailo-8™ ではモデルを複数に分けて時間軸で中身を切り替えながら推論処理を実行しています。中身の切り替えはPCIe経由で実施されますのでPCIeの帯域がパフォーマンスに影響してきます。
以下の結果を見ていただくと45fps以上では動作させることができています。PCIe帯域が狭いとこれよりもfpsが落ち込む懸念があります。
検証②:Full-HD画像でのセグメンテーション
画像AIは処理が重い、という話を最初にさせていただきましたが、画面解像度が大きくなればなるほどさらに処理が大変になってきます。カメラ側ではFull-HD、4Kと大きな解像度が当たり前になってきていますが、画像AIではネットワークモデルの対応解像度がVGAクラスが多いのはこのあたりの影響もあると思います。
TappasではFull-HDでのセグメンテーションデモが用意されていますので、それを動かしてみます(使われているモデルは、fcn8_resnet_v1_18)。その結果は以下となりますが、Full-HDでも20fps以上で動かせており、十分実用レベルと言えるかと思っています。
検証③:複数ネットワークモデルの切り替え動作
画像AIを組み込んだ実際のアプリケーションを作る際には、例えば車を検出したのち、ナンバープレートを読み取る、など複数のネットワークモデルを動かしたいケースも多いかと思います。以下の画像は、複数ネットワーク(yolov5sとfast_depth)を切り替えながら動かしている検証です。ネットワークの切り替えはPCIe経由でおこなわれるため、そこの帯域は重要になってきます。
いずれも合わせて100fps以上で動かせており、ネットワークの切り替えをしつつも高いパフォーマンスが出せていることが分かります。
検証④:人物検出&トラッキング (ReID)
最後に人物検出&トラッキングデモ(ReID)を紹介いたします。従来は動画に対して、一枚の静止画として画像AIをかけ、その結果を表示していました。
今回のデモは検出した人物に印をつけ、その人物をトラッキングしております。さらに複数カメラにまたがってトラッキングすることができます(同じ人物が別のカメラに現れるとボックス左下に同じ数字が表示されます)。今までのデモはアクセラレーターのHailo-8™ とデータ受け渡し部分(PCIe)がパフォーマンスを決める大きな要素でしたが、今回はCPU側の処理もそれなりにありますのでシステム全体でのパフォーマンスとなっております。
動画でなく画面で分かりにくいですが、参考までに画像を貼り付けます。(動画では、数字でトラッキングがかけられていきます)
まとめ
Hailo-8™ を搭載したRSC101は小型でありながらも画像AI性能は特筆すべきものがあると感じました。
お問い合わせ
価格など詳細がお知りになりたい方は以下の問い合わせフォームよりご連絡をお願いいたします。
Hailo メーカー情報Topへ
Hailoメーカー情報Topページへ戻りたい方は、以下をクリックください。