Skip to content
/ defect-detection Public
  • Notifications You must be signed in to change notification settings
  • Fork 0
  • Star 6

缺陷检测是图像处理领域一个应用广泛的问题。本课题依托科研项目,采用无人机上的图像探测器采集工厂内部货架图片;通过图片配准及比对,识别螺丝松动等缺陷。从而防止隐患的发生。也可以使用公开数据集处理,课题主要是算法,不限制算法依托的软件平台。

6 stars 0 forks Branches Tags Activity
Star
Notifications You must be signed in to change notification settings

CHEN814/defect-detection

Branches Tags

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
images preprocessing
images preprocessing
 
 
README.md
README.md
 
 
process_data.py
process_data.py
 
 
xlm2yolo.py
xlm2yolo.py
 
 

Repository files navigation

缺陷检测

缺陷检测是图像处理领域一个应用广泛的问题。本课题依托科研项目,采用无人机上的图像探测器采集工厂内部货架图片;通过图片配准及比对,识别螺丝松动等缺陷。从而防止隐患的发生。也可以使用公开数据集处理,课题主要是算法,不限制算法依托的软件平台。

环境

模型算法选择:YOLOv6
https://yolov6-docs.readthedocs.io/zh-cn/latest
其中,python =3.9;torch=2.2.0;cpu版本

数据集

数据集选择GC10-DET。GC10-DET是在真实工业中收集的表面缺陷数据集。一个真实的行业。它包含十种类型的表面缺陷,即冲孔(Pu)、焊缝(Wl)、新月形缝隙(Cg)、水斑(Water Spot)。油斑(Os)、丝斑(Ss)、夹杂物(In)、轧坑(Rp)、折痕(Cr)、腰部折痕 (Wf)。所收集的缺陷都在钢板的表面。该数据集包括3570张灰度图像。
GC10-DET数据集可以在github上获得: https://github.com/lvxiaoming2019/GC10-DET-Metallic-Surface-Defect-Matasets
因原始数据集有误,可采用链接中修正错误后的版本: http://t.csdnimg.cn/jNolA

训练集和验证集划分

训练集和验证集的划分:数据总共2294个,按照约9:1比例分训练集train和验证集val,其中训练集1998个,验证集296个。

统一格式

因为采用YOLOv6模型,需要将数据集转化成特定形式。格式转换过程如下。

images:将图片划分在训练集和验证集两个文件夹中。<br/>
annotations:train和val分别生成json文件,参考http://t.csdnimg.cn/JFkYw。<br/>
labels:数据集的标签为xml格式,需要转换成txt格式,并对数据进行归一化处理,以便yolo算法使用,参考http://t.csdnimg.cn/skq1Y。

整理后的数据集文件结构如下:

COCO 数据集

├── coco<br/>
│   ├── annotations<br/>
│   │   ├── instances_train2017.json<br/>
│   │   └── instances_val2017.json<br/>
│   ├── images<br/>
│   │   ├── train2017<br/>
│   │   └── val2017<br/>
│   ├── labels<br/>
│   │   ├── train2017<br/>
│   │   ├── val2017<br/>

YOLO格式的数据集下载链接

YOLO格式的GC10-DET数据集

链接:https://pan.baidu.com/s/11slnV0Bvpagweqxzi2UgDw?pwd=zzai <br/>
提取码:zzai

模型训练、评估、推理

配置文件准备

创建数据集配置文件

  1. 数据集组织成COCO格式后,选择YOLOv6/data/coco.yaml作为配置文件。(其他数据集格式参考官网文档,目前支持VOC格式和自定义数据集)
  2. 配置文件中train和val路径必填,test选填,其他信息按要求填好即可。

选择网络配置文件

  1. 如果是训练 COCO 数据集或与 COCO 差异较大的数据集,建议选用 yolov6n(/s/m/l).py 配置文件;
  2. 如果是训练自定义数据集,建议选用 yolov6n(/s/m/l)_finetune.py 配置文件;

