opencv - 有没有办法使用我的分类器对更多训练数据进行分类并获得准确的结果?

标签 opencv image-processing machine-learning tensorflow

我正在尝试使用 tensorflow 进行图像分类。现在我正在手工收集和标记训练数据,但这非常乏味、缓慢且痛苦。目前,通过我手工收集的训练数据,我的模型在大约 57% 的时间内预测图像中的正确类别,由于它们有 6 个不同的类别,因此显然比随机猜测要好。

无论如何,我想知道我的分类器是否在 57% 的时间内是正确的;使用这个分类器来标记新的训练数据,从而自动化训练数据的收集和标记是否可行?显然,这个训练数据不会被完美地标记;事实上,它的标记准确度仅为 57% 左右,但这仍然有效吗?这是否会有助于模型的准确性,而不是影响或损害它?这似乎是一个有趣的思想实验:

如果 Z 是标记新训练数据的分类器的准确性,N 是我们拥有的训练数据示例的数量,G 是我们的模型应用于新的非训练数据时的准确性,G 的极限是多少N 接近无穷大,Z 又如何变化?

最佳答案

你的方式应该没有任何好处,因为你只会训练所有你已经认为你知道的东西(你正确地训练你之前可以正确预测的所有东西,并且你错误地训练所有你预测错误的东西)=>如果您使用当前的分类器自动标记,那么在下一次训练后您应该会得到几乎相同的分类器。

但是:通常,对预先排序的带注释的数据进行排序/修复比完全手动标记所有内容更容易。如果您的任务属于这种情况,您可以使用分类器对数据进行预排序并手动检查+修复。然后训练改进你的分类器 => 新数据的预排序会更好 => 检查+修复的时间更少 => 进一步改进分类器的时间更少,等等...

irfanView 是一个很好的检查+修复工具:

  1. 在文件夹中保存/排序带标签的图像:每个文件夹一个标签
  2. 使用箭头键浏览文件夹中的图像
  3. 如果预排序错误,请按 F7 并将图像移动到“错误”或其他子文件夹中。
  4. 最后,手动对“错误”文件夹进行排序,并将它们移动到其类文件夹中。

关于opencv - 有没有办法使用我的分类器对更多训练数据进行分类并获得准确的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43988565/

相关文章:

machine-learning - 高成本会带来什么后果?

python - 如何使用从经过训练的 keras 模型中提取的 tensorflow 模型

r - 更改 R 中类别预测的阈值

python - 如何删除树莓派的相机预览

java - 在特写车牌图像上使用 JavaANPR

image - 使用opencv进行Sobel边缘检测

tensorflow - 如何为多类分割初始化样本权重?

iphone - 如何在 iOS 上使用 OpenCV 将 CGImage 二值化?

c++ - 在opencv中获取一个像素的Y值[Ycbcr]

python - 无法将 tensorflow 卡住图转换为 pbtxt 文件