运行opencv_annotation报(-204:Requested object was not found)错误咨询
故障排查解决
报错核心是OpenCV的目录遍历函数找不到你指定的/pos目录,按以下顺序排查即可:
- 路径匹配校验:你命令中
--images=/pos/使用的是根目录下的绝对路径,如果你实际的pos目录存放在当前执行命令的工作目录下,而非根目录,直接将参数改为相对路径即可:
如果pos目录在其他位置,填写完整的绝对路径即可,比如./opencv_annotation --images=./pos/ --annotations=./pos/annotations.txt--images=/home/harry/haardev/pos/。 - 目录存在性验证:执行命令
ls -ld /pos,如果返回No such file or directory说明根目录下确实不存在该目录,找到你实际存放pos目录的路径替换命令中的参数即可。 - 权限与挂载校验:如果确认
/pos目录真实存在,执行以下操作排查:- 执行
mount | grep /pos确认目录所在分区没有被设置为只读挂载 - 执行
stat /pos确认目录权限开放了读和执行权限(目录需要执行权限才能遍历内容,你之前设置的4777添加了suid位,对目录无意义还存在安全风险,建议执行chmod 755 /pos修改为正常权限) - 如果
/pos是软链接,执行readlink -f /pos确认链接指向的目标路径真实可访问。
- 执行
opencv_annotation工具作用与重要性
- 核心作用:是OpenCV官方提供的正样本可视化标注工具,专门用于Haar、LBP级联分类器训练的前期数据准备工作。你可以通过它打开指定目录下的所有图片,用鼠标框选需要识别的目标对象,工具会自动将目标的所属图片路径、坐标、尺寸等信息写入指定的标注文件,无需手动编辑标注内容,大幅降低标注出错概率。
- 重要性:
- 是OpenCV原生训练工具链的必备上游组件,输出的标注格式可以直接被
opencv_createsamples、opencv_traincascade两个官方训练工具识别,不需要额外做格式转换。 - 轻量化无额外依赖,对于轻量级自定义目标检测分类器的训练需求,不需要安装复杂的第三方标注工具,即可快速完成标注流程。
- 和OpenCV版本强绑定,不存在第三方标注工具和OpenCV训练接口的兼容性问题,开源免费可二次开发。
- 是OpenCV原生训练工具链的必备上游组件,输出的标注格式可以直接被
内容的提问来源于stack exchange,提问作者Harry Hobson
相关产品推荐
相关产品推荐

