# InduVision **Repository Path**: rorop/indu-vision ## Basic Information - **Project Name**: InduVision - **Description**: 基于Milvus+ResNet的工业异常检测系统,根据图片检索相似异常,并给出解决方案 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-20 - **Last Updated**: 2025-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: Milvus, resnet, 图片检索 ## README # MVTec AD 工业异常检测系统 本系统基于 MVTec AD 数据集,使用向量数据库 Milvus 和 PostgreSQL 实现工业产品的异常检测和解决方案推荐。 ## 功能特点 - 支持 MVTec AD 数据集中的多种工业产品类别(如瓶子、螺丝等) - 基于深度学习特征提取和向量相似度搜索的异常检测 - 提供异常类型识别和解决方案推荐 - 可视化展示异常分布和检测结果 - 支持批量处理和实时检测 ## 系统要求 - Python 3.8+ - PostgreSQL 数据库 - Milvus 向量数据库 - 相关 Python 依赖包 ## 安装步骤 1. 设置环境 ```bash conda create -n mvtec python=3.11 conda activate mvtec ``` 2. 安装依赖包: ```bash pip install -r requirements.txt ``` ## 使用方法 ### 1. 数据处理 首先,需要处理 MVTec AD 数据集并导入到系统中: ```bash python batch_process_mvtec.py --dataset_path E:\ht-space\ht_AI\image_search_with_milvus\mvtec_images --categories bottle,screw ``` ``` 参数说明: - --dataset_path : MVTec AD 数据集的根目录路径 - --categories : 要处理的类别,用逗号分隔 - --max_workers : 并行处理的最大线程数(默认为4) ### 2. 运行系统 处理完数据后,可以运行异常检测系统: ```bash streamlit run app.py ``` ## 系统架构 本系统由以下几个主要组件组成: 1. 特征提取模块 :使用预训练的深度学习模型提取图像特征 2. 向量数据库 :使用 Milvus 存储和检索图像特征向量 3. 关系数据库 :使用 PostgreSQL 存储图像路径、异常类型和解决方案 4. Web 界面 :使用 Streamlit 构建交互式用户界面 ## 文件说明 - encoder.py : 图像特征提取模块 - milvus_utils.py : Milvus 向量数据库操作工具 - pg_utils.py : PostgreSQL 数据库操作工具 - batch_process_mvtec.py : 批量处理 MVTec AD 数据集的脚本 - app.py: Streamlit Web 应用 ## MVTec AD 数据集 MVTec AD 是一个工业产品异常检测数据集,包含多种工业产品的正常样本和异常样本。本系统支持以下类别: - bottle: 瓶子 - screw: 螺丝 - 其他类别可根据需要添加 ## 效果图 ### 系统界面 ![系统界面](./demo_images/system_interface.png) ### 检测结果 ![检测结果](./demo_images/detection_result.png)