what is wrong in this code..?

I trained a faster rcnn object detector using the example code. the training process sucessfully finished but i came up with this error.when this code runs,
___________________________________
I = imread('image1.png');
% Run the detector.
[bboxes, scores] = detect(detector, I);
% Annotate detections in the image.
I = insertObjectAnnotation(I, 'rectangle', bboxes, scores);
figure
imshow(I)
....
then this error came
Error using insertObjectAnnotation
Expected LABEL to be nonempty.
Error in insertObjectAnnotation
Error in insertObjectAnnotation
Error in insertObjectAnnotation
Error in t27_trainFasterrcnn (line 139)
I = insertObjectAnnotation(I, 'rectangle', bboxes, scores);
please help me.

5 Comments

The ‘scores’ variable seems to be empty.
Check that first, and if it is, determine the reason.
What type of detector are you using? Are you training your detector on a pre-trained model or you built a model from scratch? If you did build a model from scratch, you would need a lot of data. Otherwise, the model will not converge, hence the empty detection boxes,(it is like the model has not learnt anything). i will advise you to use a pertained model, like the Vgg16 or alexnet, and modify the input and output layers then you can take advantage of the features the middle layer has learnt, or better still, if you decide to build your model, use one of the known big datasets like the Cifar10 and then train your CNN on the dataset, after which you can take advantage of the features the middle layers have learnt and then train your detector, that is either FasterRcnn or Rcnn, using your dataset. I hope this helps otherwise, feel free to ask back.
Which Matlab Version you are using?
2019a same error
Same issue - was this resolved? Can this be solved by increasing the number of epochs used in the model?

Sign in to comment.

Answers (1)

The insertAnnotation function excepts labels to be passed as na arguments.
Try cloading labels using
[bboxes,scores,labels] = detect(detector,I)
Then call insertAnnotation function using
detectedI = insertObjectAnnotation(I,'Rectangle',bboxes,cellstr(labels));
Refer to this link for an example: Object detection using faster R CNN

Asked:

on 19 Mar 2018

Commented:

on 15 Nov 2021

Community Treasure Hunt

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

Start Hunting!