原文:Teach Your Robot Human Emotions 构建一个机器人,不仅可以区分敌人和朋友,还可以利用Azure认知AI的能力识别你何时感到悲伤或受伤。
在这个项目中使用的东西
Creator Ci20 | ×1 | OV5640相机模块 | ×1 | Adafruit SD记忆卡 | ×1 | 麦克风 | ×1 |
Microsoft Azure | Debian 8 | Intellij IDEA社区版 |
我知道你为什么哭,但这是我永远做不到的。“
- T-800 /“鲍勃叔叔”。 虽然真正的机器人不能哭,但在这个项目中,我将教他们如何理解情绪,认识朋友并分析情况以发现威胁。 为了演示的目的,我将使用板载LED来显示Ci20显示检测情绪或敌对的情况。 情绪检测无疑很酷,但情境分析时显示调整时的细节让我惊讶。向下滚动,查看它从低分辨率网络摄像头图片中得到的内容。
一旦获得图像,它将执行以下步骤:
常用的特征提取方法可分为两个类别: 几何特征选自脸部突出部位的位置,如嘴巴,眼睛,眉毛。该技术简单快速,但其人脸识别准确性低。
几何面部特征的一个例子
基于外观的方法,直接在图像上处理。它不使用单个提取点和局部二进制方式。提供分析皮肤纹理并提取与情绪检测相关的特征。需要处理大量需要高性能CPU的数据。 一些研究结合几何和外观提取来成功构建Hybird技术。这些技术仍然具有很高的CPU性能需求,并且无法在诸如Ci20这样的设备上本地执行。 特征分类的机器学习部分需要在识别之前进行适当的训练。我们即将使用的认知服务是在互联网上训练了数百万张免费图像,所以它非常强大。 Microsoft认知服务创建一个Microsoft帐户,如果你没有一个alreay,然后在子页面上浏览“Get Started for Free”,点击“Request new trials”选择以下内容 - Emotions
- Computer Vision
- Face
- Speaker Recognition
- Linguistic Analysis
选择“同意”许可条款。您应该得到如下页面:
稍后将使用API密钥来调用Microsoft服务。 硬件设置硬件设置很简单。将麦克风连接到音频端口。如果您有OV5640相机模块,请按照说明将其连接到相机端口。如果您没有相机模块,则可以使用USB网络摄像头。 您可以连接USB键盘和HDMI显示器,直接在控制台上工作,或将网线和ssh连接到主板上。 Ci20软件设置在Ci20上安装的Debian工厂没有我们需要的功能。按照此处的说明下载最新的Debian映像和闪存。 启动Onec Debian,连接以太网或设置WiFi,按照以下内容安装所需的pacakges并更新 - $sudo echo 'deb http://httpredir.debian.org/debian jessie-backports main contrib non-free' >> /etc/apt/sources.list
- $sudo apt-get update
- $sudo apt-get upgrade
- $sudo apt-get install streamer openjdk-8-jdk
复制代码要启用LED控制,请执行以下操作: - $sudo -i
- echo none > /sys/class/leds/led1/trigger
- echo none > /sys/class/leds/led2/trigger
- echo none > /sys/class/leds/led3/trigger
- chmod a+w /sys/class/leds/led1/brightness
- chmod a+w /sys/class/leds/led2/brightness
- chmod a+w /sys/class/leds/led3/brightness
- exit
复制代码 主机软件设置下载并安装Intellij IDEA社区版。它内置了git客户端,因此您可以复制repo。该项目会删除您需要下载和修复引用的folloowing库。 右键单击“module”并选择“Open Moudle Settings”,然后选择“Libraries”以编辑路径。
修复库链接
一旦构建成功,请选择Build-> Artifacts,如下所示生成jar文件。转到azure_cognitive/out/artifacts/azure_congnitive 文件夹。您现在可以将其复制到Ci20。
创建outout文件
运行应用程序你需要将azure_congnitive.jar 从PC 复制到Ci20,您可以使用SD卡,USB磁盘或sftp,无论什么都可以。 在Ci20上打开命令提示符,cd到你放置.jar的文件夹。在运行之前,你需要从之前看到的Microsoft Cognitive页面为您的API密钥设置环境变量。 - export EMOTIONDETECT_KEY=[paste Emotion key]
- export SITUATIONANALYSIS_KEY=[paste Computer Vision key]
复制代码运行应用程序: - java -jar azure_congnitive.jar
复制代码输出将显示在控制台上,您还可以看到以太网端口附近的LED亮起,显示处理过程中检测到的情绪。例如,如果作为从相机图像检测到的“幸福”或“惊喜”情绪的结果,则LED1将打开。如果是负面情绪或敌对情况,LED2将开启。LED3表示自然。 这是一个示例运行:
运行
如果仔细观察,即使图片没有焦点且光线不足,在情境分析过程中仍有一大堆信息提示。它正确地猜到了我的年龄和位置。它甚至猜到我的姿势很有信心等等。 你可以用认知AI的力量做更多的事情。我提供了一个可靠的框架,可以将Cognative AI与Ci20硬件轻松连接。随意分开并将其扩展到其他服务。 您的机器人现在可以理解情绪并分析其环境。玩得开心! “ 我是一台机器。我不能幸福......但我理解的比你想象的要多。” - 卡梅隆
定制零件和外壳
原理图
代码
|