質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1361閲覧

YOLO9000(v2)のわからない点

kyokio

総合スコア560

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

1クリップ

投稿2020/11/09 15:44

編集2020/11/23 07:28

YOLO9000(v2)を理解したい

YOLO9000(v2)の論文を読みました。
大体は理解できたのですが、いくつかわからない点があったので質問させていただきます。

全結合層以外(畳み込み層)で普遍性定理は成り立つのか?

オリジナルのYOLO(v1)では、特徴マップから出力までの過程で全結合層を二層使って、出力(SS(B*5+C))を得ていました。

これは普遍性定理より実現できていることだと思っていました。

しかし、YOLO9000(v2)では全結合層をなくして畳み込み層とプーリング層で出力(SSB*(5+C))を得ています。

ここで、疑問に思ったのが、抽出した特徴マップから畳み込み層とプーリング層で欲しい出力を得られるのか?ということです。
確かに、畳み込み層とプーリング層で欲しい出力形式(次元数と形)に変形することは可能であることは理解できますが、今回はSSB*(5+C)の形式でかつそれぞれ意味があります。
(グリットの縦幅)(グリッドの横幅)(BBの数)*((x,y,w,h,objectness)+クラス数分の確率)

以下は、YOLO(v1)の出力
yolo(v1)の出力

ただ、形式を変えるだけではなく、何らかの関数によって意味合いを持った結果を出力できているはずです。
その関数を畳み込み層とプーリング層だけで実現できるのかがわからず、調べても出てきませんでした。

multi-scale training (yolov2)

YOLO9000(v2)では、様々な解像度で学習することで学習します。
32の倍数{320、352、...、608}で学習するために、論文中ではネットワークをリサイズすると書いてありますが、具体的にどのようにリサイズしているのかわかりません。

However, since our model only uses convolutional and pooling layers it can be resized on the fly. We want YOLOv2 to be robust to running on images of different sizes so we train this into the model. Instead of fixing the input image size we change the network every few iterations. Every 10 batches our network randomly chooses a new image dimension size. Since our model downsamples by a factor of 32, we pull from the following multiples of 32: {320, 352, ..., 608}. Thus the smallest option is 320 × 320 and the largest is 608 × 608. We resize the network to that dimension and continue training.

全結合層を使っていないので入力サイズは自由に変えられると思いますが、出力サイズは変化するはずです。
それらしい質問はあったが少し違う内容だったりして、まだ理解できていません。
パディングやストライドで調節しているのでしょうか?

追記(2020/11/23)
もしかして別に出力のサイズは統一されなくてもいいのか?って思い始めた。
→だとしたら、論文の太字の部分(We resize the network...)はどう解釈すればいいんだろう?

##最後に
自分なりに調べてはみましたが、答えにたどり着かずにいます。
調べる量が足りなかったり、常識的なことを質問してしまっているかもしれませんが、わかる方がいましたら教えていただけるとありがたいです。

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

全結合層以外(畳み込み層)で普遍性定理は成り立つのか?

矩形の座標を推論する回帰問題として考えればいいのではないでしょうか?
実際、YOLO に限らず、物体検出系のモデルはその方針で上手く学習が行えています。
ディープラーニングは全般的にどういう場合に学習が上手くいくのか (またはいかないのか) という数学的な保証はあまり研究が進んでいません。

全結合層を使っていないので入力サイズは自由に変えられると思いますが、出力サイズは変化するはずです。

出力サイズは変化します。出力の特徴マップの各グリッドにそれぞれ矩形の情報があるので、出力サイズが大きくなればそれだけ推論して出てくる矩形の数も増えます。
損失は正解の矩形とマッチするかどうかで算出するので、入力サイズが変えたことによって出力される矩形の数が変わっても学習上、問題ないです。

投稿2020/11/27 07:20

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyokio

2020/11/27 07:32

tittopさん、回答ありがとうございます。 > 矩形の座標を推論する回帰問題として考えればいいのではないでしょうか? 実際、YOLO に限らず、物体検出系のモデルはその方針で上手く学習が行えています。 ディープラーニングは全般的にどういう場合に学習が上手くいくのか (またはいかないのか) という数学的な保証はあまり研究が進んでいません。 そうなんですね。 ディープラーニングはブラックボックスって聞いたことありますけど、思ったよりもブラックボックスなんですね。 YOLOでは入力が入力が448×448で出力が7×7 YOLOv3では入力が416×416で出力が13×13の図があったので出力はそれに固定しないといけないと思ってしまいました。 確かに全結合層が無くなったら、出力サイズを固定する必要はないですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問