# defect_detection **Repository Path**: deicide_pili/defect_detection ## Basic Information - **Project Name**: defect_detection - **Description**: 快扫模块--线上管理 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2022-10-28 - **Last Updated**: 2024-10-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 修改时间:2022.10.28 ## 0.1 紧急任务 - [ ] 零部件定位 -- 梁义远; - [ ] 整体检测流程的部署 -- 董雷震; - [ ] 防缓铁丝的算法验证 -- 刘天驰; ## 0.2 重要任务 - [ ] 各种类零部件中"重要"类型缺陷的识别算法 -- 董雷震、刘天驰、梁义远; ## 0.3 一般任务 - [ ] 螺栓: 变形 -- 刘天驰; # 1. 项目说明 ## 1.1 分工与进度 任务 ## 1.2 数据说明 ```sh /Path/CRH2A2343/202210081220CRH2A2343 # 说明: 车型/采集时间+车型 |- B1/ # 说明: 左侧相机的采集数据 |-- B1-20221008-1220-CRH2A2343-001.jpg # 说明: 深度图转换为8-bit灰度图像 |-- B1-20221008-1220-CRH2A2343-001.png # 说明:深度相机获取的深度图像 |-- B1-20221008-1220-CRH2A2343-001-x.jpg # 说明:线扫相机获去的灰度图像 |-- ... |-- ... |-- B1-20221008-1220-CRH2A2343-xxx.jpg # 说明: xxx-图像编号 |-- B1-20221008-1220-CRH2A2343-xxx.png |-- B1-20221008-1220-CRH2A2343-xxx-x.jpg |-- ... |- B2/ |-- ... |-- ... ``` **1. 补充说明** - "B1"/"B2": 这一级文件夹在服务器上是不存在的;这里只是为了区分才将其存放在两个文件夹("B1"/"B2")内; - 两个相机采集到的图像有部分重叠区域 (目的:防止漏检);但是,这部分重叠区域很小、无法进行大面积的拼接; ## 1.3 官方文档 存放于`./Docs/`文件夹内; 里面有几个重要的文件: - `精扫与快扫图片路径规范20220727.docx`: 包含数据的存储路径和命名方式; # 2. 工程文件 ## 2.1 环境配置,安装 ```sh pip install -r requirements.txt ``` ## 2.2 运行 ```sh python main.py ``` ## 2.3 与快扫模块相关的内容 - `FastScanTask.py`: 快扫模块的接口文件; - `./FastScanModules/`: 快扫模块相关算法程序的文件路径; # 3. 算法简述 ## 3.0 底板上零部件的定位 图像配准 ## 3.1 螺栓 深度学习-分类网络 # 1. 遇到的一些问题 ## 1.1 软件类 ### 1.1.1 Pillow报错 Image size (XXX pixels) exceeds limit of 178956970 pixels, could be decompression **1. 问题描述** 在可视化检测结果时,读取图像错误; **2. 原因分析** 拼接后的图片过大,超过178956970 pixels,Pillow无法读取如此大尺寸的图像; **3. 解决办法** 取消Pillow对图片大小的读取限制;方法如下所示: ```python from PIL import ImageFile ImageFile.LOAD_TRUNCATED_IMAGES = True Image.MAX_IMAGE_PIXELS = None ``` ### 1.1.2 保存的拼接图片为全白,无内容 **1. 问题描述** 拼接后的图片保存至本地`.jpg格式`时,图片内容为全白; **2. 原因分析** jpg格式的图片对图像内像素点的个数有限制,最大为65536\*65536; **3. 解决办法** 1. 保存为`.png`格式 2. 保存缩放后的图像 (目前采用此方法, 且缩放比例为0.5) ### 1.1.3 一直循环检测序列末端的几张图像 **1. 问题描述** 快扫模块一直重复检测最后两张图像; **2. 原因分析** 最后两张为非底板图像 (或非完整的底板图像),因此末端的这两张图像名称未加入到检测完成序列中,导致卡在此处重复检测 ## 1.2 算法类 # 2. 准备工作 ## 2.1 标准图 ```sh Root/StandardImage/ -| B1_head_offset_template.jpg : 用于定位车头,计算本次图像序列的偏移量; -| B1_templates_grid/ : 存储用于检测grid零部件的一系列标准图 -- src/ ---| grid_1.jpg : grid的原始图像 ---| ... --| mask/ ---| grid_1_mask.jgp : 包含每一个孔洞信息的mask图像 ---| ... -| B1_templates_else/ : 存储一些特殊零部件的一系列标准图 ```