第一部分 設(shè)計(jì)概述
1.1 設(shè)計(jì)目的
作為電子產(chǎn)品最重要的組成部分,印刷電路板(PCB)的設(shè)計(jì)日趨復(fù)雜和器件尺寸的縮小,促使對(duì) SMT 可靠性提出了更高的要求。因此對(duì)于 SMT 電路板的檢測(cè)研究具有深刻的現(xiàn)實(shí)意義和經(jīng)濟(jì)價(jià)值。
在 SMT 工藝中,貼片器件焊點(diǎn)的好壞會(huì)嚴(yán)重影響 PCB 板的質(zhì)量。輕則會(huì)導(dǎo)致可靠性下降,重則可能導(dǎo)致電路燒毀。為了能夠確保將 PCB 板應(yīng)用到高質(zhì)量、 高可靠性的電子產(chǎn)品中,提高產(chǎn)品合格率,對(duì)焊點(diǎn)的缺陷檢測(cè)是十分必要的。
1.2 應(yīng)用領(lǐng)域
本作品屬于 SMT 工藝檢測(cè)中的焊點(diǎn)檢測(cè)領(lǐng)域,可區(qū)分良好焊點(diǎn)以及虛焊漏焊、短路、多錫、偏移等缺陷焊點(diǎn)情況。
作品可應(yīng)用于小型的 SMT 貼片廠對(duì)批量 PCB 電路的焊點(diǎn)可靠性進(jìn)行檢測(cè),或者電子維修領(lǐng)域?qū)﹄娐钒暹M(jìn)行輔助分析觀察,同樣也可在個(gè)人開發(fā)者對(duì)焊接電路的檢測(cè),相比傳統(tǒng)方法可以大大降低人力和設(shè)備成本。
1.3 主要技術(shù)特點(diǎn)
目前,在國(guó)內(nèi)外印刷電路板焊點(diǎn)質(zhì)量檢測(cè)的主要方法有:人工目測(cè)、自動(dòng)光學(xué)檢測(cè)、自動(dòng)射線檢測(cè)等方法。
人工目測(cè)法是目前最簡(jiǎn)單的方式,但受檢測(cè)員主觀性影響較大,且檢測(cè)速度低、錯(cuò)誤率高。
自動(dòng)光學(xué)檢測(cè)法(AOI)采用 CCD 攝影的形式獲取元件和印刷電路板的圖像,可實(shí)現(xiàn)自動(dòng)化檢測(cè),但儀器成本較高,往往需數(shù)十萬(wàn)元。
自動(dòng)射線檢測(cè)(AXI)采用 X 光對(duì) PCB 板進(jìn)行掃描,可對(duì)球柵陣列(BGA) 等封裝進(jìn)行檢測(cè),但價(jià)格相比 AOI 儀器更加昂貴。
本作品采用基于機(jī)器視覺的檢測(cè)方式,模擬人類視覺的智能行為,把所需要的信息從圖像中提取、處理和分析,其具有成本低、抗干擾性強(qiáng)、魯棒性強(qiáng)、可有效處理無(wú)規(guī)律和復(fù)雜背景缺陷等特點(diǎn)。
1.4 關(guān)鍵性能指標(biāo)
機(jī)械位移系統(tǒng)參數(shù):
電源額定電壓:24V
電源額定電流:6A
電機(jī)運(yùn)行速度范圍:5mm/s—80mm/s
步距角:1.8°
最小運(yùn)動(dòng)距離:25um
絲桿有效行程:200mm
絲桿螺距:5mm
PCB 板掃描時(shí)間:T<40s (在 100mm*100mm PCB 以 50mm/s 掃描速度下測(cè)得)
成像系統(tǒng)參數(shù):
攝像頭像素:500w 像素
攝像頭幀率:30 幀/s
物鏡:0.7x-4.5x
目鏡:0.35x Yolov3
算法參數(shù):mAP
平均精度(mean Average Precision):84.3%
Yolo loss:11.2
處理速度:10fps/s(基于 zynq ultrascale 開發(fā)板部署下每秒預(yù)測(cè)圖片的速度)
1.5 主要?jiǎng)?chuàng)新點(diǎn)
(1)YOlO 算法相比于 R-CNN 等算法對(duì)算力要求更小、運(yùn)行速度更快,適合在 FPGA 上進(jìn)行部署,且其有著較好的泛化能力,能有效減少背景錯(cuò)誤。
(2)基于機(jī)器視覺的檢測(cè)方式,相比于傳統(tǒng) AOI 光學(xué)檢測(cè)方法,其對(duì)復(fù)雜背景下缺陷檢測(cè)識(shí)別效果更好,抗干擾能力更強(qiáng)。
(3)不受限于缺陷本身形態(tài),不依賴手工規(guī)則,可對(duì)算法進(jìn)行迭代復(fù)用。
(4)可對(duì) PCB 板進(jìn)行全自動(dòng)掃描,實(shí)時(shí)在顯示屏和 PC 上位機(jī)上顯示,保存缺陷焊點(diǎn)圖片及坐標(biāo)位置。并對(duì)感興趣的缺陷焊點(diǎn)進(jìn)行溯回,將其移動(dòng)至攝像頭下觀察。
第二部分 系統(tǒng)組成及功能說明
2.1 整體介紹
我們的系統(tǒng)主要由光學(xué)成像部分、圖像處理部分,機(jī)械控制部分及人機(jī)交互界面四個(gè)部分組成。
光學(xué)成像部分主要由三維可調(diào)相機(jī)支架、USB 攝像頭、目鏡物鏡和可調(diào)圓形光源組成。
圖像處理部分則通過一塊 zynq ultrascale 開發(fā)板連接攝像頭,在 PL 端部署 yolov3 神經(jīng)網(wǎng)絡(luò),將攝像頭傳回的圖片進(jìn)行焊點(diǎn)檢測(cè),通過 7 寸 HDMI 顯示屏顯示處理標(biāo)注后的圖片,并將有缺陷的焊點(diǎn)圖片通過TCP協(xié)議傳輸至PC上位機(jī)。
機(jī)械控制部分則由一塊 PYNQ 開發(fā)板、42 步進(jìn)電機(jī)、驅(qū)動(dòng)電路板、限位器和雙軸滑臺(tái)組成,同樣通過 TCP 協(xié)議與上位機(jī)進(jìn)行指令和數(shù)據(jù)傳輸,控制位移平臺(tái)運(yùn)動(dòng)。
人機(jī)交互界面則是在 PC 上采用 PyQT 進(jìn)行界面編寫,作為 TCP 服務(wù)端,通過一個(gè)交換機(jī)將兩塊開發(fā)板連接在同一局域網(wǎng)下,實(shí)現(xiàn)協(xié)同操作。
2.2 各模塊介紹
2.2.1 光學(xué)成像部分
光學(xué)成像部分主要由三維可調(diào)相機(jī)支架、USB 攝像頭、目鏡物鏡和可調(diào)圓形光源組成,示意圖如下圖所示。
USB 攝像頭采用型號(hào) XGY300 的免驅(qū)彩色攝像頭,CMOS 傳感器大小為 1/2 英寸,像素大小為 300w,物鏡為 0.7x-4.5x,目鏡為 0.35x,放大倍數(shù)在 3-130 倍可調(diào)。
2.2.2 機(jī)械控制部分
電機(jī)控制部分硬件結(jié)構(gòu)由 PYNQ、42 步進(jìn)電機(jī)、驅(qū)動(dòng)器、雙軸導(dǎo)軌滑臺(tái)、限位器和光耦組成。軟件部分由上位機(jī)與 PYNQ 通過 TCP 協(xié)議通信完成對(duì)應(yīng)控制。
整體結(jié)構(gòu)如下圖所示:
軟件流程如下圖所示:
(a)硬件設(shè)計(jì)
整體硬件 PCB 設(shè)計(jì)如下圖所示:
電機(jī)驅(qū)動(dòng)部分設(shè)計(jì):
A4988 是一款完整的微步電機(jī)驅(qū)動(dòng)器,內(nèi)置轉(zhuǎn)換器,操作簡(jiǎn)便。它設(shè)計(jì)用于以全步,半步,四分之一,八分之一和十六分之一步模式操作雙極步進(jìn)電機(jī),輸出驅(qū)動(dòng)能力高達(dá) 35V 和±2A 電流。A4988 包括一個(gè)固定的關(guān)斷時(shí)間電流調(diào)節(jié)器, 能夠在慢速或混合衰減模式下工作。細(xì)分驅(qū)動(dòng)是減小步距角、提高步進(jìn)分辨率、 增加電機(jī)運(yùn)行平穩(wěn)性的一種行之有效的方法,本設(shè)備使用 16 細(xì)分,能夠滿足高精密定位的要求。
光耦檢測(cè)電路設(shè)計(jì):
光耦選用 6N137,輸入 0~24V,輸出 0~3.3V,采用共陰極接法。當(dāng)金屬滑臺(tái)靠近限位器時(shí),限位器信號(hào)線輸出高電平,使光耦打開,PYNQ 引腳被置位, 作為電機(jī)停止信號(hào)。
(b)機(jī)械部分設(shè)計(jì):
電機(jī)部分選用兩相式 42 步進(jìn)電機(jī),其步距角為 1.8°,額定電流為 1.5A, 力矩為 0.7Nm。
采用雙軸導(dǎo)軌滑臺(tái),可在 X 軸、Y 軸方向移動(dòng),有效行程均為 200mm,單圈行程為 5mm。
限位器選用 SN04-P 金屬傳感器固定在滑臺(tái)上,額定工作電壓為 10~30V, PNP 常開,有效輸出信號(hào)為高電平,測(cè)量距離為 5mm,用以對(duì)控制電機(jī)起始位置。
(c)軟件指令設(shè)計(jì):
上位機(jī)通過 TCP 協(xié)議發(fā)送指令給 PYNQ,從而控制電機(jī)對(duì)待檢測(cè) PCB 進(jìn)行復(fù)位、十字掃描、定位以及實(shí)時(shí)獲取坐標(biāo)等操作。指令格式如下表:
2.2.3 圖像處理部分
(a)焊點(diǎn)情況分類
焊點(diǎn)情況的分類如下圖所示,包含正常、多錫、少錫、漏焊、短路、偏移六種情況。
(b)數(shù)據(jù)集標(biāo)注
數(shù)據(jù)集采用 labelImg 軟件進(jìn)行標(biāo)注,對(duì)應(yīng)英文名稱如下
c)YOLO 算法介紹
YOLO 是一種采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)實(shí)現(xiàn)端到端目標(biāo)檢測(cè)的算法。其運(yùn)用回歸的思想,將目標(biāo)檢測(cè)看成是一個(gè)回歸的問題,能夠?qū)崟r(shí)預(yù)測(cè)多個(gè)目標(biāo)的類別和目標(biāo)邊框的位置,另外 YOLO 采用滑動(dòng)窗口的方式尋找目標(biāo),與傳統(tǒng)的基于候選區(qū)域方式不同,它直接利用整幅圖片訓(xùn)練網(wǎng)絡(luò)模型。
YOLO 經(jīng)過不斷改進(jìn)已經(jīng)從 YOLOv1 發(fā)展到 YOLOv5,本系統(tǒng)搭載的 YOLOv3 網(wǎng)絡(luò)模型由骨干網(wǎng)絡(luò) Darknet-53 和 YOLO 檢測(cè)層組成[8],骨干網(wǎng)絡(luò)主要從圖像中提取特征,YOLO 層用來預(yù)測(cè)類別和位置信息,Darknet-53 有 5 個(gè)不同尺度和深度的殘差模塊,每個(gè)殘差模塊借鑒 Resnet 結(jié)構(gòu),由一對(duì)連續(xù)的 3×3、1×1 卷積層和跳層連接組成,克服梯度消失以及精度下降問題,增強(qiáng)了特征表達(dá)能力。其神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示。
(d)焊點(diǎn)識(shí)別的訓(xùn)練過程:
制作數(shù)據(jù)集:
在待檢測(cè)的板子上通過灰度處理,高斯模糊和調(diào)節(jié)攝像頭放大尺寸的方法拍攝 300 多張照片,并進(jìn)行標(biāo)注。將百分之九十五的圖片處理為訓(xùn)練集,剩下百分之五的圖片為測(cè)試集。
圖像增強(qiáng):
將輸入圖片的數(shù)據(jù)進(jìn)行歸一化,使用(以 R 為例)的方式,并且在訓(xùn)練預(yù)處理和拍攝過程都加入了一定程度的高斯噪聲,以期待將光照強(qiáng)度對(duì)于 pcb 檢測(cè)的影響降到最低。
訓(xùn)練過程:
在訓(xùn)練最好的模型之前。我們對(duì)于 100 多張 pcb 圖片的數(shù)據(jù)集進(jìn)行過兩次訓(xùn)練。在迭代 200-300 次左右(基礎(chǔ)學(xué)習(xí)率為 2.5e-06)訓(xùn)練結(jié)果不太理想(loss 僅 為 45)。在最后一次訓(xùn)練,選擇迭代 3000 次,基礎(chǔ)學(xué)習(xí)率為 0.0025 在第 500 次 1500 次 2500 次中學(xué)習(xí)率以 10 的倍率衰減三次,從而獲得比較滿意的結(jié)果 (loss=9.7,mAP=0.95)(測(cè)試集)
2.2.4 上位機(jī)部分
軟件界面采用交互式界面設(shè)計(jì)風(fēng)格進(jìn)行設(shè)計(jì)[9],使用戶可以方便簡(jiǎn)潔地通過界面接收?qǐng)D像、控制電機(jī)、獲得可視化結(jié)果,并可在軟件界面中對(duì)檢測(cè)最終結(jié)果進(jìn)行展示。
PyQt 是 Python 中用來建立圖形化用戶界面的庫(kù),它具有 300 多個(gè)類和約 6000 個(gè)函數(shù),目前 PyQt 可用的版本己更新至 PyQt5,其優(yōu)勢(shì)之一在于可以在所有主要計(jì)算機(jī)操作系統(tǒng)上運(yùn)行,如 Mac,Unix 和 Windows。PyQt 在使用上完全繼承了 Python 易學(xué)易用的特點(diǎn),非常適合非計(jì)算機(jī)專業(yè)的科研人員使用。
本系統(tǒng)按照前幾節(jié)中對(duì)軟件功能需求的詳細(xì)分析進(jìn)行界面功能的具體實(shí)現(xiàn), 使用 Pyqt5 設(shè)計(jì)的 GUI 界面如下圖所示。
該界面主要由三大部分組成,左側(cè)部分通過 TCP 協(xié)議與 Zynq ultrascale 開發(fā)板通信,負(fù)責(zé)接收帶有缺陷焊點(diǎn)的圖片數(shù)據(jù)、接收或發(fā)送文本數(shù)據(jù),主要包括連接和斷開連接按鈕、缺陷溯回按鈕以及接收和發(fā)送信息按鈕。
中間部分通過 TCP 協(xié)議發(fā)送相關(guān)指令給 PYNQ,使其控制電機(jī)運(yùn)動(dòng),實(shí)現(xiàn)目標(biāo)板圖像數(shù)據(jù)的采集,共有復(fù)位、坐標(biāo)詢問、十字掃描、手動(dòng)移動(dòng)、缺陷溯回五大功能。
右側(cè)用于輸出日志信息,方便觀察系統(tǒng)整體狀態(tài)。
第三部分 完成情況及性能參數(shù)
3.1 系統(tǒng)架構(gòu)完成情況
光學(xué)成像部分已完全搭建完畢,通過夾具固定攝像頭器件,并可對(duì)攝像頭進(jìn)行兩個(gè)維度的手動(dòng)調(diào)節(jié),在物鏡下安裝了一個(gè)可調(diào)白光光源用于照明。
機(jī)械控制部分目前已全部完成并進(jìn)行了制板及測(cè)試,可實(shí)現(xiàn)對(duì)兩個(gè)電機(jī)協(xié)同控制,以及接近開關(guān)信號(hào)的檢測(cè)。
上位機(jī)部分已經(jīng)完成與機(jī)械控制系統(tǒng)的聯(lián)調(diào),可通過上位機(jī)實(shí)現(xiàn)共有復(fù)位、 坐標(biāo)詢問、十字掃描及手動(dòng)移動(dòng)功能,目前正在開發(fā)對(duì)網(wǎng)絡(luò)圖像的實(shí)時(shí)傳輸和缺陷溯回功能。
圖像處理部分目前已將 YOLO 神經(jīng)網(wǎng)絡(luò)算法部署至 ZYNQ Ultrascale 開發(fā)板 上,可正常進(jìn)行攝像頭讀取、檢測(cè)焊點(diǎn)圖片并對(duì)各類焊點(diǎn)進(jìn)行標(biāo)注,通過 HDMI 顯示屏輸出處理后圖片。
3.2 算法測(cè)試情況
我們對(duì) PCB 板進(jìn)行放大拍攝并做灰度處理,再對(duì)處理后的圖片進(jìn)行標(biāo)注制作成數(shù)據(jù)集送入神經(jīng)網(wǎng)絡(luò)訓(xùn)練,以下為在測(cè)試集上的測(cè)試結(jié)果:
根據(jù)測(cè)試結(jié)果,基本可以完成對(duì)焊點(diǎn)缺陷的檢測(cè),且置信度較高,但仍存在漏檢的情況,后續(xù)需要對(duì)算法進(jìn)一步優(yōu)化以及對(duì)數(shù)據(jù)集進(jìn)行補(bǔ)充。
第四部分 總結(jié)
可擴(kuò)展之處
本作品目前已初步完成功能,預(yù)計(jì)在之后作品可進(jìn)行如下擴(kuò)展:
(1)收集各類 PCB 板,針對(duì)不同封裝下各類焊點(diǎn),制作更多的數(shù)據(jù)集, 提升算法精度。
(2)考慮和物聯(lián)網(wǎng)進(jìn)行結(jié)合,檢測(cè)數(shù)據(jù)的同時(shí)上傳焊點(diǎn)圖片,減小人工的工作量,進(jìn)一步獲取更多數(shù)據(jù)。
(3)嘗試采用其他機(jī)器學(xué)習(xí)算法,如 SSD 算法等進(jìn)行實(shí)驗(yàn),尋找更優(yōu)的機(jī)器學(xué)習(xí)算法。
(4)考慮針對(duì)復(fù)雜 PCB 場(chǎng)景下(如電腦、手機(jī)主板),它們芯片封裝往往焊點(diǎn)不露出,可增加紅外攝像頭或 X-ray 方式獲取焊點(diǎn)圖片。
(5)為進(jìn)一步提升檢測(cè)的準(zhǔn)確性,可以考慮采用 3D 系統(tǒng)設(shè)備。
(6)增加更多視覺方面的檢測(cè)(如 PCB 表面清潔程度等)。
(7)優(yōu)化機(jī)械結(jié)構(gòu),選用更優(yōu)的攝像頭,提升檢測(cè)圖像穩(wěn)定性。
-
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618429 -
pcb
+關(guān)注
關(guān)注
4368文章
23492瀏覽量
409686 -
smt
+關(guān)注
關(guān)注
43文章
3045瀏覽量
72033 -
缺陷檢測(cè)
+關(guān)注
關(guān)注
2文章
153瀏覽量
12619
原文標(biāo)題:基于 FPGA YOLO 算法的掃描式 SMT 焊點(diǎn)缺陷檢測(cè)系統(tǒng)
文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Linux掃描式教程
幾種常用SMT組裝測(cè)試技術(shù)介紹
SMT焊點(diǎn)的染色與品牌焊錫絲滲透試驗(yàn)
表面檢測(cè)市場(chǎng)案例,SMT缺陷檢測(cè)
Linux掃描式教程chm

焊點(diǎn)超聲檢測(cè)掃描系統(tǒng)的設(shè)計(jì)
愛德萬(wàn)測(cè)試開發(fā)出光罩缺陷檢驗(yàn)掃描式電子顯微鏡系統(tǒng)E5610
基于FPGA的CCD掃描缺陷檢測(cè)實(shí)時(shí)數(shù)據(jù)處理技術(shù)的研究
?機(jī)器視覺深度學(xué)習(xí)外觀焊點(diǎn)缺陷檢測(cè)
焊點(diǎn)缺陷檢測(cè)系統(tǒng)的簡(jiǎn)單介紹
基于深度學(xué)習(xí)的焊接焊點(diǎn)缺陷檢測(cè)
常用的幾種BGA焊點(diǎn)缺陷或故障檢測(cè)方法

評(píng)論