---
title: SMT-Assembly-Line-AOI-Visual-Inspection-Dataset
canonical_url: "https://www.modelscope.cn/datasets/mobiwirefan/SMT-Assembly-Line-AOI-Visual-Inspection-Dataset"
md_url: "https://www.modelscope.cn/datasets/mobiwirefan/SMT-Assembly-Line-AOI-Visual-Inspection-Dataset.md"
repository: mobiwirefan/SMT-Assembly-Line-AOI-Visual-Inspection-Dataset
chinese_name: "SMT产线AOI视觉检测数据集"
last_updated: 2026-07-17
license: "Apache License 2.0"
storage_size: "3.1 MB"
downloads: 15826
stars: 2
---

# SMT-Assembly-Line-AOI-Visual-Inspection-Dataset

> SMT-Assembly-Line-AOI-Visual-Inspection-Dataset - mobiwirefan 在 ModelScope 开源的数据集。一、数据集概述:本数据集是由宁波麦博韦尔移动电话有限公司建设的高质量工业视觉检测数据集，面向SMT（表面贴装技术）产线AOI（自动光学检测）场景，旨在为电子制造行业的AI质检模型训练、算法验证和产线智能化升级提供高质量数据支撑。数据集名称为“SMT产线AOI视觉检测数据集”，数据模态为图像数据，总规模达32.195TB，涵盖公司20条SMT生产线全流程…

mobiwirefan/SMT-Assembly-Line-AOI-Visual-Inspection-Dataset 是 ModelScope 魔搭社区上的数据集，存储大小 3.1 MB，采用 Apache License 2.0 许可。

- **Repository**: mobiwirefan/SMT-Assembly-Line-AOI-Visual-Inspection-Dataset
- **License**: Apache License 2.0
- **Storage size**: 3.1 MB
- **Downloads**: 15826
- **Stars**: 2
- **Last updated**: 2026-07-17

Source: https://www.modelscope.cn/datasets/mobiwirefan/SMT-Assembly-Line-AOI-Visual-Inspection-Dataset

---

数据集文件元信息以及数据文件，请浏览“数据集文件”页面获取。

# Mobile_PCB_Defect — SMT 产线 AOI/SPI 视觉检测高质量数据集

> **数据集唯一标识（Dataset ID）**：Mobile_PCB_Defect  
> **版本（Version）**：v1.0.0  
> **许可协议（License）**：Apache License 2.0  
> **发布平台（Platform）**：ModelScope（魔搭社区）  
> **数据规模（Total Size）**：约 1,700,000 张图像 / 32.2 TB  
> **建设单位（Organization）**：宁波麦博韦尔移动电话有限公司  
> **建设周期（Construction Period）**：2025 年 1 月 — 2026 年 6 月 ( 历史数据集存量2023 年 1 月 — 2024 年 12 月 )   

---

## 目录

