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

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

新規登録して質問してみよう
ただいま回答率
85.47%
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Darknet

Darknetは、C言語で記述されたオープンソースのニューラルネットフレームワークで簡単にインストールすることが可能です。学習済みモデルとアルゴリズムも配布しており、ダウンロードすれば容易に動かすこともできます。

YOLO

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

Q&A

0回答

779閲覧

YOLOv3:既存モデルでのクラス数の変更

Latory_

総合スコア25

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Darknet

Darknetは、C言語で記述されたオープンソースのニューラルネットフレームワークで簡単にインストールすることが可能です。学習済みモデルとアルゴリズムも配布しており、ダウンロードすれば容易に動かすこともできます。

YOLO

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

0グッド

0クリップ

投稿2022/06/29 08:23

前提

yolov3で80個のクラス、8個のクラス、1個クラスのようにクラス数を変えてmAPを比較しようと考えています。
そこでyolov3で分類するクラス数を変更したいです。(クラス数80→8へ)
8クラスの内容は80クラスの先頭の8個
学習に時間がかかるため既存のyolov3のcfgファイルとweightsを使ってクラス数を変更できるか模索中です。

そもそも既存のyoloを少し変えるだけではclass数を変えられないのでしょうか。
些細なことでもご教授いただけると幸いです。

#実行コマンド ./darknet detector map name/8class.data cfg/yolov3_8class.cfg weights/yolov3.weights #cfgファイルは通常のyolov3.cfgをクラス数に合わせて3か所のclass、filterを変えただけのものです #8class.data classes= 8 valid = /data/coco/val.txt names = /cfg/coco.names8 #8クラスのみ書き込んでます eval=coco

試したこと

上の記載のようにcfgファイルの書き換えとclasses= 8部分を変更して試しました。
mAP自体は出てくるのですが0%と一つも分類できていない様子でした。
80クラスではmAP=60%程度の数値が出てきました。

補足情報(FW/ツールのバージョンなど)

VisualStudioCodeで実行してます

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2022/06/29 21:24

> そもそも既存のyoloを少し変えるだけではclass数を変えられないのでしょうか。 YOLOはそうできるように作ってあります。うまくいっていないのはどこかにミスがあるからと思います。 取り急ぎ、[ここの行数指定](https://stackoverflow.com/a/57966003)に従ってクラス数を変更ください。 念のため実際に適用したクラス数、フィルタ数を教えてください。 > mAP自体は出てくるのですが0%と一つも分類できていない 自前のデータセットの画像トラベルを使ったときに学習がうまくいっていない、という意味でしょうか?
Latory_

2022/06/30 04:56

>指定行のclass数とfilter数はそれぞれ変更できていました。 class=8、filter=39とclass=8、とclass=1、filter=18の2パターンで試しています。 いただいたURLでいうところの2個目の回答者のような状態になります。 なにも変更しない状態では人や車など認識できますが、クラス数を変えた後(例えば、personの1classにする)では、人すら認識できなくなってしまいます。人が映っている画像10枚ほどで試しましたが認識できた画像はありませんでした。 >mAPが0%となるのはクラス数を変えて評価をしたときという意味です。 画像とラベルはCOCOデータセットから100枚使って試しています。 同様の評価をラベルを変える前の状態(80ラベル)で実行すると60%程度のmAPを算出できています。
退会済みユーザー

退会済みユーザー

2022/07/01 14:22

>ラベルを変える前の状態(80ラベル)で実行すると60%程度のmAPを算出 > クラス数を変えた後(例えば、personの1classにする)では、人すら認識できなくなってしまいます。 クラスを変えた後に収束するまで学習させないとうまく判定できないと思います。収束させるにはクラス数が多ければ多いほどたくさんデータが必要になります。 COCOデータセットのような多様なものからガッツリ学習させようとすると、結構なGPUで三日三晩ぶん回すくらいの覚悟がいりそうです。
Latory_

2022/07/06 08:59

ありがとうございます。 クラス数をもっと厳選してなるべく短時間でできるように調整してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問