我想训练一个模型,以便从汽车图像中推断出汽车的颜色。假设我将使用k-近邻算法进行颜色分类。
还假设以下情况:
1) 我有1000张带标签的图像
2) 我有100张用于测试的图像
然而,假设我已经编写了一个源代码,能够在汽车图像中检测到汽车并获取其颜色。
这个源代码对训练模型有用吗?还是因为我已经(手动)标记了训练图像,所以它在本质上无法使用?
回答:
我理解你的问题是,为什么我们需要创建一个机器学习模型,当我们可以使用图像处理技术本身来解决问题时?
-
因此,如果目标非常简单,比如在图像中查找某个对象的颜色,查找图像中不变于旋转和缩放的模板,边缘检测等,总是建议使用图像处理库。
-
但是,当你的目标变得复杂,比如在图像中识别各种对象,定位对象,基于像素的分割,视频分割等,你将需要使用深度学习模型。
在你的情况下,你需要检测汽车并找出其颜色。
让我们将这个问题分成两部分:
1) 汽车检测和定位:
-
为了检测一个对象(汽车),你需要注意以下挑战:
- 视角变化
- 尺度变化
- 变形
- 遮挡
- 照明条件
- 背景杂乱
- 类内变化
如果你的测试用例不面临这些挑战,那么你可以很好地使用图像处理库。否则,这将成为一个复杂的过程。因此,解决这个问题的唯一方法是用不同这样的图像来训练模型。
2) 颜色检测
- 对于这个,建议使用图像处理方法本身。因为对于训练,你需要有大量的图像,涵盖你可能遇到的每一种颜色。
希望这对你有帮助!