trainFaste​rRCNNObjec​tDetector実​行時に発生するエラー​について

12 views (last 30 days)
渓太 小野
渓太 小野 on 22 Mar 2021
Answered: Kenta on 4 Apr 2021
trainFasterRCNNObjectDetectorでFaster R-CNNの学習を実行したところ,領域提案ネットワーク (RPN) の学習時に,「この型の変数では中かっこのインデックス付けはサポートされていません」というエラー文が表示され,学習が中断されました.
訓練データのアノテーションが原因だと考えて,イメージラベラで確認しましたが,gTruth box は画像内に収まっており特に問題は見られませんでした.
なぜこのエラーが発生したのか教えて頂ければ幸いです.自分が実行したコードとエラー文は次の通りです.
trainingData = objectDetectorTrainingData(gTruth);
options = trainingOptions('sgdm', ...
'MaxEpochs', 5, ...
'MiniBatchSize', 1, ...
'InitialLearnRate', 1e-3, ...
'CheckpointPath', tempdir);
[detector, info] = trainFasterRCNNObjectDetector(trainingData, 'resnet50', options, ...
'NegativeOverlapRange', [0 0.3], ...
'PositiveOverlapRange', [0.6 1]);
*************************************************************************
次のオブジェクト クラスに対する Faster R-CNN オブジェクト検出器の学習:
* Tomatoflower
手順 1/4: 領域提案ネットワーク (RPN) の学習。
エラー: tabular/rowfun>dfltErrHandler (line 514)
関数 '@(x)isempty(x{1})||~any(x{1})' A の 1 番目 行に適用した際に、次のエラーが発生しました:
この型の変数では中かっこのインデックス付けはサポートされていません。
エラー: tabular/rowfun>@(s,varargin)dfltErrHandler(grouped,funName,s,varargin{:}) (line 262)
errHandler = @(s,varargin) dfltErrHandler(grouped,funName,s,varargin{:});
エラー: tabular/rowfun (line 282)
[b_data{igrp,:}] = errHandler(struct('identifier',ME.identifier, 'message',ME.message, 'index',igrp),inArgs{:});
エラー: vision.internal.cnn.rpn.imageCentricRegionDatastore/setup (line 419)
missing = rowfun(@(x)isempty(x{1}) || ~any(x{1}),this.TrainingSamples,...
エラー: vision.internal.cnn.rpn.imageCentricRegionDatastore (line 139)
this.setup(trainingData, params);
エラー: fasterRCNNObjectDetector/createRPNTrainingDatastore (line 646)
ds = vision.internal.cnn.rpn.imageCentricRegionDatastore(trainingData,params);
エラー: fasterRCNNObjectDetector.trainRPN (line 186)
ds = createRPNTrainingDatastore(detector, trainingData, opts, params);
エラー: trainFasterRCNNObjectDetector>iTrainFourStep (line 395)
[stage1Detector, rpn, info] = fasterRCNNObjectDetector.trainRPN(...
エラー: trainFasterRCNNObjectDetector (line 352)
[detector, info] = iTrainFourStep(trainingData, fastRCNN, rpn, options, params, executionSettings, imageInfo);

Answers (1)

Kenta
Kenta on 4 Apr 2021
こんにちは、例えば、2020bで作っていたものを2021aで実行していたりしませんか?私も物体検出で以前似た問題があって、fasterRCNNではなくYOLOv3を使っていたのですが、ある関数がバージョンのアップデートに従って若干異なっていて、異なるバージョンの関数をいくつか参照していて、そのせいでエラーになっていました。
また、特にfasterRCNNにこだわる理由がなければ、YOLOやSSDでやるのも策かも知れません。

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!