一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用YOLOX檢測(cè)PCB的缺陷

微云疏影 ? 來源:磐創(chuàng)AI ? 作者:磐創(chuàng)AI ? 2022-12-07 10:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

PCB(印刷電路板)

我知道,你一定在問,什么是PCB?不是嗎?對(duì)于不知道PCB是什么的人,這里有一個(gè)來自維基百科的定義:

PCB(Printed Circuit Board),中文名稱為印制電路板,又稱印刷線路板,是重要的電子部件,是電子元器件的支撐體,是電子元器件電氣相互連接的載體。由于它是采用電子印刷術(shù)制作的,故被稱為“印刷”電路板。[1]

我打賭你一生中至少見過一次PCB,但可能不想知道它是什么。以下是維基百科DVD讀取器上的PCB圖像:

poYBAGOP8-SAA45dAAH6VCxC6qQ989.jpg

PCB無處不在。幾乎所有的電子設(shè)備都有一個(gè)隱藏在其中的印刷電路板。在很多情況下,這些PCB在設(shè)計(jì)時(shí)或使用后都可能存在缺陷。

以下是互聯(lián)網(wǎng)上列出的PCB中一些常見缺陷的列表,以及免費(fèi)提供的數(shù)據(jù)集中的示例圖像?.

1.Opens

2.Excessive solder

3.Component shifting

4.Cold joints

5.Solder bridges

6.Webbing and splashes

7.Lifted pads

poYBAGOP8-WAUnwDAADROcj_9ss904.jpg

我們不會(huì)深入探討它們的確切含義,因?yàn)檫@不是博客的內(nèi)容。但是,從懂一點(diǎn)計(jì)算機(jī)視覺深度學(xué)習(xí)的計(jì)算機(jī)工程師的角度來看,似乎檢測(cè)PCB數(shù)字圖像中的缺陷是一個(gè)可以解決的問題。

我們將使用mmdetection? 檢測(cè)PCB圖像中的缺陷。OpenMMLab? 是一個(gè)深度學(xué)習(xí)庫,擁有計(jì)算機(jī)視覺領(lǐng)域大多數(shù)最先進(jìn)實(shí)現(xiàn)的預(yù)訓(xùn)練模型。它實(shí)現(xiàn)了幾乎所有眾所周知的視覺問題,如分類、目標(biāo)檢測(cè)與分割、姿態(tài)估計(jì)、圖像生成、目標(biāo)跟蹤等等。

YOLOX:2021超越Y(jié)OLO系列?

本文中,我們將使用YOLOX? ,我們將微調(diào)mmdetection?. YOLOX? 是2021發(fā)布的最先進(jìn)模型,是YOLO系列的改進(jìn)。作者做出了一些重大改進(jìn),如下所示。

1.引入SimOTA進(jìn)行標(biāo)簽分配

2.移除錨箱

3.注意數(shù)據(jù)增強(qiáng)

4.用于檢測(cè)和分類的獨(dú)立頭

poYBAGOP8-aACbuGAACk8npiz-Y763.jpg

之前從v3到v5的YOLO系列都有一個(gè)單一的預(yù)測(cè)頭,其中包括邊界框預(yù)測(cè)、分類分?jǐn)?shù)預(yù)測(cè)以及對(duì)象性分?jǐn)?shù)預(yù)測(cè),如上圖上半部分所示。

這在YOLOX中發(fā)生了變化? 作者選擇使用具有獨(dú)立頭的解耦頭進(jìn)行所有預(yù)測(cè)的系列。

如圖所示,檢測(cè)頭和分類頭位于不同的頭中。這有助于改善訓(xùn)練期間的收斂時(shí)間(如圖3所示),并略微提高模型精度。

pYYBAGOP8-aAQM6bAAArCH-vThU619.jpg

由于分離為兩個(gè)頭部,參數(shù)數(shù)量顯著增加,因此模型的速度確實(shí)受到了影響。正如我們?cè)趫D4中看到的,YOLOX-L比YOLOv5-L慢一點(diǎn)。它也有專門為參數(shù)低得多的邊緣設(shè)備構(gòu)建的微型版本。

