购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第二章

中国地大物博,饮食文化源远流长,“民以食为天”这个成语更是概括了中华民族对饮食的追求。热爱美食的中国人创造了丰富多彩的中餐菜式。如右图所示,一桌“色香味俱全”的中餐能让人赏心悦目。

本章,我们将了解如何利用人工智能技术进行菜品识别、餐饮热量检测等。

一桌丰盛的中餐

一、食堂菜价计算

小智的学校食堂已使用配有菜品识别软件的自动菜价计算器。如下图所示,在食堂就餐的同学只需将餐盘放在摄像头下的识别区域,安装有菜品识别软件的计算机便会识别菜品和菜价,然后自动计算总价,并将结果显示在显示屏上,非常便利。相关视频请观看配套多媒体资源。

食堂菜价自动计算

自动菜价计算器的硬件其实很简单,主要需要:

1.一只摄像头;

2.一台小型个人台式计算机或者笔记本电脑;

3.一个显示屏。

它们各自的功能如下页图所示:

用于识别菜品的三个硬件及功能

这套设备由学校深度学习研究兴趣小组的菜品识别项目小组的三位同学完成。小红平时喜欢捣鼓机器人,她负责硬件,并实现摄像头的图像捕捉,将摄像头拍到的画面转换成程序可以处理的二进制格式。小黄一直在学习计算机视觉方面的知识,他负责设计核心图像处理算法。小蓝擅长软件开发,开发过不少计算机工具程序,比如计算器、扫雷游戏等,他负责设计菜品识别软件的界面。

在兴趣小组的分享会上,菜品识别项目小组的同学给大家作了一次详细介绍。首先,他们展示了该项目所参考的一些已有应用,如下图用于菜品识别的手机App。

手机端安装的菜品识别App

接着,小黄和小蓝详细地介绍了计算机菜品图像的处理过程。菜品识别的核心算法分为物体检测、图像识别和信息提取。

菜品识别核心算法的三个步骤

人工智能程序首先进行物体检测,即从一张图中检测出不同菜品的位置。物体检测包含两个步骤:

1.首先从图片中框选出可能是菜品的区域,排除其他无关图像内容的干扰;

2.将菜品区域单独分割成一张张小图,用于下一步图像识别。

思考与实践

2.1 如果一种菜品的一部分被另一种菜品遮挡了,在物体检测与图像切割时可能会导致菜品区域切割错误,进而导致图像识别错误。如何解决遮挡带来的识别错误的问题?

获得切割好的图像以后,可利用深度学习技术(利用多层神经网络模型的一类机器学习算法),针对菜品区域图片进行图像特征提取与菜品判断。(有关“深度学习技术”的更多内容请参考本丛书第三册第八章)。

利用深度学习技术进一步分析

神经网络在这里承担的两个主要任务是特征提取和菜品判断。在特征提取阶段,神经网络会根据不同图像子区域的颜色、形状细节进行处理,以便菜品判断。菜品判断阶段,神经网络会根据上一阶段提取的特征判断出当前这幅图像的内容中各个种类菜品的概率,如上图,番茄炒蛋的概率为95%,于是该菜品被识别为番茄炒蛋。

菜品识别的结果

菜品识别软件会根据已识别出的菜品的种类去数据库查询更多的信息,例如价格等,然后计算总价格并将部分信息呈现在屏幕上,如左图所示。

思考与实践

2.2 食堂的菜品和菜式会时常更新,人工智能程序也需要动态适应菜品的变化。如果下次食堂添加一道叫“糖醋排骨”的新菜,你会如何改进人工智能程序以识别新的菜品呢?

最后,小黄还分享了一些在完成这个项目的过程中遭遇到的困难,比如如何识别相似度很高的两道菜:糖醋白菜与手撕包菜。

糖醋白菜

手撕包菜

这两道菜从颜色、形状细节上来看确实有很多相似之处。如右表所示,人工智能识别结果也认为这两种菜的概率差不多,难以分别。

于是小黄针对这种情况,特准备多张这几种菜品的图片,有针对性地对神经网络模型进行了训练。小黄训练神经网络模型的过程可参考本丛书第三册第八章。

