笑脸检测通过使用OpenCV的代码金宝app

这个例子显示了如何使用建立一个笑脸检测OpenCV的进口商。该检测器估计的面部图像上的微笑的强度。基于所估计的强度,所述检测器从它的数据库中识别一个适当的表情符号,然后放置在笑脸表情符号。

首先导入一个OpenCV的功能到Simulink使用金宝appOpenCV的代码导入向导。该向导将创建一个Simulink的金宝app®库包含子系统和为指定的OpenCV的功能是C主叫块。该子系统然后在预先配置Simulink模型用于接受用于微笑检测面部图像。金宝app您可以从模型中生成C ++代码,然后将其部署在目标硬件上的代码。

您将学习如何:

  • 导入OpenCV的功能到Simulink库。金宝app

  • 使用从生成库块在Simulink模型。金宝app

  • 产生从Simulink模型C ++代码。金宝app

  • 部署在树莓派的硬件模型。

所需的产品下载188bet金宝搏

  • 计算机视觉工具箱™的OpenCV接口的Simulink金宝app

  • 计算机视觉工具箱

  • 嵌入式编码®(部署)

设置你的C ++编译器

要构建OpenCV的库,识别兼容的C ++编译器为您的操作系统,如在编译器使用构建的OpenCV库。通过配置确定编译MEX -setup C ++命令。欲了解更多信息,请参阅选择C ++编译器

型号说明

在这个例子中,一个微笑检测器是通过使用仿真模型实现金宝appsmileDetect.slx

在这个模型中,subsystem_slwrap_detectAndDraw子系统驻留在Smile_Detect_Lib图书馆。您创建subsystem_slwrap_detectAndDraw通过使用该子系统OpenCV的进口商。该子系统接受来自面部图像图片从工作区块,并提供这些输出值。

输出端口 描述
有圆圈的面部图像
强度 微笑的强度
X x中的圆的中心坐标
ÿ 该圆的中心的y坐标
RD 圆弧半径

MATLAB功能块接受来自输入subsystem_slwrap_detectAndDraw子系统块。该MATLAB功能块具有一组表情符号图像。在这些图像中的表情符号的微笑强度范围从低到高。从表情符号图像,块识别为所估计的强度和它的面部图像上的地方最合适的表情符号。然后输出被提供给视频查看器块。

复制示例文件夹可写位置

的示例文件夹位于MATLAB \工具箱\ SI金宝appMULI金宝appNK \ supportpackages \ simulinkopencv \示例。每个子文件夹包含所有运行示例所需的支持文件。金宝app

与之前执行这些步骤,确保您的示例文件夹复制到可写文件夹位置,改变当前的工作文件夹例如\ SmileDetector。您的所有输出文件被保存到这个文件夹。

第1步:导入的OpenCV函数来创建金宝app图书馆

  1. 要启动OpenCV的进口商应用程序,请单击应用在MATLAB®工具条。在欢迎页面上,指定项目名称Smile_Detector。确保项目名称不包含任何空格。请点击下一个

  2. 在指定OpenCV库,指定这些文件的位置,然后单击下一个

    • 项目的根文件夹:指定您的示例文件夹的路径。这个路径是到您保存您的示例文件写入项目文件夹。您的所有输出文件被保存到这个文件夹。

    • 源文件:指定的路径的.cpp文件位于项目文件夹内为smiledetect.cpp

    • 包含文件:指定的路径.HPP头文件位于您的项目文件夹为内smiledetect.hpp

  3. 分析你的库中查找功能和类型进行导入。一旦分析完成后,单击下一个。选择detectAndDraw功能和点击下一个

  4. 从什么导入,选择I / O类型对于IMG输入,然后单击下一个

  5. 在创建的Simuli金宝appnk库,验证默认值,然后单击下一个

    Si金宝appmulink的库Smile_Detector_Lib从您的OpenCV的代码中创建到项目的根文件夹。该库包含一个子系统和C来电块。您可以使用这些模块为模型仿真。在该示例中,子系统subsystem_slwrap_detectAndDraw用来。

第2步:使用生成子系统金宝app模型

要使用生成子系统subsystem_slwrap_detectAndDraw与Simulink金宝app模型smileDetect.slx

  1. 在您的MATLAB当前文件夹右键单击模型smileDetect.slx并点击打开从上下文菜单中。在模型中,删除现有的subsystem_slwrap_detectAndDraw然后拖动生成的子系统subsystem_slwrap_detectAndDraw来自Smile_Detector_Lib库模型。连接子系统到MATLAB功能块。

  2. 双击子系统,并指定这些参数值。

    参数 描述
    512 行的输出图像中的数
    512 列的输出图像中的数
    通道 3 输出图像中的通道数
    基本类型 UINT8 底层的OpenCV数据类型
    是图片 是否输入是图像或矩阵

    请点击应用,然后单击

第3步:模拟笑脸检测

在Simuli金宝appnk的工具条,在模拟选项卡,单击模拟模型。经过模拟完成后,视频查看器块显示在脸上的表情符号的图像。通过表情符号表示微笑的强度。

步骤4:从笑脸检测仪型号生成C ++代码

之前从模型中生成的代码,你必须首先确保你有你的当前文件夹的写权限。

为了生成C ++代码:

  1. 打开smileDetect_codegen.slx从您的MATLAB模型当前文件夹

    要查看模型设置:

    应用在Simulink的工金宝app具条选项卡,选择嵌入式编码。

    C ++代码选项卡中设置下拉列表中,点击C / C ++代码生成设置打开配置参数对话框,验证这些设置:

    • 在里面代码生成窗格中,在目标选择语言设定为C ++

    • 在里面接口代码生成阵列布局在里面数据交换接口类别设置为行主

  2. 连接生成子系统subsystem_slwrap_detectAndDraw到MATLAB功能块。

  3. 为了生成C ++代码,下C ++代码选项卡,单击生成代码下拉列表,然后单击建立。模型完成生成代码后,代码生成报表打开。您可以检查生成的代码。构建过程创建一个名为zip文件smileDetect_with_ToOpenCV.zip在当前的MATLAB工作文件夹。

部署笑脸检测的树莓派五金

在部署该模型,树莓派连接到您的计算机。等到PWR在硬件上开始闪烁的LED。

在里面设置下拉列表中,点击硬件实现打开配置参数对话框,验证这些设置:

  • 设置硬板树莓派。该设备供应商设定为ARM兼容

  • 在里面代码生成窗格中,在目标选择语言设定为C ++。下构建过程Zip文件名设定为smileDetect_with_ToOpenCV.zip。下工具链设置中,工具链被指定为GNU GCC树莓派

要部署的代码,你的树莓派的硬件:

  1. 从生成的zip文件,复制这些文件到您的树莓派硬件。

    • smiledetect.zip

    • smileDetect.mk

    • main.cpp中

  2. 在树莓派,去到保存文件的位置。为了产生小精灵文件,并输入以下命令:

    使-f smileDetect.mk
  3. 运行树莓派的可执行文件。成功执行后,你看到树莓派的输出与放置在脸部图像上的表情符号。

    smileDetect.elf

也可以看看

|

相关话题