# indu-vision **Repository Path**: thinkinapp/indu-vision ## Basic Information - **Project Name**: indu-vision - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-23 - **Last Updated**: 2026-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # indu-vision — 工业产品异常检测系统 基于 MVTec AD 数据集的工业异常检测系统,使用深度学习特征提取 + 向量相似度检索,实现异常检测和解决方案推荐。 ## 功能特点 - **向量相似度检索**: 基于 ResNet34 特征提取 + Milvus Lite 向量数据库 - **异常类型识别**: 支持瓶子、螺丝等多种工业产品类别的异常分类 - **解决方案推荐**: 检测到异常后自动给出处理建议 - **纯本地架构**: Milvus Lite + SQLite,无需安装任何外部服务 - **双界面支持**: Streamlit Web 可视化界面 + FastAPI 接口 - **批量导入**: 一键导入 MVTec AD 数据集 - **中英文双语**: 界面默认英文,侧边栏可一键切换为中文(语言状态通过 URL `?lang=` 持久化) ## 系统架构 ``` indu-vision/ ├── app.py # Streamlit Web 主应用 ├── api.py # FastAPI 接口 (uvicorn) ├── i18n.py # 中英文双语(默认英文) ├── encoder.py # ResNet34 图像特征提取 ├── milvus_utils.py # Milvus 向量数据库操作 ├── pg_utils.py # SQLite 数据库操作 (异常类型/解决方案) ├── batch_process_mvtec.py # MVTec AD 数据集批量导入脚本 ├── gpu_start.bat # GPU 模式一键启动 ├── import_mvtec.bat # 数据导入一键脚本 ├── .env.example # 环境变量模板 └── requirements.txt # Python 依赖 ``` ## 环境要求 - Python 3.10+ - pip 依赖见 `requirements.txt` - 12GB+ 磁盘空间(含 MVTec AD 数据集和模型缓存) ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 配置环境变量 ```bash cp .env.example .env ``` `.env` 内容(无需修改即可使用): ``` MILVUS_ENDPOINT=data/milvus.db # Milvus Lite 本地数据库 COLLECTION_NAME=my_image_collection # 向量集合名称 MODEL_NAME=resnet34 # 特征提取模型 MODEL_DIM=512 # 特征向量维度 DB_PATH=data/indu_vision.db # SQLite 数据库路径 ``` ### 3. 导入 MVTec AD 数据集 #### 方式一: 一键脚本(Windows) ```cmd import_mvtec.bat ``` #### 方式二: 命令行 ```bash # 设置 HuggingFace 镜像(国内必需) set HF_ENDPOINT=https://hf-mirror.com set HF_HOME=models/huggingface # 导入 bottle + screw 两类数据 python batch_process_mvtec.py --dataset_path data/mvtec_images --categories bottle,screw ``` 数据集目录结构应为: ``` data/mvtec_images/ ├── bottle/ │ ├── train/good/*.png │ └── test/{broken_large,broken_small,contamination,good}/*.png └── screw/ ├── train/good/*.png └── test/{manipulated_front,thread_side,thread_top,scratch_head,scratch_neck,good}/*.png ``` ### 4. 启动系统 ```cmd gpu_start.bat ``` 或手动启动: ```bash streamlit run app.py --server.headless true ``` 浏览器自动打开 `http://localhost:8501`。 ### 5. API 模式(可选) ```bash uvicorn api:app --host 0.0.0.0 --port 8000 ``` ## 支持的异常类型 | 产品 | 异常类型 | 说明 | |------|----------|------| | 瓶子 (bottle) | broken_large | 大面积破损 | | 瓶子 | broken_small | 小面积破损 | | 瓶子 | contamination | 表面污染 | | 螺丝 (screw) | manipulated_front | 前端异常 | | 螺丝 | thread_side | 侧螺纹异常 | | 螺丝 | thread_top | 顶部螺纹异常 | | 螺丝 | scratch_head | 头部划痕 | | 螺丝 | scratch_neck | 颈部划痕 | ## 效果图 ### 系统界面 ![系统界面](./demo_images/system_interface.png) ### 检测结果 ![检测结果](./demo_images/detection_result.png) ## 依赖项 | 包 | 用途 | |----|------| | streamlit | Web 界面 | | torch + timm | ResNet34 模型与特征提取 | | pymilvus + milvus-lite | 嵌入式向量数据库 | | Pillow + opencv-python | 图像处理 | | fastapi + uvicorn | API 服务 | ## 注意事项 - 首次运行会自动下载 ResNet34 模型到 `models/huggingface/`(约 85MB) - 国内用户需设置 `HF_ENDPOINT=https://hf-mirror.com` 以正常下载模型 - 数据库和向量数据存储在 `data/` 目录下,不提交到 Git - MVTec AD 数据集可从 [官方网站](https://www.mvtec.com/company/research/datasets/mvtec-ad) 下载 ## 版本基线 / Baselines | Tag | 说明 | |-----|------| | `cvic2026-paper-baseline` | **CVIC2026 论文基线** — RetriVision 免标注工业视觉检测,6 页会议投稿(docx + pdf,4 表 8 图,GB/T 7714-2015 参考文献 16 条),含全部实验脚本与指标 JSON | | `v1.2-baseline` | 同上(版本序列命名,与上一个 tag 指向同一提交) | | `V1.2-fixbug-stable` | V1.2 bug 修复稳定版 | | `v1.1-stable` | v1.1 稳定版 | > Tag 说明(annotated message)与提交可用 `git show ` 查看;tag 消息模板留档于 > `paper/scripts/_tag_msg.txt`。 > **CVIC2026 paper baseline (English).** RetriVision: annotation-free visual inspection for > industrial assets, submitted to CVIC 2026. MVTec AD visible light: mean image-level AUROC > **0.919** over the 10 representative categories; PVEL-AD near-infrared evaluated with a > 1,200-image normal bank; CPU-only inference at **21.4 ms/image** (no GPU required). > Authors: Jun Tang\*, Caixian Ye, Jinwei Luo — School of Computing and Artificial > Intelligence, Guangzhou Xinhua University, Guangzhou, 510520, China. > > Datasets (`paper/data`, 6.1 GB MVTec AD + PVEL-AD) and `paper/backup` are excluded from > version control; see `.gitignore`. ## License MIT