少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

  • 前言

 

这是一个轰轰烈烈的全民人工智能的时代。不说自己做了些和大数据、人工智能的工作都感觉有点不好意思说自己是干IT的。据说人工智能已经进入中小学标准教育大纲了。

 

Scratch中实现人脸识别刷脸?能够实现聊天机器人?能够教AI玩游戏(剪刀石头布、井字游戏)?是的,你没有看错。计划通过几次的人工智能课程,让小朋友了解人工智能能够干什么,有哪些应用,并且亲自尝试一下AI的应用,体验未来世界的智能性。

 

当然这还没有涉及到背后的人工智能的实现逻辑。我们只是在应用大厂家的人工智能算法和平台(鼎鼎大名的IBM沃森Watson)。因此这几个例子,也只能说是人工智能的应用,并不属于底层人工智能的研发。当然,市面上,也有不少通过调用通用平台AI功能的AI应用产品。人工智能算法和平台的发展很可能和云平台类似,最终由多个寡头企业主导,或者会逐渐走向开源和免费,成为免费的“水电”。

 

 

2. 目的

人脸识别是人工智能下图像识别的重要科目。大学人工智能专业中,估计有半数是和图像识别相关的。人脸识别非常重要,并且在将来的社会中应用会非常广泛。估计未来将将来全地球人的人脸数据。刷脸购买产品、车牌识别、乘车坐飞机,进入某个区域,都可能直接通过“刷脸”完成验证工作。“人脸”识别还能自动识别“好人”和“坏人”,提升社会的安全。例如在西单广场、交通入口处,设置一堆人脸识别的摄像头,如果发现“坏人”指数大于80%的人,允许警察提前进入警戒状态,甚至允许上前“盘问”。

 

今天的目的是使用人脸识别。在Scratch中拍照,然后系统会识别这是谁,是否允许进入某游戏或系统。当然在这之前,我们要先介绍一下这几个人工智能后面所用的IBM Watson人工智能平台系统,如何申请免费账号,如何培训系统,如何在Scratch中调用和使用这些人工智能的功能。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

(最终的应用截图,根据角色图片,能够识别这是谁,验证通过与否,同时播放声音。)

 

3. 免费注册IBM 沃森人工智能平台账号

 

IBM Watson人工智能属于IBM 云平台所提供的服务,属于人工智能的大厂家,其人工智能水平还是位于前列的。首先进入https://console.bluemix.net/注册IBM的云平台账号。

 

进入后,如果没有账号,可以在“Create Free Account”中创建免费账号。如果已经拥有账号,可以直接登录。IBM的这个云平台似乎还是在国外,访问比较慢。注册以后需要邮件确认,如果无法完成验证,就只能“翻墙”确认一下了。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
注册图像识别服务。
 

注册以后,要定于对应的AI服务,例如文本识别、图像识别、数字识别。我们这一次用到了图像识别,因此要注册“Visual Recognition”服务。可以在IBM平台中找到对应的服务,先创建API Key。在machinelearningforkids.co.uk也有链接地址,进入IBM云平台,注册相关的服务。

 

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
IBM图像识别服务按照调用次数收费,Lite的免费版一个月允许调用1000次。对于测试来说,这已经够了。

进入这个服务以后,“Create”创建账号。然后我们可以看到各种版本的收费标准。Lite版本是免费的,每月1000Calls

 

创建这个服务的账号以后,能够获取一个API Key,就是其他应用中访问IBM服务的API Key。会在后面的Scratch项目中用到。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
获取最关键的API Key。点击复制,复制该API Key,可以先复制到本地的文件中。
 

如果要订阅文本识别类的服务,选择“Watson Assistant(formerlyConversation)

 

微信订阅号:ABO_CRM

 

 

4. 注册MachineLearningForKids.co.uk

这是一个少儿机器学习网站,有十几个案例项目。这些项目都可以应用在Scratch中。这个网站使用的后台AI平台是IBMWatson,因此需要先注册IBMAI平台账号。

 

进入网址,https://machinelearningforkids.co.uk。第一次使用,申请账号。

 

 

 4.1 Worksheets-19AI示例应用

进入“Worksheets”,能够看见19AI的应用项目。随便打开一个,就进入下载页面了。

https://machinelearningforkids.co.uk/#!/worksheets

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

下载页面:下载学生手册和教师手册。

 

手册中有详细的操作步骤。当然手册了里面并没有告诉你如何申请IBM账号。

 

 

 

4.2 设置IBM API Key

 

先别着急创建Scratch项目,需要先申请、设置API Key进入Teacher>API Keys”. 这里有两个链接地址,可以引导我们进入IBMWatson平台,注册文本和图像识别服务。如果第三步没有提前注册,也可以在这里进入,注册。

 

Watson VisualRecognition:

