国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用YOLOX檢測PCB的缺陷

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

掃碼添加小助手

加入工程師交流群

PCB(印刷電路板)

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

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

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

poYBAGOP8-SAA45dAAH6VCxC6qQ989.jpg

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

以下是互聯網上列出的PCB中一些常見缺陷的列表,以及免費提供的數據集中的示例圖像?.

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

我們不會深入探討它們的確切含義,因為這不是博客的內容。但是,從懂一點計算機視覺深度學習的計算機工程師的角度來看,似乎檢測PCB數字圖像中的缺陷是一個可以解決的問題。

我們將使用mmdetection? 檢測PCB圖像中的缺陷。OpenMMLab? 是一個深度學習庫,擁有計算機視覺領域大多數最先進實現的預訓練模型。它實現了幾乎所有眾所周知的視覺問題,如分類、目標檢測與分割、姿態(tài)估計、圖像生成、目標跟蹤等等。

YOLOX:2021超越YOLO系列?

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

1.引入SimOTA進行標簽分配

2.移除錨箱

3.注意數據增強

4.用于檢測和分類的獨立頭

poYBAGOP8-aACbuGAACk8npiz-Y763.jpg

之前從v3到v5的YOLO系列都有一個單一的預測頭,其中包括邊界框預測、分類分數預測以及對象性分數預測,如上圖上半部分所示。

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

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

pYYBAGOP8-aAQM6bAAArCH-vThU619.jpg

由于分離為兩個頭部,參數數量顯著增加,因此模型的速度確實受到了影響。正如我們在圖4中看到的,YOLOX-L比YOLOv5-L慢一點。它也有專門為參數低得多的邊緣設備構建的微型版本。

poYBAGOP8-eAP7ZXAADXcYWac4k098.jpg

與以前最先進的對象檢測模型相比,它們在平均精度方面確實有所提高,但FPS略有下降。

pYYBAGOP8-eAAj4NAAD_BCVXymA438.jpg

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

廢話少說。放碼過來。

讓我們直接跳到代碼里!

使用mmdetection微調YOLOX

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

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

OpenMMLab?

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

數據集格式

注:PCB缺陷數據集是一個開源數據集,取自具有MIT許可證的DeepPCB Github repo

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

出于訓練目的,我們將采用COCO格式。你無需費盡心思將數據集轉換為COCO格式,因為它已經為你完成了。你可以從這里直接下載轉換后的數據集。整個數據集與DeepPCB中的數據集相同? 只需添加帶有COCO格式注釋的訓練和測試JSON文件即可進行訓練。

我將不進行COCO格式的轉換,因為你可以找到許多文檔,就像mmdetection文檔中提到的那樣。

將此數據集轉換為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.append({

'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.append({

'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')

數據集配置

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

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

我們不會改變太多,因為這個博客的主要目的是熟悉手頭的問題,嘗試最先進的YOLOX架構,并實驗mmdetection庫。我們將把這個文件命名為yolox_s_config。py并將其用于訓練。

我們將添加類名并更改預測頭的類數。由于將從根目錄而不是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_head = 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)

我們需要在這里對驗證和測試集執(zhí)行相同的操作。這里我們不打算使用單獨的測試集,相反,我們將使用相同的測試集進行驗證和測試。

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))

我們將只對模型進行20個epoch的訓練,并每5個階段獲得一次驗證結果。我們不需要再訓練了,因為我們只在20個epoch里取得了不錯的成績。

max_epochs = 20

interval = 5

訓練

我們很樂意使用數據集部分。接下來我們需要做的是訓練模型。mmdetection最棒的部分? 是,所有關于訓練的事情都已經為你們做了。你所需要做的就是從tools目錄運行訓練腳本,并將路徑傳遞給我們在上面創(chuàng)建的數據集配置。

python3 tools/train.py yolox_s_config.py

你已經成功訓練了!

推理

讓我們看看我們的模型在一些示例上的表現。你一定想知道,訓練模型有多容易,必須有一個命令來對圖像進行推理?

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

from mmdet.apis 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)

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

poYBAGOP8-iAauhBAADGTWEaNMU698.jpg

我們做到了!

你也可以嘗試我們預先訓練的模型,并使用它進行推理。

結論

今天,我們了解了現實世界中普遍存在的一個新問題,并嘗試使用像YOLOX這樣的最先進模型來解決這個問題?.

我們還使用了mmdetection? ,它是深度學習社區(qū)中用于訓練對象檢測模型的領先開源庫之一。如果我不提如何檢測,那將是不公平的? 。

在幾乎沒有任何自定義腳本的情況下,讓我們如此快速、輕松地解決問題。