poYBAGOP8-eAP7ZXAADXcYWac4k098.jpg

與以前最先進(jìn)的對(duì)象檢測(cè)模型相比,它們?cè)谄骄确矫娲_實(shí)有所提高,但FPS略有下降。

pYYBAGOP8-eAAj4NAAD_BCVXymA438.jpg

最后,正如偉大的萊納斯·托瓦爾茲所說,

廢話少說。放碼過來。

讓我們直接跳到代碼里!

使用mmdetection微調(diào)YOLOX

我們有一個(gè)名為DeepPCB的開源PCB缺陷數(shù)據(jù)集?. 該數(shù)據(jù)集由1500個(gè)圖像對(duì)組成,每個(gè)圖像對(duì)具有一個(gè)無缺陷模板圖像和一個(gè)具有缺陷的圖像,該圖像具有6種常見類型缺陷的邊界框注釋,即open, mouse-bite, short, spur, spurious copper, 和pin-h(huán)ole。

圖像的尺寸為640×640,在我們的YOLOX案例中非常完美? 在相同的維度上進(jìn)行訓(xùn)練。

OpenMMLab?

OpenMMLab可以非常輕松地微調(diào)最先進(jìn)的模型,只需很少的代碼更改。它具有針對(duì)特定用例的全面API。我們將使用mmdetection? 用于微調(diào)YOLOX? 在DeepPCB上? 數(shù)據(jù)集。

數(shù)據(jù)集格式

注:PCB缺陷數(shù)據(jù)集是一個(gè)開源數(shù)據(jù)集,取自具有MIT許可證的DeepPCB Github repo

我們需要將數(shù)據(jù)集修改為COCO格式或Pascal VOC格式來重新訓(xùn)練模型。這是MMD檢測(cè)所必需的? 加載自定義數(shù)據(jù)集進(jìn)行訓(xùn)練。

出于訓(xùn)練目的,我們將采用COCO格式。你無需費(fèi)盡心思將數(shù)據(jù)集轉(zhuǎn)換為COCO格式,因?yàn)樗呀?jīng)為你完成了。你可以從這里直接下載轉(zhuǎn)換后的數(shù)據(jù)集。整個(gè)數(shù)據(jù)集與DeepPCB中的數(shù)據(jù)集相同? 只需添加帶有COCO格式注釋的訓(xùn)練和測(cè)試JSON文件即可進(jìn)行訓(xùn)練。

我將不進(jìn)行COCO格式的轉(zhuǎn)換,因?yàn)槟憧梢哉业皆S多文檔,就像mmdetection文檔中提到的那樣。

將此數(shù)據(jù)集轉(zhuǎn)換為COCO格式的腳本:

import json

import os

TRAIN_PATH = 'PCBData/PCBData/trainval.txt'

TEST_PATH = 'PCBData/PCBData/test.txt'

def create_data(data_path, output_path):

images = []

anns = []

with open(data_path, 'r') as f:

data = f.read().splitlines()

dataset = []

counter = 0

for idx, example in enumerate(data):

image_path, annotations_path = example.split()

image_path = os.path.join('PCBData', 'PCBData', image_path.replace('.jpg', '_test.jpg'))

annotations_path = os.path.join('PCBData', 'PCBData', annotations_path)

with open(annotations_path, 'r') as f:

annotations = f.read().splitlines()

for ann in annotations:

x, y, x2, y2 = ann.split()[:-1]

anns.a(chǎn)ppend({

'image_id': idx,

'iscrowd': 0,

'area': (int(x2)-int(x)) * (int(y2)-int(y)),

'category_id': int(ann.split()[-1])-1,

'bbox': [int(x), int(y), int(x2)-int(x), int(y2)-int(y)],

'id': counter

})

counter += 1

images.a(chǎn)ppend({

'file_name': image_path,

'width': 640,

'height': 640,

'id': idx

})