模型训练

CPU

cpu训练时一直在报错,对YOLOv6源码修改,记录如下:(用gpu训练时要改回去)

  1. yolov6/utils/envs.py,第20行,device = ‘cpu’
def select_device(device):
    device = 'cpu'
    os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
    LOGGER.info('Using CPU for training... ')
    # for testing, set device to 'cpu'.
    '''
        if device == 'cpu':
        os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
        LOGGER.info('Using CPU for training... ')

    elif device:
        os.environ['CUDA_VISIBLE_DEVICES'] = device
        assert torch.cuda.is_available()
        nd = len(device.strip().split(','))
        LOGGER.info(f'Using {nd} GPU for training... ')
    cuda = device != 'cpu' and torch.cuda.is_available()
    device = torch.device('cuda:0' if cuda else 'cpu')
    '''

    return device
  1. yolov6/core/engine.py,458行,将dp_mode和ddp_model恒定为0
    def parallel_model(args, model, device):
        # If DP mode
        dp_mode = 0
        # dp_mode = device.type != 'cpu' and args.rank == -1  #For test
        if dp_mode and torch.cuda.device_count() > 1:
            LOGGER.warning('WARNING: DP not recommended, use DDP instead.\n')
            model = torch.nn.DataParallel(model)

        # If DDP mode
        ddp_mode = 0
        # ddp_mode = device.type != 'cpu' and args.rank != -1  #For test
        if ddp_mode:
            model = DDP(model, device_ids=[args.local_rank], output_device=args.local_rank)

        return model

GPU

(...)

模型推理

步骤 0. 从 YOLOv6官方github 下载一个训练好的模型权重文件,或选择您自己训练的模型;<br/>
步骤 1. 通过 tools/infer.py文件进行推理。<br/>
P5 models<br/>
python tools/infer.py --weights yolov6s.pt --source img.jpg / imgdir / video.mp4<br/>
P6 models<br/>
python tools/infer.py --weights yolov6s6.pt --img-size 1280 1280 --source img.jpg / imgdir / video.mp4<br/>

运行后,在runs/inference/exp目录下能看到对应的可视化结果。
关键参数说明见官网,网址最前面写过。

About

缺陷检测是图像处理领域一个应用广泛的问题。本课题依托科研项目,采用无人机上的图像探测器采集工厂内部货架图片;通过图片配准及比对,识别螺丝松动等缺陷。从而防止隐患的发生。也可以使用公开数据集处理,课题主要是算法,不限制算法依托的软件平台。

Resources

Readme
Activity

Stars

6 stars

Watchers

1 watching

Forks

0 forks
Report repository

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 77.0%
  • Python 23.0%

Footer

© 2024 GitHub, Inc.

玻璃钢生产厂家兴国玻璃钢雕塑制作北京周年庆典商场美陈订购江苏百货商场美陈鹤岗玻璃钢卡通雕塑设计扬州春节商场美陈防老化玻璃钢花盆芜湖景观玻璃钢雕塑郑州玻璃钢雕塑模型厂家云浮玻璃钢景观雕塑定制玻璃钢小品雕塑企业深圳商业商场美陈生产企业滁州个性化玻璃钢雕塑市场商场美陈管理规范贵阳玻璃钢泡沫雕塑广州玻璃钢人物雕塑价格合理小区玻璃钢雕塑施工哪家好商场美陈翅膀造型党建文化玻璃钢卡通雕塑规格宁德玻璃钢人物雕塑价格甘南彩色玻璃钢雕塑安装河北玻璃钢雕塑定制厂家玻璃钢花盆粘土作品玻璃钢的雕塑市场德惠定制玻璃钢花盆玻璃钢小品雕塑行情平凉仿真玻璃钢雕塑价格菏泽玻璃钢浮雕学校镂空雕塑四川特色商场美陈有哪些安徽玻璃钢伟人雕塑玻璃钢成品雕塑批发香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化