在没有机器学习的情况下对视频中的对象进行分类

数据挖掘 机器学习 图像分类 计算机视觉 物体检测
2022-02-13 19:27:56

最近,Nick Bourdakos 发布了一系列视频,演示了使用Tensorflow.js在视频流中检测瓶子具体来说,他正在使用 SSD-mobilenet。

问题可以概括如下:

  • 三个不同的饮料瓶一起或单独出现在视频流中。让我们假设原始视频中的可口可乐、激浪和百事可乐
  • 每个瓶子都必须分类并标有其名称
  • 应在每个瓶子周围放置一个矩形边界框

我很想知道是否有任何成熟的技术可以在没有机器学习的情况下达到类似的结果?

到目前为止,我已经尝试过:

  1. 基于颜色阈值的识别。这工作得非常好,但不是很健壮。例如,Mountain Dew 标签内的红色字母可能会被错误地检测为“可乐”。此外,边界框只能围绕彩色区域而不是整个瓶子绘制
  2. 基于模板的匹配。这根本不起作用。我认为这适用于需要完全匹配的静态图像。
  3. KCF 跟踪这似乎运作良好,但我必须手动定义一个感兴趣的区域来首先跟踪。即对象被跟踪但未分类
  4. 我还尝试使用边缘检测根据边缘对象的纵横比对“瓶子”或“非瓶子”进行分类,但是由于瓶子是“手持”的,因此将瓶子边缘与用户的手分开是有问题的

是否有一些我缺少的计算机视觉技术或步骤可以更接近于解决问题?

1个回答

您可以尝试 SIFT(尺度不变特征变换)来识别瓶子上的标签。尽管您需要一些预处理,只是为了比较瓶子上的标签并区分它应该工作的不同品牌。它也可能变得有点复杂(如果你从后面展示瓶子并且品牌标志不可见)。因此,您可能必须从瓶子的多个角度提取特征。

这是一个例子:https ://towardsdatascience.com/bibirra-beer-label-recognition-8546c233d6f4