消除 OpenCV EM 检测到的误报

Eliminating False Positives detected by OpenCV EM

我正在 Python 中开发一种算法,该算法可以识别叶子上包含斑点的区域以报告疾病的严重程度。在我的研究过程中,我发现了 LeafSnap 并从中得到了启发。因此,我尝试按照论文使用 OpenCV Expectation Maximization 对图像上的叶子进行分割,这是使用 S 和 V 形式 HSV 颜色 space 训练的;但是,由于反射或阴影,它仍然 returns 一些误报。

有人可以给我一些提示以获得更好的结果吗? 我没有应用任何预处理技术!


我认为 Leafsnap 不适合在阳光直射下使用。它会产生非常强烈的阴影,完全打乱了他们的 S+V 方法。

在论文中,作者解释说他们降低了色调,因为它 "dilutes" 白纸 sheet 时的对象反射了一些绿色。但是,在您的情况下,由于照片似乎是在晴朗的天空下拍摄的,因此纸张的色调要么是淡黄色(在阳光直射下),要么是淡蓝色(在阴影中),与叶子的绿色色调明显不同。事实上,在这两种情况下,色调层是最能反映叶子形状的层。因此,你不应该为了寻找叶子的形状而忽略色调

作为一个想法,你可以单独使用饱和度+值,以及色调来确定形状。然后从这两个形状中选择较小的形状。