dataset = {

'images': images,

'annotations': anns,

'categories': [

{'id': 0, 'name': 'open'},

{'id': 1, 'name': 'short'},

{'id': 2, 'name': 'mousebite'},

{'id': 3, 'name': 'spur'},

{'id': 4, 'name': 'copper'},

{'id': 5, 'name': 'pin-h(huán)ole'},

with open(output_path, 'w') as f:

json.dump(dataset, f)

create_data(TRAIN_PATH, 'train.json')

create_data(TEST_PATH, 'test.json')

數(shù)據(jù)集配置

下一步是修改數(shù)據(jù)集配置以使用自定義數(shù)據(jù)集。我們需要添加/修改特定的內(nèi)容,如類的數(shù)量、注釋路徑、數(shù)據(jù)集路徑、epoch數(shù)量、基本配置路徑和一些數(shù)據(jù)加載器參數(shù)。

我們將復(fù)制一個(gè)預(yù)先編寫的YOLOX-s配置,并為我們的數(shù)據(jù)集修改它。其余的配置,如增強(qiáng)、優(yōu)化器和其他超參數(shù)將是相同的。

我們不會(huì)改變太多,因?yàn)檫@個(gè)博客的主要目的是熟悉手頭的問題,嘗試最先進(jìn)的YOLOX架構(gòu),并實(shí)驗(yàn)mmdetection庫。我們將把這個(gè)文件命名為yolox_s_config。py并將其用于訓(xùn)練。

我們將添加類名并更改預(yù)測(cè)頭的類數(shù)。由于將從根目錄而不是configs目錄加載配置,因此需要更改基本路徑。

_base_ = ['configs/_base_/schedules/schedule_1x.py', 'configs/_base_/default_runtime.py']

classes = ('open', 'short', 'mousebite', 'spur', 'copper', 'pin-h(huán)ole')

bbox_h(yuǎn)ead = dict(type='YOLOXHead', num_classes=6, in_channels=128, feat_channels=128)

我們需要稍微修改train dataset loader以使用我們的類和注釋路徑。

train_dataset = dict(

type='MultiImageMixDataset',

dataset=dict(

type=dataset_type,

classes=classes,

ann_file='train.json',

img_prefix='',

pipeline=[

dict(type='LoadImageFromFile'),

dict(type='LoadAnnotations', with_bbox=True)

],

filter_empty_gt=False,

),

pipeline=train_pipeline)

我們需要在這里對(duì)驗(yàn)證和測(cè)試集執(zhí)行相同的操作。這里我們不打算使用單獨(dú)的測(cè)試集,相反,我們將使用相同的測(cè)試集進(jìn)行驗(yàn)證和測(cè)試。

data = dict(

samples_per_gpu=8,

workers_per_gpu=4,

persistent_workers=True,

train=train_dataset,

val=dict(

type=dataset_type,

classes=classes,

ann_file='test.json',

img_prefix='',

pipeline=test_pipeline),

test=dict(

type=dataset_type,

classes=classes,

ann_file='test.json',

img_prefix='',

pipeline=test_pipeline))

我們將只對(duì)模型進(jìn)行20個(gè)epoch的訓(xùn)練,并每5個(gè)階段獲得一次驗(yàn)證結(jié)果。我們不需要再訓(xùn)練了,因?yàn)槲覀冎辉?0個(gè)epoch里取得了不錯(cuò)的成績。

max_epochs = 20

interval = 5

訓(xùn)練

我們很樂意使用數(shù)據(jù)集部分。接下來我們需要做的是訓(xùn)練模型。mmdetection最棒的部分? 是,所有關(guān)于訓(xùn)練的事情都已經(jīng)為你們做了。你所需要做的就是從tools目錄運(yùn)行訓(xùn)練腳本,并將路徑傳遞給我們?cè)谏厦鎰?chuàng)建的數(shù)據(jù)集配置。

python3 tools/train.py yolox_s_config.py

你已經(jīng)成功訓(xùn)練了!

