# easylabel **Repository Path**: longsanduan/easylabel ## Basic Information - **Project Name**: easylabel - **Description**: yolo图片标注工具,支持按项目管理,快速打标,样本图片扩展,AI自动识别, 模型自动识别,支持导入imglabel生成的格式 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-02-05 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # easylabel - 图像标注工具 ## 软件介绍 easylabel是一款功能强大的开源图像标注工具,采用Python+Flask开发,跨平台支持Windows/Linux/Mac。 ### 核心功能 - **项目化管理**:支持多项目管理,每个项目独立维护数据集、标签和配置 - **多种标注类型**:支持矩形、多边形等多种标注类型 - **数据集导入**:支持图片文件夹、视频文件、LabelMe格式数据集导入 - **多格式标签导入**:支持labelImg格式(classes.txt)和LabelMe格式(classes.json)标签文件导入 - **图片扩展功能**:支持图片旋转、色彩调整和分辨率变换,快速生成数据增强样本 - **模型执行功能**:集成YOLO模型推理,支持对图片、视频和项目批量执行目标检测 - **图片尺寸控制**:支持上传时自动调整图片尺寸(原图/1024x1024/640x640/240x240) - **项目合并功能**:支持多个项目合并,自动处理标签冲突和ID映射 - **RTSP流处理**:支持网络摄像头标注 - **AI自动标注**:支持大模型对图片和视频进行自动标注 - **YOLO模型管理**:支持YOLO模型安装、卸载和预训练模型下载 - **数据集导出**:支持导出YOLO格式数据集,可自定义训练/验证/测试比例 - **文件管理系统**:内置文件浏览、上传、下载等操作 - **简洁直观的UI**:易于使用的用户界面 ### 技术特点 - 可通过源码运行或直接运行打包后的exe文件 - 支持命令行参数配置 - 标注数据安全存储 - 完善的目录自动创建机制 - 项目化管理,数据隔离,支持多项目并行工作 - **PyTorch 2.6+ 兼容性**:自动处理PyTorch 2.6+的weights_only模式 - **YOLOv26 支持**:支持最新的YOLOv26模型架构 ## 快速开始 ### 1. 安装依赖 ```bash # 创建虚拟环境 python -m venv venv # 激活虚拟环境 # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate # 安装依赖 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ### 2. 启动服务 ```bash python app.py --host 0.0.0.0 --port 9924 ``` ### 3. 访问服务 在浏览器输入 `http://127.0.0.1:9924` 即可开始使用 ## 项目结构 ``` easylabel/ ├── app.py # 主应用文件 ├── AiUtils.py # AI自动标注工具类 ├── ProjectManager.py # 项目管理模块 ├── ImageAugmentor.py # 图片扩展模块 ├── ModelExecutor.py # 模型执行模块 ├── requirements.txt # 依赖列表 ├── LICENSE # 授权协议 ├── README.md # 项目说明文档 ├── projects/ # 项目根目录(运行时自动创建) │ ├── projects.txt # 项目配置文件 │ └── project_xxx/ # 项目目录 │ ├── images/ # 图片目录 │ ├── labels/ # YOLO格式标注目录 │ ├── annotations/ # LabelMe格式标注目录 │ └── config.json # 项目配置 ├── run/ # 模型执行目录(运行时自动创建) │ ├── models/ # 模型文件目录 │ └── result/ # 执行结果目录 ├── static/ # 静态资源 │ ├── script.js # 前端脚本 │ ├── style.css # 样式文件 │ ├── fonts/ # 字体文件 │ └── images/ # 图片资源 ├── templates/ # HTML模板 │ ├── index.html # 主页面 │ ├── ai_config.html # AI配置页面 │ └── file_manager.html # 文件管理页面 └── uploads/ # 上传文件目录(运行时自动创建) ``` ## 使用说明 ### 标注流程 1. **添加数据集**:点击右上角"添加数据集"按钮,选择要标注的图片、视频或LabelMe数据集 2. **创建标签**:在右侧标签管理中添加需要的标签,设置颜色 3. **开始标注**: - **手动标注**:选择左侧图片列表中的图片,使用左侧工具进行标注 - **AI自动标注**:点击导航栏"AI"按钮,配置API参数后开始自动标注 4. **导出数据集**:标注完成后,点击右上角"导出数据集"按钮 ### AI标注使用 1. 点击导航栏中的"AI"按钮打开AI标注弹框 2. 配置API参数(推理工具、模型、API地址等) 3. 输入提示词 4. 选择标签 5. 确保左侧至少选中一个图片文件 6. 点击"开始执行" 7. 查看标注进度和结果 ### 模型执行 1. 将YOLO模型文件(.pt)放入 `run/models/` 目录 2. 在模型执行页面选择模型文件 3. 选择要检测的项目或图片 4. 点击执行 5. 查看检测结果 ### 快捷键 - **Ctrl+S**:保存标注 - **Ctrl+Shift+D**:清除标注 ## 打包说明 ### 方式一:简单打包(不推荐) ```bash pyinstaller -F app.py ``` 打包后需要手动复制静态资源到dist目录。 ### 方式二:完整打包(推荐) ```bash pyinstaller app.spec ``` 打包后的程序包含所有静态资源,可直接运行 `dist/easylabel.exe`。 ## YOLOv26 模型支持 ### 问题说明 如果你使用YOLOv26训练的模型,可能会遇到以下错误: ``` WARNING - 部分 ultralytics 模块导入失败: cannot import name 'C3k2' from 'ultralytics.nn.modules.block' ``` 这是因为YOLOv26引入了新的网络架构模块(如C3k2),需要升级ultralytics库。 ### 解决方案 #### 方法1:使用一键修复脚本 **Windows:** ```cmd fix_yolov26_support.bat ``` **Linux/Mac:** ```bash chmod +x fix_yolov26_support.sh ./fix_yolov26_support.sh ``` #### 方法2:手动升级 ```bash # 升级ultralytics pip install --upgrade ultralytics # 如果还不支持,安装开发版本 pip install git+https://github.com/ultralytics/ultralytics.git # 重启应用 python app.py --host 0.0.0.0 --port 9924 ``` ### 验证修复 重启应用后,查看日志应该显示: ``` INFO - 成功导入 block.C3k2 INFO - 总共成功导入 XX 个安全类 INFO - 成功加载模型: xxx.pt ``` ## PyTorch 2.6+ 兼容性 本项目已经完全兼容PyTorch 2.6+版本。代码会自动: 1. 设置环境变量 `TORCH_FORCE_WEIGHTS_ONLY_LOAD=0` 2. 逐个导入ultralytics模块,避免因某个类不存在而全部失败 3. 添加详细的日志输出,帮助追踪问题 如果遇到模型加载问题,请查看终端日志获取详细信息。 ## 工具脚本 项目包含以下实用脚本: - `fix_yolov26_support.bat/sh` - YOLOv26支持一键修复脚本 - `upgrade_ultralytics.py` - Ultralytics升级脚本 - `download_yolo11_model.py` - YOLO11模型下载脚本 - `fix_annotations_ids.py` - 修复标注ID脚本 ## 技术栈 - **后端**:Flask, SocketIO - **前端**:HTML, CSS, JavaScript - **数据存储**:JSON文件 - **图像处理**:OpenCV, PIL - **深度学习**:PyTorch, Ultralytics YOLO ## 常见问题 ### Q: 如何确认ultralytics版本? ```bash python -c "import ultralytics; print(ultralytics.__version__)" ``` ### Q: 如何确认PyTorch版本? ```bash python -c "import torch; print(torch.__version__)" ``` ### Q: 模型加载失败怎么办? 1. 查看终端日志获取详细错误信息 2. 确认ultralytics版本是否支持你的模型 3. 尝试运行 `fix_yolov26_support.bat` 修复脚本 4. 重启应用 ### Q: 如何升级依赖? ```bash pip install --upgrade -r requirements.txt ``` ## 授权协议 - 本项目自有代码使用宽松的MIT协议,在保留版权信息的情况下可以自由应用于商用、非商业项目 - 本项目使用了一些第三方库,使用本项目时请遵循相应第三方库的授权协议 - 由于使用本项目而产生的商业纠纷或侵权行为一概与本项目及开发者无关,请自行承担法律风险