# tile_defect_detection **Repository Path**: johnnytang666/tile_defect_detection ## Basic Information - **Project Name**: tile_defect_detection - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-07-24 - **Last Updated**: 2024-08-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 介绍 瓷砖瑕疵检测 数据集下载 ``` https://tianchi.aliyun.com/dataset/110088 ``` 下载数据集放到datasets文件夹中 # 整体思路 - 1. 解决瓷砖外很多黑空间会有异常检查点问题,使用seg分割出瓷砖 - 1. 压缩图片到64*64 - 2. 使用labelme对图片进行标注 - 3. 将json文件转换为yolo格式的txt文件 - 4. 将数据集分为训练集和验证集 - 5. 训练模型 - 2. 瑕疵检测 - 1. 将json文件转换为yolo格式的txt文件 (分类 框中心点x/图片宽 框中心点y/图片高 框宽/图片宽 框高/图片高) - 2. 将数据集分为训练集和验证集 - 3. 训练模型 - 4. 预测 - 3. UI界面 - 1. UI上传图片保存本地 - 2. 使用seg模型找到瓷砖并截取出来 - 3. 预测方法得到预测结果保存本地 - 4. 显示预测结果 # 代码 ## 1. Seg 图像分割出瓷砖 ### 1.图片压缩(不做图片压缩的话,模型效果很差) 将所以图片压缩到64*64,图片从 `dataset/tile_seg_train/images_src `生成到 `dataset/tile_seg_train/images` ``` src/tools/resize_image.py ``` ### 2.使用labelme对图片进行标注 将标注保存到`dataset/tile_seg_train/jsons` ``` Labelme --labels tile images ``` #### 3.labelme json -> yolo 将转换yolo格式文件保存到`dataset/tile_seg_train/lables` ``` src/tools/labelme2yolo.py ``` ### 4.将数据集分为训练集和验证集 yolo格式文件保存到`dataset/tile_seg/` ``` src/tools/split_dataset.py ``` ### 5.训练模型 修改文件`src/seg/train_seg/tile-seg.yaml` 和 `src/seg/train_seg/yolov8n-seg-tile.yaml`, 运行下面代码训练模型 ``` src/seg/train_seg/seg_train_tile.py ``` ## 2. Detect 瑕疵检测 ### 数据预处理 - 1. 运行将json文件转换为yolo格式的txt文件(旧的效果不好) ``` src/tools/json2yolo.py ``` - 1. 切图再对应生成yolo格式的txt文件(新) ``` src/tools/slice_image.py ``` 对应文件生成到 data/tcdata 文件夹中 - 2. 运行将数据集分为训练集和验证集 ``` src/tools/split_dataset.py ``` 对应文件生成到 data/tile 文件夹中 ### 训练 - 1. 运行训练模型 ``` src/train/train.py ``` ### 预测 - 2. 运行预测 ``` src/predict/predict.py ``` ## 3. UI - 1. 根目目录运行UI ``` streamlit run src/main_ui.py ```