得益于社区的反馈和支持,推出了roboflowoak pip包,这是目前通过容器方法部署到OAK的推荐替代方案。
如果之前使用过上传API或推理API,那么已经拥有一个RoboflowAPI密钥。如果没有,请前往工作空间设置中获取。需要这个密钥来使用包。
每个API密钥都与特定的工作空间相关联;请像对待密码一样保密,因为API密钥可以用来访问和修改工作空间中的数据。
安装RoboflowOAK Python pip包
在Python环境中的终端中输入以下命令来安装roboflowoak:
pip install roboflowoak
roboflowoak功能概述
通过Roboflow Python包,可以:
- 以编程方式访问有关工作空间、项目和版本的信息。
- 将本地图像上传到Roboflow网络项目。
- 对通过Web UI训练的模型执行推理。
- 可视化并保存对模型所做的预测。
使用模型进行推理的示例Python脚本
将以下脚本复制/粘贴到VSCode、XCode、PyCharm、Spyder(或另一个代码编辑器)中,并更新“rf”对象中的模型/项目名称、模型版本、api_key和device_name的值。
保存Python文件到一个目录中 - 请记下目录名称和文件名称,因为稍后需要这些信息来进行部署。
如果正在部署到没有深度功能的OAK设备,请在实例化(创建)rf对象时设置depth=False。带有深度功能的OAK设备在模型名称上有"D"附加,例如OAK-D和OAK-D-Lite。
from roboflowoak import RoboflowOak
import cv2
import time
import numpy as np
if __name__ == '__main__':
# 使用RoboflowOak模块实例化一个对象(rf)
rf = RoboflowOak(model="YOUR-MODEL-ID", confidence=0.05, overlap=0.5,
version="YOUR-MODEL-VERSION-#", api_key="YOUR-PRIVATE_API_KEY", rgb=True,
depth=True, device=None, device_name="CHOOSE-A-DEVICE-NAME", blocking=True)
# 运行模型并显示带有检测的视频输出
while True:
t0 = time.time()
# rf.detect()函数运行模型推理
result, frame, raw_frame, depth = rf.detect()
predictions = result["predictions"]
# {
# predictions:
# [ {
# x: (middle),
# y:(middle),
# width: ,
# height: ,
# depth: ###->,
# confidence: ,
# class: ,
# mask: { }
# }
# ]
# }
# frame - 经过预处理的帧,带有预测
# raw_frame - 来自OAK的原始帧
# depth - raw_frame的深度图,中心校正到中心相机
# 要访问"predictions"中的特定值,请使用:[p.json() for p[a] in predictions]
# 将"a"设置为尝试访问的索引值
# 示例:访问"y"值:[p.json() for p[1] in predictions]
# 计时:用于基准测试目的
t = time.time()-t0
print("FPS ", 1/t)
print("PREDICTIONS ", [p.json() for p in predictions])
# 设置深度计算的参数
max_depth = np.amax(depth)
cv2.imshow("depth", depth/max_depth)
# 显示视频流作为连续的帧
cv2.imshow("frame", frame)
# 如何关闭OAK推理窗口/停止推理:CTRL+q或CTRL+c
if cv2.waitKey(1) == ord('q'):
break
注意while循环中的最后几行,用于显示来自OAK设备的视频输出。frame变量引用了来自OAK设备的静态图像帧(经过预处理),带有预测的检测。视频流本质上是连续的图像帧。模型主机设备的处理能力越高,每秒的帧数(fps)就越高。
设置OpenVINO和DepthAI
请查看以获取方向。
运行推理:部署
输入以下代码(替换占位符文本为Python脚本的路径):
python3 [YOUR-PYTHON-FILE].py
使用终端将模型部署到OAK设备。
在Apple Macbook Air 13"(M1)上进行推理的平均推理速度大约为15毫秒,或0.015秒。
在OAK上运行的面部检测模型。
要关闭窗口(中断或结束推理),请在键盘上输入CTRL+c。
会注意到检测到的面部的置信度很低,尽管它显然是一张脸。通过实施主动学习来解决这个问题,以消除模型中的误检,并提高检测的置信度水平。