首款开源嵌入式深度视觉+人工智能开发套件 -OAK介绍
▌OAK的诞生
OAK的创始人Brandon Gills在采访中表示,OAK的最初灵感源自他想构建一个预防自行车事故的嵌入式系统。
在构建原型的过程中,Brandon发现,在解决嵌入式空间神经网络推理问题的时候(类似于人眼,我们能从不同角度识别物体,还能定位物体的位置,物体的尺寸大小等),我们很难找到一个整合好的,性能强大的软硬件平台,让开发者能够把主要精力集中在自己产品的功能实现上,而不用为了一堆硬件,驱动,兼容性,可移植性,稳定性,功耗而头疼。为了解决这些痛点,OAK诞生了。
▌OAK是什么?
OAK是3D计算机视觉和人工智能开发套件。
▌硬件
OAK搭载了一颗4K/60fps的彩色摄像头,两颗黑白摄像头用于双目测距。
▌设计细节
OAK设计成直接将MIPI连接到主芯片, 这使得图像不需要经过主机从而直接用于后续处理,以此节省图像传输的消耗。
为了使这种功能可以集成到实际产品中,并使硬件集成更加容易,OAK设计者制作了一个系统模块(SoM)来容纳Myriad X。
▌部分功能
- 神经推理,例如:目标检测,图像分类。支持基本上目前所有主流神经网络框架和神经网络
- 双目测距,利用左右两颗摄像头探测距离
- 3D对象定位,可以将2D的物体检测扩充到3D(利用双目测距)。
- H.264和H.265编码,HEVC,1080p和4K 30帧视频编码。
- 对象跟踪,可以对对象的轨迹进行跟踪记录
▌OAK和OpenCV
OpenCV的CEO看到OAK的价值,并和OAK的开发团队进行深度的合作。OpenCV也是大力宣传推荐OAK,并指定OAK为其推荐的AI学习套件。
为此,OpenCV官方在2020年举办的OpenCV Spatial AI竞赛(OpenCV成立20周年庆典的一部分)中的主要任务便是开发利用OpenCV AI套件(OAK-D)的应用程序。英特尔也大力赞助了这次竞赛。
在竞赛中,选手们为OAK贡献了很多开源的创新解决方案和代码,能够帮助初学者和相关研究人员快速上手和掌握人工智能相关的开发和研究。
▌DepthAI是什么?
DepthAI 是嵌入式空间 AI 平台, 由开源硬件、固件、软件生态系统组成, 提供完整并可立即使用的嵌入式 Spatial AI 和硬件加速的计算机视觉解决方案。
它为嵌入式系统提供了实时的信息:物体是什么以及它在物理空间中的位置。除了现成的 AI 模型,它也可以与自定义模型一起使用。
DepthAI是一个完整的自定义硬件平台。固件,软件和神经网络推理、深度视觉和物体跟踪结合在一起,30秒一键解决。对于需要在单个设备中实现AI、深度和跟踪功能的用户来说,这是目前非常优秀的一体化解决方案。它也是开源的,包括硬件,软件和AI推理。因此OAK的所有软硬件设计都可作为参考设计,将OAK的功能集成到用户自己的产品中,可以轻松快速地进行产品生产。
▌DepthAI与OAK
可以简单理解为OAK为设备名,DepthAI是OAK所使用的软件库的名字。
▌我们能用OAK做什么?
人脸识别,比如日常生活中的刷脸,DepthAI通过摄像头获取的人脸图像与人脸库中获取的图像,运行模型进行比对判断。
更多实际应用可以关注B站账号:OAK中国
以上仅仅只是使用OAK实现的几个示例,这三个示例提供完整的源代码,开箱即用,但OAK的能力并不仅限于此,利用OAK的实时AI和空间感知能力,它可以帮助机器人完成很多事情,甚至人类能做但不想做的事情。例如:
- DepthAI的实时性和完全在设备上的特性使它适合用于检测危险的发生。想象一下工地上工人戴着智能头盔,当叉车要驶过工人时会警告工人。又或是这是一辆智能叉车,它可以分辨出什么物体,它在哪里,并防止操作员在有人的地方行驶或是撞到关键设备。深度+AI的结合使这种系统可以在人员,设备等周围建立实时的“虚拟墙”。
- 无人机的感知与回避,在GPS无响应的情况下进行自我导航识别周围环境,寻找合适的地点迫降。
- DepthAI可以告诉机器人采摘者草莓的成熟度,这样机器人就只会采摘成熟度高的草莓了,而不会采摘成熟度低的草莓。并且可以在采摘/包装过程中按成熟度进行排序。
以上仅仅只是我们简单的设想,事实上大部分需要AI、深度信息的应用都可以使用OAK来完成。
▌OAK的优势在哪里?
除非购买高级的双目相机,否则主机需要运行立体匹配算法,这将会占用大量的CPU资源。在使用AI加速设备时主机必须对推理过程进行调度,它必须通过USB设备将摄像头、CPU之间的数据发送到神经推理设备(例如NCS)。因此,CPU使用率变高,并且传输过程非常低效……因此运行的非常缓慢。你可以在下面看到在带有NCS2的Raspberry Pi上只运行AI的情况,最大速度为8FPS(主机CPU已满),而DepthAI在AI,深度和编码方面可以达到25FPS以上(完全不使用主机CPU)。
在OAK中,这不是问题。OAK固件可以执行所有操作:深度,对象检测,将对象重新投影到以米为单位的x,y,z位置(以及其他一些功能,例如h.264 / h.265编码,对象跟踪等)。所有这些都直接在 OAK 上的图像传感器中进行,而没有对主机造成负担。因此,不需要占用主机资源,你可以获得目标的XYZ位置,1080p或4K视频编码的视频流。
OAK能够与很多东西兼容。这是由OAK生态系统的开源特性决定的,用户可以简单地使用OAK的 API。因此,任何运行OpenCV的主机都可以与OAK一起使用,包括Linux(Ubuntu,Raspbian等),Mac和Windows。
通过SPI接口,串口,任何微控制器都可以和OAK一起使用。
通过网络通讯和供电驱动的POE版本的OAK,所有的OAK版本都是开源的。
如果对测量距离有要求。还有分体式,可以自己安装调节相机基线的版本。当然这一切都是可以根据需求订制或者自己开发的。