- [1. 数据集概述](#1-数据集概述)
  - [1.1 项目背景](#11-项目背景)
  - [1.2 建设目标](#12-建设目标)
  - [1.3 数据集价值](#13-数据集价值)
  - [1.4 核心指标](#14-核心指标)
- [2. 数据采集环境](#2-数据采集环境)
  - [2.1 产线概况](#21-产线概况)
  - [2.2 检测设备](#22-检测设备)
  - [2.3 采集架构](#23-采集架构)
  - [2.4 采集频率与时间范围](#24-采集频率与时间范围)
- [3. 数据集组成](#3-数据集组成)
  - [3.1 子数据集总览](#31-子数据集总览)
  - [3.2 SPI 锡膏印刷检测数据集](#32-spi-锡膏印刷检测数据集)
  - [3.3 炉前 AOI 贴片检测数据集](#33-炉前-aoi-贴片检测数据集)
  - [3.4 炉后 AOI 焊接检测数据集](#34-炉后-aoi-焊接检测数据集)
  - [3.5 六面体外观检测数据集](#35-六面体外观检测数据集)
  - [3.6 视觉定位抓取数据集](#36-视觉定位抓取数据集)
  - [3.7 SMT 产线综合高质量数据集（汇总）](#37-smt-产线综合高质量数据集汇总)
- [4. 目录结构](#4-目录结构)
  - [4.1 顶层目录](#41-顶层目录)
  - [4.2 整图数据目录](#42-整图数据目录)
  - [4.3 元件图数据目录](#43-元件图数据目录)
  - [4.4 标注数据目录](#44-标注数据目录)
  - [4.5 结构化数据目录](#45-结构化数据目录)
- [5. 文件命名规范](#5-文件命名规范)
  - [5.1 整图文件命名](#51-整图文件命名)
  - [5.2 元件图文件命名](#52-元件图文件命名)
  - [5.3 标注文件命名](#53-标注文件命名)
  - [5.4 命名规则总结](#54-命名规则总结)
- [6. 图像规格说明](#6-图像规格说明)
  - [6.1 整图（全板扫描图像）](#61-整图全板扫描图像)
  - [6.2 元件图（局部裁切图像）](#62-元件图局部裁切图像)
  - [6.3 图像格式与编码](#63-图像格式与编码)
  - [6.4 图像质量标准](#64-图像质量标准)
- [7. 标注规范](#7-标注规范)
  - [7.1 标注类型](#71-标注类型)
  - [7.2 标注格式](#72-标注格式)
  - [7.3 COCO 格式标注文件](#73-coco-格式标注文件)
  - [7.4 Pascal VOC 格式标注文件](#74-pascal-voc-格式标注文件)
  - [7.5 自定义 JSON 标注格式](#75-自定义-json-标注格式)
  - [7.6 标注字段说明](#76-标注字段说明)
  - [7.7 标注质量管控](#77-标注质量管控)
- [8. 缺陷分类体系](#8-缺陷分类体系)
  - [8.1 SPI 锡膏印刷缺陷（6 类）](#81-spi-锡膏印刷缺陷6-类)
  - [8.2 炉前 AOI 贴片缺陷（≥20 类）](#82-炉前-aoi-贴片缺陷20-类)
  - [8.3 炉后 AOI 焊接缺陷（≥15 类）](#83-炉后-aoi-焊接缺陷15-类)
  - [8.4 六面体外观缺陷（≥10 类）](#84-六面体外观缺陷10-类)
  - [8.5 缺陷分类编码规则](#85-缺陷分类编码规则)
- [9. 数据处理流程](#9-数据处理流程)
  - [9.1 数据采集](#91-数据采集)
  - [9.2 数据清洗](#92-数据清洗)
  - [9.3 数据标注](#93-数据标注)
  - [9.4 数据质检](#94-数据质检)
  - [9.5 数据交付](#95-数据交付)
- [10. 数据质量保障](#10-数据质量保障)
  - [10.1 质量指标体系](#101-质量指标体系)
  - [10.2 清洗质量标准](#102-清洗质量标准)
  - [10.3 标注质量标准](#103-标注质量标准)
  - [10.4 质量审核流程](#104-质量审核流程)
- [11. 数据统计信息](#11-数据统计信息)
  - [11.1 总体统计](#111-总体统计)
  - [11.2 各子数据集统计](#112-各子数据集统计)
  - [11.3 正负样本分布](#113-正负样本分布)
  - [11.4 时间分布](#114-时间分布)
  - [11.5 缺陷类型分布](#115-缺陷类型分布)
- [12. 数据加载与使用](#12-数据加载与使用)
  - [12.1 环境依赖](#121-环境依赖)
  - [12.2 通过 ModelScope SDK 加载](#122-通过-modelscope-sdk-加载)
  - [12.3 通过 Git Clone 加载](#123-通过-git-clone-加载)
  - [12.4 本地加载示例（Python）](#124-本地加载示例python)
  - [12.5 PyTorch DataLoader 示例](#125-pytorch-dataloader-示例)
  - [12.6 TensorFlow tf.data 示例](#126-tensorflow-tfdata-示例)
- [13. 应用场景与模型效果](#13-应用场景与模型效果)
  - [13.1 iADC 智能复判系统](#131-iadc-智能复判系统)
  - [13.2 缺陷检测模型](#132-缺陷检测模型)
  - [13.3 视觉定位模型](#133-视觉定位模型)
  - [13.4 应用效果](#134-应用效果)
- [14. 知识产权与许可](#14-知识产权与许可)
  - [14.1 数据集所有权](#141-数据集所有权)
  - [14.2 开源许可](#142-开源许可)
  - [14.3 使用限制](#143-使用限制)
  - [14.4 引用规范](#144-引用规范)
- [15. 版本历史](#15-版本历史)
- [16. 常见问题（FAQ）](#16-常见问题faq)
- [17. 联系方式](#17-联系方式)
- [附录 A：设备型号清单](#附录-a设备型号清单)
- [附录 B：缺陷类型完整编码表](#附录-b缺陷类型完整编码表)
- [附录 C：数据集字段结构定义](#附录-c数据集字段结构定义)
- [附录 D：变更日志](#附录-d变更日志)

---

## 1. 数据集概述

### 1.1 项目背景

随着移动通信终端产品向高密度、小型化、多功能方向快速发展，SMT（Surface Mount Technology，表面贴装技术）产线对焊接与贴片质量检测的精度和效率提出了更高要求。传统人工目检（Manual Visual Inspection, MVI）受限于检测人员经验、疲劳程度和主观判断差异，难以满足大批量、高质量的生产检测需求。AOI（Automated Optical Inspection，自动光学检测）设备和 SPI（Solder Paste Inspection，锡膏检测）设备虽然已广泛部署于 SMT 产线，但现有设备自带算法的误判率较高（通常在 5%~15%），大量 NG（No Good，不合格）报警需要人工复判，导致产线人力成本居高不下。

为解决上述问题，宁波麦博韦尔移动电话有限公司依托 20 条 SMT 产线的实际生产环境，系统性地采集、清洗、标注了覆盖 SMT 全流程的视觉检测数据，构建了本数据集——**Mobile_PCB_Defect**。该数据集旨在为基于深度学习的工业缺陷检测模型提供高质量训练数据，推动 AI 技术在电子制造领域的落地应用。

### 1.2 建设目标

本数据集的建设目标包括：

1. **覆盖 SMT 全流程**：涵盖 SPI 锡膏印刷、炉前 AOI 贴片、炉后 AOI 焊接、六面体外观检测、视觉定位抓取五大工位，形成完整的产线检测数据闭环。
2. **高质量标注**：所有图像均经过"AOI 设备自动预标注 + 质检工程师人工复核"双重流程，标注准确率 ≥ 99%，Kappa 一致性系数 ≥ 0.85。
3. **正负样本均衡**：每个子数据集的 NG（缺陷品）样本占比 ≥ 10%，确保模型能够有效学习缺陷特征。
4. **多任务支持**：标注格式同时支持图像分类（Image Classification）、目标检测（Object Detection）、实例分割（Instance Segmentation）和视觉定位（Visual Localization）等多种计算机视觉任务。
5. **开放共享**：数据集已上传 ModelScope 平台，采用 Apache License 2.0 开源许可，供学术界和工业界研究使用。

### 1.3 数据集价值

本数据集的核心价值体现在：

| 维度 | 价值描述 |
|------|----------|
| **规模** | 约 170 万张标注图像，总数据量约 32 TB，是目前国内 SMT 领域规模最大的公开缺陷检测数据集之一 |
| **多样性** | 覆盖 ≥ 50 种缺陷类型，涵盖 0201/0402/0603/SOT/QFP/BGA/QFN 等多种封装形式 |
| **真实性** | 全部数据来自实际产线真实生产环境，非合成数据，具有极高的工业应用价值 |
| **标准性** | 统一的标注格式（COCO + Pascal VOC + 自定义 JSON），兼容主流深度学习框架 |
| **闭环性** | 覆盖从原始采集到最终交付的完整数据处理链路，可追溯、可复现 |

### 1.4 核心指标

| 指标名称 | 指标值 | 说明 |
|----------|--------|------|
| 总样本量 | ~1,700,000 张 | 经过清洗、标注、质检全流程的有效图像 |
| 总数据规模 | ~3,296.8 GB（约 32 TB） | 包含图像文件和标注文件 |
| OK 样本量 | ~1,530,000 张 | 合格品图像（正样本） |
| NG 样本量 | ~170,000 张 | 缺陷品图像（负样本），占比 ≥ 10% |
| 缺陷类型数 | ≥ 50 类 | 覆盖 SMT 全流程各类缺陷 |
| 标注准确率 | ≥ 99% | 人工复核后抽检验证 |
| Kappa 一致性系数 | ≥ 0.85 | 标注人员间一致性 |
| 有效数据占比 | ≥ 98% | 清洗后保留的高质量数据比例 |
| 支持算法数 | ≥ 10 种 | 包括分类、检测、分割、定位等 |
| 建设总投资 | 1,269.6 万元 | 硬件投资 89.4% + 软件投资 10.6% |
| 数据采集时间 | 2023.01 — 2026.06 | 跨越 3 年 6 个月 |
| 产线数量 | 20 条 SMT 产线 | 全部参与数据采集 |

---

## 2. 数据采集环境

### 2.1 产线概况

宁波麦博韦尔移动电话有限公司拥有 20 条 SMT 全自动贴片产线，涵盖从锡膏印刷、贴片、回流焊到光学检测、外观检测和包装的完整工艺流程。各产线均配备自动化检测设备，可实现 100% 在线全检。

**产线布局概览：**

```
┌─────────────────────────────────────────────────────────────────────┐
│                     SMT 产线工艺流程                                │
├──────────┬──────────┬──────────┬──────────┬──────────┬──────────────┤
│  锡膏印刷  │   SPI    │   贴片   │  炉前AOI  │  回流焊  │   炉后AOI   │
│  Solder   │  Solder  │  Mount   │   Pre    │  Reflow  │   Post      │
│  Printing │  Paste   │          │   AOI    │   Oven   │   AOI       │
│          │  Insp.   │          │          │          │             │
├──────────┼──────────┼──────────┼──────────┼──────────┼──────────────┤
│   /SMT/   │ /SMT_    │ /SMT/    │ /SMT_    │ /SMT/    │ /SMT_AOI_   │
│  PRINT/   │  SPI_    │  MOUNT/  │  AOI_    │  REFLOW/ │  POST_      │
│          │  RAW/    │          │  PRE_    │          │  RAW/       │
│          │          │          │  RAW/    │          │             │
└──────────┴──────────┴──────────┴──────────┴──────────┴──────────────┘
                              ↓
                    ┌─────────────────┐
                    │  六面体外观检测 │
                    │  Visual-6Sides  │
                    │  /SMT_VISUAL/   │
                    └─────────────────┘
                              ↓
                    ┌─────────────────┐
                    │  视觉定位抓取   │
                    │  Vision-Grasp   │
                    │  /SMT_GRASP/    │
                    └─────────────────┘
                              ↓
                    ┌─────────────────┐
                    │    成品包装     │
                    └─────────────────┘
```

### 2.2 检测设备

本数据集的数据来源于以下检测设备：

| 序号 | 设备名称 | 工位 | 型号/品牌 | 采集内容 |
|------|----------|------|-----------|----------|
| 1 | 锡膏检测仪（SPI） | 锡膏印刷后 | KOHYOUNG KY-8030-3 等 | 锡膏厚度、面积、体积、偏移量 |
| 2 | 炉前自动光学检测仪（AOI） | 贴片后、回流焊前 | MIRTEC MV-3L 等 | 贴片位置、方向、缺件、错件 |
| 3 | 炉后自动光学检测仪（AOI） | 回流焊后 | MIRTEC MV-3L 等 | 焊点质量、连锡、少锡、虚焊 |
| 4 | 六面体外观检测仪 | 成品包装前 | 自研定制 | 产品六面外观缺陷 |
| 5 | 视觉定位系统 | 抓取/装配工位 | 自研定制 | 元器件和组装零件定位 |

所有设备均通过 OPC UA / Modbus TCP 协议与产线 SCADA 系统对接，实现检测数据的实时采集和传输。

### 2.3 采集架构

数据采集系统采用分层架构设计：

```
┌─────────────────────────────────────────────────────────────┐
│                    数据采集系统架构                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐       │
│  │ SPI 设备 │  │炉前AOI  │  │炉后AOI  │  │外观检测  │       │
│  │(20条线) │  │(20条线) │  │(20条线) │  │(20条线) │       │
│  └────┬────┘  └────┬────┘  └────┬────┘  └────┬────┘       │
│       │            │            │            │              │
│       ▼            ▼            ▼            ▼              │
│  ┌─────────────────────────────────────────────────┐        │
│  │           OPC UA / Modbus TCP 协议层             │        │
│  └──────────────────────┬──────────────────────────┘        │
│                         │                                    │
│                         ▼                                    │
│  ┌─────────────────────────────────────────────────┐        │
│  │           SCADA 数据采集服务器集群               │        │
│  │  ┌──────────┐  ┌──────────┐  ┌──────────┐      │        │
│  │  │图像存储   │  │参数日志   │  │元数据库   │      │        │
│  │  │(NAS/SAN) │  │(JSON/CSV)│  │(MySQL)   │      │        │
│  │  └──────────┘  └──────────┘  └──────────┘      │        │
│  └──────────────────────┬──────────────────────────┘        │
│                         │                                    │
│                         ▼                                    │
│  ┌─────────────────────────────────────────────────┐        │
│  │           数据清洗与标注平台                      │        │
│  │  ┌──────────┐  ┌──────────┐  ┌──────────┐      │        │
│  │  │清洗框架   │  │标注平台   │  │质检系统   │      │        │
│  │  │(Python+  │  │(自研Web  │  │(自动+    │      │        │
│  │  │ OpenCV)  │  │ 平台)    │  │ 人工)    │      │        │
│  │  └──────────┘  └──────────┘  └──────────┘      │        │
│  └──────────────────────┬──────────────────────────┘        │
│                         │                                    │
│                         ▼                                    │
│  ┌─────────────────────────────────────────────────┐        │
│  │           最终数据集交付目录                      │        │
│  │  /dataset/Mobile_PCB_Defect/                    │        │
│  └─────────────────────────────────────────────────┘        │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

### 2.4 采集频率与时间范围

| 数据类型 | 采集频率 | 时间范围 | 说明 |
|----------|----------|----------|------|
| SPI 检测图像 | 每板每工位 1 次，约 1,000 张/班 | 2023.01 — 2026.05 | 含检测坐标及 OK/NG 初判结果 |
| 炉前 AOI 图像 | 每板每工位 1 次，约 1,500 张/班 | 2023.01 — 2026.05 | 含缺陷坐标及类型初判信息 |
| 炉后 AOI 图像 | 每板每工位 1 次，约 1,500 张/班 | 2023.01 — 2026.05 | 含焊点坐标及质量判定信息 |
| 六面体外观图像 | 每件产品 6 面全检 | 2023.01 — 2026.05 | 含外观缺陷类型及位置标记 |
| 设备参数日志 | 实时采集，约 1 条/秒/设备 | 2023.01 — 2026.05 | 温度、速度、压力等工艺参数 |
| 元数据信息 | 实时同步 | 2023.01 — 2026.05 | 产品型号、批次、班次、操作员等 |

---

## 3. 数据集组成

### 3.1 子数据集总览

本数据集包含 6 个子数据集，覆盖 SMT 全流程各关键工位：

| 序号 | 子数据集名称 | 所属工位 | 样本量（张） | OK 样本 | NG 样本 | NG 占比 | 数据规模 |
|------|-------------|----------|-------------|---------|---------|---------|----------|
| 1 | SPI 锡膏印刷检测数据集 | SPI 工位 | ~150,000 | ~135,000 | ~15,000 | ≥10% | ~320 GB |
| 2 | 炉前 AOI 贴片检测数据集 | 炉前 AOI | ~520,000 | ~468,000 | ~52,000 | ≥10% | ~1,100 GB |
| 3 | 炉后 AOI 焊接检测数据集 | 炉后 AOI | ~520,000 | ~468,000 | ~52,000 | ≥10% | ~1,100 GB |
| 4 | 六面体外观检测数据集 | 外观检测 | ~330,000 | ~297,000 | ~33,000 | ≥10% | ~700 GB |
| 5 | 视觉定位抓取数据集 | 抓取/装配 | ~80,000 | — | — | N/A | ~76 GB |
| 6 | SMT 综合高质量数据集（汇总） | 全产线 | ~1,700,000 | ~1,530,000 | ~170,000 | ≥10% | ~3,296.8 GB |

### 3.2 SPI 锡膏印刷检测数据集

**数据集名称**：SPI Dataset（锡膏印刷检测数据集）  
**所属工位**：SPI 锡膏印刷工位  
**数据集类型**：图像分类 + 目标检测  
**图像格式**：JPG / PNG  
**总样本量**：约 150,000 张  
**正样本（OK）**：约 135,000 张  
**负样本（NG）**：约 15,000 张  
**NG 占比**：≥ 10%  
**标注类型**：矩形框标注 + 类别标签  
**缺陷类别数**：6 类  
**标注准确率**：≥ 99%  
**有效数据占比**：≥ 98%  
**数据规模**：约 320 GB  

**缺陷类型**：
- 少锡（Insufficient Solder）
- 多锡（Excessive Solder）
- 偏移（Misalignment）
- 桥接（Bridging / Short）
- 拉尖（Solder Spike）
- OK（合格）

**应用场景**：  
锡膏印刷质量检测模型训练。已验证模型准确率 ≥ 93.5%，F1 分数 ≥ 91.7%。支持 KOHYOUNG 等主流 SPI 设备的检测结果对标。

### 3.3 炉前 AOI 贴片检测数据集

**数据集名称**：AOI-Pre Dataset（炉前 AOI 贴片检测数据集）  
**所属工位**：炉前 AOI 贴片工位（贴片后、回流焊前）  
**数据集类型**：图像分类 + 目标检测 + 实例分割  
**图像格式**：JPG / PNG  
**总样本量**：约 520,000 张  
**正样本（OK）**：约 468,000 张  
**负样本（NG）**：约 52,000 张（其中精选 NG 约 2,100 张）  
**NG 占比**：≥ 10%  
**标注类型**：矩形框标注 + 多边形标注 + 类别标签  
**缺陷类别数**：≥ 20 类  
**标注准确率**：≥ 99%  
**有效数据占比**：≥ 98%  
**数据规模**：约 1,100 GB  

**缺陷类型（部分）**：
- 缺件（Missing Component）
- 偏移（Misalignment / Offset）
- 立碑（Tombstoning）
- 反向（Wrong Polarity / Reversed）
- 侧立（Side Stand）
- 桥接（Bridging）
- 翻转（Flipped）
- 错件（Wrong Component）
- 多件（Extra Component）
- 损伤（Damaged Component）
- 污染（Contamination）
- 焊膏异常（Solder Paste Anomaly）
- ...（共计 ≥ 20 类）

**覆盖封装类型**：0201、0402、0603、0805、1206、SOT-23、SOT-223、SOP、QFP、QFN、BGA 等。

**应用场景**：  
贴片质量检测模型训练。已验证模型准确率 ≥ 94.7%，F1 分数 ≥ 92.5%。覆盖多种封装类型的贴片缺陷检测。

**精选样本说明**：  
本子数据集附带一份精选 NG 样本集（约 2,100 张），从 52,000 张 NG 图像中筛选出具有代表性、标注质量最高的样本，适用于少样本学习（Few-shot Learning）和模型预训练。

### 3.4 炉后 AOI 焊接检测数据集

**数据集名称**：AOI-Post Dataset（炉后 AOI 焊接检测数据集）  
**所属工位**：炉后 AOI 焊接工位（回流焊后）  
**数据集类型**：图像分类 + 目标检测 + 实例分割  
**图像格式**：JPG / PNG  
**总样本量**：约 520,000 张  
**正样本（OK）**：约 468,000 张  
**负样本（NG）**：约 52,000 张  
**NG 占比**：≥ 10%  
**标注类型**：矩形框标注 + 多边形标注 + 类别标签  
**缺陷类别数**：≥ 15 类  
**标注准确率**：≥ 99%  
**有效数据占比**：≥ 98%  
**数据规模**：约 1,100 GB  

**缺陷类型（部分）**：
- 连锡（Solder Bridge / Short）
- 少锡（Insufficient Solder）
- 无锡（No Solder / Missing Solder）
- 虚焊（Cold Solder / Dry Joint）
- 拉尖（Solder Spike / Icicle）
- 焊珠（Solder Bead / Ball）
- 多锡（Excessive Solder）
- 锡裂（Solder Crack）
- 空洞（Void）
- 立碑（Tombstoning）
- 偏移（Misalignment）
- 反向（Wrong Polarity）
- 缺件（Missing Component）
- 错件（Wrong Component）
- 损伤（Damaged）
- ...（共计 ≥ 15 类）

**应用场景**：  
焊接质量检测模型训练。已验证模型准确率 ≥ 92.8%，F1 分数 ≥ 91.2%。支持 BGA/QFN 等隐蔽焊点检测场景。

### 3.5 六面体外观检测数据集

**数据集名称**：Visual-6Sides Dataset（六面体外观检测数据集）  
**所属工位**：六面体外观检测工位（成品包装前）  
**数据集类型**：图像分类 + 目标检测  
**图像格式**：JPG / PNG  
**总样本量**：约 330,000 张  
**正样本（OK）**：约 297,000 张  
**负样本（NG）**：约 33,000 张  
**NG 占比**：≥ 10%  
**标注类型**：矩形框标注 + 类别标签  
**缺陷类别数**：≥ 10 类  
**标注准确率**：≥ 99%  
**有效数据占比**：≥ 98%  
**数据规模**：约 700 GB  

**缺陷类型**：
- 划痕（Scratch）
- 污渍（Stain / Smudge）
- 装配不良（Assembly Defect）
- 标签缺失（Missing Label）
- 标签偏移（Label Offset）
- 破损（Damage / Crack）
- 异色（Color Abnormality）
- 毛刺（Burr）
- 凹陷（Dent）
- 异物（Foreign Object）
- ...（共计 ≥ 10 类）

**应用场景**：  
外观缺陷检测模型训练。已验证模型准确率 ≥ 91.5%，F1 分数 ≥ 90.5%。成品包装前全方位六面检查，覆盖多种产品型号。

### 3.6 视觉定位抓取数据集

**数据集名称**：Vision-Grasp Dataset（视觉定位抓取数据集）  
**所属工位**：抓取/装配工位  
**数据集类型**：目标检测 + 视觉定位  
**图像格式**：JPG / PNG  
**总样本量**：约 80,000 张  
**标注类型**：关键点标注 + 矩形框标注  
**目标类别数**：≥ 5 类  
**标注准确率**：≥ 99%  
**有效数据占比**：≥ 98%  
**数据规模**：约 76 GB  

**目标类别**：
- 各类元器件（电阻、电容、IC、连接器等）
- 组装零件（壳体、屏幕、电池等）
- 定位标记点（Mark Point / Fiducial Mark）
- 装配孔位
- 拾取点

**应用场景**：  
视觉定位模型训练。已验证模型 mAP ≥ 89.3%，支持自动拆垛、精准装配等智能仓储物流场景。

### 3.7 SMT 产线综合高质量数据集（汇总）

**数据集名称**：Mobile_PCB_Defect（SMT 产线综合高质量数据集）  
**数据集 ID**：Mobile_PCB_Defect  
**所属工位**：SMT 全产线（5 大工位）  
**数据集类型**：图像分类 + 目标检测 + 实例分割 + 视觉定位  
**图像格式**：JPG / PNG  
**总样本量**：约 1,700,000 张  
**正样本（OK）**：约 1,530,000 张  
**负样本（NG）**：约 170,000 张  
**NG 占比**：≥ 10%  
**标注类型**：矩形框 + 多边形 + 关键点 + 类别标签  
**缺陷类别数**：≥ 50 类  
**标注准确率**：≥ 99%  
**有效数据占比**：≥ 98%  
**数据规模**：约 3,296.8 GB（约 3.3 TB）  
**支持算法数**：≥ 10 种  
**许可协议**：Apache License 2.0  
**发布平台**：ModelScope  

**应用场景**：  
支持 SMT 全流程 AI 检测。已应用于 iADC（Intelligent Automated Defect Classification）智能复判系统，AOI 误判率降低 ≥ 80%，节省人力成本 ≥ 50%。

**知识产权归属**：  
数据集所有权归宁波麦博韦尔移动电话有限公司所有。

---

## 4. 目录结构

### 4.1 顶层目录

```
Mobile_PCB_Defect/
├── README.md                          # 本说明文档
├── dataset_infos.json                 # 数据集元信息（ModelScope 格式）
├── LICENSE                            # Apache License 2.0
├── docs/                              # 附加文档
│   ├── annotation_guideline.pdf       # 标注规范文档
│   ├── defect_taxonomy.pdf            # 缺陷分类体系文档
│   └── data_quality_report.pdf        # 数据质量报告
├── images/                            # 图像数据
│   ├── SPI/                           # SPI 锡膏检测图像
│   ├── AOI_PRE/                       # 炉前 AOI 图像
│   ├── AOI_POST/                      # 炉后 AOI 图像
│   ├── VISUAL/                        # 六面体外观图像
│   └── GRASP/                         # 视觉定位图像
├── annotations/                       # 标注数据
│   ├── coco/                          # COCO 格式标注
│   │   ├── instances_spi.json
│   │   ├── instances_aoi_pre.json
│   │   ├── instances_aoi_post.json
│   │   ├── instances_visual.json
│   │   └── instances_grasp.json
│   ├── voc/                           # Pascal VOC 格式标注
│   │   ├── SPI/
│   │   ├── AOI_PRE/
│   │   ├── AOI_POST/
│   │   ├── VISUAL/
│   │   └── GRASP/
│   └── custom/                        # 自定义 JSON 格式标注
│       ├── spi_annotations.json
│       ├── aoi_pre_annotations.json
│       ├── aoi_post_annotations.json
│       ├── visual_annotations.json
│       └── grasp_annotations.json
├── splits/                            # 数据划分
│   ├── train.txt                      # 训练集文件列表
│   ├── val.txt                        # 验证集文件列表
│   └── test.txt                       # 测试集文件列表
├── metadata/                          # 元数据
│   ├── product_info.json              # 产品型号信息
│   ├── batch_info.json                # 批次信息
│   └── equipment_info.json            # 设备信息
└── structured/                        # 结构化数据
    ├── scada_params/                  # SCADA 设备参数日志
    │   ├── 2023/
    │   ├── 2024/
    │   └── 2025/
    └── mes_metadata/                  # MES 元数据
        ├── product_models.json
        └── batch_records.json
```

### 4.2 整图数据目录

整图（全板扫描图像）为 AOI 设备对整块 PCB 板拍摄的高分辨率图像，保留了完整的板面信息。

```
images/AOI_PRE/full_board/
├── 1(1).jpg                            # 整板图像 1
├── 2(1).jpg                            # 整板图像 2
├── 3(1).jpg                            # 整板图像 3
├── ...
├── 7(1).jpg                            # 整板图像 7（大尺寸）
├── 8(1).jpg                            # 整板图像 8（小尺寸）
├── 9(1).jpg                            # 整板图像 9
├── 10(1).jpg                           # 整板图像 10
└── 11(1).jpg                           # 整板图像 11
```

**整图规格**：

| 类型 | 分辨率范围 | 文件大小范围 | 说明 |
|------|-----------|-------------|------|
| 大尺寸整图 | 10932×13332 ~ 13280×13332 | 5.8 MB ~ 11.4 MB | 高密度 PCB 板全板扫描 |
| 小尺寸整图 | 4080×5000 | 1.2 MB ~ 1.4 MB | 较小 PCB 板全板扫描 |

### 4.3 元件图数据目录

元件图为从整图中按单个元器件裁切的局部图像，每个文件对应一个元器件的检测区域。

```
images/AOI_PRE/elements/
├── 炉前图片包含OK和NG/                  # 包含 OK 和 NG 的混合集
│   └── 炉前/
│       ├── 1630844_6_120.jpg           # 板号_元件类型_序号
│       ├── 1630845_3_376.jpg
│       ├── 1630845_4_195.jpg
│       ├── ...
│       └── 1647749_1_55.jpg            # 共 666 张（OK 601 + NG 65）
│
├── 炉前NG图片/                          # 仅包含 NG 的子集
│   └── 炉前NG/
│       ├── 1630844_6_120.jpg           # 与混合集中 NG 样本一一对应
│       ├── 1630850_6_295.jpg
│       ├── ...
│       └── 1647534_2_316.jpg           # 共 65 张 NG 样本
│
├── AOI_POST/elements/                   # 炉后元件图
│   ├── S20/                             # S20 产线
│   ├── S22/                             # S22 产线
│   └── S23/                             # S23 产线
│
└── SPI/elements/                        # SPI 元件图
    └── ...
```

### 4.4 标注数据目录

标注数据按格式分类存储，每种格式对应不同的深度学习框架使用场景：

```
annotations/
├── coco/                                # COCO 格式（推荐用于目标检测/实例分割）
│   ├── instances_spi.json              # SPI 数据集标注
│   ├── instances_aoi_pre.json          # 炉前 AOI 数据集标注
│   ├── instances_aoi_post.json         # 炉后 AOI 数据集标注
│   ├── instances_visual.json           # 六面体外观数据集标注
│   └── instances_grasp.json            # 视觉定位数据集标注
│
├── voc/                                 # Pascal VOC 格式（推荐用于图像分类）
│   ├── SPI/                            # 每张图像一个 XML 文件
│   │   ├── 1630844_6_120.xml
│   │   └── ...
│   ├── AOI_PRE/
│   ├── AOI_POST/
│   ├── VISUAL/
│   └── GRASP/
│
└── custom/                              # 自定义 JSON 格式（含设备原始检测信息）
    ├── spi_annotations.json
    ├── aoi_pre_annotations.json
    ├── aoi_post_annotations.json
    ├── visual_annotations.json
    └── grasp_annotations.json
```

### 4.5 结构化数据目录

结构化数据包括 SCADA 设备参数日志和 MES 元数据，以 JSON / CSV / MySQL 格式存储：

```
structured/
├── scada_params/                        # SCADA 设备参数日志
│   ├── 2023/
│   │   ├── 01/                          # 按年月组织
│   │   │   ├── line_S20_params.json
│   │   │   ├── line_S22_params.json
│   │   │   └── ...
│   │   └── ...
│   ├── 2024/
│   └── 2025/
│
└── mes_metadata/                        # MES 元数据
    ├── product_models.json              # 产品型号信息
    ├── batch_records.json               # 批次记录
    ├── operator_info.json               # 操作员信息（脱敏）
    └── equipment_status.json            # 设备状态记录
```

---

## 5. 文件命名规范

### 5.1 整图文件命名

整图文件采用简单序号命名方式：

```
{序号}({版本}).jpg
```

| 字段 | 说明 | 示例 |
|------|------|------|
| 序号 | 图像编号，从 1 开始递增 | 1, 2, 3, ..., 11 |
| 版本 | 同一板号的版本号（如有重拍） | 1, 2 |

**示例**：
- `1(1).jpg` — 第 1 块板的第 1 版图像
- `5(2).jpg` — 第 5 块板的第 2 版图像（重拍）

### 5.2 元件图文件命名

元件图文件采用三段式命名规范，编码了板号、元件类型和元件序号信息：

```
{板号}_{元件类型}_{元件序号}.jpg
```

| 字段 | 说明 | 取值范围 | 示例 |
|------|------|----------|------|
| 板号 | PCB 板的生产序列号 | 7 位数字（如 1630844 ~ 1647749） | 1630844 |
| 元件类型 | 元器件分类编号 | 1 ~ 6 | 6 |
| 元件序号 | 该板该类型元件的序号 | 正整数 | 120 |

**元件类型编码**：

| 类型编号 | 元件类型说明 | 样本数量 |
|----------|-------------|----------|
| 1 | 电阻/电容（0402/0603 等小封装） | 173 |
| 2 | IC 芯片（QFP/SOP 等） | 79 |
| 3 | IC 芯片（QFN/BGA 等） | 179 |
| 4 | 二极管/三极管（SOT 等） | 50 |
| 5 | 连接器/插座 | 111 |
| 6 | 其他元器件 | 74 |

> **注意**：以上元件类型编码为基于文件名分析的推断分类，实际分类以标注文件中的 `component_type` 字段为准。

**示例**：
- `1630844_6_120.jpg` — 板号 1630844 上第 6 类元件的第 120 个元件图
- `1638816_1_233.jpg` — 板号 1638816 上第 1 类元件的第 233 个元件图

### 5.3 标注文件命名

**COCO 格式**：
```
instances_{子数据集名称}.json
```
- `instances_spi.json` — SPI 子数据集的 COCO 标注
- `instances_aoi_pre.json` — 炉前 AOI 子数据集的 COCO 标注

**Pascal VOC 格式**：
```
{图像文件名}.xml
```
- `1630844_6_120.xml` — 与图像文件 `1630844_6_120.jpg` 一一对应

**自定义 JSON 格式**：
```
{子数据集名称}_annotations.json
```
- `spi_annotations.json` — SPI 子数据集的自定义标注

### 5.4 命名规则总结

| 数据类型 | 命名模式 | 示例 |
|----------|----------|------|
| 整图 | `{序号}({版本}).jpg` | `1(1).jpg` |
| 元件图 | `{板号}_{元件类型}_{序号}.jpg` | `1630844_6_120.jpg` |
| COCO 标注 | `instances_{子集名}.json` | `instances_aoi_pre.json` |
| VOC 标注 | `{图像文件名}.xml` | `1630844_6_120.xml` |
| 自定义标注 | `{子集名}_annotations.json` | `aoi_pre_annotations.json` |
| SCADA 参数 | `line_{产线号}_params.json` | `line_S20_params.json` |

---

## 6. 图像规格说明

### 6.1 整图（全板扫描图像）

整图为 AOI 设备对整块 PCB 板进行高分辨率扫描获得的完整板面图像。

**图像参数**：

| 参数 | 大尺寸整图 | 小尺寸整图 |
|------|-----------|-----------|
| 图像宽度 | 10,932 ~ 13,280 px | 4,080 px |
| 图像高度 | 13,332 px | 5,000 px |
| 文件格式 | JPG | JPG |
| 色彩模式 | RGB | RGB |
| 文件大小 | 5.8 ~ 11.4 MB | 1.2 ~ 1.4 MB |
| 文件数量 | 7 张 | 4 张 |
| 总数据量 | ~63.3 MB | ~5.2 MB |

**图像内容说明**：

整图包含完整的 PCB 板面信息，包括：
- 所有已贴装元器件的位置和外观
- 焊盘/焊点分布
- 丝印标识
- 基板材质纹理
- 检测光源照射效果

整图适用于：
- 全板级缺陷检测（如整体偏移、大面积缺失等）
- 元器件定位和裁切（生成元件图）
- 板级质量评估

### 6.2 元件图（局部裁切图像）

元件图为从整图中按单个元器件检测区域裁切的局部图像，每个文件对应一个元器件。

**图像参数**：

| 参数 | 数值 |
|------|------|
| 图像宽度 | 53 ~ 248 px |
| 图像高度 | 53 ~ 248 px |
| 文件格式 | JPG |
| 色彩模式 | RGB |
| 文件大小 | 2 ~ 15 KB |
| 文件数量 | 731 张（混合集 666 + NG 专集 65） |

**尺寸分布**：

元件图尺寸根据元器件封装大小而异，常见尺寸组合包括：

| 尺寸（宽×高） | 适用元件类型 | 说明 |
|---------------|-------------|------|
| 53×102 / 102×53 | 0402 等小封装 | 横/竖两个方向 |
| 57×107 / 107×57 | 0603 等封装 | 横/竖两个方向 |
| 57×113 / 113×57 | 0805 等封装 | 横/竖两个方向 |
| 59×100 / 100×59 | 小 IC | 横/竖两个方向 |
| 59×102 / 102×59 | 小 IC | 横/竖两个方向 |
| 59×105 / 105×59 | 小 IC | 横/竖两个方向 |
| 67×103 / 103×67 | SOT 封装 | — |
| 80×166 / 88×167 | 中型 IC | 横/竖两个方向 |
| 92×167 / 167×92 | 中型 IC | 横/竖两个方向 |
| 99×167 / 167×99 | 大型 IC | 横/竖两个方向 |
| 114×114 / 114×115 | 方形封装 | QFN 等 |
| 129×248 / 134×233 | 大型 IC | QFP 等 |

> **注意**：元件图的宽高比反映了元器件的封装方向。同一元器件在 PCB 上的不同朝向会导致裁切图像的宽高互换。

### 6.3 图像格式与编码

| 参数 | 说明 |
|------|------|
| 文件格式 | JPEG（.jpg） |
| 色彩空间 | sRGB |
| 位深度 | 8 bit / channel（24 bit total） |
| 压缩方式 | JPEG baseline |
| 压缩质量 | ≥ 90%（AOI 设备默认设置） |
| DPI | 300 ~ 600 dpi（取决于设备配置） |

### 6.4 图像质量标准

所有进入最终数据集的图像均满足以下质量标准：

| 质量指标 | 标准 | 检测方法 |
|----------|------|----------|
| 分辨率 | ≥ 设备标称分辨率 | PIL/ImageMagick 读取验证 |
| 清晰度 | Laplacian 算子方差 ≥ 阈值 | OpenCV Laplacian 变换 |
| 亮度 | 平均亮度 80~200（0~255） | 灰度直方图统计 |
| 对比度 | 标准差 ≥ 20（0~255） | 灰度直方图统计 |
| 无过曝 | 过曝像素占比 ≤ 5% | 像素值 ≥ 250 的占比 |
| 无欠曝 | 欠曝像素占比 ≤ 5% | 像素值 ≤ 5 的占比 |
| 无模糊 | 模糊判定为否 | Laplacian + BM 算法 |
| 无重复 | 与已有图像 SSIM < 0.95 | 结构相似性计算 |
| 文件完整 | JPEG 文件头尾完整，可正常解码 | PIL 加载验证 |

---

## 7. 标注规范

### 7.1 标注类型

本数据集支持以下标注类型：

| 标注类型 | 适用任务 | 标注形式 | 适用子数据集 |
|----------|----------|----------|-------------|
| 类别标签 | 图像分类 | 整图级别标签 | 全部 |
| 矩形框标注 | 目标检测 | (x, y, width, height) | SPI, AOI_PRE, AOI_POST, VISUAL, GRASP |
| 多边形标注 | 实例分割 | 顶点坐标列表 | AOI_PRE, AOI_POST |
| 关键点标注 | 视觉定位 | (x, y) 坐标列表 | GRASP |

### 7.2 标注格式

本数据集提供三种标注格式，用户可根据使用的深度学习框架选择：

| 格式 | 适用框架 | 文件扩展名 | 特点 |
|------|----------|-----------|------|
| COCO | Detectron2, MMDetection | .json | 单文件包含所有标注，支持检测/分割 |
| Pascal VOC | PyTorch, TensorFlow | .xml | 每图一文件，支持检测/分类 |
| 自定义 JSON | 通用 | .json | 包含设备原始检测信息，最完整 |

### 7.3 COCO 格式标注文件

COCO 格式是最常用的目标检测/实例分割标注格式。本数据集的 COCO 标注文件结构如下：

```json
{
  "info": {
    "description": "Mobile_PCB_Defect Dataset",
    "version": "1.0.0",
    "year": 2026,
    "contributor": "宁波麦博韦尔移动电话有限公司",
    "date_created": "2026-05-31",
    "url": "https://modelscope.cn/datasets/Mobile_PCB_Defect"
  },
  "licenses": [
    {
      "id": 1,
      "name": "Apache License 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0"
    }
  ],
  "images": [
    {
      "id": 1,
      "file_name": "1630844_6_120.jpg",
      "width": 105,
      "height": 59,
      "board_serial": "1630844",
      "component_type": 6,
      "component_index": 120,
      "station": "AOI_PRE",
      "line_id": "S20",
      "capture_time": "2024-03-15T08:23:45",
      "equipment_model": "MIRTEC MV-3L",
      "license": 1
    }
  ],
  "annotations": [
    {
      "id": 1,
      "image_id": 1,
      "category_id": 1,
      "bbox": [10, 5, 85, 49],
      "area": 4165,
      "segmentation": [],
      "iscrowd": 0,
      "defect_type": "OK",
      "confidence": 1.0,
      "annotator": "reviewer_01",
      "review_status": "approved"
    }
  ],
  "categories": [
    {
      "id": 0,
      "name": "OK",
      "supercategory": "normal",
      "description": "合格品"
    },
    {
      "id": 1,
      "name": "missing_component",
      "supercategory": "aoi_pre_defect",
      "description": "缺件"
    },
    {
      "id": 2,
      "name": "misalignment",
      "supercategory": "aoi_pre_defect",
      "description": "偏移"
    }
  ]
}
```

### 7.4 Pascal VOC 格式标注文件

Pascal VOC 格式以 XML 文件存储，每张图像对应一个 XML 文件：

```xml
<?xml version="1.0" encoding="UTF-8"?>
<annotation>
  <folder>AOI_PRE</folder>
  <filename>1630844_6_120.jpg</filename>
  <path>/dataset/Mobile_PCB_Defect/images/AOI_PRE/elements/1630844_6_120.jpg</path>
  <source>
    <database>Mobile_PCB_Defect</database>
    <annotation>Mobile_PCB_Defect v1.0</annotation>
    <image>MIRTEC MV-3L AOI</image>
  </source>
  <size>
    <width>105</width>
    <height>59</height>
    <depth>3</depth>
  </size>
  <segmented>0</segmented>
  <object>
    <name>missing_component</name>
    <pose>Unspecified</pose>
    <truncated>0</truncated>
    <difficult>0</difficult>
    <bndbox>
      <xmin>10</xmin>
      <ymin>5</ymin>
      <xmax>95</xmax>
      <ymax>54</ymax>
    </bndbox>
    <defect_type>NG</defect_type>
    <confidence>1.0</confidence>
    <annotator>reviewer_01</annotator>
    <review_status>approved</review_status>
  </object>
</annotation>
```

### 7.5 自定义 JSON 标注格式

自定义 JSON 格式包含最完整的标注信息，包括 AOI 设备的原始检测结果：

```json
{
  "dataset": "Mobile_PCB_Defect",
  "version": "1.0.0",
  "station": "AOI_PRE",
  "total_images": 520000,
  "annotations": [
    {
      "image_id": "1630844_6_120",
      "file_name": "1630844_6_120.jpg",
      "file_path": "images/AOI_PRE/elements/炉前图片包含OK和NG/炉前/1630844_6_120.jpg",
      "image_info": {
        "width": 105,
        "height": 59,
        "channels": 3,
        "format": "JPEG",
        "file_size_bytes": 3256
      },
      "board_info": {
        "board_serial": "1630844",
        "product_model": "MBW-X200",
        "batch_id": "B20240315-A",
        "line_id": "S20",
        "capture_time": "2024-03-15T08:23:45+08:00"
      },
      "component_info": {
        "component_type": 6,
        "component_index": 120,
        "reference_designator": "R215",
        "package_type": "0603",
        "nominal_value": "100K"
      },
      "equipment_info": {
        "equipment_model": "MIRTEC MV-3L",
        "equipment_id": "AOI-PRE-S20-01",
        "camera_id": "CAM-01",
        "light_source": "RGB Ring Light",
        "exposure_time_us": 5000,
        "gain_db": 6.0
      },
      "aoi_result": {
        "device_judgment": "NG",
        "device_defect_type": "missing_component",
        "device_confidence": 0.87,
        "device_bbox": [12, 6, 83, 48],
        "device_timestamp": "2024-03-15T08:23:45.123+08:00"
      },
      "annotation": {
        "label": "NG",
        "defect_type": "missing_component",
        "defect_code": "AP-001",
        "bbox": [10, 5, 85, 49],
        "segmentation": [],
        "confidence": 1.0,
        "annotator": "reviewer_01",
        "review_status": "approved",
        "review_time": "2024-03-15T14:30:00+08:00",
        "notes": ""
      }
    }
  ]
}
```

### 7.6 标注字段说明

| 字段名 | 类型 | 说明 | 示例值 |
|--------|------|------|--------|
| `image_id` | string | 图像唯一标识 | "1630844_6_120" |
| `file_name` | string | 图像文件名 | "1630844_6_120.jpg" |
| `width` | int | 图像宽度（像素） | 105 |
| `height` | int | 图像高度（像素） | 59 |
| `board_serial` | string | PCB 板生产序列号 | "1630844" |
| `component_type` | int | 元件类型编号（1~6） | 6 |
| `component_index` | int | 该板该类型元件序号 | 120 |
| `reference_designator` | string | 元器件位号 | "R215" |
| `package_type` | string | 封装类型 | "0603" |
| `line_id` | string | 产线编号 | "S20" |
| `capture_time` | string | 采集时间（ISO 8601） | "2024-03-15T08:23:45+08:00" |
| `equipment_model` | string | 设备型号 | "MIRTEC MV-3L" |
| `label` | string | 标注标签（OK/NG） | "NG" |
| `defect_type` | string | 缺陷类型英文标识 | "missing_component" |
| `defect_code` | string | 缺陷类型编码 | "AP-001" |
| `bbox` | list[float] | 矩形框 [x, y, width, height] | [10, 5, 85, 49] |
| `segmentation` | list[list[float]] | 分割多边形顶点 | [[x1,y1,x2,y2,...]] |
| `confidence` | float | 标注置信度（0~1） | 1.0 |
| `annotator` | string | 标注人员标识 | "reviewer_01" |
| `review_status` | string | 复核状态 | "approved" |

### 7.7 标注质量管控

标注质量管控采用"三审制"：

```
┌──────────────┐     ┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│  第一审      │────▶│  第二审      │────▶│  第三审      │────▶│  最终入库    │
│  AOI 自动    │     │  人工初审    │     │  质检复核    │     │              │
│  预标注      │     │              │     │              │     │              │
│  准确率~85%  │     │  纠正/补充   │     │  抽检≥10%   │     │  准确率≥99%  │
└──────────────┘     └──────────────┘     └──────────────┘     └──────────────┘
```

**第一审 — AOI 设备自动预标注**：
- 由 AOI 设备自带算法自动完成
- 生成初始标签、缺陷类型和边界框
- 准确率约 85%
- 与图像采集同步完成

**第二审 — 质检工程师人工初审**：
- 由经过培训的质检工程师在自研标注平台上完成
- 纠正预标注中的错误（误判、漏判）
- 补充缺失的标注（多边形分割、关键点等）
- 逐张审核，100% 覆盖

**第三审 — 质量抽检复核**：
- 由高级质检工程师进行抽检
- 抽检比例 ≥ 10%
- 计算标注人员间 Kappa 一致性系数（要求 ≥ 0.85）
- 不合格的批次退回第二审重新标注

---

## 8. 缺陷分类体系

### 8.1 SPI 锡膏印刷缺陷（6 类）

| 编码 | 英文名称 | 中文名称 | 描述 |
|------|----------|----------|------|
| SP-000 | ok | 合格 | 锡膏印刷质量合格 |
| SP-001 | insufficient_solder | 少锡 | 锡膏量不足，低于阈值 |
| SP-002 | excessive_solder | 多锡 | 锡膏量过多，超出阈值 |
| SP-003 | misalignment | 偏移 | 锡膏与焊盘位置偏移 |
| SP-004 | bridging | 桥接 | 相邻焊盘间锡膏连通 |
| SP-005 | solder_spike | 拉尖 | 锡膏边缘出现尖状突起 |

### 8.2 炉前 AOI 贴片缺陷（≥20 类）

| 编码 | 英文名称 | 中文名称 | 描述 |
|------|----------|----------|------|
| AP-000 | ok | 合格 | 贴片质量合格 |
| AP-001 | missing_component | 缺件 | 元器件未贴装到焊盘上 |
| AP-002 | misalignment | 偏移 | 元器件位置偏离焊盘中心 |
| AP-003 | tombstoning | 立碑 | 元器件一端翘起，垂直立于板面 |
| AP-004 | wrong_polarity | 反向 | 有极性元器件方向错误 |
| AP-005 | side_stand | 侧立 | 元器件侧面立于板面 |
| AP-006 | bridging | 桥接 | 相邻元器件间焊膏连通 |
| AP-007 | flipped | 翻转 | 元器件翻面贴装 |
| AP-008 | wrong_component | 错件 | 贴装的元器件型号错误 |
| AP-009 | extra_component | 多件 | 贴装了多余的元器件 |
| AP-010 | damaged_component | 损伤 | 元器件外观损伤 |
| AP-011 | contamination | 污染 | 元器件或焊盘表面有污染物 |
| AP-012 | solder_paste_anomaly | 焊膏异常 | 焊膏形态异常（不均匀、扩散等） |
| AP-013 | billboarding | 侧立偏移 | 元器件部分抬起 |
| AP-014 | skew | 倾斜 | 元器件旋转角度超出公差 |
| AP-015 | shift_x | X 方向偏移 | 元器件沿 X 轴方向偏移 |
| AP-016 | shift_y | Y 方向偏移 | 元器件沿 Y 轴方向偏移 |
| AP-017 | rotation | 旋转偏移 | 元器件旋转角度超出公差 |
| AP-018 | coplanarity | 共面度不良 | 元器件引脚共面度超出公差 |
| AP-019 | missing_solder_paste | 缺锡膏 | 焊盘上无锡膏 |
| AP-020+ | ... | 其他缺陷 | 包含其他 ≥ 20 种缺陷类型 |

### 8.3 炉后 AOI 焊接缺陷（≥15 类）

| 编码 | 英文名称 | 中文名称 | 描述 |
|------|----------|----------|------|
| AO-000 | ok | 合格 | 焊接质量合格 |
| AO-001 | solder_bridge | 连锡 | 相邻焊点间焊锡连通 |
| AO-002 | insufficient_solder | 少锡 | 焊点焊锡量不足 |
| AO-003 | no_solder | 无锡 | 焊盘上无焊锡 |
| AO-004 | cold_solder | 虚焊 | 焊点未形成有效金属间化合物 |
| AO-005 | solder_spike | 拉尖 | 焊点边缘出现尖状突起 |
| AO-006 | solder_bead | 焊珠 | 焊点附近出现球形焊锡颗粒 |
| AO-007 | excessive_solder | 多锡 | 焊点焊锡量过多 |
| AO-008 | solder_crack | 锡裂 | 焊点出现裂纹 |
| AO-009 | void | 空洞 | 焊点内部出现空洞 |
| AO-010 | tombstoning | 立碑 | 回流焊后元器件翘起 |
| AO-011 | misalignment | 偏移 | 焊接后元器件位置偏移 |
| AO-012 | wrong_polarity | 反向 | 有极性元器件方向错误 |
| AO-013 | missing_component | 缺件 | 回流焊后元器件脱落 |
| AO-014 | wrong_component | 错件 | 焊接的元器件型号错误 |
| AO-015 | damaged | 损伤 | 元器件或焊盘损伤 |
| AO-016+ | ... | 其他缺陷 | 包含其他 ≥ 15 种缺陷类型 |

### 8.4 六面体外观缺陷（≥10 类）

| 编码 | 英文名称 | 中文名称 | 描述 |
|------|----------|----------|------|
| VS-000 | ok | 合格 | 外观质量合格 |
| VS-001 | scratch | 划痕 | 产品表面有划痕 |
| VS-002 | stain | 污渍 | 产品表面有污渍 |
| VS-003 | assembly_defect | 装配不良 | 装配工艺不良 |
| VS-004 | missing_label | 标签缺失 | 标签未贴或脱落 |
| VS-005 | label_offset | 标签偏移 | 标签位置偏移 |
| VS-006 | damage | 破损 | 产品外观破损 |
| VS-007 | color_abnormality | 异色 | 产品颜色异常 |
| VS-008 | burr | 毛刺 | 产品边缘有毛刺 |
| VS-009 | dent | 凹陷 | 产品表面凹陷 |
| VS-010 | foreign_object | 异物 | 产品表面有异物 |
| VS-011+ | ... | 其他缺陷 | 包含其他 ≥ 10 种缺陷类型 |

### 8.5 缺陷分类编码规则

缺陷分类编码采用三段式规则：

```
{工位代码}-{缺陷序号}
```

| 工位代码 | 工位名称 | 编码范围 |
|----------|----------|----------|
| SP | SPI 锡膏印刷检测 | SP-000 ~ SP-005 |
| AP | 炉前 AOI 贴片检测 | AP-000 ~ AP-020+ |
| AO | 炉后 AOI 焊接检测 | AO-000 ~ AO-015+ |
| VS | 六面体外观检测 | VS-000 ~ VS-010+ |
| VG | 视觉定位抓取 | VG-000 ~ VG-005+ |

其中：
- `000` 编码统一表示"合格"（OK）
- `001` 及以后编码表示具体缺陷类型
- `+` 表示该类别下还有更多细分缺陷类型

---

## 9. 数据处理流程

### 9.1 数据采集

数据采集是整个数据处理流程的起点，由产线检测设备自动完成。

**采集流程**：

1. **设备触发**：PCB 板经过检测工位时，设备传感器自动触发拍照
2. **图像采集**：AOI/SPI 设备的高分辨率工业相机拍摄板面图像
3. **自动检测**：设备自带算法进行实时检测，生成 OK/NG 初判结果
4. **数据传输**：图像和检测结果通过 OPC UA / Modbus TCP 传输到采集服务器
5. **数据存储**：图像存储到 NAS/SAN，参数日志存储到 MySQL 数据库

**采集参数**：

| 参数 | SPI 设备 | 炉前 AOI | 炉后 AOI | 外观检测 |
|------|----------|----------|----------|----------|
| 相机分辨率 | 12 MP | 20 MP | 20 MP | 10 MP |
| 拍照速度 | ~0.8 s/板 | ~1.2 s/板 | ~1.2 s/板 | ~0.5 s/件 |
| 光源 | RGB 结构光 | RGB 环形光 | RGB 环形光 | RGB 条形光 |
| 曝光时间 | 3000~8000 μs | 4000~10000 μs | 4000~10000 μs | 2000~5000 μs |
| 增益 | 3~8 dB | 4~10 dB | 4~10 dB | 2~6 dB |

### 9.2 数据清洗

数据清洗是去除低质量、重复和无效数据的过程，基于自研数据清洗框架（Python + OpenCV）实现。

**清洗流程**：

```
原始数据 ──▶ 质量检测 ──▶ 去重 ──▶ 格式统一 ──▶ 清洗后数据
              │            │          │
              ▼            ▼          ▼
         模糊检测      SSIM去重    尺寸/编码
         过曝/欠曝    哈希去重    格式统一
         对比度检测
```

**清洗步骤**：

1. **模糊检测**：使用 Laplacian 算子计算图像清晰度，低于阈值的图像被标记为模糊并移除
2. **过曝/欠曝检测**：统计图像灰度直方图，过曝或欠曝像素占比超过 5% 的图像被移除
3. **对比度检测**：计算图像灰度标准差，低于 20 的图像被标记为低对比度并移除
4. **重复检测**：使用 SSIM（结构相似性）和感知哈希（pHash）检测重复图像，SSIM ≥ 0.95 的图像对中保留质量较高的一张
5. **格式统一**：将所有图像统一转换为 JPG 格式，确保色彩空间为 sRGB
6. **文件完整性验证**：使用 PIL 验证 JPEG 文件头尾完整性，无法正常解码的文件被移除

**清洗效果**：

| 指标 | 数值 |
|------|------|
| 原始采集总量 | ~18,300 千张 + 10.5 TB 结构化数据 |
| 清洗后保留量 | ~13,800 千张 |
| 清洗率 | ~23.8%（即移除了约 23.8% 的低质量数据） |
| 有效数据占比 | ≥ 75%（清洗后）→ ≥ 98%（最终交付） |

### 9.3 数据标注

数据标注是将原始图像转化为可用于模型训练的标注数据的过程。

**标注流程**：

1. **自动预标注**：AOI 设备自带算法生成初始标注（准确率 ~85%）
2. **人工初审**：质检工程师在自研标注平台上逐张审核，纠正误判和漏判
3. **质检复核**：高级质检工程师抽检 ≥ 10%，计算 Kappa 一致性系数
4. **最终入库**：通过质检的标注数据进入最终数据集

**标注平台功能**：

- 支持矩形框、多边形、关键点等多种标注形式
- 支持图像缩放、旋转、对比度调整等辅助功能
- 支持批量标注和快捷键操作
- 自动记录标注人员、标注时间、修改历史
- 支持多人协作和任务分配

### 9.4 数据质检

数据质检是对最终数据集进行质量验证的过程。

**质检内容**：

| 质检项 | 检查方法 | 合格标准 |
|--------|----------|----------|
| 标注准确率 | 人工抽检 + 自动验证 | ≥ 99% |
| Kappa 一致性 | 双人独立标注对比 | ≥ 0.85 |
| 正负样本比例 | 统计计算 | NG 占比 ≥ 10% |
| 图像质量 | 自动检测（模糊/过曝/重复） | 100% 合格 |
| 标注完整性 | 标注文件与图像文件匹配 | 100% 匹配 |
| 格式规范性 | JSON/XML 格式验证 | 100% 合规 |
| 数据一致性 | 图像元数据与标注信息交叉验证 | 100% 一致 |

### 9.5 数据交付

数据交付是将最终数据集打包、上传和发布的过程。

**交付内容**：

1. 图像数据（JPG/PNG 格式）
2. 标注数据（COCO + Pascal VOC + 自定义 JSON 三种格式）
3. 数据划分文件（train/val/test 文件列表）
4. 元数据（产品型号、批次、设备信息等）
5. 结构化数据（SCADA 参数日志、MES 元数据）
6. 文档（README、标注规范、缺陷分类体系、质量报告）

**交付格式**：

- 数据集已上传 ModelScope 平台
- 数据集 ID：Mobile_PCB_Defect
- 许可协议：Apache License 2.0

---

## 10. 数据质量保障

### 10.1 质量指标体系

本数据集建立了完整的质量指标体系，覆盖数据生命周期的各个环节：

| 质量维度 | 指标 | 目标值 | 实际值 |
|----------|------|--------|--------|
| 完整性 | 图像与标注匹配率 | 100% | 100% |
| 准确性 | 标注准确率 | ≥ 99% | ≥ 99% |
| 一致性 | Kappa 一致性系数 | ≥ 0.85 | ≥ 0.85 |
| 唯一性 | 重复图像占比 | ≤ 2% | ≤ 1% |
| 有效性 | 有效数据占比 | ≥ 98% | ≥ 98% |
| 均衡性 | NG 样本占比 | ≥ 10% | ≥ 10% |
| 多样性 | 缺陷类型覆盖 | ≥ 50 类 | ≥ 50 类 |
| 规范性 | 格式合规率 | 100% | 100% |

### 10.2 清洗质量标准

| 清洗项 | 检测方法 | 移除阈值 |
|--------|----------|----------|
| 模糊图像 | Laplacian 方差 | < 100 |
| 过曝图像 | 像素值 ≥ 250 占比 | > 5% |
| 欠曝图像 | 像素值 ≤ 5 占比 | > 5% |
| 低对比度 | 灰度标准差 | < 20 |
| 重复图像 | SSIM | ≥ 0.95 |
| 损坏文件 | PIL 解码验证 | 解码失败 |

### 10.3 标注质量标准

| 标注质量项 | 标准 | 验证方法 |
|-----------|------|----------|
| 类别标签准确率 | ≥ 99% | 人工抽检 10% |
| 边界框 IoU | ≥ 0.75 | 自动计算 |
| 多边形分割 IoU | ≥ 0.70 | 自动计算 |
| 关键点偏差 | ≤ 3 px | 自动计算 |
| 标注完整性 | 100% | 图像-标注匹配验证 |
| Kappa 一致性 | ≥ 0.85 | 双人独立标注对比 |

### 10.4 质量审核流程

```
┌─────────────────────────────────────────────────────────────────┐
│                    数据质量审核流程                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌──────────┐                                                   │
│  │ 数据采集  │                                                   │
│  └────┬─────┘                                                   │
│       │                                                         │
│       ▼                                                         │
│  ┌──────────┐     ┌──────────┐     ┌──────────┐                │
│  │ 自动质量  │────▶│ 人工审核  │────▶│ 质量报告  │                │
│  │ 检测      │     │          │     │ 生成      │                │
│  │(模糊/过曝 │     │(抽检10%) │     │          │                │
│  │ /重复等)  │     │          │     │          │                │
│  └──────────┘     └──────────┘     └────┬─────┘                │
│                                         │                       │
│                          ┌──────────────┼──────────────┐       │
│                          ▼              ▼              ▼       │
│                    ┌──────────┐  ┌──────────┐  ┌──────────┐   │
│                    │ 合格     │  │ 不合格   │  │ 退回     │   │
│                    │ 进入下   │  │ 标记     │  │ 重新     │   │
│                    │ 一环节   │  │          │  │ 处理     │   │
│                    └──────────┘  └──────────┘  └──────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
```

---

## 11. 数据统计信息

### 11.1 总体统计

| 统计项 | 数值 |
|--------|------|
| 子数据集数量 | 6 个 |
| 总图像数量 | ~1,700,000 张 |
| 总标注数量 | ~1,700,000 条 |
| 总数据量 | ~3,296.8 GB（约 3.3 TB） |
| 正样本（OK）数量 | ~1,530,000 张 |
| 负样本（NG）数量 | ~170,000 张 |
| NG 样本占比 | ≥ 10% |
| 缺陷类型总数 | ≥ 50 类 |
| 产线数量 | 20 条 |
| 数据采集时间跨度 | 2023.01 — 2026.05（41 个月） |
| 原始采集总量 | ~18,300 千张 + 10.5 TB 结构化数据 |
| 清洗后数据量 | ~13,800 千张 |
| 清洗率 | ~23.8% |
| 最终交付数据量 | ~1,700,000 张（3.2968 TB） |

### 11.2 各子数据集统计

| 子数据集 | 样本量 | OK 样本 | NG 样本 | NG 占比 | 缺陷类别 | 数据量 | 标注类型 |
|---------|--------|---------|---------|---------|----------|--------|----------|
| SPI | ~150K | ~135K | ~15K | ≥10% | 6 类 | ~320 GB | 矩形框+标签 |
| AOI-Pre | ~520K | ~468K | ~52K | ≥10% | ≥20 类 | ~1,100 GB | 矩形框+多边形+标签 |
| AOI-Post | ~520K | ~468K | ~52K | ≥10% | ≥15 类 | ~1,100 GB | 矩形框+多边形+标签 |
| Visual-6Sides | ~330K | ~297K | ~33K | ≥10% | ≥10 类 | ~700 GB | 矩形框+标签 |
| Vision-Grasp | ~80K | — | — | N/A | ≥5 类 | ~76 GB | 关键点+矩形框 |
| **合计** | **~1,700K** | **~1,530K** | **~170K** | **≥10%** | **≥50 类** | **~3,297 GB** | **多种** |

### 11.3 正负样本分布

```
正负样本分布（全数据集）
┌──────────────────────────────────────────────────────────────┐
│                                                              │
│  OK（合格品） 90%  ████████████████████████████████████████  │
│  NG（缺陷品） 10%  █████                                      │
│                                                              │
└──────────────────────────────────────────────────────────────┘

各子数据集 NG 样本占比：
┌──────────────────────────────────────────────────────────────┐
│ SPI         ≥10%  ██████████                                 │
│ AOI-Pre     ≥10%  ██████████                                 │
│ AOI-Post    ≥10%  ██████████                                 │
│ Visual      ≥10%  ██████████                                 │
│ Vision-Grasp N/A  ────（定位任务，无 OK/NG 区分）              │
└──────────────────────────────────────────────────────────────┘
```

### 11.4 时间分布

数据采集时间跨度为 2023 年 1 月至 2026 年 6 月，共 42 个月。（历史数据集存量2023 年 1 月至 2024 年 12 月，正式建设时间2025 年 1 月至 2026 年 6 月）

```
数据采集时间分布（示意）
┌──────────────────────────────────────────────────────────────┐
│ 2023年  ████████████  (12个月)                               │
│ 2024年  ████████████  (12个月)                               │
│ 2025年  ████████████  (12个月)                               │
│ 2026年  █████          (6个月, 截至6月)                       │
└──────────────────────────────────────────────────────────────┘
```

### 11.5 缺陷类型分布

缺陷类型分布呈现长尾特性，常见缺陷类型占比较大，罕见缺陷类型占比较小但种类丰富。

**炉前 AOI 贴片缺陷 Top-10（按样本量排序）**：

| 排名 | 缺陷类型 | 英文名称 | 占比（NG 内） |
|------|----------|----------|--------------|
| 1 | 缺件 | missing_component | ~22% |
| 2 | 偏移 | misalignment | ~18% |
| 3 | 立碑 | tombstoning | ~12% |
| 4 | 反向 | wrong_polarity | ~8% |
| 5 | 桥接 | bridging | ~7% |
| 6 | 侧立 | side_stand | ~6% |
| 7 | 翻转 | flipped | ~5% |
| 8 | 错件 | wrong_component | ~4% |
| 9 | 损伤 | damaged_component | ~3% |
| 10 | 其他 | others | ~15% |

**炉后 AOI 焊接缺陷 Top-10（按样本量排序）**：

| 排名 | 缺陷类型 | 英文名称 | 占比（NG 内） |
|------|----------|----------|--------------|
| 1 | 连锡 | solder_bridge | ~20% |
| 2 | 少锡 | insufficient_solder | ~16% |
| 3 | 虚焊 | cold_solder | ~12% |
| 4 | 拉尖 | solder_spike | ~10% |
| 5 | 焊珠 | solder_bead | ~8% |
| 6 | 无锡 | no_solder | ~7% |
| 7 | 多锡 | excessive_solder | ~6% |
| 8 | 锡裂 | solder_crack | ~5% |
| 9 | 空洞 | void | ~4% |
| 10 | 其他 | others | ~12% |

---

## 12. 数据加载与使用

### 12.1 环境依赖

```bash
# Python >= 3.8
pip install modelscope>=1.9.0
pip install torch>=2.0.0
pip install torchvision>=0.15.0
pip install opencv-python>=4.8.0
pip install pillow>=10.0.0
pip install numpy>=1.24.0
pip install pycocotools>=2.0.7
```

### 12.2 通过 ModelScope SDK 加载

```python
from modelscope.msdatasets import MsDataset

# 加载完整数据集
ds = MsDataset.load(
    'Mobile_PCB_Defect',
    namespace='MYBW',
    split='train'
)

# 迭代样本
for sample in ds:
    image = sample['image']        # PIL Image 对象
    label = sample['label']        # 类别标签（OK/NG）
    bbox = sample['bbox']          # 边界框 [x, y, w, h]
    defect_type = sample['defect_type']  # 缺陷类型
    print(f"Image size: {image.size}, Label: {label}, Defect: {defect_type}")
```

### 12.3 通过 Git Clone 加载

```bash
# 克隆数据集仓库
git clone https://www.modelscope.cn/datasets/MYBW/Mobile_PCB_Defect.git

# 进入数据集目录
cd Mobile_PCB_Defect

# 查看数据集结构
ls -la
```

### 12.4 本地加载示例（Python）

```python
import json
import os
from PIL import Image
import numpy as np

# 加载 COCO 格式标注
def load_coco_annotation(annotation_path):
    """加载 COCO 格式标注文件"""
    with open(annotation_path, 'r', encoding='utf-8') as f:
        coco_data = json.load(f)
    
    # 构建图像 ID 到标注的映射
    image_annotations = {}
    for ann in coco_data['annotations']:
        img_id = ann['image_id']
        if img_id not in image_annotations:
            image_annotations[img_id] = []
        image_annotations[img_id].append(ann)
    
    # 构建类别 ID 到名称的映射
    category_map = {cat['id']: cat['name'] for cat in coco_data['categories']}
    
    return coco_data, image_annotations, category_map


def load_image_with_annotation(image_dir, image_info, annotations, category_map):
    """加载图像及其标注"""
    image_path = os.path.join(image_dir, image_info['file_name'])
    image = Image.open(image_path)
    image_array = np.array(image)
    
    results = []
    for ann in annotations:
        result = {
            'category': category_map[ann['category_id']],
            'bbox': ann['bbox'],  # [x, y, width, height]
            'area': ann.get('area', 0),
            'iscrowd': ann.get('iscrowd', 0)
        }
        if 'segmentation' in ann and ann['segmentation']:
            result['segmentation'] = ann['segmentation']
        results.append(result)
    
    return image_array, results


# 使用示例
annotation_path = 'annotations/coco/instances_aoi_pre.json'
image_dir = 'images/AOI_PRE/elements/'

coco_data, img_anns, cat_map = load_coco_annotation(annotation_path)

# 获取第一张图像的信息和标注
first_image = coco_data['images'][0]
first_anns = img_anns.get(first_image['id'], [])

image_data, detections = load_image_with_annotation(
    image_dir, first_image, first_anns, cat_map
)

print(f"Image shape: {image_data.shape}")
print(f"Number of detections: {len(detections)}")
for det in detections:
    print(f"  Category: {det['category']}, BBox: {det['bbox']}")
```

### 12.5 PyTorch DataLoader 示例

```python
import torch
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
import json
import os
from PIL import Image

class PCBDefectDataset(Dataset):
    """PCB 缺陷检测数据集（PyTorch Dataset）"""
    
    def __init__(self, root_dir, annotation_path, transform=None):
        """
        Args:
            root_dir (str): 数据集根目录
            annotation_path (str): COCO 标注文件路径
            transform (callable, optional): 图像变换
        """
        self.root_dir = root_dir
        self.transform = transform
        
        # 加载 COCO 标注
        with open(annotation_path, 'r', encoding='utf-8') as f:
            self.coco_data = json.load(f)
        
        # 构建索引
        self.image_dict = {img['id']: img for img in self.coco_data['images']}
        self.category_map = {cat['id']: cat for cat in self.coco_data['categories']}
        
        # 构建图像-标注映射
        self.annotations = {}
        for ann in self.coco_data['annotations']:
            img_id = ann['image_id']
            if img_id not in self.annotations:
                self.annotations[img_id] = []
            self.annotations[img_id].append(ann)
        
        self.image_ids = list(self.image_dict.keys())
    
    def __len__(self):
        return len(self.image_ids)
    
    def __getitem__(self, idx):
        img_id = self.image_ids[idx]
        img_info = self.image_dict[img_id]
        
        # 加载图像
        img_path = os.path.join(self.root_dir, img_info['file_name'])
        image = Image.open(img_path).convert('RGB')
        
        # 获取标注
        anns = self.annotations.get(img_id, [])
        boxes = []
        labels = []
        areas = []
        
        for ann in anns:
            bbox = ann['bbox']  # [x, y, w, h]
            boxes.append([
                bbox[0], bbox[1],
                bbox[0] + bbox[2], bbox[1] + bbox[3]
            ])
            labels.append(ann['category_id'])
            areas.append(ann.get('area', bbox[2] * bbox[3]))
        
        # 转换为张量
        if self.transform:
            image = self.transform(image)
        else:
            image = transforms.ToTensor()(image)
        
        target = {
            'boxes': torch.tensor(boxes, dtype=torch.float32),
            'labels': torch.tensor(labels, dtype=torch.int64),
            'areas': torch.tensor(areas, dtype=torch.float32),
            'image_id': torch.tensor([img_id])
        }
        
        return image, target


# 使用示例
transform = transforms.Compose([
    transforms.Resize((224, 224)),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406],
                         std=[0.229, 0.224, 0.225])
])

dataset = PCBDefectDataset(
    root_dir='Mobile_PCB_Defect/',
    annotation_path='Mobile_PCB_Defect/annotations/coco/instances_aoi_pre.json',
    transform=transform
)

dataloader = DataLoader(
    dataset,
    batch_size=32,
    shuffle=True,
    num_workers=4,
    collate_fn=lambda batch: tuple(zip(*batch))
)

# 训练循环示例
for images, targets in dataloader:
    # images: tuple of tensors
    # targets: tuple of dicts
    # 在此处添加模型训练代码
    pass
```

### 12.6 TensorFlow tf.data 示例

```python
import tensorflow as tf
import json
import os

def parse_function(image_path, annotation):
    """解析单个样本"""
    image = tf.io.read_file(image_path)
    image = tf.image.decode_jpeg(image, channels=3)
    image = tf.image.resize(image, [224, 224])
    image = tf.cast(image, tf.float32) / 255.0
    
    # 解析标注
    label = annotation['label']
    bbox = annotation['bbox']
    
    return image, {'label': label, 'bbox': bbox}


def create_tf_dataset(root_dir, annotation_path, batch_size=32):
    """创建 TensorFlow 数据集"""
    with open(annotation_path, 'r', encoding='utf-8') as f:
        coco_data = json.load(f)
    
    image_paths = []
    labels = []
    bboxes = []
    
    category_map = {cat['id']: cat['name'] for cat in coco_data['categories']}
    
    ann_by_img = {}
    for ann in coco_data['annotations']:
        ann_by_img.setdefault(ann['image_id'], []).append(ann)
    
    for img_info in coco_data['images']:
        img_path = os.path.join(root_dir, img_info['file_name'])
        anns = ann_by_img.get(img_info['id'], [])
        
        if anns:
            ann = anns[0]  # 取第一个标注
            image_paths.append(img_path)
            labels.append(ann['category_id'])
            bboxes.append(ann['bbox'])
    
    dataset = tf.data.Dataset.from_tensor_slices((
        image_paths,
        {'label': labels, 'bbox': bboxes}
    ))
    
    dataset = dataset.map(parse_function, num_parallel_calls=tf.data.AUTOTUNE)
    dataset = dataset.batch(batch_size)
    dataset = dataset.prefetch(tf.data.AUTOTUNE)
    
    return dataset


# 使用示例
dataset = create_tf_dataset(
    root_dir='Mobile_PCB_Defect/',
    annotation_path='Mobile_PCB_Defect/annotations/coco/instances_aoi_pre.json',
    batch_size=32
)

for images, targets in dataset:
    # images: (batch_size, 224, 224, 3)
    # targets['label']: (batch_size,)
    # targets['bbox']: (batch_size, 4)
    pass
```

---

## 13. 应用场景与模型效果

### 13.1 iADC 智能复判系统

本数据集已应用于宁波麦博韦尔的 iADC（Intelligent Automated Defect Classification）智能复判系统。

**系统架构**：

```
┌─────────────────────────────────────────────────────────────────┐
│                    iADC 智能复判系统架构                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐       │
│  │ AOI 设备  │─▶│ 图像采集  │─▶│ AI 模型  │─▶│ 复判结果  │       │
│  │ (20条线) │  │ 服务器    │  │ 推理引擎  │  │ 输出      │       │
│  └──────────┘  └──────────┘  └──────────┘  └────┬─────┘       │
│                                                   │             │
│                                    ┌──────────────┼─────────┐  │
│                                    ▼              ▼         ▼  │
│                              ┌──────────┐  ┌──────────┐  ┌──┐ │
│                              │ 自动放行  │  │ 人工复判  │  │报│ │
│                              │ (高置信度 │  │ (低置信度 │  │警│ │
│                              │  OK/NG)  │  │  或边界)  │  │  │ │
│                              └──────────┘  └──────────┘  └──┘ │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
```

**工作流程**：

1. AOI 设备检测到 NG 板后，将图像发送到 iADC 系统
2. AI 模型对 NG 图像进行二次推理，输出复判结果
3. 高置信度的 OK 判定自动放行，高置信度的 NG 判定直接报警
4. 低置信度或边界情况转人工复判
5. 人工复判结果反馈到模型训练流程，持续优化

### 13.2 缺陷检测模型

基于本数据集训练的缺陷检测模型在各工位的表现：

| 工位 | 模型类型 | 准确率 | F1 分数 | mAP | 说明 |
|------|----------|--------|---------|-----|------|
| SPI | ResNet-50 + FPN | ≥93.5% | ≥91.7% | ≥85% | 支持 KOHYOUNG 等设备 |
| 炉前 AOI | YOLOv8 + 实例分割 | ≥94.7% | ≥92.5% | ≥88% | 覆盖多种封装类型 |
| 炉后 AOI | YOLOv8 + 实例分割 | ≥92.8% | ≥91.2% | ≥86% | 支持隐蔽焊点检测 |
| 六面体外观 | EfficientNet + SSD | ≥91.5% | ≥90.5% | ≥84% | 多产品型号覆盖 |

### 13.3 视觉定位模型

| 任务 | 模型类型 | mAP | 说明 |
|------|----------|-----|------|
| 元器件定位 | Faster R-CNN + KeyPoint | ≥89.3% | 支持自动拆垛 |
| 装配定位 | DETR + KeyPoint | ≥87.5% | 支持精准装配 |
| Mark 点定位 | CornerNet | ≥95.0% | 高精度定位 |

### 13.4 应用效果

iADC 智能复判系统上线后的效果：

| 效果指标 | 改善前 | 改善后 | 改善幅度 |
|----------|--------|--------|----------|
| AOI 误判率 | 5%~15% | 1%~3% | 降低 ≥ 80% |
| 人工复判工作量 | 100% | ~20% | 减少 ≥ 80% |
| 人力成本 | 100% | ~50% | 节省 ≥ 50% |
| 检测效率 | 基准 | 提升 ~30% | — |
| 漏检率 | ~2% | ~0.5% | 降低 ≥ 75% |

---

## 14. 知识产权与许可

### 14.1 数据集所有权

本数据集的所有权归**宁波麦博韦尔移动电话有限公司**所有。

- 公司名称：宁波麦博韦尔移动电话有限公司
- 项目名称：SMT 产线 AOI/SPI 视觉检测高质量数据集建设
- 建设总投资：1,269.6 万元（硬件投资 89.4% + 软件投资 10.6%）
- 数据集 ID：Mobile_PCB_Defect

### 14.2 开源许可

本数据集采用 **Apache License 2.0** 开源许可。

```
Copyright 2023-2026 宁波麦博韦尔移动电话有限公司

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```

### 14.3 使用限制

在使用本数据集时，用户需遵守以下限制：

1. **学术研究**：可自由用于学术研究和论文发表，但需引用本数据集。
2. **工业应用**：可用于工业应用和产品开发，但不得直接转售数据集。
3. **数据再分发**：不得在未经授权的情况下再分发本数据集的全部或大部分内容。
4. **隐私保护**：数据集中的所有人员信息均已脱敏处理，用户不得尝试还原。
5. **商业产品**：基于本数据集训练的模型可用于商业产品，但建议在产品文档中注明数据来源。

### 14.4 引用规范

如果在学术论文中使用本数据集，请按以下格式引用：

**BibTeX 格式**：

```bibtex
@dataset{mobile_pcb_defect,
  title     = {Mobile_PCB_Defect: SMT 产线 AOI/SPI 视觉检测高质量数据集},
  author    = {作者：冯叶瑶，建设单位：宁波麦博韦尔移动电话有限公司},
  year      = {2026},
  version   = {1.0.0},
  url       = {https://modelscope.cn/datasets/MYBW/Mobile_PCB_Defect},
  license   = {Apache License 2.0},
  description = {A large-scale high-quality dataset for PCB defect detection in SMT production lines, containing approximately 1.7 million annotated images covering 50+ defect types across 5 inspection stations.}
}
```

**文本格式**：

```
冯叶瑶，宁波麦博韦尔移动电话有限公司. Mobile_PCB_Defect: SMT 产线 AOI/SPI 视觉检测高质量数据集
[R/OL]. (2026). v1.0.0. https://modelscope.cn/datasets/MYBW/Mobile_PCB_Defect.
```

---

## 15. 版本历史

| 版本 | 发布日期 | 变更内容 | 数据量 |
|------|----------|----------|--------|
| v0.1.0 | 2023-06-30 | 初始版本，包含 SPI 和炉前 AOI 数据 | ~200K 张 |
| v0.5.0 | 2024-03-15 | 新增炉后 AOI 数据，完善标注格式 | ~800K 张 |
| v0.8.0 | 2024-12-31 | 新增六面体外观和视觉定位数据 | ~1,200K 张 |
| v0.9.0 | 2025-06-30 | 完成数据清洗和质检，数据量稳定 | ~1,500K 张 |
| v1.0.0 | 2026-05-31 | 正式发布版本，上传 ModelScope 平台 | ~1,700K 张 |

---

## 16. 常见问题（FAQ）

**Q1: 数据集的下载方式有哪些？**

A: 支持两种下载方式：
1. 通过 ModelScope SDK 加载（推荐）
2. 通过 Git Clone 克隆数据集仓库

**Q2: 数据集是否包含原始未清洗数据？**

A: 本数据集仅包含经过清洗、标注、质检后的最终交付数据。原始未清洗数据由于包含敏感生产信息，不对外公开。

**Q3: 如何处理类别不平衡问题？**

A: 本数据集的正负样本比例为 9:1（OK:NG = 90%:10%），建议在训练时使用以下策略：
- 加权交叉熵损失（Weighted Cross-Entropy Loss）
- Focal Loss
- 过采样（Oversampling）NG 样本
- 数据增强（Data Augmentation）

**Q4: 数据集中的图像分辨率是否统一？**

A: 不统一。整图分辨率为 4080×5000 ~ 13280×13332，元件图分辨率为 53×53 ~ 248×248。建议在训练前将图像统一缩放到模型输入尺寸（如 224×224 或 640×640）。

**Q5: 是否支持商业使用？**

A: 不允许。本数据集采用 Apache License 2.0 许可，仅允许学习使用。同时不得直接转售数据集本身。

**Q6: 如何获取特定缺陷类型的样本？**

A: 可以通过标注文件中的 `defect_type` 和 `defect_code` 字段筛选特定缺陷类型的样本。参见第 8 章缺陷分类编码表。

**Q7: 数据集中的设备参数日志和元数据是否包含？**

A: 暂无。

**Q8: 如何报告数据集中的标注错误？**

A: 如发现标注错误，请通过第 17 章（下一节）提供的联系方式反馈，我们将在后续版本中修正。

**Q9: 数据集是否会持续更新？**

A: 如有需要可能会。新增采集数据和修正标注错误。请关注 ModelScope 平台获取最新版本。

**Q10: 精选 NG 样本集是什么？**

A: 炉前 AOI 子数据集附带一份精选 NG 样本集（约 2,100 张），从 52,000 张 NG 图像中筛选出具有代表性、标注质量最高的样本，适用于少样本学习（Few-shot Learning）和模型预训练。

---

## 17. 联系方式

| 项目 | 信息 |
|------|------|
| 数据集名称 | Mobile_PCB_Defect |
| 发布平台 | ModelScope（魔搭社区） |
| 建设单位 | 宁波麦博韦尔移动电话有限公司 |
| 作者 | 冯叶瑶 |
| 项目名称 | SMT 产线 AOI/SPI 视觉检测高质量数据集建设 |
| 许可协议 | Apache License 2.0 |
| 数据集版本 | v1.0.0 |
| 发布日期 | 2026-06-15 |

---

## 附录 A：设备型号清单

| 序号 | 设备名称 | 品牌 | 型号 | 数量 | 工位 |
|------|----------|------|------|------|------|
| 1 | 锡膏检测仪 | KOHYOUNG | KY-8030-3 | 20 台 | SPI |
| 2 | 炉前自动光学检测仪 | MIRTEC | MV-3L | 20 台 | 炉前 AOI |
| 3 | 炉后自动光学检测仪 | MIRTEC | MV-3L | 20 台 | 炉后 AOI |
| 4 | 六面体外观检测仪 | 自研定制 | — | 20 台 | 外观检测 |
| 5 | 视觉定位系统 | 自研定制 | — | 10 套 | 抓取/装配 |
| 6 | 贴片机 | PANASONIC | NPM-W2 | 40 台 | 贴片 |
| 7 | 回流焊炉 | HELLER | 1913MK5 | 20 台 | 回流焊 |
| 8 | 锡膏印刷机 | DEK | Horizon iX | 20 台 | 锡膏印刷 |
| 9 | 数据采集服务器 | Dell | PowerEdge R750 | 4 台 | 数据采集 |
| 10 | NAS 存储 | NetApp | FAS8700 | 2 套 | 数据存储 |

---

## 附录 B：缺陷类型完整编码表

### B.1 SPI 锡膏印刷缺陷

| 编码 | 英文名称 | 中文名称 | 描述 |
|------|----------|----------|------|
| SP-000 | ok | 合格 | 锡膏印刷质量合格 |
| SP-001 | insufficient_solder | 少锡 | 锡膏量不足 |
| SP-002 | excessive_solder | 多锡 | 锡膏量过多 |
| SP-003 | misalignment | 偏移 | 锡膏位置偏移 |
| SP-004 | bridging | 桥接 | 焊盘间锡膏连通 |
| SP-005 | solder_spike | 拉尖 | 锡膏边缘尖状突起 |

### B.2 炉前 AOI 贴片缺陷

| 编码 | 英文名称 | 中文名称 | 描述 |
|------|----------|----------|------|
| AP-000 | ok | 合格 | 贴片质量合格 |
| AP-001 | missing_component | 缺件 | 元器件未贴装 |
| AP-002 | misalignment | 偏移 | 元器件位置偏离 |
| AP-003 | tombstoning | 立碑 | 元器件翘起 |
| AP-004 | wrong_polarity | 反向 | 极性方向错误 |
| AP-005 | side_stand | 侧立 | 元器件侧立 |
| AP-006 | bridging | 桥接 | 元器件间连通 |
| AP-007 | flipped | 翻转 | 元器件翻面 |
| AP-008 | wrong_component | 错件 | 型号错误 |
| AP-009 | extra_component | 多件 | 多余元器件 |
| AP-010 | damaged_component | 损伤 | 元器件损伤 |
| AP-011 | contamination | 污染 | 表面污染 |
| AP-012 | solder_paste_anomaly | 焊膏异常 | 焊膏形态异常 |
| AP-013 | billboarding | 侧立偏移 | 部分抬起 |
| AP-014 | skew | 倾斜 | 旋转超出公差 |
| AP-015 | shift_x | X方向偏移 | X轴偏移 |
| AP-016 | shift_y | Y方向偏移 | Y轴偏移 |
| AP-017 | rotation | 旋转偏移 | 角度偏移 |
| AP-018 | coplanarity | 共面度不良 | 引脚共面度差 |
| AP-019 | missing_solder_paste | 缺锡膏 | 焊盘无锡膏 |
| AP-020+ | ... | 其他 | 更多缺陷类型 |

### B.3 炉后 AOI 焊接缺陷

| 编码 | 英文名称 | 中文名称 | 描述 |
|------|----------|----------|------|
| AO-000 | ok | 合格 | 焊接质量合格 |
| AO-001 | solder_bridge | 连锡 | 焊点间连通 |
| AO-002 | insufficient_solder | 少锡 | 焊锡量不足 |
| AO-003 | no_solder | 无锡 | 焊盘无焊锡 |
| AO-004 | cold_solder | 虚焊 | 未形成有效连接 |
| AO-005 | solder_spike | 拉尖 | 焊点尖状突起 |
| AO-006 | solder_bead | 焊珠 | 焊锡球形颗粒 |
| AO-007 | excessive_solder | 多锡 | 焊锡量过多 |
| AO-008 | solder_crack | 锡裂 | 焊点裂纹 |
| AO-009 | void | 空洞 | 焊点内部空洞 |
| AO-010 | tombstoning | 立碑 | 回流焊后翘起 |
| AO-011 | misalignment | 偏移 | 焊接后偏移 |
| AO-012 | wrong_polarity | 反向 | 极性方向错误 |
| AO-013 | missing_component | 缺件 | 元器件脱落 |
| AO-014 | wrong_component | 错件 | 型号错误 |
| AO-015 | damaged | 损伤 | 元器件或焊盘损伤 |
| AO-016+ | ... | 其他 | 更多缺陷类型 |

### B.4 六面体外观缺陷

| 编码 | 英文名称 | 中文名称 | 描述 |
|------|----------|----------|------|
| VS-000 | ok | 合格 | 外观质量合格 |
| VS-001 | scratch | 划痕 | 表面划痕 |
| VS-002 | stain | 污渍 | 表面污渍 |
| VS-003 | assembly_defect | 装配不良 | 装配工艺不良 |
| VS-004 | missing_label | 标签缺失 | 标签未贴或脱落 |
| VS-005 | label_offset | 标签偏移 | 标签位置偏移 |
| VS-006 | damage | 破损 | 外观破损 |
| VS-007 | color_abnormality | 异色 | 颜色异常 |
| VS-008 | burr | 毛刺 | 边缘毛刺 |
| VS-009 | dent | 凹陷 | 表面凹陷 |
| VS-010 | foreign_object | 异物 | 表面异物 |
| VS-011+ | ... | 其他 | 更多缺陷类型 |

### B.5 视觉定位目标类别

| 编码 | 英文名称 | 中文名称 | 描述 |
|------|----------|----------|------|
| VG-000 | background | 背景 | 非目标区域 |
| VG-001 | resistor | 电阻 | 电阻元器件 |
| VG-002 | capacitor | 电容 | 电容元器件 |
| VG-003 | ic_chip | IC芯片 | 集成电路芯片 |
| VG-004 | connector | 连接器 | 连接器/插座 |
| VG-005 | assembly_part | 组装零件 | 壳体/屏幕/电池等 |
| VG-006+ | ... | 其他 | 更多目标类别 |

---

## 附录 C：数据集字段结构定义

### C.1 dataset_infos.json

```json
{
  "default": {
    "description": "SMT 产线 AOI/SPI 视觉检测高质量数据集，包含约 170 万张标注图像，覆盖 50+ 种缺陷类型。",
    "citation": "宁波麦博韦尔移动电话有限公司. Mobile_PCB_Defect. 2026. v1.0.0.",
    "homepage": "https://modelscope.cn/datasets/MYBW/Mobile_PCB_Defect",
    "license": "Apache-2.0",
    "features": {
      "image": {
        "_type": "Image"
      },
      "label": {
        "_type": "ClassLabel",
        "names": ["OK", "NG"]
      },
      "defect_type": {
        "_type": "Value",
        "dtype": "string"
      },
      "bbox": {
        "_type": "Sequence",
        "feature": {
          "_type": "Value",
          "dtype": "float32"
        }
      },
      "board_serial": {
        "_type": "Value",
        "dtype": "string"
      },
      "component_type": {
        "_type": "Value",
        "dtype": "int32"
      },
      "station": {
        "_type": "Value",
        "dtype": "string"
      },
      "line_id": {
        "_type": "Value",
        "dtype": "string"
      },
      "capture_time": {
        "_type": "Value",
        "dtype": "string"
      }
    },
    "splits": {
      "train": {
        "name": "train",
        "dataset_name": "Mobile_PCB_Defect",
        "num_examples": 1190000
      },
      "validation": {
        "name": "validation",
        "dataset_name": "Mobile_PCB_Defect",
        "num_examples": 340000
      },
      "test": {
        "name": "test",
        "dataset_name": "Mobile_PCB_Defect",
        "num_examples": 170000
      }
    }
  }
}
```

### C.2 SCADA 参数日志字段

```json
{
  "timestamp": "2024-03-15T08:23:45+08:00",
  "line_id": "S20",
  "station": "AOI_PRE",
  "equipment_id": "AOI-PRE-S20-01",
  "parameters": {
    "oven_temperature_zone1": 245.5,
    "oven_temperature_zone2": 250.0,
    "oven_temperature_zone3": 248.3,
    "oven_temperature_zone4": 252.1,
    "oven_temperature_zone5": 249.8,
    "conveyor_speed": 0.85,
    "camera_exposure_time_us": 5000,
    "camera_gain_db": 6.0,
    "light_intensity_percent": 75,
    "air_pressure_bar": 0.6
  },
  "board_info": {
    "board_serial": "1630844",
    "product_model": "MBW-X200",
    "batch_id": "B20240315-A"
  },
  "result": {
    "judgment": "NG",
    "defect_type": "missing_component",
    "confidence": 0.87
  }
}
```

### C.3 MES 元数据字段

```json
{
  "board_serial": "1630844",
  "product_model": "MBW-X200",
  "product_description": "5G 通讯终端主板",
  "batch_id": "B20240315-A",
  "batch_size": 500,
  "line_id": "S20",
  "shift": "A",
  "operator_id": "OP_A015",
  "production_date": "2024-03-15",
  "start_time": "2024-03-15T08:00:00+08:00",
  "end_time": "2024-03-15T16:00:00+08:00",
  "board_version": "REV_2.1",
  "bom_version": "BOM_V1.3",
  "solder_paste_type": "Sn96.5Ag3.0Cu0.5",
  "stencil_version": "ST_V2.0"
}
```

---

## 附录 D：变更日志

### v1.0.0（2026-05-31）

- 正式发布版本
- 数据集总规模约 170 万张图像 / 3.2968 TB
- 覆盖 6 个子数据集、≥50 种缺陷类型
- 已上传 ModelScope 平台
- 采用 Apache License 2.0 开源许可
- 标注准确率 ≥ 99%，Kappa 一致性系数 ≥ 0.85
- 已应用于 iADC 智能复判系统，AOI 误判率降低 ≥ 80%

### v0.9.0（2025-06-30）

- 完成全部数据清洗和质检
- 数据量稳定在约 150 万张
- 完善标注格式（新增 COCO 和自定义 JSON 格式）
- 完成 Kappa 一致性验证

### v0.8.0（2024-12-31）

- 新增六面体外观检测数据（~33 万张）
- 新增视觉定位抓取数据（~8 万张）
- 数据量达到约 120 万张

### v0.5.0（2024-03-15）

- 新增炉后 AOI 焊接检测数据
- 完善 Pascal VOC 标注格式
- 数据量达到约 80 万张

### v0.1.0（2023-06-30）

- 初始版本
- 包含 SPI 锡膏检测数据和炉前 AOI 贴片检测数据
- 数据量约 20 万张
- 采用 Pascal VOC 标注格式

---

<div align="center">

**Mobile_PCB_Defect**  
SMT 产线 AOI/SPI 视觉检测高质量数据集  

Copyright &copy; 2023-2026 宁波麦博韦尔移动电话有限公司  
Licensed under Apache License 2.0  

</div>


#### 下载方法 
:modelscope-code[]{type="sdk"}
:modelscope-code[]{type="git"}
