Kazuki Kyakuno

クロスプラットフォームで利用できるGPU対応の高速AI推論フレームワークであるailia SDKのバージョン1.2.12のご紹介です。ailia SDKについてはこちらをご覧ください

ailia SDK 1.2.12の新機能は下記となります。

複合アクティベーションの専用処理によるYOLO等の高速化

YOLOXおよびYOLOv5で使用されるSiLUや、YOLOv4で使用されるMishなどの、複合アクティベーションの専用処理による高速化を行いました。対象となるプラットフォームはcuDNNとCPU (SIMD)です。

また、cuDNNにおいては、Resize (Nearest)とTransposeのCUDAで動作する範囲を拡張することで、CPUとGPU間の転送を削減しています。

これらの改良により、cuDNNを使用するJetson NXで、YOLOX tinyが33%、YOLOXが18%、YOLOv5が25%、YOLOv4が15%高速化します。また、SIMDを使用するIntel CPUでは、YOLOX tinyが20%、YOLOXが19%、YOLOv5が23%、YOLOv4が18%高速化します。

グラフの実行順ソートによるモデル読み込みの高速化

グラフのロード時にノードを実行順にソートする機能を追加し、モデル読み込みの高速化を行いました。これにより、グラフ探索が高速化され、Deticなどの巨大なモデルの読み込みが、30%程度高速化します。

新たなレイヤーの対応

CompressおよびDetレイヤーに対応しました。また、CumSumレイヤーの5次元以上の入出力に対応しました。

FP16の重みを持つONNXへの対応

FP16の重みを持つONNXに対応しました。

ailia SDK 1.2.12で新たに対応するモデル

ailia SDK 1.2.12で新たに対応するモデルとなります。

SberSwap:リアルタイムの顔置き換えモデル

SwinIR:Transformerベースの超解像モデル

DabDetr:Transformerベースの物体検出モデル

--

--

ailia SDKで使用できる機械学習モデルである「PicoDet」のご紹介です。エッジ向け推論フレームワークであるailia SDKailia MODELSに公開されている機械学習モデルを使用することで、簡単にAIの機能をアプリケーションに実装することができます。

PicoDetの概要

PicoDetは2021年11月に公開された機械学習モデルです。近年の物体検出モデルの研究成果を、モバイルCPU向けの軽量モデルに集約することで、高精度かつ高速な物体検出を実現します。

出典:COCOデータセット

PicoDetのアーキテクチャ

PicoDetでは、Backboneを軽量な構造とすることで、特徴抽出の速度を改善します。また、loss関数を改良することで、学習の安定性と効率を向上させます。

近年の物体検出では、アンカーフリーの検出器の採用が進んでいます。FCOS(Fully Convolutional One-Stage Object Detection)はGTラベルの重複の問題を解決します。一般的なアンカーボックスでは、各座標ごとに複数のアンカーを持ちますが、FCOSでは、各座標ごとに単一の中心点を持ちます。FCOSを使用したアンカーフリーの手法は、ハイパーパラメータの調整が不要という優位性があります。

しかし、一般的なアンカーフリーの検出器は比較的規模の多いサーバ向けのモデルで使用されています。モバイル向けのアンカーフリーのモデルは、NanoDetやYOLOX-Nanoがある程度です。

軽量なアンカーフリーの検出器は、精度と効率のバランスを取ることが難しいという問題があります。そのため、FCOSとGFL(Generalized Focal Loss)にインスパイアされた、新たな物体検出器としてPicoDetを提案します。

--

--

クロスプラットフォームで利用できるGPU対応の高速AI推論フレームワークであるailia SDKのバージョン1.2.11のご紹介です。ailia SDKについてはこちらをご覧ください

ailia SDK 1.2.11の新機能は下記となります。

新しいオペレータへの対応

BitShift、CumSum、GatherElement、ThresholdedReluに対応しました。また、LoopのSequence入力に対応しました。

難読化モデルの読み込みの高速化

AES-NIを使用することで難読化モデルの読み込みを高速化しました。Windows(Intel)、macOS(Intel)、Linux(Intel)、Android(Arm64)、iOS(Arm64)の環境でアクセラレーションします。例えば、1.24GBの暗号化モデルを読み込む場合、読み込み時間が65倍程度、高速化されます。

Vulkanのメモリ消費量削減

Vulkanでチャンネル数の多いConvolutionを行う際に、ワークメモリを分割することでVulkanのメモリ消費量を削減しました。

cuDNN8.3対応

cuDNN8.3に加わった破壊的変更により、ailia SDKからcuDNN8.3を使用した場合に、ailiaCreateがエラーを返す問題を修正しました。

Unity Plugin

Unity Pluginのデフォルトバージョンを2019.4.32f1以降に変更しました。また、インカメラが使用できない場合や、ライセンスファイルが存在しない場合にエラーログが過剰に表示される問題を修正しました。

PythonのEnvironmentのpropsをlistに変更

PythonのEnvironmentのpropsで複数のフラグを持つ場合に対処するため、propsをstrからlistに変更しました。ailia-modelsのサンプルと同様、inを使って判定をしている場合はソースコードの変更は不要です。併せて、macOSのMPSの場合にpropsにFP16フラグが付与されるようになりました。

評価版

バージョン1.2.11より、RaspberryPiとJetsonの場合にもライセンスファイルを要求するように変更しました。ライセンスファイルは~/.shalo/フォルダに配置します。

ax株式会社はAIを実用化する会社として、クロスプラットフォームでGPUを使用した高速な推論を行うことができるailia SDKを開発しています。ax株式会社ではコンサルティングからモデル作成、SDKの提供、AIを利用したアプリ・システム開発、サポートまで、 AIに関するトータルソリューションを提供していますのでお気軽にお問い合わせください。

--

--