推理

讓我們看看我們的模型在一些示例上的表現(xiàn)。你一定想知道,訓(xùn)練模型有多容易,必須有一個(gè)命令來對(duì)圖像進(jìn)行推理?

有!但是,不要讓訓(xùn)練模型的簡單程序拖累了你。讓我們編寫一些用于推理的代碼,但讓你感到高興的是,它不到10行代碼。

from mmdet.a(chǎn)pis import init_detector, inference_detector, show_result_pyplot

config_file = 'yolox_s_config.py'

checkpoint_file = 'best_bbox_mAP_epoch_20.pth'

device = 'cuda:0'

# init a detector

model = init_detector(config_file, checkpoint_file, device=device)

# inference the demo image

image_path = 'demo.jpg'

op = inference_detector(model, image_path)

show_result_pyplot(model, image_path, op, score_thr=0.6)

這將顯示一個(gè)帶有邊界框的圖像,邊界框上繪制有預(yù)測(cè)的類名。下面是一個(gè)來自數(shù)據(jù)集的示例圖像,其中包含模型預(yù)測(cè)。

poYBAGOP8-iAauhBAADGTWEaNMU698.jpg

我們做到了!

你也可以嘗試我們預(yù)先訓(xùn)練的模型,并使用它進(jìn)行推理。

結(jié)論

今天,我們了解了現(xiàn)實(shí)世界中普遍存在的一個(gè)新問題,并嘗試使用像YOLOX這樣的最先進(jìn)模型來解決這個(gè)問題?.

我們還使用了mmdetection? ,它是深度學(xué)習(xí)社區(qū)中用于訓(xùn)練對(duì)象檢測(cè)模型的領(lǐng)先開源庫之一。如果我不提如何檢測(cè),那將是不公平的? 。

在幾乎沒有任何自定義腳本的情況下,讓我們?nèi)绱丝焖佟⑤p松地解決問題。

