(4)paddle---PCB检测的例子

1、主要参考

(1)大佬教程

基于PaddleDetection的PCB瑕疵检测_AI Studio的博客-CSDN博客

(2)blibli视频

253-14_PCB电路板缺陷检测_项目配置文件_dec_哔哩哔哩_bilibili

(3)coco数据集说明

『深度应用』目标检测coco数据集格式介绍 - 腾讯云开发者社区-腾讯云

2、模型的下载

(1)下载地址

北京大学智能机器人开放实验室

(4)paddle---PCB检测的例子_第1张图片

 印刷电路板(PCB)瑕疵数据集。它是一个公共合成PCB数据集,包含1386张图像,具有6种缺陷(漏孔、鼠咬、开路、短路、杂散、杂铜),用于图像检测、分类和配准任务

3、模型的特征查看

(1)查看各个缺陷的分布情况(类别数是否均匀,如果不均匀可以考虑调整loss的计算方法

(2)查看锚框的长宽比,看看都是什么形状的

(3)看看锚框的大小(和原图大小的比值,看看是不是都是小物体

(4)文件pcb_dataset_analysis.py如下

import json
from collections import defaultdict
import matplotlib.pyplot as plt
%matplotlib inline

with open("/home/aistudio/work/PCB_DATASET/Annotations/train.json") as f:
    data = json.load(f)

imgs = {}
for img in data['images']:
    imgs[img['id']] = {
        'h': img['height'],
        'w': img['width'],
        'area': img['height'] * img['width'],
    }

hw_ratios = []
area_ratios = []
label_count = defaultdict(int)
for anno in data['annotations']:
    hw_ratios.append(anno['bbox'][3]/anno['bbox'][2])
    area_ratios.append(anno['area']/imgs[anno['image_id']]['area'])
    label_count[anno['category_id']] += 1

#查看各个缺陷的分布情况(类别数是否均匀,如果不均匀可以考虑调整loss的计算方法)
print( label_count, len(data['annotations']) / len(data['images']) )

#查看锚框的长宽比,看看都是什么形状的
plt.hist(hw_ratios, bins=100, range=[0, 2])
plt.show()

#看看锚框的大小(和原图大小的比值,看看是不是都是小物体)
plt.hist(area_ratios, bins=100, range=[0, 0.005])
plt.show()

4、下载paddle的object项目

4.1 下载

(1)paddle官网

飞桨PaddlePaddle-源于产业实践的开源深度学习平台

(2)下载指定PaddleDetection

(4)paddle---PCB检测的例子_第2张图片

 (3)对应的github地址如下

https://github.com/PaddlePaddle/PaddleDetection

4.2安装相关环境

#(1)在对应目录下
conda activate chenpaddle_cp310

#(2)安装相关环境
pip install -r requirements.txt 

5、配置和训练

???

6、基于PP-YOLOE+的PCB缺陷检测

(1)以下引用参考来自paddle官网

基于PP-YOLOE+的PCB缺陷检测 - 飞桨AI Studio基于PP-YOLOE+实现的PCB缺陷检测方案全流程实战,覆盖训练、调优、部署等 - 飞桨AI Studiohttps://aistudio.baidu.com/aistudio/projectdetail/4670836

黑盒教程真有意思 :(

(2)?????????

你可能感兴趣的:(paddlepaddle,paddle)