【フレームワークを使用せず】ゼロから作る物体検出AIモデル
【No.0】ゴールを設定
1. 本シリーズについて
このシリーズは、物体検出のAIモデルをゼロからpythonで構築しようというものになります。ただし、PytorchやTensorFlowなどの機械学習系フレームワークを使用せずに構築していきます。
なぜこの様な苦行をするかというと、このシリーズの意図を「物体検出が、実際どの様なアルゴリズムで組まれているかを理解する」としています。
フレームワークを使用しないことで、より根幹の理解を深めることが期待できるという理由です(ニューラルネットワークから全て関数化して実装していきます)。
是非このシリーズを読んでいただきたい方として
①「ultralyticsなどで、なんとなく物体検出モデルを使用しているが、そもそもどういう構造で検出されているか知りたい」という方や、「物体検出の各パラメータ(confやlrなど)を、なんとなくいじっているが、正直どういう意味かわかっていない」 という方②「オリジナルの物体検出モデルを作りたいが、ベースとなる基礎知識が不足している」という方
上記の様にお考えの方におすすめです。
2. 本シリーズのゴールを設定
このシリーズのゴールとして、
「YOLOv1」的な物体検出モデルを構築
としています。
YOLOv1というのは、物体検出の代表的なモデルです。2016に発表されたモデルで、2024年現在v10まで発表されています。
概要については後述させていただきます。
進め方として、モデル構造やアーキテクチャはそのまま踏襲しますが、細かい部分をもしかしたら変更するかもしれません。
そういう意味で「的な」とさせていただいております。
YOLOv1を選定した理由として、まず構成がそこまで複雑でないので、他のモデルと比べ構築に労力を費やさなくても良い点があります。
また、2016年発表のモデルということで、現在ではあまり実用的ではないという見方もできます。
一方で、現在の1ステージ型物体検出モデルの原型といっても良いと思いますので、そういう意味で、現在の最先端モデルやYOLOシリーズのアーキテクチャを理解する上で有益と考えます。
3. YOLOv1について
YOLOv1について、簡単な解説を行います。
概要
YOLOv1(正式にはYOLO)は2016年に発表された物体検出モデルです。
論文https://arxiv.org/pdf/1506.02640
この当時、物体検出と言えばR-CNNに代表される様な2ステージ型のアーキテクチャが主流でした。
2ステージ型とは、処理が前半(領域の提案)と後半(クラス分類)に分けられているものを指します。
一方、YOLOv1はアーキテクチャが1ステージ型(領域の提案とクラス分類を同処理で行う)となっており、2ステージ型に比べ処理スピードが格段に早くなりました。
その結果、YOLOv1はリアルタイムでの物体検出を可能にしました。
モデルの構造
YOLOv1は、入力画像をS*Sのグリッドセルに分割します(論文ではS=7)。
各グリッドセルは、B個のバウンディングボックス(論文ではB=2)を保有しています。
それぞれのグリッドセル毎に、バウンディングボックスの座標(x=中心のx座標, y=中心のy座標, w=バウンディングボックスの幅, h=バウンディングボックスの高さ)と信頼度(confidence)を予測します。
一方で、各グリッドセルはC個のクラスに対する確率(論文ではC=20)を予測します。
バウンディングボックスの信頼度とクラス確率を用いて、クラス毎のバウンディングボックス信頼度を算出します。
クラス毎のバウンディングボックス信頼度の高い順からNMS(Non-Maximum Suppression)にかけ、余計なバウンディングボックスを排除し、最終的な推論を決定します。
アーキテクチャ
YOLOv1は24層のCNNと4層のPooling層、最後に2層の全結合層からなります。
グリッドセルS=7、バウンディングボックスB=2、クラスの数C=20の時、最終の出力は7*7*30となります。30の内訳は、
1つ目のバウンディングボックスのx座標値、y座標値、幅w、高さh、信頼度が1セットです。今、バウンディングボックスは2つですので、5*2=10となります。更に、残りの20はクラス数です。
ロス関数
1, 2行目: バウンディングボックスについての損失計算
3, 4行目: オブジェクト有無についての損失計算
5行目: クラスについての損失計算
4. 引用論文
「You Only Look Once: Unified, Real-Time Object Detection」
(Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi)
https://arxiv.org/pdf/1506.02640
Link
Search