Roboflow部署Luxonis OAK代码报错KeyError: 'colors'求助
解决RoboflowOak初始化时的KeyError: 'colors'问题
问题情况
- OAK设备上所有官方演示程序运行正常
- 树莓派4环境(Python3.9 + RoboflowOak 0.0.8)中,运行Roboflow提供的OAK端侧目标检测代码时,触发以下错误:
Traceback (most recent call last):
File “home/pi/myvideo.py”, line 8, in
rf=RoboflowOak(model=“schwimmen-cp33a”, confidence=0.05, overlap=0.5,
File “/usr/local/lib/python3.9/dist-packages/roboflowak/init.py”, line 46, in init
self.colors=self.model_objects[“colors”]
KeyError: ‘colors’
解决方案建议
- 检查模型导出配置:登录Roboflow后台,重新导出适配Luxonis OAK的模型,确认导出时包含类别颜色配置。如果是自定义训练的模型,先在项目设置里为每个类别手动分配颜色,再重新导出模型文件。
- 临时修改RoboflowOak源码:找到路径
/usr/local/lib/python3.9/dist-packages/roboflowak/__init__.py,修改第46行左右的代码,添加容错逻辑:# 替换原有的self.colors赋值代码 self.colors = self.model_objects.get("colors", {}) # 也可以手动设置默认颜色,比如针对你的模型类别: # self.colors = self.model_objects.get("colors", {"你的类别1": "#ff0000", "你的类别2": "#00ff00"}) - 降级RoboflowOak版本:卸载当前版本后安装旧版(如0.0.7),执行以下命令:
pip uninstall roboflowoak -y pip install roboflowoak==0.0.7 - 验证模型参数正确性:确认初始化RoboflowOak时的
model参数与Roboflow平台上的模型名称完全一致,无拼写错误;若模型需要权限,检查是否已正确配置Roboflow API密钥。
内容的提问来源于stack exchange,提问作者Gerald
相关产品推荐
相关产品推荐

