1、开箱

Zora P1开发板的包装还是很精致的,除了开发板,还带了一个电源适配器和固定开发板的亚克力板配件。
加上咸鱼淘的奥比Astra深度相机,我就开启了评测之旅~,深度相机长这样子,它除了可以输出RGB图像之外,还可以输出深度图,因此又被叫做RGB-D相机。

2、安装ubuntu系统,然后安装Astra SDK和openNI

Zora P1开发板自带的操作系统为armbian系统,因为之前用树莓派比较多,所以对raspian系统比较熟悉,armbian其实跟树莓派自带的Raspian系统很像。
另外,Zora P1开发板是arm架构的,因此,在下载SDK和各种软件的版本的时候要注意选择Linux Arm64版本的。

3、人脸识别,区分出是人脸图片还是真人

于二维图像来说,要想区分出真人还是人脸图片有很大的难度,准确性难以保证,之前就有拿人脸图片刷开快递柜的新闻出现。而深度相机可以很轻易地让人脸图片现出原形,准确性有可靠保证,对于安防、金融支付这些应用场景来说,深度相机有重要的应用价值。

人脸识别是基于python和OpenCV开发的,过程如流程图所示,用到了openCV中的Haar CascadeClassifier,也就是级联分类器去识别图像中的人脸特征。识别到人脸特征后,还不能确定是否是真正的人脸,因此选取从RGB图像中获得的潜在真正人脸区域,坐标映射到深度图像中,对深度图像中对应的ROI区域计算标准差,设置阈值便能将两者区分开来。因为人脸图片在深度图中各点的深度信息没有变化,标准差很小;而真正的人脸各点深度信息变化明显,标准差大。


ubuntu配置openCV依赖项可以按照这个:https://blog.csdn.net/weixin_44232093/article/details/98937652

除了OpenCV库,我还用到了numpy和openNI,需要pip安装,安装时换成国内的源可以大大加快安装速度,在用清华源pip安装的时候,我遇到因为ubuntu系统时间没调,时间有偏差,导致安装失败的情况,解决方法就是把系统时间调整为北京时间,这样就可以用清华源正常安装python库了。还有一个要注意的就是DNS要设置一下。

4、最后,我想用一下板子上的GPIO引脚

查阅了Zora P1开发板的说明文档,看到是有8个GPIO引脚的,与树莓派相比不是很多。我的想法是实现一个基于人脸深度信息获取的智能风扇,根据之前获得的人脸深度信息,与调节风扇转速的模拟量值建立关系,实现人脸靠近时风速大,远离时风速小的效果。

于是,我便查阅了Linux通过指令控制GPIO的相关内容,操作步骤如下:

(1)定义GPIO:/sys/class/gpio# echo 1 > export,定义好之后在/sys/class/gpio路径下会生成gpio1文件夹。

(2)设置输入/输出:/sys/class/gpio/gpio1# echo out > direction

(3)设置输出值:/sys/class/gpio/gpio1#

echo 1 > value

这里也遇到一个问题,我理所当然的认为8个gpio口对应的编号便是1~8,其实不然,这就导致我定义GPIO是失败的。事实上,Zora P1的GPIO编号应该是在410-495和496-511这两个范围内,但具体的各个引脚软硬件映射关系说明文档没有提供,希望后面能发布出来。

附python代码:

from openni import openni2 import numpy as np import cv2 def mousecallback(event,x,y,flags,param): if event==cv2.EVENT_LBUTTONDBLCLK: print(y, x, dpt[y,x]) if __name__ == "__main__": openni2.initialize() dev = openni2.Device.open_any()
print(dev.get_device_info()) depth_stream =    dev.create_depth_stream() depth_stream.start() cap = cv2.VideoCapture(0)
cv2.namedWindow('depth') cv2.setMouseCallback('depth',mousecallback) face_detector =   cv2.CascadeClassifier("/home/orbbec/haarcascade_frontalface_default.xml") while True: frame = depth_stream.read_frame() dframe_data =   np.array(frame.get_buffer_as_triplet()).reshape([480, 640, 2]) dpt1 = np.asarray(dframe_data[:, :, 0], dtype='float32') dpt2 = np.asarray(dframe_data[:, :, 1], dtype='float32') dpt2 *= 255 dpt = dpt1 + dpt2 cv2.imshow('depth', dpt) #print(dpt.shape) ret,frame = cap.read() img=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) face_rects=face_detector.detectMultiScale(img, 1.3, 5) for(x,y,w,h) in face_rects: cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),3) face_dpt=dpt[y:y+h,640-(x+w):640-x]                                 ##the depth image and the frame are horizontal     symmetry ##calculate the standard deviation (mean,stddev)=cv2.meanStdDev(face_dpt) #print(stddev) ##Set threshold to recognize person  true or not     if stddev>300: cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),3) cv2.putText(frame,"Real Person",(x,y-5),cv2.FONT_HERSHEY_SIMPLEX,1,(0,255,0),2) else: cv2.rectangle(frame,(x,y),(x+w,y+h),(0,0,255),3) cv2.putText(frame,"It's picture!",(x,y-5),cv2.FONT_HERSHEY_SIMPLEX,1,(0,0,255),2) #if w > 0: #  cv2.imshow('face_dpt', face_dpt) cv2.imshow('color', frame) #print(frame.shape) key = cv2.waitKey(1) if int(key) == ord('q'): break depth_stream.stop() dev.close() 

