Skip to content

ErrorGz/ImageLabel

Repository files navigation

ImageLabel - 智能图像标注平台

ImageLabel 是一个功能强大的图像标注平台,专为计算机视觉和机器学习项目设计。支持多种标注格式,提供直观的用户界面和强大的项目管理功能。

🚀 主要功能

1. 图像标注工具 (ImageAnnotator)

  • 矩形框标注:支持拖拽绘制边界框
  • 关键点标注:精确标记关键特征点
  • 多边形标注:自由绘制复杂形状
  • 实时预览:标注结果即时显示
  • 快捷键支持:提高标注效率

2. 数据导入 (ImportTool)

  • 视频导入:支持视频文件上传和帧提取
  • YOLO数据集导入:批量导入YOLO格式的图片和标注文件
  • 智能文件匹配:自动匹配图片和对应的标注文件
  • 目录拖拽支持:支持整个文件夹的拖拽导入
  • 格式转换:自动转换YOLO格式为内部JSON格式

3. 数据导出 (ExportTool)

  • YOLO格式导出:导出为YOLO训练格式
  • 批量导出:支持选择性导出指定图片
  • ZIP打包下载:自动打包为ZIP文件
  • 标注状态显示:清晰显示已标注和未标注文件

4. 图片去重 (ImageDuplicateChecker)

  • 智能去重:基于图像内容的重复检测
  • 批量处理:支持大量图片的批量去重
  • 预览对比:直观显示重复图片对比
  • 安全删除:支持重复图片的安全删除

5. 标签管理 (ClassNameManager)

  • 类别管理:添加、编辑、删除标注类别
  • ID管理:自定义类别ID编号
  • 批量更新:自动更新所有相关标注文件
  • 拖拽排序:直观的类别排序功能

6. 关键点连线管理 (KeypointConnector)

  • 连线配置:定义关键点之间的连接关系
  • 预设模板:内置人体、面部、手部等关键点模板
  • 自定义类型:创建新的关键点类型
  • 可视化编辑:直观的连线编辑界面
  • 颜色和线宽:自定义连线样式

7. 工程管理 (ProjectManager)

  • 多工程支持:创建和管理多个标注工程
  • 图片库管理:独立的图片库系统
  • 标注库管理:独立的标注库系统
  • COCO数据集集成:从COCO数据集创建新工程
  • 工程合并:支持多个工程的合并操作

🛠️ 技术栈

前端

  • Vue 3 - 现代化的前端框架
  • Element Plus - 企业级UI组件库
  • Vite - 快速的构建工具
  • Axios - HTTP客户端
  • Vue Router - 前端路由管理

后端

  • Node.js - JavaScript运行时
  • Express.js - Web应用框架
  • Multer - 文件上传中间件
  • JWT - 身份认证
  • File System - 文件系统操作

📦 安装说明

环境要求

  • Node.js >= 16.0.0
  • npm >= 8.0.0

1. 克隆项目

git clone https://github.com/ErrorGz/ImageLabel.git
cd ImageLabel

2. 安装依赖

前端依赖

cd client
npm install

后端依赖

cd server
npm install

3. 环境配置

前端配置

client 目录下创建 .env 文件:

VITE_API_BASE_URL=http://localhost:5030

后端配置

server 目录下创建 .env 文件:

PORT=5030
JWT_SECRET=your_jwt_secret_key
USER_DATA_DIR=../user_data

4. 启动服务

开发模式

# 启动后端服务
cd server
npm run dev

# 启动前端服务(新终端)
cd client
npm run dev

生产模式

# 后端
cd server
npm start

# 前端
cd client
npm run build
npm run preview

🔧 配置说明

数据目录结构

user_data/
├── images/          # 图片库
├── labels/          # 标注库
├── classnames/      # 类别定义
├── exports/         # 导出文件
├── videos/          # 视频文件
├── keypoints/       # 关键点配置
└── projects_config.json  # 工程配置

支持的标注格式

  • 内部JSON格式:平台原生标注格式
  • YOLO格式:支持导入和导出
  • COCO格式:支持数据集导入(即将支持)

📱 使用指南

1. 创建工程

  1. 进入"工程管理"页面
  2. 点击"创建工程"按钮
  3. 填写工程名称、选择图片库和标注库
  4. 或使用"从COCO数据集创建"快速创建

2. 导入数据

  1. 进入"导入"页面
  2. 选择导入方式(视频或YOLO数据集)
  3. 拖拽文件或选择文件
  4. 系统自动处理文件匹配和格式转换

3. 开始标注

  1. 进入"标注工具"页面
  2. 选择要标注的图片
  3. 使用工具栏进行标注
  4. 保存标注结果

4. 导出数据

  1. 进入"导出"页面
  2. 选择导出格式(YOLO)
  3. 选择要导出的图片
  4. 点击导出并下载ZIP文件

🔒 安全特性

  • JWT认证:安全的用户身份验证
  • 文件隔离:不同工程的数据完全隔离
  • 权限控制:基于用户的访问控制
  • 数据备份:自动保存和版本管理

🚀 性能优化

  • 懒加载:图片按需加载
  • 缓存机制:智能缓存减少重复请求
  • 批量处理:支持大量文件的批量操作
  • 异步处理:非阻塞的文件处理

🤝 贡献指南

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

📞 支持与反馈

如果您在使用过程中遇到问题或有改进建议,请:

  • 提交 Issue
  • 创建 Pull Request
  • 联系项目维护者

🔮 未来计划

  • 支持更多标注格式(Pascal VOC、LabelMe等)
  • 添加AI辅助标注功能
  • 支持3D标注
  • 添加团队协作功能
  • 支持云端部署
  • 添加标注质量评估工具

ImageLabel - 让图像标注更简单、更高效!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors