image-processing - 在图像中找到蚊子的头

标签 image-processing machine-learning computer-vision

我有与这些类似的蚊子图像,我想自动围绕图像中每只蚊子的头部转圈。它们显然处于不同的方向,并且在不同的图像中它们的数量是随机的。有些错误是可以的。有什么算法可以做到这一点吗?

enter image description here

enter image description here

最佳答案

此问题类似于人脸检测问题,因此您可以先尝试一种简单的方法,并在必要时对其进行改进。

首先,您需要重新创建训练集。为此,您希望提取小图像,并举例说明什么是蚊子头,什么不是。

Training set example

然后您可以使用这些图像来训练分类算法,请小心使用平衡的训练集,因为如果您的数据偏向于某一类,则会影响算法的性能。由于图像是 2D 的,并且算法通常只采用 1D 数组作为输入,因此您也需要将图像排列为该格式(例如: http://en.wikipedia.org/wiki/Row-major_order )。

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

如果您有足够的数据,您应该能够避免方向容差。如果您没有足够的数据,那么您可以创建更多的训练行并轮换一些样本,这样您将获得更具代表性的训练集。

至于预测,您可以做的是给定图像,使用网格切割它,其中每个单元格的尺寸与您在训练集上使用的单元格的尺寸相同。然后,将每个图像传递给分类器,并标记分类器为您提供正输出的那些方 block 。如果您确实需要圆形,则取给定正方形的中心,半径将是正方形边长的一半(很抱歉陈述显而易见的事实)。

enter image description here

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

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

关于image-processing - 在图像中找到蚊子的头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15698934/

相关文章:

python-3.x - sklearn 中的 K 最近邻 - ValueError : query data dimension must match training data dimension

python - 从保存的模型进行预测时,测试数据预测会产生随机结果

c# - 设置 BMP/JPG 文件的像素颜色

在 OpenCV 中从 kmeans 数据创建聚类图像

javascript - 使用分隔符将二维数组分成多个数组

python - TensorFlow "tf.image"在 4D 图像批处理上运行

python - 为什么神经网络在自己的训练数据上预测错误?

c# - 使用对比度传递函数调整相机模块焦点

opencv - OpenCV:如何从adaboost中获取弱者

image-processing - 什么是像素级 softmax 损失?