热品试用 | 与TOF深度摄像头的初次交手

偶然机会,因合作项目需要收到了PicoZense TOF 深度摄像头 DCAM710,一款高性能的基于TOF的RGBD摄像头模组。

开箱

打开包装,看到的是 DCAM710的白色包装盒(12.4cm12.4cm5.4cm),外包装感觉简单干净
DCAM710的清单包含3样物品:

  • 摄像头模组一部
  • 电源适配器一部
  • USB 数据线一根
    热品试用 | 与TOF深度摄像头的初次交手
    热品试用 | 与TOF深度摄像头的初次交手
    打开盒子,映入眼帘的摄像头模组(103mm22mm33mm)和电源适配器;摄像头模组背部标签介绍了摄像头的主要指标值,分别是深度图的 FOV,RGB 图的 FOV,以及校正深度等;另外摄像头的底部有具体型号的介绍。
    热品试用 | 与TOF深度摄像头的初次交手
    热品试用 | 与TOF深度摄像头的初次交手
    热品试用 | 与TOF深度摄像头的初次交手
    热品试用 | 与TOF深度摄像头的初次交手
    USB 数据线在下层的盒子里,盒子上标有 USB Cable;拿出数据线简单测量了下,长度差不多90cm。
    热品试用 | 与TOF深度摄像头的初次交手
    热品试用 | 与TOF深度摄像头的初次交手

试用

此款 Pico 公司采用飞行时间测距技术(TOF: Time of Flight)研发的 3D 成像模组。具有精度高、环境适应性强、尺寸小等优点。下面,我们来一步步解读。

第一步

通过PicoZense SDK 开发者指南,发现DCAM710这款TOF 相机支持 windows 和 linux 系统;windows 可以支持win7/8/10,linux支持 ubuntu 14.04/16.04。在这里不得不给PicoZense SDK 开发者指南点赞,提供的指南内容非常详细,按照给定的步骤就可以搭建试用环境。(关于 SDK 开发者指南文档的获取,可直接拨打店铺400电话与服务商客服人员联系)

第二步

测试DCAM710,选择了 ubuntu 16.04作为测试系统,重新安装了系统。实际的硬件跟笔记本电脑的连接比较简单,直接试用 USB 数据线将摄像头和笔记本电脑连接即可。
热品试用 | 与TOF深度摄像头的初次交手

在运行具体程序之前,需要按照开发者指南进行所需的依赖安装,说明如下:

  • 对于已准备的 ubuntu 16.04系统,因为是最简版安装,所以需要先安装 gcc,g++,make 等工具;直接使用 ubuntu 自带的管理工具 apt-get安装即可。
  • 在终端中运行 sudo apt-get install v4l-utils,安装 v4l (video4linux)相关工具;然后运行 v4l2-ctl --list-devices 查看当前系统能够识别出来的视频设备列表。
    ——v4l是Linux 内核中关于视频设备的子系统,为linux 下的视频驱动提供了统一的接口,使得应用程序可以使用统一的API 函数操作不同的视频设备,极大地简化了视频系统的开发和维护。
    热品试用 | 与TOF深度摄像头的初次交手
  • 安装 VDPAU(Video Decode and Presentation API for Unix),安装 libvdpau-dev 及 vdpauinfo。运行 vdpauinfo 查看,电脑是否支持 vdpau。支持时的输出参看下图。
    ——VDPAU最初由NVIDIA开发的针对其GeForce 8系列以及更高系列的GPU[2] ,在UNIX和类UNIX系统(包括 Linux、FreeBSD和Solaris)下基于X窗口系统下的开源库(libvdpau)和API。
    热品试用 | 与TOF深度摄像头的初次交手

如果出现如下错误:
display: :0 screen: 0
Failed to open VDPAU backend libvdpau_i965.so: cannot open shared object file: No such file or directory
Error creating VDPAU device: 1
则执行如下命令:
cd /usr/lib/x86_64-linux-gnu/vdpau/
sudo ln -s libvdpau_va_gl.so libvdpau_i965.so
sudo ln -s libvdpau_va_gl.so.1 libvdpau_i965.so.1

对于 Intel 显卡的电脑,需要进行以下操作:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install libvdpau-va-gl1
sudo apt-get install i965-va-driver
以上针对这块摄像头的依赖安装已经完成,在安装过程中如果发现还有其他依赖安装未完成,可以自行安装。

接下来,运行 SDK 里的 sample。(SDK 的获取,可直接拨打店铺400电话与服务商客服人员联系)
首先看下 SDK 的目录结构
热品试用 | 与TOF深度摄像头的初次交手

  • Config 目录里是关于当前 sdk 的一下默认配置。
  • Document 目录里提供的是针对这块摄像头的中文版和英文版开发者指南,格式位 pdf。
  • Include 目录主要包括SDK 的头文件,如 PicoZense_api.h,PicoZense_define.h。从头文件的命名来看,就可以判断这块摄像头的 SDK 代码是很规范的。
  • Lib 目录主要包含 SDK 的 lib 文件,如 PicoZense_api.lib。Linux SDK 的 Lib 目录包含共 享库 so 文件。
  • Samples 目录主要包含使用 PicoZense SDK 开发的例程;包括 DepthFrameReader,FrameViewer等。
  • Thirdparty 目录主要包含 sdk 依赖的第三方库,主要是 opencv。
  • Tools 目录包含可查看 PicoZense 深度摄像头的深度图像,IR 灰度图像和彩色图像的工具 FrameViewer,与使用 Samples 目录中的 FrameViewer 编译出来的一致。
    在命令行模式下进入Samples
    热品试用 | 与TOF深度摄像头的初次交手
    可以看到 Samples 下主要是读取不同形式帧信息的示例,如深度帧,灰度帧,RGB帧等。其中 FrameViewer 是可以同时读取多种帧信息的,尝试运行 FrameViewer 代码。
  1. SDK 已经将 Makefile 文件准备好了,直接 make 编译即可。成功编译后会发现生成了可执行的二进制文件 FrameViewer。
  2. 将硬件DCAM710摄像头通过 USB 数据线连接到笔记本电脑上,待摄像头的指示灯为绿色,表示系统能够成功识别该款摄像头。
  3. 在 Samples 目录下运行 FrameViewer,可以看到默认会看到深度图和 RGB 图。
    热品试用 | 与TOF深度摄像头的初次交手
    通过阅读 FrameViewer.cpp 的代码发现,当前程序默认使用 PsNearRange 深度模式(main 函数中第38行,第57行);
    继续翻看 Include 里的 PicoZense_enums.h,发现这款摄像头一共有9种深度模式
    热品试用 | 与TOF深度摄像头的初次交手
    热品试用 | 与TOF深度摄像头的初次交手

试用感受

建议结合开发者文档和代码一起,并结合项目的实际场景需要,利用此款 TOF 摄像头进行针对性的数据采集和处理。

此款镜头通过百度AI硬件评测认证,并与百度人脸离线识别SDK结合,适用于38~80cm内的场景,逆光环境表现良好。可广泛应用于人脸识别,肢体识别,机器人避障导航,物流等行业。

先介绍到这里,想了解更多产品信息,可访问百度 AI 市场