备注:
点击下面链接,进入奥比中光开发者社区,了解更多3D视觉技术信息:
https://developer.orbbec.com.cn/

或扫描下方二维码,进入奥比中光开发者社区:

奥比中光Zora P1开发板评测报告相关推荐

  1. 【R329开发板评测】R329开发板部署aipu模型

    首发极术社区 如对Arm相关技术感兴趣,欢迎私信aijishu20加入技术微信群. 上篇文章r329模拟仿真实现了在模拟器上仿真网络,现在申请到了开发板,就有机会在上面测试下了. 本文需要的原材料 r ...

  2. 鸿蒙开发板能干什么,【鸿蒙开发板试用报告】用OLED板实现FlappyBird小游戏(中)...

    小伙伴们久等了,在上一篇<[开发板试用报告]用OLED板实现FlappyBird小游戏(上)>中,我们本着拿来主义的原则,成功的让小鸟在OLED屏幕上自由飞翔起来,下面我们将加入按钮交互功 ...

  3. 【R329开发板评测】如何优雅地给开发板刷入TinaLinux

    首发极术社区 如对Arm相关技术感兴趣,欢迎私信aijishu20加入技术微信群. 7.23更新:不愧是我,连ssh-server都没给编译进去,现在有了 作为一个萝莉控真的爱死这种小巧精致开发板了 ...

  4. AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告

    目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...

  5. 联盛德 HLK-W806 (五): W801开发板上手报告

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  6. 米尔科技MPSoC开发板评测

    米尔科技推出的MYD-CZU3EG开发板搭载的就是UltraScale+ MPSoC平台器件 - XCZU3EG,它集成了四核Cortex-A53 处理器,双核 Cortex-R5 实时处理单元以及M ...

  7. [评测]灵动半导体MM32W3蓝牙开发板开箱报告

    文章目录 前言 开箱报告 板载资源简介 硬件电路分析 配套资料文档 关于灵动半导体 资料下载 前言 前几天在面包板社区申请了一块灵动微电子的开发板-- eMiniBoard-MB021,感谢面包板社区 ...

  8. 开发板评测 | STM32 Nucleo-64评测报告

    本篇将介绍NUCLEO-L053R8(stm32l053r8t6芯片)开发板的测评,整体上这个板子沿用了传统的塑料包装. 简约不简单,内含纸板双面分别标有引脚图及芯片简单介绍和入门引导.Arduino ...

  9. 【ST开发板评测】Nucleo-F411RE开箱报告

    前言 面包板又举办开发板试用活动了,很荣幸能获得一块ST官方的Nucleo-F411RE开发板,感谢面包板社区和ST意法半导体的赞助,这是我第一次试用官方的开发板,收到板子后查了一些关于ST官方开发板 ...

最新文章

  1. 逻辑结构图向关系转换规则2
  2. uniapp 子组件 props拿不到数据_Vue组件间的通信
  3. 常见的网上邻居访问问题
  4. 叉叉框架_叉/连接框架
  5. 迁移是10g-11g ogg正好有用武之地N种方法
  6. 攀枝花学院计算机专业单身率,重磅 | 攀枝花学院2018届毕业生就业质量年度报告...
  7. 北邮2017计算机考研题,北邮通信考研2017年801真题.pdf
  8. 【梳理】离散数学 第15章 欧拉图与哈密顿图 15.3 最短路问题、中国邮递员问题与货郎担问题
  9. 如何快速构建一个Flutter互动直播应用
  10. 汇编语言期末复习不挂科——知识点总结
  11. Maven学习之路(五)maven的灵活构建--属性、profile和资源过滤
  12. excel 筛选重复项_列表项的Excel筛选器:2011年“鲨鱼周”
  13. Even-Odd Increments
  14. 【PyTorch】4 姓氏分类RNN实战(Simple RNN)——18 种起源语言的数千种姓氏分类
  15. 笔录 Flutter(二)Image的属性、使用、圆角、圆形
  16. C++静态成员对象与静态成员函数
  17. Oracle X$Tables
  18. java代码实现99乘法表
  19. 【Scala学习】之函数式风格编程
  20. PPT设置多级项目符号和标号

热门文章

  1. Scene Player初始版本完成
  2. Leangoo团队敏捷开发实现过程
  3. 不会吧,不会吧,还有人不知道 binlog ?
  4. 京东这道面试题你会吗?
  5. Java 工程师必须掌握的 JVM 类加载机制!
  6. Java线程池实现原理及其在美团业务中的实践
  7. 数据中台应该包含什么?
  8. Java语言中的生僻知识
  9. 阿里巴巴一位 70 后程序员的 26 个职场感悟!
  10. 技术面试,高效求职准则