磐創(chuàng)AI

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 計(jì)算機(jī)視覺
    +關(guān)注

    關(guān)注

    9

    文章

    1709

    瀏覽量

    46786
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5561

    瀏覽量

    122816
  • PCB
    PCB
    +關(guān)注

    關(guān)注

    1

    文章

    2099

    瀏覽量

    13204
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    飲料液位及瓶蓋缺陷檢測(cè)視覺系統(tǒng)

    在合適的光源條件下,連接了多個(gè)相機(jī)的POC系列能夠成功檢測(cè)到隨機(jī)故意放置在產(chǎn)線上的有缺陷的瓶裝飲料(這些缺陷包括:液位過高或過低,瓶蓋未正確擰緊,標(biāo)簽打印錯(cuò)誤和瓶中液體有雜質(zhì)/沉淀物)
    的頭像 發(fā)表于 07-09 14:28 ?126次閱讀
    飲料液位及瓶蓋<b class='flag-5'>缺陷</b><b class='flag-5'>檢測(cè)</b>視覺系統(tǒng)

    如何實(shí)現(xiàn)高品質(zhì)PCB缺陷焊接

    隨著電子產(chǎn)品向微型化、高密度化發(fā)展,PCB焊接面臨超細(xì)元件、多層結(jié)構(gòu)和熱敏感材料的挑戰(zhàn)。激光焊錫技術(shù)憑借其非接觸、高精度和熱影響小的特性,成為解決傳統(tǒng)焊接缺陷的關(guān)鍵方案。
    的頭像 發(fā)表于 06-26 10:07 ?321次閱讀

    堆焊過程熔池相機(jī)實(shí)時(shí)缺陷檢測(cè)技術(shù)

    在現(xiàn)代工業(yè)制造中,堆焊技術(shù)廣泛應(yīng)用于機(jī)械、能源、化工、航空航天等領(lǐng)域,用于修復(fù)磨損部件或增強(qiáng)工件表面性能。然而,傳統(tǒng)堆焊過程的質(zhì)量控制主要依賴人工經(jīng)驗(yàn)或焊后檢測(cè),難以實(shí)現(xiàn)實(shí)時(shí)監(jiān)控,導(dǎo)致缺陷發(fā)現(xiàn)滯后
    的頭像 發(fā)表于 05-15 17:34 ?268次閱讀
    堆焊過程熔池相機(jī)實(shí)時(shí)<b class='flag-5'>缺陷</b><b class='flag-5'>檢測(cè)</b>技術(shù)

    高光譜相機(jī)在工業(yè)檢測(cè)中的應(yīng)用:LED屏檢、PCB缺陷檢測(cè)

    隨著工業(yè)檢測(cè)精度要求的不斷提升,傳統(tǒng)機(jī)器視覺技術(shù)逐漸暴露出對(duì)非可見光物質(zhì)特性識(shí)別不足、復(fù)雜缺陷檢出率低等局限性。高光譜相機(jī)憑借其獨(dú)特的光譜分析能力,為工業(yè)檢測(cè)提供了革命性的解決方案。以下結(jié)合中達(dá)瑞
    的頭像 發(fā)表于 04-23 16:36 ?346次閱讀

    【功能上線】華秋PCB下單新增“3D仿真預(yù)覽”,讓PCB設(shè)計(jì)缺陷無處遁形

    華秋PCB下單新增“3D仿真預(yù)覽”,讓PCB設(shè)計(jì)缺陷無處遁形
    的頭像 發(fā)表于 03-28 14:54 ?1242次閱讀
    【功能上線】華秋<b class='flag-5'>PCB</b>下單新增“3D仿真預(yù)覽”,讓<b class='flag-5'>PCB</b>設(shè)計(jì)<b class='flag-5'>缺陷</b>無處遁形

    安泰電壓放大器在缺陷局部的無損檢測(cè)研究中的應(yīng)用

    實(shí)驗(yàn)名稱:基于LDR振型的損傷檢測(cè)方法實(shí)驗(yàn) 研究方向:隨著科技的不斷進(jìn)步,材料中的腐蝕、分層等缺陷是導(dǎo)致結(jié)構(gòu)剛度下降、破壞失效的主要原因。為保證結(jié)構(gòu)的安全性與可靠性,對(duì)其進(jìn)行無損檢測(cè)是重要的。首先
    的頭像 發(fā)表于 03-24 11:12 ?318次閱讀
    安泰電壓放大器在<b class='flag-5'>缺陷</b>局部的無損<b class='flag-5'>檢測(cè)</b>研究中的應(yīng)用

    X-Ray檢測(cè)設(shè)備能檢測(cè)PCBA的哪些缺陷

    X-Ray檢測(cè)設(shè)備可以檢測(cè)PCB(電路板)的多種內(nèi)部及外部缺陷,如果按照區(qū)域區(qū)分的話,主要能觀測(cè)到一下幾類缺陷: 焊接
    的頭像 發(fā)表于 02-08 11:36 ?672次閱讀

    PCB焊接質(zhì)量檢測(cè)

    檢測(cè)。焊接常見的缺陷類型1.焊錫球焊錫球是指在元器件焊點(diǎn)周圍出現(xiàn)的小球狀焊料。這種缺陷可能導(dǎo)致元器件之間發(fā)生短路,從而影響電路的正常工作。焊錫球的形成通常與焊接過
    的頭像 發(fā)表于 02-07 14:00 ?603次閱讀
    <b class='flag-5'>PCB</b>焊接質(zhì)量<b class='flag-5'>檢測(cè)</b>

    3daoi光學(xué)檢測(cè)儀和2DAOI對(duì)比有什么優(yōu)點(diǎn)

    3D AOI能夠檢測(cè)PCB上的高度差異和立體缺陷,能夠提高了檢測(cè)效率
    的頭像 發(fā)表于 01-22 11:02 ?1101次閱讀

    方便面面餅外觀檢測(cè):精準(zhǔn)識(shí)別0.5mm2細(xì)微缺陷

    在上篇文章中,我們了解了食品行業(yè)在外觀缺陷檢測(cè)時(shí)的現(xiàn)有難點(diǎn),并分享了阿丘科技對(duì)鵪鶉蛋進(jìn)行外觀缺陷檢測(cè)時(shí)的典型場景案例,詳細(xì)內(nèi)容可查看《鵪鶉蛋的外觀
    的頭像 發(fā)表于 12-12 17:35 ?955次閱讀
    方便面面餅外觀<b class='flag-5'>檢測(cè)</b>:精準(zhǔn)識(shí)別0.5mm2細(xì)微<b class='flag-5'>缺陷</b>

    X-RAY檢測(cè)設(shè)備用于檢測(cè)集成電路缺陷瑕疵

    X-ray檢測(cè)設(shè)備在集成電路缺陷瑕疵檢測(cè)中發(fā)揮著至關(guān)重要的作用。以下是對(duì)X-ray檢測(cè)設(shè)備在集成電路缺陷瑕疵
    的頭像 發(fā)表于 12-02 18:07 ?886次閱讀
    X-RAY<b class='flag-5'>檢測(cè)</b>設(shè)備用于<b class='flag-5'>檢測(cè)</b>集成電路<b class='flag-5'>缺陷</b>瑕疵

    PCB線路板常見缺陷原因分析:解鎖電路板制造的隱秘挑戰(zhàn)

    一站式PCBA智造廠家今天為大家講講PCB線路中常見的缺陷有哪些?常見PCB缺陷及其產(chǎn)生原因。在電子設(shè)備制造過程中,PCB(印刷電路板)的質(zhì)
    的頭像 發(fā)表于 11-08 09:45 ?953次閱讀

    X射線工業(yè)CT檢測(cè)設(shè)備用于復(fù)合新材料內(nèi)部缺陷檢測(cè)

    X射線工業(yè)CT檢測(cè)設(shè)備在復(fù)合新材料內(nèi)部缺陷檢測(cè)中發(fā)揮著重要作用。以下是關(guān)于該設(shè)備在復(fù)合新材料內(nèi)部缺陷檢測(cè)中的詳細(xì)分析:一、X射線工業(yè)CT
    的頭像 發(fā)表于 09-10 18:23 ?1004次閱讀
    X射線工業(yè)CT<b class='flag-5'>檢測(cè)</b>設(shè)備用于復(fù)合新材料內(nèi)部<b class='flag-5'>缺陷</b><b class='flag-5'>檢測(cè)</b>

    ATA-8202射頻功率放大器在應(yīng)力導(dǎo)波缺陷檢測(cè)研究中的應(yīng)用

    實(shí)驗(yàn)名稱:基于應(yīng)力導(dǎo)波的缺陷檢測(cè)的研究研究方向:無損檢測(cè)、缺陷定位實(shí)驗(yàn)?zāi)康模夯趬弘妭鞲蟹ㄟM(jìn)行導(dǎo)管缺陷
    的頭像 發(fā)表于 08-21 11:43 ?620次閱讀
    ATA-8202射頻功率放大器在應(yīng)力導(dǎo)波<b class='flag-5'>缺陷</b><b class='flag-5'>檢測(cè)</b>研究中的應(yīng)用

    明治案例 | 【非標(biāo)缺陷檢測(cè)】 FEB管黑色雜質(zhì)

    的時(shí)候必須要經(jīng)過嚴(yán)格的質(zhì)檢以保證產(chǎn)品的質(zhì)量,及時(shí)檢測(cè)及次品剔除對(duì)質(zhì)量控制和成本控制是非常重要的,這也是制造業(yè)進(jìn)一步升級(jí)的重要基石。而在機(jī)器視覺中,缺陷檢測(cè)功能是機(jī)器
    的頭像 發(fā)表于 08-06 08:25 ?513次閱讀
    明治案例 | 【非標(biāo)<b class='flag-5'>缺陷</b><b class='flag-5'>檢測(cè)</b>】 FEB管黑色雜質(zhì)