人工智能识别结果

二、食物热量监测

小智的同学小明有些偏胖。为了小明的健康,学校的健康管理咨询老师建议小明控制食物热量摄入并加强锻炼。但是如何控制呢?小明陷入了沉思。

【延伸阅读】

肥胖带来的疾病隐患

根据世界卫生组织关于儿童肥胖的介绍,儿童肥胖症是21世纪最严重的公共卫生挑战之一。

体重过重和肥胖的儿童到成人时一般仍然肥胖,并有较高概率在较年轻时就患上糖尿病和心血管病等非传染病。比如肥胖儿童不仅血压会明显高于正常儿童,在成年后发生高血压、高血脂、糖尿病的概率也比正常儿童高。肥胖还会影响儿童的青春期发育,危害其呼吸系统及骨骼,且对其心理、行为、智力等产生不良影响。

小智给小明支了一招,他拿出手机,打开一个拍照测食物热量的App给小明。

这个App的操作非常简单,只需打开摄像头,对准食物,点击“拍摄”,很快就能获取识别到的食物名称,以及对应的质量与热量值。

小智用手机拍了小明的披萨和清炒蔬菜照片。很快识别结果就出来了:披萨质量为71g,热量为168卡路里;清炒蔬菜质量为189克,热量为47卡路里。完整视频请观看配套多媒体资源。

“原来披萨的热量这么高啊!”小明发出了惊呼。他决定用这个App来辅助自己控制每天的热量摄入。

披萨的热量

清炒蔬菜的热量

【延伸阅读】

食物的热量

人体每时每刻都需要消耗能量。这些能量来自人们摄入食物的热量。食物中能产生热量的营养素有蛋白质、脂肪、糖类和碳水化合物。它们经过氧化产生热量供身体使用。热能供给过多时,多余的热量又会变成脂肪,导致人体发胖。

手机检测食物热量的过程可以分为三个步骤,如下图所示。

拍照测热量的过程

从功能上看,这与菜品识别的区别在于,食物热量检测还需要估计摄像头视野中食物的质量,然后根据估算的质量计算总热量。“估算”从技术实现来说难度较大,因此,这里所涉及的技术范围更广,难度也更大。

第一阶段物品识别的主要目标是利用计算机视觉算法,进行物体检测与分类识别(有关“分类模型”的知识请参考本丛书第三册第八章)。识别结果是图中所示食物的名字与简单的介绍信息,例如每百克热量等。

第二阶段质量预测的主要任务是估算图中食物的质量,用以计算食物的总热量。这部分涉及图片信息到质量信息的回归预测任务(有关“回归预测模型”的知识请参考本丛书第三册第八章)。这个阶段的输入是食物图片和前一个阶段识别得到的食物名称等信息,输出是根据图中食物的密度等信息估算出的总质量。

第三阶段则是热量计算与结果呈现。这个阶段会根据识别的食物名称去数据库中查询食物的单位热量等信息,然后将估算的总质量乘以单位热量,计算出食物的总热量,然后呈现在手机屏幕上,如下图所示。

根据识别的菜品和质量估计热量

小明在使用了这个App之后,有意识地注重摄入营养价值高同时又不带来高热量的食物,最终成功地实现了自己的减肥愿望。

三、本章小结

人工智能在生活中通过检测、识别等技术,给人们的生活带来了极大的便利。本章涉及的人工智能技术主要是“计算机视觉”相关的模型与算法,详细内容可以参考本书第五章“视觉感知”。在生活中,其实还有很多人工智能视觉技术的用武之地,聪明的你可以观察身边的事物,提出更多有趣、实用的人工智能应用创想。

思考与实践

2.3 有了用于“吃”的人工智能应用,你觉得生活中哪些职业可能被它们所取代呢? Caae9Vsym4aoeZPBpOiqY9dUdAt7346DtVDjSddKfkErYyEvYbOOW7F3d4MPgiLl

点击中间区域
呼出菜单
上一章
目录
下一章
×