https://www.ibm.com/watson/services/visual-recognition/

 

Watson Assistant:

https://www.ibm.com/watson/services/conversation/

 

这一次需要使用到图像识别。注册IBM图像识别服务以后,在这里”Add new API key”,添加API Key即可。

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
Teacher>API Keys
 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
添加图像识别的IBM Watson API Keyes。

 

4.3 开始人工智能的Scratch项目

一)      新建AI项目

 

进入“Projects”,  新建项目“Add a new project,需要录入项目名称Project Name, 识别类型Recognizing,有文字、图形和数字。这里需要选择图形。注意,这里的项目名称依然不支持中文,只能使用英文。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

 二)      Train:培训计算机识别图形,进行图形分类识别

创建以后,进入项目。有三个功能:“训练Train”,“学习和测试Learn &

Test,”Scratch”

  • Train: 为系统提供需要识别的照片,可以在线拍照,作为素材,训练系统。识别这是谁,那是谁。系统分组识别,因此要分成几组。

  • Learn &

    Test: 系统进行抽取,学习。然后可以测试该模型的可靠性。

  • Scratch: 进入Scratch编程环境,在Scratch环境中调用这个AI模型。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
 

进入Train, 定义三个分组:Kang, Tong, Others,即为两个人,和其他人。

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

每组拍10个照片,注意每个照片要更换一定的表情,例如做一下鬼脸之类的。最终目的是,根据所提供的照片,系统能够识别这是谁。

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

 

三)      Learn &

Test:机器学习和测试

 

上载素材完毕以后,就可以进行机器学习和测试了。进入”Learn&

Test”,点击培训机器学习模型。这时候需要调用WatsonAPI,如果前面没有设置好API,这里就无法继续。

几分钟以后,系统就能建立模型。

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
建立模型需要花费几分钟,可以返回项目,重新进来。学习完毕以后,还可以删除该模型,注意该模型只能保留一天。第二天来就需要重新学习了。
 

 

模型建立后,点击“Test withWebcam”,可以拍照测试模型。系统列出识别结果即该图属于哪一类的图片,即哪个人。提供给出可信度Confidence,例如91%的概率认为这是某人。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
 

如果图片正规一点,识别率会高一些。如果图形变化大,识别率可能会小一些。

 

四)      Scratch:进入Scratch环境,调用AI应用。

这里的Scratch环境并不是直接在MIT网上的,但功能类似。可以切换到中文版,但扩展的积木还是英文的。

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
 

进入后,点击菜单“Project Templates”,有17个模板项目,包括一些示例代码和角色图片。请复制浏览器URL,在新页签中打开,进入Project Templates少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

如果想省时间,就直接使用这些模板,下载模板中的角色图片,然后编写程序,上载角色。

 

下面开始制作程序:

  1. 首先查看“更多模块”,这里能够看见这个人工智能项目Face Lock的扩展,并且有一个绿色标志,说明这个扩展和AI模型是工作的。

  2. 进入舞台,导入4个舞台背景图片。这些背景图片是从示例项目中直接下载的。第一个是空手机、第二个是Scanning,说明在扫描图片;第三个是识别成功,绿色打钩的通过背景Granted;第四个是未能正确识别的红色锁定背景Denied

如果成功识别某个人,允许进入系统Granted,则使用背景3,否则使用背景4 Denied.

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)

3.  设置一个空白角色,什么都不要放。不过要进入造型,拍一些照片,也可以每次使用的时候拍摄。Scratch没有单独的拍照功能,这点很不好。因此需要一个空造型,在运行开始之前,先给这个造型启动WebCam拍照,才能进行后面的识别环节。

 

微信订阅号:ABO_CRM

 

4.    调用AI人脸识别:这段程序其实很简单。

  1. )点击的时候,先将背景切换到Scanning,显示正在扫描。其实Scratch是有摄像头扫描图片功能的,不过速度太慢了。

     

  2. )设置三个判断,Recognize image () = Kang,则切换背景为Granted;

    说一句话“This is Kang.;

    播放一段声音,自己录制一段声音,“我是Kang Kang。”。第二、三个判断类似,识别TongOthers

Image里面选择Costume Image,就是当前角色的图片。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
 

   3.)测试:先对角色拍照,可以一次拍多个照片,执行前,选择对应的照片。然后开始,系统会切换背景、说话、并且播放声音。系统的识别能力还是很不错的。

 

少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)
 

下一次试试剪刀石头布。和计算机一起玩剪刀石头布的游戏,我们出剪刀、石头或者布,计算机能够识别出来,并且出题,比对。

 

本程序的图片和Scratch都来自https://machinelearningforkids.co.uk,感谢这个网提供如此美好的AI体验。

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第16讲:初试人工智能-人脸识别(IBM Watson)|

发表评论