云导播

你想过如何让机器人感受到你的情绪吗?


构建一个机器人,不仅可以区分敌人和朋友,还可以利用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库。

  • JSON-简单*

  • Apache HttpComponents*


右键单击“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硬件轻松连接。随意分开并将其扩展到其他服务。


您的机器人现在可以理解情绪并分析其环境。玩得开心!


“ 我是一台机器。我不能幸福......但我理解的比你想象的要多。”

——卡梅隆


点击“阅读原文”可获得以下资源


定制零件和外壳的建模、原理图、代码库


原文作者:Asad Zia

翻译:az158


END