はじめに
本記事では、LatticeのFPGAを用いたエンドポイントAIの事例を紹介します。
全てLattice社から提供されているリファレンスデザインをもとに実現しています。
端末にて処理を完結させるエンドポイントAIを実現する場合に考えないといけないことは、求めるAIのパフォーマンスと、実装するハードウェアスペックとのバランスです。
Lattice FPGAの最大の特徴である「低消費電力」で「小型」という点を生かせば、電池駆動のような「非常に限られた電力環境」や、ポータブル機器のような「物理的なスペースが非常に限られている環境」の中でAI機能を実現しなければならないケースにおいて非常にメリットを発揮します。
中には、最小2.15×2.55mmのサイズのFPGAで僅か7mWの消費電力で実現している事例もあります。
一方、Lattice FPGAでのAI処理のパフォーマンスは、他の大規模なハードウェアに比べると、ある程度限定的となります。
小型低消費電力のAIチップでどの程度までの処理ができるのかを、是非下記の動画でチェックしてみてください。
1. 人検出
2. ジェスチャー検出
3. 個人認証
1. 人検出
まずは、人の上半身を検出し、その範囲座標算出と対象物の数をカウントする使い方です。
デバイス |
ECP5 |
CrossLink NX |
パッケージサイズ |
最小10×10mm |
最小3.7×4.1mm |
電力 |
850mW |
200mW |
画像サイズ |
224×224×3ch |
224×224×3ch |
処理速度 |
10fps |
17fps |
モデル構造 |
Mobilenet base |
Mobilenet base |
人がいるかいないかという判断は、赤外線センサーなどでは人以外の物体にも反応してしまうものが多く、AI処理向きといえます。
例えば、下記のように、工場にて危険区域に人が侵入してきたと判断した場合にアラートをあげるといった用途が考えられます。

上記の場合は人の座標・範囲・人数が検出できるのですが、「人がいるかいないか」だけであればさらに小規模なチップでエンドポイントAIを実現可能です。
デバイス |
iCE40 Ultra Plus |
パッケージサイズ |
最小2.15×2.55mm |
電力 |
7mW |
画像サイズ |
64×64×3ch |
処理速度 |
5fps |
モデル構造 |
Mobilenet base |
動画ではFPGAにて人のいる/いないの判断+モーター制御を行っていますが、FPGAの柔軟性をいかしてモーター制御以外の機能を実装可能です。
例えば下記のようにモニターのスクリーンセイバーモードなどの用途も考えられます。

2. ジェスチャー検出
グーとパーといった手の形を検出したり、タップやスライドといった指の動きを検出する使い方です。
下記の例では、FPGAのコンフィグレーションデータを切り替えることで、静的/動的ジェスチャー検知どちらにも対応しています。
Latticeのように小さなFPGAでも、様々なユースケースに対応できることが分かります。
デバイス |
iCE40 Ultra Plus |
パッケージサイズ |
最小2.15×2.55mm |
電力 |
7mW |
画像サイズ |
32×32×1ch |
処理速度 |
10fps |
モデル構造 |
VGG8 like |
こうしたジェスチャー検出は、例えば、ディスプレイ操作など非接触で行うといった用途が考えられます。

また、適切な推論結果を得るためには、実際の製品の使用環境に応じて最適なセンサーを選定する必要があります。
下記動画で、様々なセンサー(イメージセンサー、温度センサー、近接センサー)でのジェスチャー検出を紹介しています。
いずれも超小型FPGA(最小パッケージサイズ2.15×2.55mm/動作時電力7mW程度)での事例になります。
イメージセンサ― |
温度センサー |
近接センサ― |
|
色の識別 |
可能 |
不可 |
不可 |
周囲の明るさの影響 |
大 |
小 |
中 |
周囲温度の影響 |
小 |
大 |
小 |
後方背景の影響 |
大 |
小 |
小 |
3.個人認証
登録済の顔を識別し、個人認証する使い方です。
デバイス |
ECP5 |
パッケージサイズ |
最小10×10mm |
電力 |
850mW |
画像サイズ |
90×90×3ch |
処理速度 |
2fps |
モデル構造 |
VGG8 like |
例えば、工場の作業者用端末に実装すれば、3交代制の従業員間での操作履歴の管理であったり、高度な操作技能が求められる工作機械であれば、特定の人以外の操作を禁止するような使い方が想定できます。

エンドポイントAIの評価を始めてみませんか?
エンドポイントAIの事例をいくつか紹介させていただきましたがいかがでしたでしょうか?
少しでも興味が沸いてもらえましたら嬉しいです。
動画とスペック表にてエンドポイントAIでできる限りお伝えしましたが、実環境での様々な利用用途がある中で実際自社に導入できるかどうかの判断までは、記事だけでは難しい部分もあったかと思います。
エンドポイントAIの評価に関して、開発支援ツールと評価ボードによって簡単に開始することができます。
下記にその方法をまとめてありますので、興味がありましたらこちらも合わせてご覧ください。