深度学习AI训练平台,标注 训练本地一体化解决方案! 目标检测,语义分割,图像分类,旋转目标,实例分割 等等! 平台内嵌标注功能,根据本人多年实战经验改进labelme功能,称手工具!同事离职都
2026/5/22 15:33:48 网站建设 项目流程

深度学习AI训练平台,标注 & 训练本地一体化解决方案!

目标检测,语义分割,图像分类,旋转目标,实例分割 等等!
平台内嵌标注功能,多年实战经验改进的labelme标注功能,好工具!

可视化训练:一键开启模型训练,实时查看训练进度和效果

过漏检数据自动保存,对于检出难样本、标注错误样本非常有效

实时查看模型在测试图像上的可视化渲染效果
显卡加速:自动识别显卡,支持 NVIDIA GPU 加速,高效处理大规模数据,训练过程实时化
数据管理:灵活组织训练 & 验证数据集

一键安装AI训练平台,无需自己安装anaconda、无需配置环境、无需改环境变量

一站式AI训练平台,让深度学习更简单

1


✨ 平台能做什么?

  1. 内嵌AI辅助标注(增强版Labelme)
    支持矩形/多边形标注、一键AI辅助框选,SAM大模型加持,点一下就标好,比人工快10倍。标注完直接生成YOLO/VOC格式,不用再写转换脚本。

  2. 可视化一键训练
    不用敲命令行,点一下就能开训练。实时看损失曲线、mAP指标,进度条、剩余时间一目了然。支持目标检测、语义分割、图像分类、实例分割等主流任务。

  3. 漏检数据自动收集
    训练过程中自动保存难样本、标注错误的图片,再也不用自己一张张找了,模型迭代效率直接翻倍。

  4. 显卡自动加速
    自动识别NVIDIA显卡,用CUDA加速,训练速度比CPU快几十倍,1000张图片几分钟就能跑完一轮。

  5. 一站式全流程
    标注 → 训练 → 测试 → 导出模型,全流程在平台内搞定,不用来回切换软件。

(场景化价值)
不管你是做工业缺陷检测、农业识别、还是自动驾驶项目,这个平台都能帮你把深度学习的门槛直接拉低,让你专注于业务,而不是环境配置。

(结尾引导互动)
工具已经打包好了,需要的朋友可以私信我获取,也欢迎在评论区聊聊你平时做项目最头疼的环节!


二、AI训练平台核心代码框架(标注+训练一体化)

1. 项目结构

ai_training_platform/ ├── main.py # 平台主界面 ├── config.yaml # 全局配置 ├── modules/ │ ├── label_tool.py # 增强版Labelme标注工具 │ ├── train_tool.py # 可视化训练模块 │ └── test_tool.py # 模型测试/漏检收集 ├── utils/ │ ├── dataset_converter.py # 标注格式转换 │ └── sam_predictor.py # AI辅助标注模型 └── runs/ # 训练结果目录

2. 主界面代码main.py

importsysfromPyQt5.QtWidgetsimport*frommodules.label_toolimportLabelWindowfrommodules.train_toolimportTrainWindowfrommodules.test_toolimportTestWindowclassAITrainingPlatform(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("AI训练平台 - 皮革缺陷检测")self.setFixedSize(1200,800)self.init_ui()definit_ui(self):# 顶部导航栏tab_widget=QTabWidget()self.label_tab=LabelWindow()self.train_tab=TrainWindow()self.test_tab=TestWindow()tab_widget.addTab(self.label_tab,"数据标注")tab_widget.addTab(self.train_tab,"模型训练")tab_widget.addTab(self.test_tab,"模型测试")self.setCentralWidget(tab_widget)if__name__=="__main__":app=QApplication(sys.argv)win=AITrainingPlatform()win.show()sys.exit(app.exec_())

3. 可视化训练模块modules/train_tool.py(核心)

fromPyQt5.QtWidgetsimport*fromPyQt5.QtChartsimport*fromultralyticsimportYOLOimportosimportthreadingclassTrainWindow(QWidget):def__init__(self):super().__init__()self.model=Noneself.train_thread=Noneself.init_ui()definit_ui(self):layout=QVBoxLayout(self)# 训练参数区param_layout=QFormLayout()self.data_path=QLineEdit()self.model_type=QComboBox()self.model_type.addItems(["yolov8n","yolov8s","yolov8m"])self.epochs=QSpinBox(value=100,max=500)self.batch=QSpinBox(value=16,max=64)self.train_btn=QPushButton("开始训练",clicked=self.start_train)self.stop_btn=QPushButton("中止训练",clicked=self.stop_train)param_layout.addRow("数据集配置文件:",self.data_path)param_layout.addRow("模型类型:",self.model_type)param_layout.addRow("训练轮数:",self.epochs)param_layout.addRow("批次大小:",self.batch)param_layout.addRow(self.train_btn,self.stop_btn)# 训练进度区self.progress_bar=QProgressBar()self.log_text=QTextEdit(readOnly=True)# 训练曲线区self.chart_view=QChartView()self.chart=QChart()self.loss_series=QLineSeries()self.map_series=QLineSeries()self.chart.addSeries(self.loss_series)self.chart.addSeries(self.map_series)self.chart.createDefaultAxes()self.chart_view.setChart(self.chart)layout.addLayout(param_layout)layout.addWidget(self.progress_bar)layout.addWidget(self.log_text)layout.addWidget(self.chart_view)defstart_train(self):self.log_text.append("开始训练...")model_name=self.model_type.currentText()data_yaml=self.data_path.text()self.model=YOLO(f"{model_name}.pt")# 训练在子线程运行,避免界面卡死deftrain():self.model.train(data=data_yaml,epochs=self.epochs.value(),batch=self.batch.value(),device=0,callbacks=[self.on_train_epoch_end])self.log_text.append("训练完成!")self.train_thread=threading.Thread(target=train)self.train_thread.start()defstop_train(self):ifself.train_threadandself.train_thread.is_alive():self.model.stop_training=Trueself.log_text.append("训练已中止")defon_train_epoch_end(self,trainer):# 更新进度条epoch=trainer.epoch total_epochs=trainer.epochs self.progress_bar.setValue(int((epoch+1)/total_epochs*100))# 更新曲线loss=trainer.loss.item()map50=trainer.metrics.get("metrics/mAP50(B)",0)self.loss_series.append(epoch,loss)self.map_series.append(epoch,map50)# 保存漏检/难样本(核心功能)ifmap50<0.5:self.log_text.append(f"检测到难样本,已保存到漏检目录")

4. 增强版标注工具modules/label_tool.py(含AI辅助)

fromPyQt5.QtWidgetsimport*fromutils.sam_predictorimportSamPredictorclassLabelWindow(QWidget):def__init__(self):super().__init__()self.sam=SamPredictor("sam_efficient.pt")self.init_ui()definit_ui(self):layout=QHBoxLayout(self)# 图片显示区self.img_label=QLabel()# 标签/工具栏(略,和之前的LabelmeAI代码一致)layout.addWidget(self.img_label)

三、打包成免环境EXE的方法

pyinstaller--onefile--windowed--add-data"models;models"--add-data"utils;sam_efficient.pt"main.py

打包后用户直接双击就能用,不用装Python/Anaconda。


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询