Astra SDK  v2.1.3
概述

欢迎阅读 Astra SDK 的使用教程! Astra SDK 提供了详尽的教程来帮您通过简单但强大的 API 去了解 Astra 系列相机的所有功能。

此教程对于有以下需求的开发者来说会有很大的帮助:

  • 快速使用 Astra SDK 进行开发
  • 深层理解 Astra SDK 中的一些上层概念
  • 查找 Astra SDK 提供的特定函数或功能的细节信息

目标

此SDK的设计目标是提供世界上最好的3D相机开发体验。为实现此目标,奥比中光开发团队汲取了百家之长以及前人的经验教训来帮助开发者进行创新,去除无用的复杂和容易影响适配的结构,令开发者享受使用 Astra SDK 的开发过程。

简洁的设计

Astra SDK 通过前后一致和易懂的API而不是一些样板代码来获取相机数据,这些API将stream分成了上层类型和底层类型。具体请参考以下代码:

astra::initialize();
astra::StreamSet streamSet; //By default, a StreamSet will address the Astra
astra::StreamReader reader = streamSet.create_reader();
// Low-Level Streams
reader.stream<astra::DepthStream>().start();
reader.stream<astra::ColorStream>().start();
//High-Level Streams
reader.stream<astra::HandStream>().start();
reader.stream<astra::PointStream>().start();
astra::Frame frame = reader.get_latest_frame();
//Low-Level Streams
const auto depthFrame = frame.get<astra::DepthFrame>();
const auto colorFrame = frame.get<astra::ColorFrame>();
//High-Level Streams
const auto handFrame = frame.get<astra::HandFrame>();
const auto pointFrame = frame.get<astra::PointFrame>();
astra::terminate();

首先,请注意我们创建StreamSet对象的位置。当处于无任何附加配置的情况下,它将寻找默认的Astra传感器。在下面的几行中,您可以看到,不管流类型如何,都要执行相同的API调用于每个流进行交互。

如果您是拥有多年经验的3D相机开发者,完全不必担心此SDK是不是只是为一些简单的应用设计的, Astra SDK 还可以处理一些平时并不常见的情况,通常只需将不同的参数传递给对象构造函数即可。 简单来说,无论您的程序有多复杂, Astra SDK 都能胜任。

支持设备

  • Astra+
  • Astra+ S
  • Astra Embedded S
  • Astra Stereo S
  • Astra Stereo S U3
  • Persee
  • Astra
  • Astra S
  • Astra Pro
  • Astra Mini
  • Astra Mini S

支持的开发语言和平台

Astra 通过C语言API来实现核心功能,同时也提供了C++11 API。以此为基础,我们的SDK可以实现对不同语言和平台的支持,已支持如下:

  • 语言: C, C++11, Java, C#.
  • 平台: Windows, Linux, Android.
  • 框架: Unity.

移动端

近几年,移动设备的发展十分迅速,处理性能越来越强大。但是相对于桌面平台来说,还是具有一定的局限性。正因如此,我们开发 Astra SDK 的过程中,时刻以低CPU和内存占用为主要目标,从而最大限度地提升SDK在移动设备上的能效和用户体验。

可扩展性

Astra SDK 中最强大的功能就是插件了。它为高级开发者提供了扩展SDK功能的方法,同时又保证了这些扩展功能跟现有功能的一致性。实际上,所有SDK‘内置’的streams类型,均是通过插件来实现的。插件不仅仅局限于可以加入不同的streams类型。想象下您想利用访问单一摄像头那样的API来访问多个联网的摄像头的情况。‘插件’提供了无限的可能性。随着SDK的成熟,后续一定会有更多的第三方插件对此提供支持。

解决方案

Astra SDK 可用于但不局限于以下场景的解决方案:

零售

深度视觉的面部识别、人数统计、库存监控以及互动展示。

智能家居/建筑

3D相机辅助互连系统,以提高便利性,资源有效性和安全性。

机器人

Orbbec深度传感器为机器人与真实世界交互提供实时视觉。

自动化操作

深度视觉可以快速测量各类物体。

医疗服务

3D技术作为一种更安全的检测方法,以应对有老年人跌倒的风险。

3D扫描

3D相机可快速获取对象的三维立体数据,并自动生成3D模型。