【R-CNN】複数の画像の学習について

6 views (last 30 days)
MASAYUKI EGUCHI
MASAYUKI EGUCHI on 17 Jun 2018
Commented: MASAYUKI EGUCHI on 27 Jun 2018
CNNで複数の画像特徴(例:カメラ、テレビの様に)を学習させたいと考えております。 学習させたいのは、床の損傷です。床の損傷を部分的な損傷のLvel1~4、幅広い損傷のLevel1~4にわけ、これを学習させたいと思っております。 単一の損傷であれば、ビデオセミナー 「Fast R-CNNによる物体の検出と識別」等で記載があったのですが、複数の画像特徴を学習させる方法がわかりません。 別添のPDFのコードをどのように変更すれば、複数の画像特徴を学習できますでしょうか?ご教示願います。

Accepted Answer

Eiji Ota
Eiji Ota on 18 Jun 2018
添付して頂いたPDFを拝見しますと、"Rutting_Level2" のラベルに相当する BoundingBox のデータが存在しないためにエラーが発生しているようです。
  1 Comment
MASAYUKI EGUCHI
MASAYUKI EGUCHI on 19 Jun 2018
ご連絡ありがとうございます。 ラベルを修正したところ下記のエラーが出ました。 こちらについてもご教示願えないでしょうか? よろしくお願いいたします。
エラー: vision.internal.cnn.fastrcnn.RegionReader (line 146) ポジティブまたはネガティブ学習サンプルとして使用する領域提案が見つかりません。 エラー: vision.internal.cnn.fastrcnn.TrainingRegionDispatcher (line 63) vision.internal.cnn.fastrcnn.RegionReader(... エラー: fastRCNNObjectDetector/createTrainingDispatcher (line 668) dispatcher = vision.internal.cnn.fastrcnn.TrainingRegionDispatcher(... エラー: fastRCNNObjectDetector.train (line 173) dispatcher = createTrainingDispatcher(... エラー: trainFasterRCNNObjectDetector (line 297) [~, fastRCNN] = fastRCNNObjectDetector.train(trainingData, fastRCNN, options(2), params, checkpointSaver);

Sign in to comment.

More Answers (5)

Eiji Ota
Eiji Ota on 19 Jun 2018
領域提案(Region Proposal)がうまく見つかっていないような印象があります。ラベルの方のデータで、gTruth の中の LabelDataをみると、どうも同じ BoundingBox のデータが何度も入ってしまっている印象がありまして、ラベルがうまく作れているか、ちょっと心配ですね。大丈夫かもしれませんが… ラベルデータをロードして、gTruth.LabelData{2, 1}{:}などとタイプしてみて下さい。あと、提案領域がうまく作れていないようであれば、Step1とかStep2のエポック数を増やしてみるのもありかもしれません。

MASAYUKI EGUCHI
MASAYUKI EGUCHI on 20 Jun 2018
ご連絡、ありがとうございます。 コメントいただいてから、再度回しなおしてみたら、解析することができました。 しかしながら、率でアウトプットされ、「Spotted_Level2」等のラベルで表現されません。ラベルで表現するためにはどのコードを改善すればよいでしょうか?お手間をおかけいたしますが、よろしくお願います。

Eiji Ota
Eiji Ota on 20 Jun 2018
いまの呼び方だとラベルの情報が戻って来ないので、下のように戻り値を3個にすればラベルが戻ってきます。
[bboxes, scores, label] = detect(detector, I);
戻ってきたラベルを画像をアノテーションするときの文字列として使えばOKです。
I = insertObjectAnnotation(I, 'rectangle', bboxes, label);

MASAYUKI EGUCHI
MASAYUKI EGUCHI on 24 Jun 2018
ありがとうございます。ご教示いただいたように、下記の入力でラベルの表示ができました。 (添付: ~RGB001) I = imread('D:\7000RGB_150per.jpg'); [bboxes,scores,label] = detect(detector, I); I = insertObjectAnnotation(I, 'rectangle', bboxes,cellstr(label)); figure imshow(I)
ラベルと率を両方表示する場合、下記の通りでよいでしょうか? I = imread('D:\7000RGB_150per.jpg'); [bboxes,scores,label] = detect(detector, I); annotation = sprintf('%s:%f)', label, scores); I = insertObjectAnnotation(I, 'rectangle', bboxes,annotation); figure imshow(I)
引き続き、よろしくお願いいたします。
  1 Comment
MASAYUKI EGUCHI
MASAYUKI EGUCHI on 24 Jun 2018
追伸ですが、現在PCのCドライブの使用容量がなぜかいっぱいになるという状況に陥っており、まともにMathlabが動作していません。そのため、添付のFasterCNNRGB004.pdfのような結果となっており、コードの間違いがないか確認したいと思った次第です。 よろしくお願いいたします。

Sign in to comment.


Eiji Ota
Eiji Ota on 24 Jun 2018
コードの方を拝見致しますと、CheckPointPath というオプションが有効になっておりまして、これが有効になっていますと、計算の途中結果をディスクに保存するようになります。計算の途中結果が必要ないようであれば、このオプションを無効にしてして頂くと、ディスクの容量を節約することができます。
  1 Comment
MASAYUKI EGUCHI
MASAYUKI EGUCHI on 27 Jun 2018
ありがとうございました! 正常に処理を完了させることができました!

Sign in to comment.

Categories

Find more on シミュレーションの実行 in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!