图像处理 – 在图像中找到蚊子的头部

我有类似这些蚊子的图像,我想自动围绕图像中每只蚊子的头部.它们显然处于不同的方向,并且在不同的图像中存在随机数.有些错误很好.算法的任何想法都可以做到这一点? 最佳答案 此问题类似于面部检测问题,因此您可以先尝试一种天真的方法,并在必要时进行优化.

首先,您需要重新创建训练集.为此,您想要提取小图像,其中包含什么是蚊子头或什么不是.

然后你可以使用这些图像来训练分类算法,注意要有一个平衡的训练集,因为如果你的数据偏向一个类,它会达到算法的性能.由于图像是2D,算法通常只需要1D数组作为输入,因此您还需要将图像排列为该格式(例如:http://en.wikipedia.org/wiki/Row-major_order).

我通常使用支持向量机,但其他算法,如逻辑回归也可以成功.如果您决定使用支持向量机,我强烈建议您检查libsvm(http://www.csie.ntu.edu.tw/~cjlin/libsvm/),因为它是一个非常成熟的库,绑定了几种编程语言.此外,他们还有一个非常容易遵循的针对初学者的指南(http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf).

如果您有足够的数据,您应该能够避免对方向的容忍.如果您没有足够的数据,那么您可以创建更多的训练行并旋转一些样本,这样您就可以获得更具代表性的训练集.

至于预测你可以做的是给一个图像,用一个网格切割它,每个单元格与你在训练集上使用的单元格相同.然后将每个图像传递给分类器并标记分类器给出正输出的那些方块.如果你真的需要圆圈,那么取出给定方形的中心,半径将是方形边尺寸的一半(对不起,说明显而易见).

因此,在执行此操作后,您可能会遇到尺寸问题(有些蚊子可能看起来比其他蚊子更靠近相机),因为我们没有训练算法容忍扩展.此外,即使所有的蚊子都处于相同的规模,我们仍然可能会因为它们不能很好地适应我们的网格而错过其中的一些.为了解决这个问题,我们需要重复这个过程(网格切割和预测),将给定图像重新缩放到不同的大小.多少尺码?在这里你必须通过实验来确定.

这种方法对您正在使用的“窗口”的大小很敏感,这也是我建议您尝试的东西.

点赞