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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

Python

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

Q&A

解決済

1回答

1107閲覧

Faster R-CNNのRPNのRPNの学習が理解できない

kyokio

総合スコア560

CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

Python

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

0グッド

0クリップ

投稿2020/08/28 10:36

#Faster R-CNNのRPNのRPNの学習が理解できない

Faster R-CNNの勉強をしています。
いくつかのサイトを見ているのですが、RPNの学習で理解できないとこりがありました。
以下、読んでいるサイトです。
サイト①
サイト②
サイト③

###実際の物体領域(ground truth)はラベル付けしておかないといけないのか?
サイト①に以下のように書かれています。

元論文に書かれているように、RPNでは

・あるAnchor boxの中身が背景か物体か
・物体だった場合、ground truthとどのくらいズレているか
の2つを学習させます。

この説明自体は理解できたのですが、ここでground truthをラベル付けしなければいけないのか?と疑問に思いました。
RPNが学習する際にはground truthはわからないのでここでは人によるラベル付け必要なはずです。
しかし、これはMNISTのラベル付けよりもはるかに大変な作業なはずです。
MNISTが一枚の画像に大して正解ラベルが1つ何に対し、RPNでは画像一枚に少なくとも物体が1つ以上存在すると考えて、物体の個数*頂点の座標分ラベルを与えなくてはいけないはずです。

###それとも学習済みRPNを使用するのか?
それとも、RPNは一度作ってしまえば、物体がある領域を提案し、設定しておいたAnchor boxの中から一番合うAnchor boxを選ぶだけなので使い回しが効くのでしょうか?
研究や開発の際には学習済みのRPNを使うのでしょうか?

サイト④のmodels/faster_rcnn.pyの42行目に

self.RPN.train = False

とあるのでそうなのかなと思いました。

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

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

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

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

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

guest

回答1

0

ベストアンサー

しかし、これはMNISTのラベル付けよりもはるかに大変な作業なはずです。

MNISTが一枚の画像に大して正解ラベルが1つ何に対し、RPNでは画像一枚に少なくとも物体が1つ以上存在すると考えて、物体の個数*頂点の座標分ラベルを与えなくてはいけないはずです。

人手によるラベル付けが必要です。
数値で座標を直接入力するのではなく、以下のような GUI ツールでラベル付けします。

イメージ説明

GUI ツールを使うにしてもアノテーションは時間がかかる作業ですが、この手間を惜しんで学習データ数が少ないと精度が高いモデルはできません。(経験上、1クラスあたり300枚以上は必要、データセットの規模にもよるが数十時間は普通にかかる)
物体検出のモデルを作るとしたら、モデルは Faster-RCNN とか既存のものを使えばいいですし、学習は待つだけなので、人手の作業工数としては8割ぐらいはこのアノテーション作業に掛かるはずです。

お金を出せるのであれば、クラウドソーシングサービスを利用して、この手間を代行してもらうことは可能です。

投稿2020/08/28 11:04

編集2020/08/28 11:16
tiitoi

総合スコア21956

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

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

kyokio

2020/08/28 14:04 編集

回答ありがとうございます。 やはり自分でラベル付けしないといけないんですね。 誰かが作ったモデルからRPNだけ撮ってこれないかなとか考えたのですがend-to-endで学習してるので、RPNを用意したクラス用になってそうなので無理そうですね。 お金ないので自分で、ラベル付けがんばってみようと思います笑 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問