我的代码:
organelleGroundTruth = selectLabels(gTruth,'organelle');
trainingData = objectDetectorTrainingData(organelleGroundTruth);
acfDetector = trainACFObjectDetector(trainingData,'NegativeSamplesFactor',2);
I = imread('test1.png');
bboxes = detect(acfDetector,I);
I = insertObjectAnnotation(I,'rectangle',bboxes,'');
imshow(I)
我使用Image Labeler来标记21个.png图像;如下所示:
我将这些导出到Matlab中作为“gTruth”(类是基础事实),唯一的标签名称是“organelle”(因为所有的白点都是我要检测的细胞器)。
我在这张图片上测试了网络:
这是该计划给我的:
。
我的第一个想法是我标记的图像不够,因此神经网络不如标记的样本量更大。 但是,我希望每个白点都在1个大矩形内。相反,程序在对象上放置了大量小矩形。 这是我的主要问题:为什么矩形这么小,我能调整一下吗?我认为我可以通过标记更多图像来解决精度问题,但我不知道为什么程序产生的矩形如此之小。
答案 0 :(得分:0)
编辑:我不小心称这是一个神经网络 - 它是一个物体探测器。
经过更多的阅读/修补,我得出结论,我需要更多,更多的样本。 Matlab的内置物体探测器需要数千个样本图像(特别是对于尺寸较小的样本)才能准确。