M2Det : 高精度な物体検出モデル

Kazuki Kyakuno
axinc
Published in
Jul 26, 2020

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

M2Detの概要

M2Detは2018年11月に提案された高精度な物体検出モデルです。COCOの80カテゴリの物体のバウンディングボックスを検出することができます。

従来の物体検出では、Image ClassificationのBackbone(MobilenetやVGG、ResNetなど)を使用してバウンディングボックスを計算していました。例えば、SSDではImage ClassificationのBackboneで特徴量を抽出した後、同様のBackboneを後段に加えることでバウンディングボックスを計算しています。Feature Pyramidsを使用しているReinaDetでも同様で、SSDに比べて階層化したFeatureを使用するものの、物体検出のBackboneはImage Classificationベースでした。M2Detでは、Image ClassificationのBackboneで特徴量を抽出した後、物体検出に特化したBackboneを用いることで、高精度化を行います。

(出典:https://arxiv.org/abs/1811.04533

この、物体検出に特化したBackboneをMLFPN(Multi-Level Feature Pyramid Network)と呼びます。MLFPNはTUM(Thinned U-shape Module)を階層化して用いています。

(出典:https://arxiv.org/abs/1811.04533

TUMは下記の構造を持ちます。

(出典:https://arxiv.org/abs/1811.04533

M2Detの性能

M2DetはYOLOv3やRetinaDetよりも性能が高く、SOTAを達成しています。

(出典:https://arxiv.org/abs/1811.04533

M2DetのBackboneにはVGG-16とResNet-101を使用しています。VGG-16の方が高速に動作し、ResNet-101の方が高精度です。

(出典:https://arxiv.org/abs/1811.04533

ailia SDKでM2Detを使用する

ailia SDKでは下記のサンプルでM2Detを使用することができます。エクスポートしているのはVGG-16ベースのM2Detで、3x512x512を入力に取ります。

下記のコマンドでWEBカメラに対してM2Detを使用した物体検出を行うことができます。

python3 m2det.py -v 0

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

--

--

Kazuki Kyakuno
axinc
Editor for

CTO — ax Inc. , Managing Director — AXELL