已归档 - 英特尔® 实感™ 深度摄像头 R200 代码示例 – 面部追踪

英特尔® 实感™ SDK 已停产。 不再继续提供支持或更新。

下载 R200 摄像头面部追踪代码示例

简介

该 C#/XAML 代码示例展示了如何使用面向 Windows 的英特尔® 实感™ SDK* 中的面部追踪算法借助 R200 摄像头实时检测和追踪人们的面部。 该代码示例具有以下功能:

  • 以 Image 控制的形式显示 R200 RGB 摄像头的实时色彩数据流
  • 添加可追踪用户面部(基于场景中用户的外貌)的矩形控制
  • 显示 R200 摄像头检测的面部数量
  • 显示追踪到的面部的高度和宽度
  • 用 2D 坐标图(x 轴和 y 轴)显示追踪到的面部
  • 显示面部深度,以及与 R200 摄像头之间的距离
  • 启用和显示告警监控,并订阅告警事件处理程序

Face Tracking Code Sample
图 1. 面部追踪代码示例

软件开发环境

该代码示例使用 Microsoft Visual Studio Community 2015 在 Windows® 10 RTM 上创建而成。 用于该示例的项目模板为Visual C#WindowsClassic Desktop

用于该项目的 SDK 和 DCM 版本分别为:

  • 英特尔® 实感™ SDK                                            v6.0.21.6598
  • 英特尔® 实感™ 景深摄像头管理器 R200              v2.0.3.39488

硬件概览

开展这项开发工作时,我们将英特尔® 实感™ 开发人员套件 (R200) 用于摄像头,该摄像头借助可选磁性支架连接至标准三脚架(图 2)。

Camera Attached to Optional Magnetic Mount
图 2. 连接可选磁性支架的摄像头**

(**并非所有套件均提供该支架。)

运行 R200 代码示例时需满足以下基本硬件要求:

  • 第四代英特尔® 酷睿™ 处理器或更高版本
  • 150 MB 可用硬盘空间
  • 4GB RAM
  • 英特尔® 实感™ 摄像头 (R200)
  • 面向 R200 摄像头(或专门用于连接集成摄像头)的可用 USB3 端口

重要说明: 要求 USB3 接口支持摄像头所需的带宽。 该接口必须连接至客户端系统的专用 USB3 端口(不使用集线器)。

 

构建注意事项

  1. 该项目使用 System.Drawing.Imaging 命名空间。在新项目中手动引用该命名空间的做法是:在 Solution Explorer 中右击 References,然后选择 Add Reference… 打开窗口。 接下来选择Assemblies, Framework 并搜索 System.Drawing 列表。 突出显示复选框,然后点击 OK 按钮。
  2. 该项目使用至 libpxcclr.cs.dll (管理的 DLL)的显式路径,地址为: C:\Program Files (x86)\Intel\RSSDK\bin\x64。 如果您采用的是不同的 SDK 安装路径,引用时需要进行更改。
  3. 由于该项目引用 64 位版本的 DLL,因此您必须确保在 ProjectPropertiesPlatform target 设置下注明 “x64”。
  4. 该项目包含后期生成事件指令,以确保非托管 DLL (libpxccpp2c.dll) 能够复制到输出对象目录:
    if "$(Platform)" == "x86" (copy /y "$(RSSDK_DIR)\bin\win32\libpxccpp2c.dll" "$(TargetDir)" ) else ( copy /y "$(RSSDK_DIR)\bin\x64\libpxccpp2c.dll" "$(TargetDir)" )

关于代码

该代码示例的结构为:

  • 配置会话、SenseManager 界面和面部模块。
  • 启动名为 Update 的 worker 线程,AcquireFrame-ReleaseFrame 循环在该线程内处理。
  • AcquireFrame-ReleaseFrame 循环内进行着以下活动:
    • 获取图像数据。
    • 获取面部模块数据。
    • 调用渲染方法来更新 UI。
    • 释放资源。
    • 释放帧。
  • 渲染方法中所进行的活动包括:
    • 调用 ConvertBitmap 方法将位图帧转换成 BitmapImage 类型,在 WPF Image 控制中显示帧时需要进行此类转换。
    • 通过将工作委托给与 UI 线程相关的派送程序来更新 UI。
  • ShutDown 方法在激发 Window_ClosingbtnExit_Click 事件时调用。 ShutDown 方法中所进行的活动包括:
    • 停止 Update 线程。
    • 处理对象。

立即查看

请点击下载链接,了解与该示例相关的代码和实验。

关于英特尔® 实感™ 技术

如要开始使用,了解更多有关面向 Windows 的英特尔实感软件开发套件的信息,请访问:https://software.intel.com/zh-cn/intel-realsense-sdk.

关于作者

Bryan Brown 是英特尔开发人员关系部门的软件应用工程师。

Para obter informações mais completas sobre otimizações do compilador, consulte nosso aviso de otimização.