Training a detector on images with no target bounding boxes seems a common and necessary task, but doesn't seem currently possible with Matlab. Any workarounds?

조회 수: 6 (최근 30일)
As others have run into this issue repeatedly and Mathworks tech support told me they're working on it, but has anyone devised any workarounds in the meantime? I haven't thought of any way to get around this problem. Tech support suggested pasting a dummy target in each image but with blockedImages that's simply not possible. You'd have to paste tons of fake targets all over the image just to work around this issue. I suppose another way is to create a dummy "stuff" category, but that will increase the network size and complexity with no benefit other than Matlab won't crash when you try to train it. I simply cannot imagine it's that hard to just tell the classifier "there's no target in this image", it does that for most of the image anyway, why not the whole image?
  댓글 수: 2
Image Analyst
Image Analyst 2022년 11월 30일
Not sure what you're asking. Are you asking to train a network but without having ground truth?
David
David 2022년 11월 30일
편집: David 2022년 11월 30일
I'm saying ground truth is, there is no target in this image.
In the standard example for training a detector, every training pair has at least one target object with a bounding box and class name. If you pass in an image with no target bounding box and class name the training algorithm crashes. But an image with no target is a perfectly valid training example. In the real world, there are many images with no target.
The target's surrounding imagery is typically different than most real world imagery, so I've noticed there are a lot of false positives in image areas NOT around targets.
I want to be able to pass in any image and tell the network there is no target in this image, but I can't.
To use the satellite image plane detector using blockedImages example from Mathworks, they're trying to find planes on runways so all the examples are patches of cement with planes on them. But in the real world there is a lot of different background than cement. So the network has never seen anything but cement and it gives a lot of false positives when it sees things like woods, water, etc. One needs to train the network on these examples (woods, water) but there is never a plane target with bounding box in those cases. But there is currently no way to train the detector unless there is a target with associated bounding box in the training pair. This makes their whole detector scheme pretty weak.

댓글을 달려면 로그인하십시오.

답변 (1개)

David
David 2022년 12월 4일
편집: David 2022년 12월 6일
In case anyone cares, the only solution I could figure out was to add a dummy class that's always on. This allowed me to train on both images with targets and no targets. It works pretty well.
I had thought to paste in a fake target but there's nowhere in the code to do that unless you want to sprinkle them all over the source (a copy) image.

카테고리

Help CenterFile Exchange에서 Computer Vision with Simulink에 대해 자세히 알아보기

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by