磐創(chuàng)AI

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 計算機視覺
    +關注

    關注

    9

    文章

    1715

    瀏覽量

    47635
  • 深度學習
    +關注

    關注

    73

    文章

    5599

    瀏覽量

    124405
  • PCB
    PCB
    +關注

    關注

    1

    文章

    2309

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    AOI光學檢測設備原理:自動光學檢測如何識別外觀缺陷

    AOI 作為產線 “智能之眼”,核心通過精密光學成像獲取圖像,結合傳統模板比對(與黃金樣板比對)和深度學習(學習缺陷特征)兩種算法判斷 PCB 缺陷。其挑戰(zhàn)的是 “判準” 而非 “看見”,當前正朝著混合
    的頭像 發(fā)表于 02-11 10:24 ?397次閱讀

    高壓功率放大器在鋁板內部缺陷脈沖渦流檢測中的應用

    我國國防科技大學對脈沖渦流檢測技術進行了深入的研究,廣泛地將脈沖渦流檢測技術應用于金屬表面和亞表面缺陷尺寸的評估中,并且能夠準確識別出同時存在的不同類型的缺陷
    的頭像 發(fā)表于 12-30 17:13 ?508次閱讀
    高壓功率放大器在鋁板內部<b class='flag-5'>缺陷</b>脈沖渦流<b class='flag-5'>檢測</b>中的應用

    挑花眼了吧?缺陷檢測不用愁,一秒教你選對型!

    上期我們在公眾號回顧了五大缺陷檢測系統之后,有用戶反饋,覺得我們的產品真心不錯,但是落實到自己具體的檢測場景時,不知道應該選擇哪款,都要挑花眼了。今天我們就給大家?guī)砹撕唵沃苯拥倪x型指南,讓您 1
    的頭像 發(fā)表于 11-28 16:16 ?580次閱讀
    挑花眼了吧?<b class='flag-5'>缺陷</b><b class='flag-5'>檢測</b>不用愁,一秒教你選對型!

    Moritex 5X高精度大靶面遠心鏡頭助力晶圓缺陷檢測

    Moritex 5X高精度大靶面遠心鏡頭助力晶圓缺陷檢測
    的頭像 發(fā)表于 10-17 17:04 ?420次閱讀
    Moritex  5X高精度大靶面遠心鏡頭助力晶圓<b class='flag-5'>缺陷</b><b class='flag-5'>檢測</b>

    便攜式EL檢測儀:光伏組件缺陷檢測的移動“透視眼”

    便攜式EL檢測儀:光伏組件缺陷檢測的移動“透視眼”柏峰【BF-EL】在光伏電站運維與組件質量管控中,組件內部缺陷(如隱裂、斷柵、虛焊、黑心片等)是影響發(fā)電效率與使用壽命的關鍵隱患。
    的頭像 發(fā)表于 10-15 10:20 ?735次閱讀
    便攜式EL<b class='flag-5'>檢測</b>儀:光伏組件<b class='flag-5'>缺陷</b><b class='flag-5'>檢測</b>的移動“透視眼”

    四步檢測降低83%故障率!大廠都在用的PCB質檢流程

    PCB的優(yōu)劣。以下是具體方法與分析: ? 一、望:視覺檢測,洞察表面缺陷 核心目標:通過肉眼或儀器觀察PCB的外觀、焊點、線路等,識別顯性缺陷
    的頭像 發(fā)表于 09-28 09:22 ?1207次閱讀

    射頻功率放大器在單缺陷導波高精度檢測中的關鍵作用

    實驗名稱: 單缺陷導波檢測實驗 研究方向: 管道運輸在當今國民經濟和工業(yè)運輸領域有著不可或缺的作用,其有著經濟、高效且安全的優(yōu)勢。然而管道在服役過程中并不是一勞永逸的,隨著時間的推移或者存在加工缺陷
    的頭像 發(fā)表于 09-24 16:15 ?791次閱讀
    射頻功率放大器在單<b class='flag-5'>缺陷</b>導波高精度<b class='flag-5'>檢測</b>中的關鍵作用

    便攜式EL檢測儀:光伏組件缺陷檢測的 “便攜顯微鏡”

    便攜式EL檢測儀:光伏組件缺陷檢測的 “便攜顯微鏡”柏峰【BF-EL】便攜式 EL(Electroluminescence,電致發(fā)光)檢測儀,是基于光伏組件電致發(fā)光原理設計的便攜式
    的頭像 發(fā)表于 09-10 17:35 ?1313次閱讀
    便攜式EL<b class='flag-5'>檢測</b>儀:光伏組件<b class='flag-5'>缺陷</b><b class='flag-5'>檢測</b>的 “便攜顯微鏡”

    探秘晶圓宏觀缺陷檢測技術升級與根源追蹤新突破

    在晶圓加工流程中,早期檢測宏觀缺陷是提升良率與推動工藝改進的核心環(huán)節(jié),這一需求正驅動檢測技術與晶圓測試圖分析領域的創(chuàng)新。宏觀缺陷早期檢測的重
    的頭像 發(fā)表于 08-19 13:48 ?1374次閱讀
    探秘晶圓宏觀<b class='flag-5'>缺陷</b>:<b class='flag-5'>檢測</b>技術升級與根源追蹤新突破

    塑料注塑缺陷檢測的創(chuàng)新解決方案

    在塑料成型領域,注塑制品的質量控制至關重要。然而,塑料注塑過程中出現的缺陷不僅影響產品的外觀,還可能降低其功能性能。這些缺陷的產生原因復雜多樣,傳統的檢測方法往往難以應對復雜多變的檢測
    的頭像 發(fā)表于 08-05 17:52 ?864次閱讀
    塑料注塑<b class='flag-5'>缺陷</b><b class='flag-5'>檢測</b>的創(chuàng)新解決方案

    飲料液位及瓶蓋缺陷檢測視覺系統

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

    如何實現高品質PCB缺陷焊接

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

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

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

    【功能上線】華秋PCB下單新增“3D仿真預覽”,讓PCB設計缺陷無處遁形

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

    安泰電壓放大器在缺陷局部的無損檢測研究中的應用

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