动手写一个Sloth插件:人脸检测预标注插件实战,效率翻倍

📅 2026/8/27 16:54:13
动手写一个Sloth插件:人脸检测预标注插件实战,效率翻倍
动手写一个Sloth插件人脸检测预标注插件实战效率翻倍【免费下载链接】slothSloth is a tool for labeling image and video data for computer vision research.项目地址: https://gitcode.com/gh_mirrors/slot/slothSlothsloth是一款开源的图像和视频标注工具专为计算机视觉研究设计。今天带你动手写一个Sloth插件——人脸检测预标注插件用算法自动画出人脸边框人工只需微调标注效率直接翻倍。别被写插件吓到Sloth 的插件接口只有两个要点十几行代码就能跑起来。 Sloth插件接口先懂两个概念写插件前先理解 Sloth 的两个核心概念详见 doc/concepts.rstLabel标签就是一组键值对比如{class: rect, x: 10, y: 20, width: 30, height: 30}。插件要做的就是往标签里批量塞入检测结果。LabelTool主工具对象它是整个工具的核心插件通过它能拿到标注模型所有图片和标签、图片像素数据和主窗口。插件的加载逻辑在 sloth/core/labeltool.py 的loadPlugins()方法中Sloth 启动 GUI 后会依次实例化配置中声明的插件并调用p.action()拿到一个QAction挂到工具栏上。也就是说一个 Sloth 插件只需要做到构造函数接收labeltool对象提供action()方法返回一个 Qt 动作按钮。就这么多✍️ 三步写出人脸检测预标注插件官方仓库里就内置了一个完整示例sloth/plugins/facedetector.py。我们拆开看整个插件分两部分第1步插件类注册工具栏按钮class FaceDetectorPlugin(QObject): def __init__(self, labeltool): self._labeltool labeltool self._sc QAction(Detect faces, labeltool.mainWindow()) self._sc.triggered.connect(self.doit) # 点击按钮 - 执行检测 def action(self): return self._sc # 交给 Sloth 挂到工具栏第2步Worker 子线程逐图检测并写入标注检测是耗时操作必须丢进QThread子线程界面才不会卡死class Worker(QThread): valueChanged pyqtSignal(int) def run(self): for i, item in enumerate(self.model.iterator(ImageModelItem)): img self.labeltool.getImage(item) for face in self.det.detectFaces(img): item.addAnnotation({ class: face, x: face.box.x, y: face.box.y, width: face.box.width, height: face.box.height, }) self.valueChanged.emit(i 1) # 驱动进度条三个关键点耗时操作一定放子线程通过信号更新进度条并支持中途取消结果写回模型调用item.addAnnotation(...)一个矩形标签就诞生了标签的class值要和你配置里的标签类对应Sloth 默认配置中就内置了 Face 类快捷键f见 sloth/conf/default_config.py。第3步注册插件一键启动检测在自定义配置文件中把它写进PLUGINS即可PLUGINS (myplugins.face_detector.FaceDetectorPlugin,)启动后工具栏会多出一个Detect faces按钮点击它进度条走完所有图片上的人脸边框就自动画好了人工只需逐个核对微调。 为什么预标注能让效率翻倍手工标注插件预标注每张图逐个拖出边框边框自动生成人工只核对微调大数量图片集耗时以天计批量处理耗时以分钟计越标越累质量波动注意力集中在判断而非画图插件的价值远不止人脸检测——同样的套路可以套用到任意自动检测/识别算法上车牌检测、目标检测、语义分割预填充……只要把算法结果转成 Sloth 的标签格式写回模型即可。 关键文件速查插件示例源码sloth/plugins/facedetector.py插件加载逻辑sloth/core/labeltool.pyloadPlugins()方法默认配置LABELS / PLUGINSsloth/conf/default_config.py配置项详解doc/configuration.rst标注数据概念doc/concepts.rst示例图片数据examples/test.jpg动手试试吧复制facedetector.py把检测器换成你自己的模型如 MTCNN、YOLO 等几十行代码就能给你的标注流程装上加速器。【免费下载链接】slothSloth is a tool for labeling image and video data for computer vision research.项目地址: https://gitcode.com/gh_mirrors/slot/sloth创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考