YOLOX : YOLOv5を超える物体検出モデル

elegirl_admin

ailia.AI

ailia.AI 編集部

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

YOLOXの概要

YOLOXは2021年8月に公開された最新の物体検出モデルです。YOLOv5を超える性能と、使いやすいライセンス(Apache License)を両立しています。

出典:https://github.com/Megvii-BaseDetection/YOLOX/blob/main/assets/logo.png
出典:https://github.com/Megvii-BaseDetection/YOLOX/blob/main/assets/demo.png

YOLOX: Exceeding YOLO Series in 2021

In this report, we present some experienced improvements to YOLO series, forming a new high-performance detector …

arxiv.org

GitHub – Megvii-BaseDetection/YOLOX: YOLOX is a high-performance anchor-free YOLO, exceeding…

YOLOX is a high-performance anchor-free YOLO, exceeding yolov3~v5 with MegEngine, ONNX, TensorRT, ncnn, and OpenVINO…

github.com

YOLOXのアーキテクチャ

YOLOXは従来のYOLOをアンカーフリーに変更し、Decoupled HeadとSimOTAを導入した物体検出モデルです。CVPR2021のAutomous Driving WorkshopのStreaming Perception Challengeで1位を獲得しています。

従来のYOLOv4およびYOLOv5はアンカーを使用することを前提として過度に最適化されたパイプラインとなっているため、YOLOXはYOLOv3-SPPをベースラインとして改良しています。YOLOv3-SPPに対して、YOLOv5で導入された、CSPNetのバックボーンと、PAN headを導入しています。

物体検出においては、classification(クラス分類)とregression(バウンディングボックスの位置の計算)を同時に行うため、競合が発生して精度が低下することが知られています。この問題に対して、Decoupled headを使用する方法が提案されていますが、従来のYOLOシリーズのbackboneとfeature pyramidsにはCoupled headが使用されてました。YOLOXでは、YOLOシリーズのCoupled headをDecoupled headに置き換えることで高精度化を行っています。

出典:https://arxiv.org/pdf/2107.08430.pdf

学習においては、MosaicやMixupを使用した、強いData Augmentationを適用しています。また、Lossの最適化にOTAを改良したSimOTAを使用しています。

新規に導入された各ツールの貢献は下記となります。

出典:https://arxiv.org/pdf/2107.08430.pdf

YOLOXのベンチマーク結果は下記となっています。

出典:https://arxiv.org/pdf/2107.08430.pdf

YOLOXの種類

YOLOXにはバリエーションが存在します。高精度向けのStandard Modelsと、エッジ端末向けのLight Modelsの二種類が存在します。

出典:https://github.com/Megvii-BaseDetection/YOLOX

YOLOXの性能

COCO2017のValidation Setを使用してmAP50と推論時間を計測しました。YOLOX-sはYOLOv4と同等の精度をYOLOv4の半分の推論時間で達成することができています。

yoloxのmAP50
yoloxの推論時間

なお、mAPの計測には下記のリポジトリを、推論時間の計測にはailia SDK 1.2.8を使用しています。

GitHub – rafaelpadilla/Object-Detection-Metrics: Most popular metrics used to evaluate object…

If you use this code for your research, please consider citing: @Article{electronics10030279, AUTHOR = {Padilla, Rafael…

github.com

CVPR2021 Automous Driving Workshop Streaming Perception Challenge

YOLOXが一位を獲得したCVPR2021におけるAutomous Driving WorkshopのStreaming Perception ChallengeのLeaderboardは下記になります。一位のBaseDetがYOLOXとなります。

EvalAI: Evaluating state of the art in AI

EvalAI is an open-source web platform for organizing and participating in challenges to push the state of the art on AI…

eval.ai

このチャレンジでは、自動運転向けのArgoverse HDデータセットに、COCOデータセットと同様の2D Bounding Boxのアノテーションを行ったArgoverse 1.1データセットを評価に使用しています。Argoverse 1.1データセットには、フロントカメラの映像を使用してアノテーションした1,250,000のBounding Boxが含まれています。

出展:https://www.cs.cmu.edu/~mengtial/proj/streaming/

Streaming Perception

Based upon the autonomous driving dataset Argoverse 1.1, we build our dataset with high-frame-rate annotations for…

www.cs.cmu.edu

YOLOXの使用方法

ailia SDKでYOLOXを使用するには下記のコマンドを使用します。WEBカメラに対して認識が可能です。

$ python3 yolox.py -v 0

デフォルトではYOLOX-sが使用されます。-mオプションを使用することで、tinyモデルを含むその他のモデルも使用可能です。

ailia-models/object_detection/yolox at master · axinc-ai/ailia-models

(Image from https://github.com/RangiLyu/nanodet/blob/main/demo_mnn/imgs/000252.jpg) Ailia input shape: (1, 3, 416…

github.com

また、ailia SDK 1.2.9から、ailia Detector API経由でのYOLOXの推論に対応しています。ailia Detector APIを使用することで、C++による高速な前処理と後処理を実現します。

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