0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

エッジAIに使用されているモデルとは?

そもそもどんな目的で使用するかが重要なので、そこを整理。

  • 画像認識
     ある画像に対してその画像が何を表しているのかを認識するもの。物体検知とかとは違って、画像内のどこに何が移っているかを判断する必要がなく、画像が何を映しているかだけを検知できれば良い。
  • 物体検知
     画像内のどこに何が映っているかを検知する。
  • 音声認識
     音声を検知して、分類。何を話しているのか、どのワードを使用しているのかなどを検知する。

使用されるモデルについて

画像認識

  • MobileNetV1/V2/V3
    Google開発。高精度かつ非常に軽量(スマホ/マイコンでも動作)
  • EfficientNet-Lite
    パラメータ数と精度のバランスが良い。TFLite対応
  • SqueezeNet
    非常に小型(AlexNetの50分の1)でエッジ実装向き
  • TinyMLモデル
    特にMCUやRaspberry Pi Zero向けに最適化された分類モデル
モデル名 パラメータ数 モデルサイズ 精度(Top-1) 特徴
MobileNetV2 約3.4M ~14MB 約71-72% スマホ向けに最適化、速度と精度のバランス◎
EfficientNet-Lite 約4-6M ~20MB 約75-78% 高精度で軽量、拡張性あり
SqueezeNet 約1.3M ~5MB 約57% 非常に小さい、やや精度は低め
TinyML(独自) 数十KB〜 <1MB 簡易分類向け MCU(マイコン)でも動作可能

エッジをどこまでと定義するかによるけど、精度を担保しつつやりたいのであれば、EfficientNetくらいは必要かも。
モバイルデバイスだけではなくてラズパイ5やもっと小さいもので動かしたいのであれば、軽量化がもっと必要。

物体検知(Object Detection)

  • YOLOv4-Tiny / YOLOv5-Nano
    高速・高精度で小型化されたYOLO系。Jetsonなどでリアルタイム動作可能
  • SSD-MobileNet
    MobileNetと組み合わせた軽量物体検出器。TensorFlow Liteでも動作可能
  • NanoDet
    超軽量で高速(モバイル向け)。エッジデバイスでの活用事例が多い
  • CenterNet-Lite
    主に人物検知などで使われる、構造簡略化された検出モデル
モデル名 FPS(Jetson Nano) モデルサイズ 特徴
YOLOv4-Tiny 約25-30 FPS ~20MB 高速検出、GPU向き
YOLOv5-Nano 約30 FPS ~4-6MB 精度・速度・サイズのバランス良し
SSD + MobileNet 約15-20 FPS ~6-12MB TFLite対応、Androidに好適
NanoDet 約30+ FPS ~2MB 超小型、ONNX・モバイル向け

ラズパイ5でAIアクセラレータを載せた状態であればYoloとかも動くらしい。
マイコンだとそもそも物体検知は厳しいかも。だからこそマイコンで物体検知してみたいんだけど、、、

音声認識

  • DS-CNN(Depthwise Separable CNN)
    TinyML対応の音声認識モデル。超小型デバイスでリアルタイム処理可能
  • TCResNet / MobileNet (Audio版)
    時間領域に特化した構造で、音声を低コストで処理
  • tiny_wake_word(Google)
    非常に軽量なキーワード検出(例:「Hey Siri」などのトリガー検出)
  • Whisper (小型版)
    OpenAIの音声認識モデルの軽量版。エッジ対応には最適化が必要
モデル名 モデルサイズ キーワード検出精度 特徴
DS-CNN 数百KB MCUでの音声認識に最適、小型
TCResNet 数MB TFLite対応、応答速度速い
tiny_wake_word 数百KB 中〜高 単語単位(OK Googleなど)検出用
Whisper (small) ~40MB以上 非常に高(多言語) 高精度、ただし重め、軽量化必要

音声認識あまり詳しくないけど、画像よりもかなりモデルサイズが小さい。(モデルによるけど)
いろいろこの辺は実装してみないとわからないかも

まとめ

今回、自分がエッジAIに何を実装しようか迷っているためまとめてみた。
これからの予定を簡単にまとめておきたい。

  • ラズパイで画像認識を行う。
    (モデルはResnet8かEfficientNetで検討。)
  • ラズパイで物体検知を行う。
    (SSDの予定。中にどのような層を組み込むかは現在未定)
  • ボトルネックを算出。
    (モデルの大きさなのか、計算力なのか、電力なのか)
  • FPGAで外装したら早くなりそうな部分について検討。
    (ないかも。そもそもデータ転送でかなりレイテンシを食ってしまいそう。SPI通信とかでどうにかなるものなのか?レイテンシの隠蔽とかも検討必要かも)
  • FPGAで実装。機能確認
  • ラズパイとFPGAを組み合わせて効果の確認

こんなことを3カ月くらいでやりたいなぁ。多分、ボトルネックとFPGA実装がめっちゃ時間かかりそう。(Verilogもちょっとしかやったことないし。。。)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?