Intel RealSense SDK 简翻

 

0 something

sdk架构示意图:

C#中需要用的动态链接库文件:

  • C# interface DLL:libpxcclr.cs.dll
  • C++ P/Invoke DLL:libpxccpp2c.dll

位于文件夹:$(RSSDK_DIR)/bin/x64 或 $(RSSDK_DIR)/bin/win32 中

1 概念和流

C++/C#层次体系(M表示托管Managed)。全模块化。

PXC[M]Session

PXC[M]Session继承自PXC[M]Base,包含I/O模块、算法模块和其他接口执行模块。首先要通过静态函数CreateInstance创建session实例,然后通过该实例创建其他模块的实例。

public class PXCMSession : PXCMBase
{
    ...
    public static PXCMSession CreateInstance();
    public PXCMSenseManager CreateSenseManager();
    ...
}
PXC[M]SenseManager

PXC[M]SenseManager组织一个多模态管道(包括I/O设备和多个算法模块),控制管道的开始、停止、暂停、继续等等。CreateInstance创建SenseManager实例

public class PXCMSenseManager : PXCMBase
{
    ...
    public static PXCMSenseManager CreateInstance();
    ...
}

在内部,PXC[M]SenseManager通过PXC[M]CaptureManager来选择I/O设备和色彩/深度/声音流。

初始化管道时在PXC[M]SenseManager中取得PXC[M]CaptureManager的实例,可以用来强制设备搜索,以及设置录制和回放。然后取得PXC[M]Capture接口,可用来操作物理摄像头,如枚举设备/流,及查询流配置和设备属性。

管道运行过程中,可以通过PXC[M]Image接口,来获取I/O设备中就绪的samples,即图像缓存。

管道中可以包含算法模块,如PXC[M]HandModule手部追踪,PXC[M]FaceModule面部追踪,利用这些模块进行相应的设置和算法数据查询。

PXC[M]AudioSource接口获取声音。特定的语音特征直接在模块接口中,如PXC[M]SpeechRecognition

An SDK session is the context that holds these modules. 应用程序中可以创建一个或多个sdk sessions,每个session维护自己单独的I/O和算法模块context。模块的生命周期由session的使用决定。PXCMSession在其它模块创建前创建,在其它模块销毁后销毁。session必须是第一个创建,最后一个销毁。

C#托管实例内部指向C++非托管实例。

PXC[M]SenseManager是这种案例的主要接口:
(1)有一个或多个算法模块;
(2)一个摄像头;(多个摄像头的话可以建立多个实例)
(3)摄像头为算法模块提供数据;

 
 
 
摄像头
未处理数据
手部追踪
脸部追踪

理论上,应用程序可以同时独立地处理每个图像捕获和算法运行通道,每个通道都被赋予了一个模块ID:

  • 第一个图形通道用PXC[M]Capture.CUID,后续PXC[M]Capture.CUID+1
  • 算法通道用对应的标识符,如PXC[M]HandModule.CUID 或 PXC[M]FaceModule.CUID

PXC[M]SenseManager典型的使用流程:

  1. 创建实例
    PXCMSenseManager sm=PXCMSenseManager.CreateInstance();

  2. 配置组件。EnableXXX函数来激活模块
    sm.EnableStream(PXCMCapture.StreamType.STREAM_TYPE_COLOR,0,0);

  3. 控制运行流程,获取结果。根据线程模型,使用消息环或者事件回调传递数据。

     sm.Init();
    
     for (;;) {
        pxcmStatus sts=sm.AcquireFrame(true); //AcquireFrame函数等待帧数据就绪
        if (sts<pxcmStatus.PXCM_STATUS_NO_ERROR)
            break;
    
        PXCMCapture.Sample sample;
        sample=sm.QuerySample(); //QuerySample获取图像
    
        .... // process image
    
        sm.ReleaseFrame(); //继续下一帧
     }
    
     sm.Close();
    
     pxcmStatus OnNewSample(int mid, PXCMCapture.Sample sample)
     {
         // return NO ERROR to continue,
         // or any ERROR to exit the loop
         return pxcmStatus.PXCM_STATUS_NO_ERROR;
     }
    
     void MainRoutine(PXCMSession session)
     {
     ...
         // Initialize my event handler
         PXCMSenseManager::Handler handler=
            new PXCMSenseManager.Handler();
         handler.onNewSample=OnNewSample;
    
         // Stream depth samples
         sm.Init(handler);
         sm.StreamFrames(true);
         sm.Close();
     ...
     }
    
  4. 释放实例。完整过程:

     PXCMSenseManager sm=PXCMSenseManager.CreateInstance();
     sm.EnableStream(PXCMCapture.StreamType.STREAM_TYPE_COLOR,0,0,0);
     sm.Init();
    
     while (sm.AcquireFrame(true)>=pxcmStatus.PXCM_STATUS_NO_ERROR)
     {
         PXCMCapture.Sample sample=sm.QuerySample();
         .... // process image
         sm.ReleaseFrame();
     }
    
     sm.Dispose();
    
原始数据流捕获和处理(待续)

generated by haroopad

转载于:https://www.cnblogs.com/GaoXuexing/p/4493005.html

### 回答1: Intel RealSense SDK 2.0是一款用于三维视觉和深度感知的软件开发工具包。该工具包可以帮助开发人员使用Intel RealSense深度相机创建应用程序,这些相机能够捕捉3D图像,并且对多种应用场景具有很高的适用性。 使用RealSense SDK 2.0可以开发各种类型的应用程序,例如游戏、虚拟现实、增强现实、移动机器人、人体生物特征检测等等。该工具包可以支持Windows、Linux和macOS等操作系统,为各种类型的开发人员提供了很大的灵活性。此外,RealSense SDK 2.0还支持多种编程语言,包括C++C#、Python和Java等。 该工具包内置了一些重要的模块,例如深度流、RGB流、IMU数据流、人脸识别、手势识别、语音识别等等。这些模块可以帮助开发人员轻松实现各种功能,而无需从头开始编写代码。RealSense SDK 2.0还具有用于基础设施的API,例如保存和加载配置文件、跟踪相机状态、转换坐标等等。这些API可以帮助开发人员更轻松地使用RealSense深度相机,并加速开发过程。 总体而言,Intel RealSense SDK 2.0是一款提供了多种功能模块和API的开发工具包,具有广泛的应用场景,可以帮助开发人员快速构建各种三维视觉和深度感知应用程序。 ### 回答2: Intel RealSense SDK 2.0 是由英特尔公司推出的一套深度感知软件开发工具包。它支持多种平台,包括Windows、Linux和Mac OS。该SDK可以帮助开发者快速构建出使用深度感知技术的模块和应用程序。 Intel RealSense 2.0的深度感知技术是由一套摄像头、红外光线以及软件算法组成的。通过这些组件的配合,可以获取场景的深度信息、RGB信息和红外信息,从而实现空间感知、姿态检测、手势识别等功能。此外,该SDK还支持自定义滤波、数据存储、远程控制等高级功能,使得开发者可以更加灵活地应用深度感知技术。 Intel RealSense SDK 2.0 在应用方面有广泛的应用,如3D扫描、AR/VR、人脸认证、手势识别、姿态检测、自动导航等。并且该SDK的丰富文档和简单易用的API,使得开发者可以更加容易地开始深度感知技术的开发。 总之,Intel RealSense SDK 2.0 是一套高品质的软件开发工具包,可以帮助开发者快速构建出使用深度感知技术的模块和应用程序。它的应用领域广泛,使得开发者可以更加灵活地应用深度感知技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值