/automatic_label_web

人工智能作为新兴产业,无论是商业还是研究阶段,在算力、算法和技术方面基本达到阶段性成熟。该产业的发展需要使用大量经过标注处理的相关数据做算法训练的支撑,特别是在高校等以学术研究为主的组织、机构,在探索一个领域时没有合适的数据集会造成研究的滞后,因此本项目旨在利用VOC、COCO等现有的数据集训练出来的模型,来初步标注新的数据集,以此减少数据集上的标注成本与时间。

Primary LanguagePython

Automatic Label Online 在线自动标注

人工智能作为新兴产业,无论是商业还是研究阶段,在算力、算法和技术方面基本达到阶段性成熟。该产业的发展需要使用大量经过标注处理的相关数据做算法训练的支撑,特别是在高校等以学术研究为主的组织、机构,在探索一个领域时没有合适的数据集会造成研究的滞后,因此本项目旨在利用VOC、COCO等现有的数据集训练出来的模型,来初步标注新的数据集,以此减少数据集上的标注成本与时间。

推荐运行环境

硬件

  • CPU:至少双路 Intel Xeon E5-2630V3
  • RAM:至少32GB DDR4 ECC RDIMM
  • SSD:至少保留120GB空间
  • 网卡:至少双10G Ethernet网卡

软件

  • 系统:Ubuntu 20.04 LTS
  • 语言及版本:Python 3.8
  • 数据库版本:MySQL 8.0.23
  • 界面版本:PySimpleGUI 4.60.4
  • 图像识别版本:YoloV5 Version7
  • 框架版本:Flask 2.2.3
  • 对象关系映射器Flask-SQLAlchemy 3.0.3

客户端使用流程

本系统的总体流程如下:

  1. 用户打开客户端软件,软件重置保存在本地的账号信息;
  2. 先弹出登录框,用户输入账号和密码,向后端请求验证;
  3. 验证通过则跳转出控制台,验证未通过跳出提示框;
  4. 进入控制台界面,验证本地是否有账号信息,有则允许操作,无则结束程序;
  5. 允许操作控制台后,程序自动向后台请求可用模型以及用户积分信息,并显示;
  6. 用户在工具栏的下拉列表选择要使用的模型;
  7. 用户按下Browse按键,软件打开文件管理器,用户需要选择路径;
  8. 用户按下检索按键,软件检索在该目录下的全部文件;
  9. 用户按下开始按键之后,软件检测模型、路径信息是否被选择;
  10. 若信息都存在,启动多线程,向服务器发送图像开始识别;
  11. 若信息有缺失,则不启动识别程序;
  12. 服务器端接收图像与用户信息,并检索用户积分是否足够,若足够则按照用户选择的模型检索,若不够则停止识别;
  13. 客户端接收识别信息,并按编号写入对应的Label文件;
  14. 用户关闭客户端时,重置在本地的用户信息。

设计模块

  • 用户管理模块:包括新用户的注册、用户登录验证、修改、删除等功能;
  • 权重选择模块:包括模型类别获取功能;
  • 积分管理模块:包括积分修改、重置功能;
  • 图像识别模块:识别由客户端上传的图像并返回对应结果;
  • 客户端:用户操作界面,包括文件选择、权重选择、训练起始与终止、结果保存等功能

其他

项目算个半成品,但是基础功能都能使用,实际运行的效率不高,仅供研究学习使用,欢迎进群聊天(不负责实际部署),也欢迎继续各位大佬继续完善此项目。

其它问题欢迎进企鹅群交流:913211989 ( 小猫不要摸鱼 )

进群令牌:fGitALO

参考文献

[1] Da Kuang.YoloV5 Version7 Detect API for Python3[EB/OL]. https://github.com/Ender-William/ YoloDetectAPI, 2023-02-17/ {2023-03-01}.

[2] Ultralytics YoloV5(2022-11-22)[2023-02-06] https://github.com/ultralytics/yolov5/releases/tag/v7.0

[3] Flask Web开发 : 基于Python的Web应用开发实战(第2版)

[4] 高性能MySQL(第4版)