用计算机视觉烹饪,可能是没有灵魂的一顿牛排!
点击上方关注,All in AI中国
作者:Connor Shorten
为什么机器人要花这么长时间给我们做饭?
人工智能和机器人应用在厨房里有是一个非常有趣的应用。有许多创业公司都致力于开发复杂的机器人厨师,并使用机器人来自动化烹饪过程,例如制作汉堡
然而,机器人烹饪的潜力远远超出汉堡,在本文中我将讨论如何使用计算机视觉来自动烹饪日常肉类(如牛排、鸡肉和鱼类)的过程。
烹饪牛排是一项相当简单的任务,而且主要是需要视觉的部分。只要我们的机器人厨师有一个摄像头和一个用于翻转和取出牛排的机械装置就可以了。这是一个简单的算法,用于机器人厨师如何处理、烹饪牛排。
该算法的主要思想是它将使用图像识别模型来处理来自摄像机视频中的图像。我们将充分利用卷积神经网络的强大功能来处理牛排。人们可能反驳说,你可以简单地采用牛排的颜色直方图,来比较其从生(红色)到熟(棕色)。
这些图像不需要实时处理(或类似1/30帧/秒),因为这不是真正的时间关键任务。为了节省计算资源并加快算法速度,我们将每隔6帧处理一次以检查牛排的状态。此外,我们将支持烹饪牛排所需的更多基础设施。
初始配置:构建图像分类器,将牛排从“生”到“熟”,“四分熟”,“五分熟”,“七分熟”,“全熟”中映射出来。由于这些类遵循逻辑顺序,我们将仅将牛排从0映射到5。
类不平衡:在具有罕见实例的数据集上训练分类器所涉及的常见问题之一是类不平衡。例如,在为诸如检测海洋中的鲸鱼鳍之类的东西构建图像分类器时经常讨论这一点。由于大部分时间我们的牛排都被归类为生的,因此我们需要确保相应地评估分类器的性能指标。
一旦分类器达到95%的准确度,将牛排分类为生或熟,以下是用python风格编写的伪代码
在没有完成伪代码的情况下,我认为算法背后的逻辑是明确定义的。
我们在这里运行了4个主要部分:
- 使用图像识别模型处理来自视频流的传入帧(不一定需要具有此任务的实时功能)。
- 由于分类模型中的某些错误,需要连续分类来触发响应(没有大量的训练数据,95%的准确度将被认为是二进制分类任务的相当好的模型),我们不能让机器人翻转牛排存在侥幸。在此示例中,我们尝试使用5作为翻转阈值,但这可能会有点低。
- 我们需要标记构建任务,使用布尔标志来指导循环,并确保两边都煮熟并跟上整个烹饪过程中的翻转。
- 我们可以通过计时器来进行任意翻转。我们想要每隔2分钟左右任意翻转牛排,以确保我们不只是煎一面,然后翻转它,开始烹饪另一边。我确信专家厨师会有比这更好的策略,但上述步骤足以解决我们的问题。
收集训练分类器的数据
我们将提供由这样的图像组成的数据集。基于观察平底锅的视角的标记图像。
在结论中,我们看到烹饪肉类是一项相当简单的任务,不需要多么具有革命性的算法来完成。基于卷积神经网络的图像识别模型功能非常强大,可用于视频以实现惊人的功能。