树莓派运行多个OAK设备

树莓派运行多个OAK设备

在重工业装备不断发展的今天,安全问题已经成为了摆在第一位的问题。

我们将演示在树莓派上同时运行多个OAK-1-POE,每台OAK都会运行神经网络模型。通过这个小示例展现出OAK在重工业装备安全方面的强大作用。

应用场景

在许多情况下我们需要同时运行多个设备进行不同的神经网络推理或深度计算,例如:

可用置于叉车四周检测行人或是障碍物,防止碰撞。同时置于叉车驾驶员前方,检测驾驶员是否安全驾驶。

如果使用普通的设备,对于树莓派这类小型主机的负载压力非常大,甚至是运行不起来。而OAK则不同,它搭载了Intel Myriad X芯片,所有的神经网络推理、深度计算都在这款芯片中实现,从而摆脱主机性能限制。

并且OAK的种类繁多,可根据不同的需求自由组合使用。如下图所示:

硬件设备

  1. 四台OAK-1-POE
  2. 树莓派4
  3. 七寸显示屏
  4. POE交换机(支持DHCP服务器)

相关知识了解

  1. DepthAI 多设备支持目前是通过选择连接的 DepthAI 设备的设备 mx_id(序列号)来完成的。
  2. 需要POE交换机支持DHCP服务器,为树莓派和每台OAK分配一个IP地址。保证树莓派和所有OAK设备在同一个局域网内。
  3. 如果没有POE交换机,可以使用路由器。
  4. 如下图所示:就是一台支持DHCP服务器的POE交换机。和普通POE交换机最大的区别,就是不需要额外通过网线连接路由器了。

安装依赖

  1. depthai (>=2.7.0.0)
  2. opencv-python
python3 -m pip install depthai>=2.7.0.0 opencv-python

代码实现

获取所有设备

device_infos = dai.Device.getAllAvailableDevices()

查看设备IP地址

device_info.getMxId()

创建设备

device = dai.Device(openvino_version, device_info, usb2_mode)

为每台设备开启管道

device.startPipeline(pipeline)

余下的步骤和运行一台OAK设备一样,只不过要循环遍历所有设备。

效果演示

运行mobilenet模型

运行yolo4模型

多模型同时运行