• 沒有找到結果。

目錄

N/A
N/A
Protected

Academic year: 2022

Share "目錄 "

Copied!
61
0
0

加載中.... (立即查看全文)

全文

(1)

國立臺灣師範大學理學院 資訊工程學系

碩士論文

Department of Computer Science and Information Engineering College of Science

National Taiwan Normal University Master’s Thesis

以 Centernet 為基礎開發 AOI 輔助系統之研究

A Study of Centernet Based AOI Assistant System Development

蔡陳杰

Chen-Chieh Tsai

指導教授:黃文吉 博士 Advisor: Wen-Jyi Hwang, Ph.D.

中華民國110年8月 August 2021

(2)

i

摘要

自動光學檢測(AOI)為結合電腦視覺與自動化等多種技術的自動檢測方法,

並且廣泛使用於產品製造的品質管理上,而元件檢測是自動光學檢測中的重要 檢測項目之一。近年來,由於工業產業的變化,產品生產走向了少量多樣化,

而在檢測上也改以邊緣運算的裝置運行,因此除了傳統元件檢測要求的準確率

外,理想的元件檢測方法還必須要運算複雜度夠低與模型小才能在邊緣運算裝

置上運行,而常見的元件檢測方法並不能完全達到這些要求。

本論文使用 Centernet 作為新建立的 AOI 元件檢測系統的核心演算法。其

優點為應用廣泛以及容易簡化與縮小模型,讓模型足夠輕量在工廠上的邊緣運

算裝置上運行,且在通用物件檢測有良好的檢測效果。而本論文完成之元件檢

測系統能夠快速偵測出元件,以及將其系統應用於嵌入式系統上,以達到工業

上減少成本的需求,也可以應用在客製化的元件檢測上。

關鍵字: 自動光學檢測、元件檢測、深度學習、邊緣計算。

Keywords: Centernet, Automated optical inspection, Component detection, Deep

learning, Edge computing.

(3)

ii

目錄

摘要... i

圖目錄... iv

表目錄... viii

第 1 章 緒論 ... 1

1-1 研究背景 ... 1

1-2 研究目的 ... 7

1-3 研究貢獻 ... 8

第 2 章 基本理論介紹 ... 9

2-1 Anchor-based ... 9

2-2 Centernet ... 14

第 3 章 研究方法 ... 18

3-1 訓練資料建立 ... 19

3-2 Centernet 模型與訓練 ... 21

3-2-1 所採用之 Centernet 模型 ... 21

3-2-2 關鍵點熱點圖與元件長寬標記... 25

3-2-3 損失函數... 27

3-3 模型輸出後處理 ... 29

(4)

iii

3-3-1 尋找關鍵點... 29

3-3-2 組成邊界框... 31

3-3-3 檢測目標大小之影響... 32

3-4 檢測流程 ... 33

第 4 章 實驗結果 ... 35

4-1 檢測結果與其他檢測方法比較 ... 39

4-2 有無使用 Regularization 的比較 ... 44

4-3 在嵌入式系統上之測試 ... 45

4-4 實際應用 ... 46

第 5 章 結論 ... 50

參考文獻... 51

(5)

iv

圖目錄

圖 1.1 在 PCB 的複雜背景上檢測元件(螺絲)。 ... 3

圖 1.2 PCB 上的各種元件。 ... 3

圖 1.3 基於影像分割之示意圖,左圖為輸入影像,右圖為分割後結果。... 5

圖 1.4 基於 Anchor-based 物件偵測之示意圖,左圖為輸入影像,右圖為使用 Anchor box 框選後結果。... 5

圖 1.5 基於 Centernet 物件偵測之示意圖,將檢測物視為一關鍵點。 ... 6

圖 2.1 Anchor box 的示意圖,在此圖中總共有 6 個 Anchor box。 ... 9

圖 2.2 Anchor box 的使用方法示意圖。在 Feature map 上的所有點使用 Anchor box 與其對應於原圖框選的區域,在此圖中預先定義的 Anchor box 數量為 2,因此總共產生 3 x 3 x 2 = 18 個候選區域。 ... 10

圖 2.3 One stage 與 Two stage 檢測流程之示意圖。 ... 11

圖 2.4 右圖 Anchor box 所框選的位置比起左圖更能代表整隻狗,模型比較能學 習狗的全貌。... 12

圖 2.5 NMS 作法的示意圖,棕色框為 NMS 完後的邊界框。 ... 14

圖 2.6 Cornernet 以物件角落兩點作為關鍵點的示意圖。... 15

圖 2.7 Centernet 以物件中心點作為關鍵點的示意圖。 ... 16

圖 3.1 產品依序由各機台組裝元件之示意圖。... 19

圖 3.2 訓練資料與測試資料之示意圖,預檢測元件相同但背景充滿著不同元

(6)

v

件。... 20

圖 3.3 輸入照片與 3 種資料增量後影像之示意圖。... 21

圖 3.4 Centernet 之原始架構。 ... 22

圖 3.5 修改後的 Centernet 架構示意圖,對 Backbone 進行修改且不回歸偏移 值。... 23

圖 3.6 本論文所採用之 Centernet 網路模型。 ... 24

圖 3.7 本論文所採用之殘差塊(Resblock)架構。 ... 24

圖 3.8 使用邊界框找出物件中心點與大小之示意圖。... 25

圖 3.9 使用高斯核之過程。未使用高斯核之熱點圖上只有在關鍵點上為 1,其 餘為 0,而使用高斯核之熱點圖上關鍵點周圍值為 0 到 1 之間。... 26

圖 3.10 關鍵點使用高斯核後內部與周圍之值,其中心點值為 1 且值由內向外遞 減。... 27

圖 3.11 元件長寬的標記,直接在其元件關鍵點座標上標上其對應的(W, H )。 27 圖 3.12 模型輸出為𝑇張關鍵點熱點圖與 2 張元件長寬圖,在此圖中檢測元件只 有螺絲,因此𝑇為 1。 ... 29

圖 3.13 3 x 3 Maxpooling 如何在這找出所有的峰值。 ... 30

圖 3.14 篩選關鍵點的流程圖。在此圖中輸出熱點圖經過 3 × 3 Maxpooling 與門 檻值篩檢後剩下 3 個預測的關鍵點。... 31

圖 3.15 求得預測的元件邊界框座標後在輸入圖片上框選出物件。... 32

(7)

vi

圖 3.16 預測模型之差異。... 33

圖 3.17 檢測之流程圖。... 34

圖 4.1 RX590 8GB GPU 顯示卡。 ... 35

圖 4.2 顯示卡風扇拆下後的 PCB 板,上面有許多元件,而螺絲為其中之一。 ... 35

圖 4.3 使用清姬雷蛇視訊鏡頭收集資料之示意圖,將 PCB 板平放與調整環境 光源後進行拍攝。... 37

圖 4.4 訓練資料與測試資料拍攝區間不同之示意圖,訓練資料與測試資料在收 集時會有環境光源與擺放位置差異之變化。... 38

圖 4.5 模型輸入圖片之範例示意圖,經裁切後為 640 x 640 x 3 大小。... 38

圖 4.6 檢測情境為 PCB 板上有螺絲,能夠正確的框選出螺絲的位置。 ... 39

圖 4.7 檢測情境為 PCB 板上無螺絲,不會有誤判的情形發生。 ... 39

圖 4.8 IOU 算法之示意圖。 ... 40

圖 4.9 PR 曲線之示意圖。 ... 41

圖 4.10 Faster-RCNN[13]與本論文的 Centernet 各自的 PR 曲線。 ... 42

圖 4.11 本論文之 Centernet 有無使用 Regularization 各自的 PR 曲線。 ... 44

圖 4.12 將 PCB 板分為 A、B 部分分開檢測。 ... 47

圖 4.13 在鎖螺絲時,檢測狀態為 off。 ... 48

圖 4.14 A 部分檢測結果。 ... 48

(8)

vii

圖 4.15 B 部分檢測結果。 ... 49

(9)

viii

表目錄

表 2.1 Anchor-based 與 Centernet 架構的差異處。 ... 16

表 4.1 個人電腦的開發設備與其他細節。... 37

表 4.2 Faster-RCNN[13]和本論文 Centernet 效能比較。 ... 42

表 4.3 本論文之 Centernet、U-net[14]和 U-net 加上 Focal loss[15]使用混淆矩陣

之效能比較。... 43

表 4.4 本論文之 Centernet 有無使用 Regularization 之效能比較。 ... 45

表 4.5 Jetson 系列產品規格比較。... 46

(10)

1

第 1 章 緒論

1-1 研究背景

人工智慧(Artificial intelligence)這一研究領域最早可起源於 1950 年代,研

究者們希望電腦能夠自己思考與自己學習,最終發展出與人類相同智慧,幫助人

類解決許多的科學難題。但受限於當時的硬體能力,電腦計算速度的不足與有限

的內存導致人工智慧只能解決一些簡單的問題,使得人工智慧的發展一直沒有重

大的突破。

隨著科技的日新月異,硬體設備的發展可以說是突飛猛進,電腦的運算能力

與內存因此大幅提升,以往成為障礙的運算能力也得以解決。而在此期間,人工

智慧的研究也從未停止,伴隨著技術的成熟,人工智慧成功的使用在多種領域上,

並且取得了很好的成果。

在多種使用的領域上,電腦視覺(Computer vision)與人工智慧可說是相當契

合。電腦視覺是一門模仿人類視覺系統的領域,其利用一個取代人眼的感測器,

例如相機,將人類所看的圖像轉化成數位影像,並以電腦模擬人類的判斷準則。

而與人工智慧中的深度學習結合後,得以將二維圖像與串流影片中的大量像素點

轉化為有用的資訊,並對它做進一步的辨識與分析。電腦視覺這領域在快速發展

後,被廣泛的應用在我們的生活之中,其應用有人臉辨識、自動車駕駛與本論文

研究的自動光學檢測。

自動光學檢測,又稱為 Automatic optical inspection(後簡稱為 AOI),是一種

(11)

2

廣泛使用於工業產品上的品質管控方法。其方法利用電腦視覺做為檢測標準,並

結合了影像處理與自動化控制技術等多種技術。相比起傳統工廠中的人工檢測,

不管是在檢測的準確度、穩定度、速度上,AOI 都比人工檢測還要優秀許多,而

AOI 還有一個特點是不需接觸產品即可做到檢測,可以在生產階段中檢測半成品 是否有問題,這是人工檢測無法做到的事。靠著 AOI 的這些優點,產品的良品

率得以得到大幅提升,也因此達到了減少成本的結果。

元件檢測是 AOI 中的重要目標檢測之一,其常使用於印刷電路板,Printed

circuit board(PCB)上,用來判別板子上的元件是否有缺件、漏鎖與鎖歪等,這些 在 PCB 上的問題對於產品可說是非常致命,最終可能導致產品的損壞。

在元件檢測上會有許多的困難點,其一為檢測目標位於一個十分複雜的背景

環境上(如圖 1.1),使用簡單的演算法例如影像處理中的邊緣偵測,無法有效地將

檢測目標與背景分開;其二為 PCB 上元件種類多樣(如圖 1.2),在不同類型之間

有許多相似處,而且元件的種類與數量不斷的增加,甚至 PCB 上也會有與元件

相像的紋理存在,這些都會導致誤判情況的發生。在種種因素下,元件檢測在 AOI

中是一個富有挑戰性的難題[1]。隨著人工智慧的崛起,AOI 引入了深度學習的技

術,並期望能改善檢測上所遇到的困難。

(12)

3

圖 1.1 在 PCB 的複雜背景上檢測元件(螺絲)。

圖 1.2 PCB 上的各種元件。

除了改善現有的檢測困難外,近年來整個工業產業發展有幾個方向:其一

為原本單一商品的大規模製作轉向了以客戶需求為主的少量多樣化生產,在多

樣化的產品擁有不同的元件之下,檢測方法必須有所不同,因此有客製化需求

的必要;其二為大規模無人化智慧工廠的設立,檢測平台改用邊緣運算的裝置

為主,且大量設置在生產線上以減少設備上的成本。雖然邊緣運算端的裝置有

體積小以及供電需求低的優點,但其代價為在裝置上的運算不可太過複雜,也

就是檢測模型必須輕量化。

(13)

4

理想的元件檢測方法需要有以下的能力以符合現今工業發展的需求。首

先,檢測方法必須要能準確的檢測出元件;再來,為了將檢測模型搭載在邊緣

運算的裝置上,其模型的運算複雜度不能太高;最後,為了實現檢測方法的快

速開發,在資料的各種預先處理上不能過於繁瑣。

現有的元件檢測的方法有使用照片比對與物件檢測等,使用照片比對[2]的

方式,需要預先準備好黃金樣本(Golden sample),接著將檢測影像與黃金樣本

進行像素間的比對,當比對的差值大於一定值時,即為檢測圖像有缺件等問

題。但是此方法需要讓檢測影像處在與黃金樣本相同環境之下,只要有些微光

源、位置差異就會產生大量的誤判(false alarm)。

物件檢測的方法是使用深度學習來學習檢測物與背景之間的差異,比起照

片比對的方式,對於環境的適應力更強。物件檢測又能分為圖像分割(Semantic

segmentation)[3]與 Anchor-based 物件偵測[4]2 種。

圖像分割的檢測方法[3]為對影像上的每一個像素點做分類,並且能夠精準

地將背景與檢測物分開,如圖 1.3 所示。但此檢測方法除了必須對圖像上每一

個點進行種類標記,除了在前處理上十分複雜外也容易發生標記錯誤的問題,

而此問題會影響模型對檢測圖像分割的好壞。另外,模型的輸出為像素的分割

圖,圖像分割圖必須使用影像後處理[5]的方式,將檢測物的邊界框(Bounding

box)框選出來,這也增加了檢測系統的計算成本。

(14)

5

圖 1.3 基於影像分割之示意圖,左圖為輸入影像,右圖為分割後結果。

Anchor-based 物件偵測的檢測方法[4]為使用一組預先挑選的 Anchor box 找 出檢測物可能出現的位置,相比起上述圖像分割方法,此方法在輸出上即為檢

測物的邊界框(Bounding box),如圖 1.4 所示。但此檢測方法對於 Anchor box 的

挑選上十分複雜,且使用 Anchor box 在模型輸出上會產生多餘的邊界框,必須

使用 NMS(Non-maximum suppression)對模型輸出做後處理才能得到最貼近檢測

物的邊界框,這也會增加檢測系統計算的成本。

圖 1.4 基於 Anchor-based 物件偵測之示意圖,左圖為輸入影像,右圖為使用 Anchor box 框選後結果。

(15)

6

以上介紹的方法並不符合理想的元件檢測方法需求,所以本論文參考了

Object as points(Centernet)[6]的概念來設計一套新型的檢測系統。Centernet 是一 種新型的物件檢測方法,其做法將檢測物視為一關鍵點(圖 1.5),透過偵測關鍵

點找出檢測物所在的邊界框。此方法擁有以下優點,其一為模型輸出與 Anchor-

based 方法相同皆為檢測物的邊界框。其二為 Centernet 只需要找出關鍵點位置 就可完成標記。其三為 Centernet 在模型輸出上使用 Maxpooling(最大池化)尋找

預測的邊界框,相比 NMS 的做法,計算的成本比較低。綜合以上幾點因素,

本論文採用 Centernet 做為元件檢測的核心演算法。

圖 1.5 基於 Centernet 物件偵測之示意圖,將檢測物視為一關鍵點。

(16)

7

1-2 研究目的

本論文的研究目的為建立一套新型 AOI 元件檢測系統,其系統以 Centernet

作為核心架構,除了能夠在邊緣運算的裝置運行外,在檢測速度上能夠比現有

的檢測方法更快。

舉例來說,在工廠的生產線上,PCB 的生產過程是分成許多階段進行組

裝,而每一台機器負責組裝的元件數量都有所不同,因此需要檢測元件會隨階

段改變。在檢測種類為單一或少數時,會希望能有更好的檢測效率,而現有的

檢測方法由於運算成本較高與模型較大,無法直接在邊緣運算的裝置運行外,

也無法達到即時性的需求。本論文所建立之系統能夠有效解決這些問題。

在高單價的產品製程上,元件發生問題是無法容忍的,例如:GPU 顯示卡

為一高附加價值的電子產品,如果在貼合底板時,作業員或機械手臂沒有鎖上

其中一顆螺絲,且沒有檢測出來的話,會使得底板與 PCB 不貼合,導致在後續

製作程序上引發脫落而報廢整張顯卡。因此在本論文的 AOI 系統上,還必須兼

顧準確率。

(17)

8

1-3 研究貢獻

為了讓 Centernet 在檢測元件上能夠有更快的執行速度,本論文對 Centernet

的網路架構進行了重新設計,並且與現有的物件檢測方法進行效能與準確率上

的比較。另一方面,本論文也簡化了原先 Centernet 需要大量資料做為訓練的需

要,在只有少數廠商所提供 PCB 的照片下,成功從不同複雜背景下檢測出檢測

物,以此模擬在工業環境上資料缺乏的情況。最後,本論文將設計的檢測系統

成功整合到了一低成本的嵌入式系統上,表示出本系統模型足夠輕量,可以將

其裝設在工廠大部分的邊緣運算端上,展現其在工業上的價值。

(18)

9

第 2 章 基本理論介紹

在本章節中會比較 Anchor-based 與 Centernet 物件偵測方法的差異,並在章

節最後整理成一個表,作為本論文選擇 Centernet 作為核心演算法的原因。在 2-

1 會講述 Anchor-based 的基本作法與其架構中所擁有的缺點;在 2-2 會講述

Centernet 的核心思想與其跟 Anchor-based 架構的不同之處。

2-1 Anchor-based

Anchor-based 物件偵測的核心概念是在於尋找物件可能出現的候選區域 時,使用 Anchor box 以滑窗(Sliding windows)的方式產生。Anchor box 為一組

預先定義的矩形框(圖 2.1),這些框都有各自不同的長與寬,用來盡可能代表這

次檢測任務中會出現的物件尺寸大小。

圖 2.1 Anchor box 的示意圖,在此圖中總共有 6 個 Anchor box。

(19)

10

Anchor box 的選取方式主要為以下 3 種:

1. 依循使用者的經驗進行選取,使用此方法的有 Faster-RCNN[7]。在 經典的 Faster-RCNN 論文中總共手動選取了 9 種不同尺寸的

Anchor box。

2. 對訓練資料集使用 k-means 分群的方式找出 Anchor box,使用此方 法的有 YOLO V3[8]。

3. 將 Anchor box 的選取作為一超參數讓模型自行學習,使用此方法 的有 AABO[9]。

經由上述方法取得 k 個 Anchor box 後,在輸入大小為 A x B 的照片(Input

data)經過由 CNN(卷積神經網路)所組成 Feature extractor 特徵萃取得到 D x E 的

Feature map 上,對 Feature map 的所有點使用 Anchor box 產生總共 D x E x k 個 候選區域,如圖 2.2 所示。

圖 2.2 Anchor box 的使用方法示意圖。在 Feature map 上的所有點使用 Anchor box 與其對應於原圖框選的區域,在此圖中預先定義的 Anchor box 數量為 2,

因此總共產生 3 x 3 x 2 = 18 個候選區域。

(20)

11

Anchor-based 物件檢測法根據對這些候選區域做進一步的物件種類分類與 邊界框回歸的方式,可以將它們分為兩大類,其名稱分別為 One-stage 與 Two-

stage。在 One-stage 的方式中,模型直接對所有的候選區域做種類辨識與邊界 框回歸,代表性網路有 YOLO V3[8]等。在 Two-stage 的方式則會分為兩個步

驟,首先,對這些候選區域在做一次 Region proposal,篩選掉多數為背景的候

選區域,減少負樣本的數量;接著,將這些篩選完後的區域放入模型的辨識器

中進行種類辨識與邊界框回歸,其代表性網路有 Faster-RCNN[7]。One stage 比

起 Two stage 在計算速度上有很大的優勢,但是在準確度上,Two stage 由於有

做進一步的篩檢訓練時的負樣本,在檢測結果上通常有比較好的效果,其檢測

流程差異如圖 2.3。

圖 2.3 One stage 與 Two stage 檢測流程之示意圖。

(21)

12

Anchor-based 架構在物件偵測領域中表現出其優異的檢測能力,且在各個 檢測任務中展現出了很好的成果。但是,Anchor-based 在架構上也擁有許多無

可避免的缺點,而這些缺點不管是在模型的檢測速度或是準確度上會有著不小

的影響。

第一,Anchor box 的選取會嚴重影響到模型檢測的好壞,以圖 2.4 為例,選

取的 Anchor box 中如果缺少了右圖的尺寸,那模型就無法學習到此張圖中狗的

全貌與特徵,導致檢測效果變差。這個因素使得在每次的檢測任務中都必須要

重新設計最適合的超參數,如調整 Anchor box 長寬大小等。這也代表著此架構

用於其他檢測任務的遷移能力較差。在工業環境上元件的大小各有所不同,如

果在每次檢測任務上都必須進行一次超參數的調整,那對於 AOI 系統的建立是

十分耗時耗力的。

圖 2.4 右圖 Anchor box 所框選的位置比起左圖更能代表整隻狗,模型比較能學 習狗的全貌。

(22)

13

第二,在 Feature map 上使用 Anchor box 這種密集提取候選區域的方式,會

使得 Anchor-based 模型在同一檢測物的輸出上有冗餘且高度疊合的邊界框產

生,為了將這些重疊的檢測結果給刪除,NMS 為一種最常使用的方法。NMS

的作法可切分成 4 個步驟:

1. 將所有的預測結果根據其預測分數進行排序。

2. 選取分數最大的預測結果作為基底,對每一個與基底同種類的結果 使用 IOU(Intersection over union)計算重疊度,如果大於一定值則認

定此預測結果為基底的冗餘框並將它刪除。

3. 從剩餘的檢測結果中選出最大的預測結果作為新的基底。

4. 重複 2、3 步驟直到沒有預測結果為止。

NMS 的作法能夠有效地將多餘的邊界框給刪除,但是 NMS 在計算上是有 順序性的,難以做到平行處理,因此無法使用 GPU 進行加速,在速度上仰賴著

CPU 的計算能力,而在邊緣運算的裝置上 CPU 效能有所限制,可能導致檢測 速度不如預期。

(23)

14

圖 2.5 NMS 作法的示意圖,棕色框為 NMS 完後的邊界框。

2-2 Centernet

物件偵測中有另一派的做法是不使用 Anchor box 提取候選區域,稱為

Anchor-free 物件偵測。在 Anchor-free 的眾多方法中基於關鍵點(Keypoints-

based)的思想是當中的一大重要分支,而本論文所使用的 Centernet[6]即為其中 之一。

基於關鍵點的做法 Centernet 不是第一個,Cornernet[10]將物件的 2 個角落

點作為物件的關鍵點(如圖 2.6),在模型預測時使用 Corner pooling 在輸出熱點

(24)

15

圖(Heatmap)上找出角落的關鍵點後,並將其兩兩配對找出物件邊界框。然而,

在使用 Corner pooling 與配對的過程中,會嚴重減慢模型的預測速度。

另一方面,Centernet 直觀地將物件的中心點作為關鍵點(如圖 2.7),並將該

點視為一個 Anchor point。在模型學習上,Cornernet 學習到的是角落的資訊,

而角落的資訊會混雜著物件以外的背景;Centernet 學習到的是中心點的資訊,

中心點通常也是最能代表物件的位置,因此更能學習到物件的特徵。Centernet

也直接回歸物件的長寬與關鍵點的偏移值(Offset),在模型預測上使用方法簡單

的 Maxpooling 在輸出熱點圖上找出關鍵點,並與其對應的長寬與偏移值組成物

件邊界框。

圖 2.6 Cornernet 以物件角落兩點作為關鍵點的示意圖。

(25)

16

圖 2.7 Centernet 以物件中心點作為關鍵點的示意圖。

表 2.1 Anchor-based 與 Centernet 架構的差異處。

Anchor-based Centernet

Anchor 數 K(需自行設計)個 Anchor box。

1(中心點)個 Anchor point。

模型輸出 多組邊界框(Bounding box)。 關鍵點熱點圖(Heatmap)

、長寬與偏移值。

後處理 NMS(Non-maximum

suppression)篩選多餘的框。

Maxpooling 找出關鍵點。

(26)

17

從表 2.1 中,能了解到 Anchor-based 與 Centernet 在架構上的差異處,在

Centernet 上只需要有檢測物的中心點與長寬就能訓練,而每一個物件的中心點 與長寬為唯一,因此不需要再重新設計模型的超參數,可以直接使用於其他檢

測任務上,比起 Anchor-based 架構需要重新設計與最佳化 Anchor box,在模型

上的泛用性更高。另外,在後處理上使用可以平行處理的 Maxpooling 找出關鍵

點,此作法能夠經由 GPU 進行加速,速度比起使用 NMS 還要快上許多。基於

上述幾點原因,在本論文建立的 AOI 元件檢測系統中,使用 Centernet 作為核

心演算法,而本論文所採用的 Centernet 模型我們將會在第三章進行更詳細的介

紹。

(27)

18

第 3 章 研究方法

本論文的研究目的是使用以 Centernet 為理論基礎所設計之演算法開發一套

AOI 元件檢測系統,在此系統中能夠偵測產品上的元件缺件、使用錯誤元件組 裝等多種不良狀況。這些產品是由許多的電子元件所組成,元件會依序由工廠

中機台安裝上,以圖 3.1 舉例來說,在第一機台時會組裝 A 元件到產品的電路

板上,而第二機台時則會組裝 B、C 元件,直到產品組裝完成。本研究所開發

的系統能夠容易地設立在各機台上,並針對不同的組裝元件進行檢測。在本章

節中,我們會以其中一機台的組裝元件做為範例,說明如何建立此檢測系統。

我們將建立系統的過程分為 3 個階段,並且在建立完系統後說明實際使用

時的檢測流程。在建立系統過程中,首先本論文會從訓練資料的建立開始討

論,在只有少量資料的困境下,使用何種的資料增量方式擴充資料且模擬檢測

上可能出現的情境,讓訓練資料能夠多樣化。接著分析 Centernet 論文中的模型

原始架構,將模型改成適合本次檢測任務的結構以提高檢測速度。最後,解釋

模型在輸出後處理時如何使用 Maxpooling 的方式能從模型輸出熱點圖上以提取

關鍵點,組成檢測元件的邊界框。

(28)

19

圖 3.1 產品依序由各機台組裝元件之示意圖。

3-1 訓練資料建立

深度學習的模型需要大量的訓練資料來讓模型學習,但是在工業環境上往

往無法取得足夠的資料。在只使用少量資料的情形下進行訓練會導致模型傾向

於背下訓練資料的照片,而不是檢測物的特徵,導致在訓練資料下能有很好的

檢測結果,而在不同背景(圖 3.2)的測試資料上卻表現得不如預想,這也稱為模

型的 Overfitting(過擬和)。而資料增量是一種簡單且常見解決資料集不足的方

法,透過各種影像處理的技巧從原資料集中產生出不同影像給模型訓練,使得

模型有足夠多的資料學習檢測物特徵,讓在少量資料的困境下就能做到元件檢

測系統的快速開發。

(29)

20

圖 3.2 訓練資料與測試資料之示意圖,預檢測元件相同但背景充滿著不同元 件。

在使用資料增量上必須要注意的一點是,模擬的資料是否與現實檢測情境

相符,否則這筆資料對於模型訓練會有無意義或是負面的影響。因此本論文使

用了以下 3 種增量方式模擬檢測上有可能出現的情境(圖 3.3),並將這些資料放

到後續的 Centernet 進行訓練。

1. 將圖片進行旋轉,模擬在產線檢測上可能會有擺放不正的情形,如 圖 3.2 (a)所示。

2. 在圖片上加上高斯雜訊,模擬相機在拍攝時可能出現的斑點雜訊,

如圖 3.2 (b)所示。

3. 對圖片進行亮度調整,模擬檢測時可能會有些微環境光源變化的情 形,如圖 3.2 (c)所示。

(30)

21

圖 3.3 輸入照片與 3 種資料增量後影像之示意圖。

3-2 Centernet 模型與訓練

在 3-2 中,會分為 3 個小節講述,先從本論文中為何使用自訂義 Centernet

模型與其架構,接著為如何找出關鍵點與元件大小並標記它們,最後為此模型

所使用之損失函數。

3-2-1 所採用之 Centernet 模型

Centernet[6]的原始架構(圖 3.4)中輸入照片大小為𝐴𝑤 × 𝐴ℎ × 3的彩色圖片 會經 Backbone(骨幹)層、Feature extraction 層和分支 3 個由 3 × 3

Convolution、RELU 與 1 × 1 Convolution 組成的 Header 後分別輸出𝐴𝑤

𝑅 ×𝐴ℎ

𝑅 × 𝑇張關鍵點熱點圖,𝐴𝑤

𝑅 ×𝐴ℎ

𝑅 × 2張物件長寬(Object size)與𝐴𝑤

𝑅 ×𝐴ℎ

𝑅 × 2張關鍵點因 輸入下採樣產生的偏移值。其中𝑇為檢測物種類與𝑅為輸出時的步長(Stride

size),也就是下採樣大小,且在原論文與本論文中𝑅設為 4。

(31)

22

圖 3.4 Centernet 之原始架構。

Centernet 的原始架構使用於通用的物件檢測上,需要檢測的種類會比較 多,所以在 Bcackbone 層都選用模型比較龐大的,其中原本使用於人體姿勢檢

測的 Stacked hourglass network[11]在準確率上最高且模型參數量也最多。但

是,本論文是基於工業環境上的檢測系統做開發,而在此檢測上不需要檢測那

麼多的元件種類,因此必須對其架構進行修改。本論文針對 Centernet 中的

Backnbone 層與輸出作以下的修改,讓整個模型更適合用於本論文的檢測系統 且能夠讓檢測速度加快(圖 3.5)。

首先,本論文重新設計了 Backbone 網路,過於龐大的 Backbone 除了在檢

測速度上會比較慢,在只有少量訓練資料的情形下也比較容易 Overfitting。本

論文使用了殘差(Residual)[12]的概念重新設計網路,在殘差網路中,層與層之

間會有一條捷徑相連,使用捷徑的好處有避免梯度消失 (Vanishing gradient),

而且也有助於抑制模型的 Overfitting。

(32)

23

再者,本論文所採用的模型不回歸關鍵點的偏移值,在 Centernet 論文中,

由於𝑅為 4,偏移值對關鍵點位置的上採樣影響很小。而在某些元件檢測任務的

需求上,是以檢測出元件的數量為第一考量,物件的位置準度為次要順位,因

此本論文將回歸偏移值的分支給去除掉以減少模型參數量。

假如檢測元件都為同一大小的情況,也就是所有元件長寬都為一定值。則

本論文的模型可以做進一步的簡化,將 Size header 在預測階段時給去除。在訓

練時會保留 Size header 作為訓練熱點圖的 Regularlization (規範),在預測時可以

將 Size header 從模型中給拔掉,讓模型只預測熱點圖,達到進一步的節省模型

執行時間,在後處理與預測時模型上的差別在 3.3 章中進行更詳細的比較。本

論文所採用的網路模型如圖 3.6,使用的殘差塊(Resblock)如圖 3.7。

圖 3.5 修改後的 Centernet 架構示意圖,對 Backbone 進行修改且不回歸偏移 值。

(33)

24

圖 3.6 本論文所採用之 Centernet 網路模型。

圖 3.7 本論文所採用之殘差塊(Resblock)架構。

(34)

25

3-2-2 關鍵點熱點圖與元件長寬標記

在標記關鍵點熱點圖與元件長寬前,必須要先找出輸入圖像上元件的位置

所在,而本論文中使用了直接且簡單的邊界框方法框選出元件,就可以從邊界

框的座標求出所要的值。以圖 3.8 為例,在圖上有一邊界框框選出預檢測元件

的位置,其左上與右下點座標分別為(𝑥1, 𝑦1)、(𝑥2, 𝑦2),因此其中心點(𝑥, 𝑦)

就為這 2 點座標連線之中間點(𝑥1+𝑥2

2 , 𝑦1+𝑦2

2 ),而長寬 (W, H )就為 2 點座標的差 值(𝑥2 − 𝑥1, 𝑦2− 𝑦1)。

由於有下採樣大小𝑅的影響,必須對輸入圖像上的元件關鍵點座標(𝑥, 𝑦)

進行向下修正。向下修正後的座標位置就為原座標除上 R 的向下取整(⌊𝑥

𝑅 ⌋,

𝑦

𝑅 ⌋)。這新座標也代表著輸出圖上對應原圖關鍵點的位置,並且以(𝑚, 𝑛)表示 之,接著使用它來標記熱點圖與元件長寬。

圖 3.8 使用邊界框找出物件中心點與大小之示意圖。

(35)

26

在標記熱點圖的真值(Ground truth)時,每一種元件種類各對應一張熱點圖

輸出。舉例來說,假如其中一元件屬於第𝑗種元件,且關鍵點座標為(𝑚, 𝑛),對

該關鍵點使用高斯核後[6] [10],其第𝑗張熱點圖上所有點的值如下方公式:

Y𝑗(𝑥, 𝑦)= 𝑒−(

(𝑥−𝑚)2+(𝑦−𝑛)2 2σ2 )

(1)

Y𝑗(𝑥, 𝑦)的值會以關鍵點中心(𝑚, 𝑛)為 1 向外遞減,遞減的幅度與離中心點

座標遠近和𝜎有關。 𝜎 為標準差,標準差是用來調整高斯核散佈的值,越大的

標準差讓高斯核從關鍵點發散的值不會遞減的太快,可以散佈得更遠。若有多

個元件同屬於第𝑗種時,則對每一個元件的關鍵點座標都依公式(1)使用一次高斯

核,重疊之處則取其中Y𝑗(𝑥, 𝑦)最大值為該處值。使用高斯核的用處為,讓模型

能夠理解物件周圍與其餘背景的差異,也能夠減少因背景與元件數量相差太大

所帶來的龐大 loss。使用高斯核的過程如圖 3.9,高斯核內部值分布如圖 3.10。

在標記元件長寬真值時,只在每一個元件關鍵點座標上標上其對應的(W,

H ),其餘位置為 0,標記好後的 W 與 H 會各自對應一張輸出圖(圖 3.11)。如果

物件關鍵點重疊的話,則共用同一組(W, H )。

圖 3.9 使用高斯核之過程。未使用高斯核之熱點圖上只有在關鍵點上為 1,其 餘為 0,而使用高斯核之熱點圖上關鍵點周圍值為 0 到 1 之間。

(36)

27

圖 3.10 關鍵點使用高斯核後內部與周圍之值,其中心點值為 1 且值由內向外遞 減。

圖 3.11 元件長寬的標記,直接在其元件關鍵點座標上標上其對應的(W, H )。

3-2-3 損失函數

在熱點圖上所使用之損失函數(Loss function)為論文[10]中的 Focal loss。物

件偵測一直遇到的一個重要問題是負樣本(在此指背景)比起正樣本(元件)的數量

壓倒性的多,而這也造成了嚴重的資料不平衡(Data imbalance),負樣本所帶來

大量的 Loss 主宰了模型在反向傳播(Back propagation)時修正的方向,使得模型

學習到無意義的東西,而不是專注於元件的特徵學習上。而 Focal loss 在原有的

(37)

28

交叉嫡(Cross entropy)損失函數上加上一些參數,讓背景所帶來的 Loss 乘上這

些參數後數值變得更小,以解決正負樣本不均在訓練時所帶來的問題。本論文

使用之公式如下式:

(2)

在公式(2)中, 𝐿𝐶𝑙𝑠為熱點圖的總 Loss,𝑇為元件的種類數量,Y𝑗(𝑥, 𝑦)為在𝑗

種類時點(𝑥, 𝑦) 的真值,Ŷ (𝑥, 𝑦)為模型在𝑗種類時點(𝑥, 𝑦) 的預測值,𝐾為總共的𝑗

關鍵點數量,並且用來做 Loss 的標準化。最後𝛼和𝛽為超參數,是用來控制

Loss 的輸出,在本論文中𝛼設為 2,𝛽設為 4。

而在物件長寬的損失函數上使用的是 MAE(Mean absolute error),使用真值

與預測值之間的平均絕對誤差計算而得,其公式如下:

𝐿𝑊𝐻 = 1

𝐾∑(|𝐻̂𝑖− 𝐻𝑖| + |𝑊̂𝑖 − 𝑊𝑖|)

𝐾

𝑖

(3)

在公式(3)中,𝐿𝑊𝐻為元件長寬的總 Loss,𝐻𝑖與𝑊𝑖分別為第𝑖個元件的長與寬

真值,而𝐻̂𝑖與𝑊̂𝑖分別為模型在第𝑖個元件的長與寬預測值,𝐾一樣為總共關鍵點

的數量,且也用來作 Loss 的標準化,值得注意的地方是這個 Loss 只在關鍵點

上做計算,避免背景真值為 0 的無意義計算。

最後的模型總合 Loss 如下式:

𝐿𝑡𝑜𝑡𝑎𝑙 = 𝐿𝐶𝑙𝑠+ 𝜆𝑊𝐻𝐿𝑊𝐻

(4)

在公式(4)中 𝜆𝑊𝐻為超參數,且在本論文中設為 0.1。

(38)

29

3-3 模型輸出後處理

由於模型輸出為關鍵點𝑇張熱點圖與 2 張元件長寬圖(圖 3.12),而不是元件

邊界框的位置,因此必須要用後處理的方式找出邊界框。在 Centernet 中邊界框

可以由元件關鍵點座標與其對應長寬組成,因此要先從熱點圖上找出預測的關

鍵點。在 3-3-1 中,會說明如何從熱點圖上找到預測的關鍵點,在 3-3-2 與 3-3-

3 中,會比較原始預測模型與在檢測大小為相同時可使用之模型在架構上與組 成邊界框的差異。

圖 3.12 模型輸出為𝑇張關鍵點熱點圖與 2 張元件長寬圖,在此圖中檢測元件只 有螺絲,因此𝑇為 1。

3-3-1 尋找關鍵點

要尋找熱點圖上的關鍵點其實等價於尋找熱點圖上的峰值(Peak value),峰

值上預測值會大於相鄰 8 個座標預測值,其也符合當初使用高斯核時,關鍵點

真值與其周圍座標真值的情境。而使用一 Kernel 大小為 3 × 3、Stride 為 1 和

Padding 為 1 的 Maxpooling 在𝑇張熱點圖上掃過一次可以很有效率地找出所有預

測的準關鍵點,並將非關鍵點的位置預測值設為 0,其做法如圖 3.13,如果使

用 Maxpooling 完後該點的值一樣,則它就為要找的峰值,反之則不是。

(39)

30

圖 3.13 3 x 3 Maxpooling 如何在這找出所有的峰值。

使用 Maxpooling 在輸出熱點圖上找完準關鍵點後,接著進一步對這些點的

預測值使用門檻值(Threshold)進行篩檢,在本論文中門檻值設為 0.2。篩檢完後

得到預測的關鍵點座標為(𝑥̂ , 𝑦̂ ),而此篩選關鍵點的流程可總結為圖 3.14。

(40)

31

圖 3.14 篩選關鍵點的流程圖。在此圖中輸出熱點圖經過 3 × 3 Maxpooling 與門 檻值篩檢後剩下 3 個預測的關鍵點。

3-3-2 組成邊界框

有了預測關鍵點座標(𝑥̂ , 𝑦̂ )後就能與對應的元件長寬(𝑊̂ , 𝐻̂)組成邊界

框。邊界框的左上與右下點座標(𝑥𝑚𝑖𝑛 , 𝑦𝑚𝑖𝑛)、(𝑥𝑚𝑎𝑥 , 𝑦𝑚𝑎𝑥)會分別由公式(5)至 公式(8)中求出,求得座標後在原圖上框選出元件的模樣如圖 3.15 所示。

(41)

32

𝑥𝑚𝑖𝑛= (𝑥̂−𝑊̂

2) (5)

𝑦𝑚𝑖𝑛= (𝑦̂ −𝐻̂

2) (6)

𝑥𝑚𝑎𝑥 = (𝑥̂+𝑊̂

2) (7)

𝑦𝑚𝑎𝑥 = (𝑦̂ +𝐻̂

2) (8)

圖 3.15 求得預測的元件邊界框座標後在輸入圖片上框選出物件。

3-3-3 檢測目標大小之影響

元件長寬(𝑊̂ , 𝐻̂)未必為一常數,相同種類的元件也有可能有大有小,在此

情況時預測模型就需要有長寬圖的回歸來找出對應的(𝑊̂ , 𝐻̂)。而在元件長寬

(𝑊̂ , 𝐻̂)為一常數,也就是都為同樣大小時,則可以在預測模型上選擇做進一步 的簡化與加速,也就是在預測模型上只會輸出熱點圖,不需要回歸長寬圖。這

2 個預測模型之差異如圖 3.16 所示。

(42)

33

圖 3.16 預測模型之差異。

3-4 檢測流程

此系統的檢測流程如圖 3.17,並可以分為 3 個階段進行說明。首先,在輸

入資料上,影像必須為𝐴𝑤 × 𝐴ℎ × 3的大小,並且對輸入的影像進行標準化,

也就是對影像的每個像素的 RGB 維度都除上 255 的值。

接著,根據元件長寬(𝑊̂ , 𝐻̂)是否為一常數選用圖 3.16 之 Centernet 模型進

行預測。元件長寬(𝑊̂ , 𝐻̂)為一常數時可用只輸出熱點圖的模型,而不為常數時 則需要使用輸出為熱點圖與長寬圖的模型。

最後,在 Centernet 預測完後,輸出後處理上會使用圖 3.14 的方法從熱點

圖上找出預測的關鍵點,並隨著使用之模型在公式(5)至公式(8)取得邊界框的 4

(43)

34

個座標上會有變化。舉例來說,如果是使用只輸出熱點圖的模型則(𝑊̂ , 𝐻̂)為一

定值,而如果是使用輸出熱點圖與長寬圖的模型則(𝑊̂ , 𝐻̂)的值會從長寬圖上得

到。最後如圖 3.15 使用得到的邊界框座標在輸入圖片上框選出檢測到的元件。

圖 3.17 檢測之流程圖。

(44)

35

第 4 章 實驗結果

在本論文的實驗中,我們使用廠商所提供的 RX590 8GB GPU 顯示卡(圖

4.1)作為樣本,檢測目標為 GPU 顯示卡上方風扇拆下後 PCB 板(圖 4.2)上的螺 絲。我們選擇螺絲作為本實驗的檢測目標理由有二,一、螺絲主要用於固定顯

示卡的背板抑或是風扇,如有螺絲漏鎖情形,整塊顯示卡都有報廢的可能。

二、在螺絲檢測上需要有即時性的回報,如果能在鎖螺絲完後即時檢測出有漏

鎖的情形,就能避免報廢的情況發生。綜合上述理由,本實驗選用螺絲作為檢

測目標,且由於 PCB 板上螺絲的數量為固定,因此只要檢測上方有多少螺絲,

就知道有多少螺絲沒鎖上,所以本實驗中的 AOI 系統為檢測 PCB 板上螺絲的

位置與數量。透過使用於本實例上,我們的 AOI 元件檢測系統可以應用於其他

元件檢測上。

圖 4.1 RX590 8GB GPU 顯示卡。

圖 4.2 顯示卡風扇拆下後的 PCB 板,上面有許多元件,而螺絲為其中之一。

(45)

36

本論文的開發環境如表 4.1,並使用清姬雷蛇視訊鏡頭收集資料,拍攝方法

如圖 4.3。在收集訓練資料時只拍攝少量且部分 PCB 板的照片,希望透過只使

用部分的資料進行訓練就能偵測出整個 PCB 板上的螺絲,而測試資料則是拍攝

整張的 PCB,其拍攝區間如圖 4.4 所示。在收集資料上,雖然訓練資料收集區

間與測試資料收集區間有重疊處,但是在拍攝時會有環境因素的影響,如光源

與擺放位置的不同,並且在拍攝每張照片時 PCB 上螺絲鎖的個數也會有差異。

清姬雷蛇視訊鏡頭拍攝相片大小為 1280 × 720 × 3(pixel),而模型輸入為

640 × 640 × 3,因此我們透過裁切(Crop)的方式分成多段,在訓練資料上,總 共拍攝了 10 張相片,經過裁切與 3-1 小節方法增量後,訓練資料集總共有 800

張,並以 8:2 的形式各分 640 張為訓練集(Training data)與 160 張為驗證集

(Validation data)。在測試資料上,我們使用與訓練資料不同的環境光源與擺放 方式總共收集了 10 張照片,在經過裁切與使用旋轉 5 度模擬擺放誤差增量後,

測試資料集總共為 60 張,而模型輸入圖片範例如圖 4.5。

在本章節後續實驗討論分為 4 個部分(4-1、4-2、4-3,4-4)。在 4-1 中,會先

展示本論文 Centernet 的檢測結果,接著使用評估方法對本論文的 Centernet 與

常見檢測方法進行效能上的比較。在 4-2 中,會比較在訓練時有無使用長寬作

為 Regularization 對於模型預測時結果的影響。在 4-3 中,介紹所使用的邊緣運

算裝置的設備,並說明 Centernet 在此邊緣裝置上運行的效能為何。最後在 4-4

中,介紹本系統在產線上的實際使用情形。

(46)

37

表 4.1 個人電腦的開發設備與其他細節。

開發環境(個人電腦) CPU Intel® Core™ i3-8100 GPU NVIDIA GeForce RTX 2070

RAM 32GB DDR4

開發軟體 Python 3.6.12

拍攝鏡頭 清姬雷蛇視訊鏡頭

圖 4.3 使用清姬雷蛇視訊鏡頭收集資料之示意圖,將 PCB 板平放與調整環境 光源後進行拍攝。

(47)

38

圖 4.4 訓練資料與測試資料拍攝區間不同之示意圖,訓練資料與測試資料在收 集時會有環境光源與擺放位置差異之變化。

圖 4.5 模型輸入圖片之範例示意圖,經裁切後為 640 x 640 x 3 大小。

(48)

39

4-1 檢測結果與其他檢測方法比較

本論文之 Centernet 如果未特別提及則都為使用預檢測元件的長與寬作為

Regularization 訓練而得,並且在後續實驗中都使用此架構。其檢測結果如圖

4.6、4.7,在檢測情境中 PCB 上有螺絲時(圖 4.6)能夠正確的框選出螺絲位置。

而在檢測情境中 PCB 板上沒有螺絲時(圖 4.7)不會有誤判的情形發生。接下來會

與常見的檢測方法,Anchor-based 物件偵測與圖像分割法,使用評估方法進行

效能上的比較,並分為兩部分進行討論。

圖 4.6 檢測情境為 PCB 板上有螺絲,能夠正確的框選出螺絲的位置。

圖 4.7 檢測情境為 PCB 板上無螺絲,不會有誤判的情形發生。

(49)

40

在與 Anchor-based 的比較中會使用 AP(Average precision),與圖像分割的比

較中使用的是 Confusion matrix(混淆矩陣)。在使用這些評估方法比較之前,必

須先介紹在這些評估方法中的 4 個基本元素,在本實驗中,TP(True positive)為

正確的檢測出該位置為螺絲,FP(False positive)為錯誤的檢測出該位置為螺絲,

也就是把其他背景誤認為螺絲,FN(False negative)為錯誤的沒檢測出該位置有

螺絲,也就是沒有將應該要檢測出的螺絲給檢測出來,TN(True negative)為正確

的把背景檢測為背景,而因為物件檢測中絕大部分都是背景,且也成功地將背

景辨識為背景,因此 TN 可以忽略不計。

在物件檢測中是使用 IOU 的值來評估是否有正確檢測出物件,IOU 的算法

如圖 4.8 所示,𝐴𝑟(𝑃𝑟)為檢測模型預測物件的所在區域,𝐴𝑟(𝐺𝑡)為預先手動標

記完物件真值(Ground truth)的所在區域,其 IOU 值就為 2 區域的聯集分之交

集,本論文將 IOU 值設為大於等於 0.5 為有檢測出,也就是 TP,而小於 0.5 就

為 FP。

圖 4.8 IOU 算法之示意圖。

(50)

41

(一) 與 Anchor-based 物件偵測的比較

AP 為物件偵測方法中最常用的模型評估方法,它的值為由 Precision 與

Recall 所組成之 PR 曲線(Precision-recall)座標圖下的面積,且 AP 的值會落在 0 到 1 之間。Precision 是指精確率,也就是預測為 Positive 時實際上有多少為

True positive,Recall 是指召回率,也就是實際為 Positive 時,有多少被預測出 來,而 Precision 與 Recall 的詳細算法如下方公式(9)、(10):

Precision = TP

(TP+FP) (9)

Recall = TP

(TP+FN) (10)

當 AP 值越靠近 1 時,也就是 PR 曲線越往右上角靠近時,也就是模型的

Recall 與 Precision 的數值都越高,這也代表著模型檢測效能越好,範例 PR 曲 線如圖 4.9。

圖 4.9 PR 曲線之示意圖。

(51)

42

與本論文 Centernet 比較的 Anchor-based 架構為使用 Resnet50 做為

Backbone 的 Faster-RCNN[7][13],並且在 COCO 2017 dataset 上 Pre-trained 過。

將訓練資料給 Faster-RCNN 做 Fine-tuned 後,在測試資料集上比較如圖 4.10 與

表 4.2 所示,在 AP 比較上,本論文 Centernet 為 0.9835,而 Faster-RCNN 為

0.9874,兩者相差非常狹小,在檢測上都有良好的精確率與召回率。但在 FPS 比較上,本論文的 Centernet 可以達到每秒預測 26 張,Faster-RCNN 卻只能每

秒預測 10 張,足足快了 2 倍之多。

圖 4.10 Faster-RCNN[13]與本論文的 Centernet 各自的 PR 曲線。

表 4.2 Faster-RCNN[13]和本論文 Centernet 效能比較。

Faster-RCNN[13] Our centernet AP(Average precision) 0.9874 0.9835 Predict time per

image(ms)

106 38.4

FPS 9.43 26.04

(52)

43

(二) 與圖像分割的比較

由於圖像分割的方法不會預測物件的分數,因此在與圖像分割的比較中,

本論文的 Centernet 會固定一門檻值後使用二元分類的混淆矩陣進行比較。二元

分類的混淆矩陣總共由 TP、FP、FN、TN 4 個元素組成,並以 Precision、

Recall 與 F1 score 作為評估。F1 score 為 Precision 與 Recall 的綜合評比分數,

其計算公式(11)如下:

F1 score = 1 2

Precision+Recall1 (11)

與本論文 Centernet 比較的圖像分割架構為 U-net[14]與 U-net 加上 Focal

loss[15]。U-net 為圖像分割方法中的經典模型,將訓練資料給 U-net 與 U-net 加 上 Focal loss 做 Training 後,在測試資料集上與本論文 Centernet 門檻值大於 0.2

時的混淆矩陣比較如表 4.3,在 Recall 比較上,3 個模型都有很好的數值表現,

但在 Precision 與 F1 score 比較上,雖然使用 Focal loss 的 U-net 比沒使用的好很

多,但都還是比 Centernet 還要低。

表 4.3 本論文之 Centernet、U-net[14]和 U-net 加上 Focal loss[15]使用混淆矩陣 之效能比較。

(53)

44

透過分析本章節中的檢測結果與 2 個實驗比較可得知,本論文使用之

Centernet 在元件檢測上具有良好的檢測能力。而且在檢測速度上能夠達到每秒

22 張的預測速度,所以本論文之系統也具備即時檢測的能力。

4-2 有無使用 Regularization 的比較

在本小節中會比較在元件為相同大小時,本論文之 Centernet 在訓練時有無

使用元件長寬作為 Regularization 對於模型預測上效能的影響。在本實驗中,會

使用 AP 值來觀察模型的效能,而圖 4.11 為各自的 PR 曲線與表 4.4 為 AP 值的

差異。

在使用 Regularization 時 AP 值為 0.9835,而不使用 Regularization 時則為

0.9765,AP 值的差距大約為 0.07。從本實驗的比較中,可以了解使用長寬作為

Regularization 在檢測效能上是比較優秀的,也加強了本論文在訓練模型時使用 長寬作為 Regularization 的合理性。

圖 4.11 本論文之 Centernet 有無使用 Regularization 各自的 PR 曲線。

(54)

45

表 4.4 本論文之 Centernet 有無使用 Regularization 之效能比較。

With regularization Without regularization

AP(Average precision) 0.9835 0.9765

4-3 在嵌入式系統上之測試

本論文所使用之邊緣運算的裝置為 Jeston nano 4GB 開發板(Development

kit)。Jestson 系列為 Nvidia 所開發的先進嵌入式系統,上面搭載者支援機器學 習的 GPU,其中 Jetson nano 為 Jetson 系列中最便宜的產品,在表 4.5 的硬體規

格比較中,不論在 CPU、GPU 與記憶體上,Jetson nano 都使用相對比較差的配

備,使用龐大的模型進行檢測會有困難。如果本論文的 Centernet 能在 Jetson

nano 上運行且效能不錯的話,則表示說本論文使用的模型足夠輕量,可以在工 廠大部分的邊緣運算裝置上使用,而且如果硬體設備比 Jetson nano 更好的話在

檢測速度上會有更好的表現。

Jeston nano 的作業系統使用 Linux 架構,支援 python 程式的運行,而本論 文的 Centernet 在 Jetson nano 預測每張所需時間為 0.532 秒,也就是說 FPS 為

2,這在以輸入圖片為 640 × 640 × 3 的大小在 Jetson nano 上進行檢測為不錯 的結果。透過在本實驗的成功運行證明本論文之模型足夠輕量在低成本的嵌入

式系統上使用。

(55)

46

表 4.5 Jetson 系列產品規格比較。

4-4 實際應用

經過前幾小節對本論文所設計之元件檢測系統的效能分析,可以了解到本

系統在檢測上很穩定。在本小節中會模擬實際在產線上使用多組相機檢測元件

的情境,我們將檢測的 PCB 板分成 A、B 部分分開檢測(圖 4.12),在 A 部分總

共有 6 個螺絲要鎖上,而 B 為 4 個。由於鎖上的螺絲為一定數,所以在本次檢

測中只需要檢測出螺絲數量就能知道有多少螺絲沒鎖上。舉例來說,A 部分鎖

完螺絲後只檢測到 5 個螺絲的位置,這就代表有一個螺絲沒有鎖上。

(56)

47

圖 4.12 將 PCB 板分為 A、B 部分分開檢測。

在本檢測系統中 Centernet 的門檻值設為 0.2,並且會設計一個小視窗,它

會用來通知是否現在為檢測狀態,這是用來避免在鎖上或卸下螺絲時對 PCB 板

的晃動會影響模型的誤判,如圖 4.13,在鎖螺絲時就不進行檢測,這個小視窗

的檢測狀態可以藉由操作人員手動調整或是使用定時的方式進行切換。圖 4.14

與 4.15 為在 A、B 部分的實際檢測成果,照片由左到右會經過卸下與鎖上螺絲

的動作,而上面的小視窗會顯示檢測到的螺絲數量,從圖中可見,本系統在檢

測螺絲的位置與數量上都十分準確。

(57)

48

圖 4.13 在鎖螺絲時,檢測狀態為 off。

圖 4.14 A 部分檢測結果。

(58)

49

圖 4.15 B 部分檢測結果。

(59)

50

第 5 章 結論

本論文建立了一個 AOI 元件檢測系統,檢測系統使用了經過大量簡化過後

的 Centernet 架構,在收集資料上,我們只需要取得少量實際環境資料,並對這

些訓練影像進行資料增量就能進行訓練。在使用網路模型上,讓模型不回歸偏

移值,並且將整個網路模型使用小型的殘差網路重新架構。在模型預測上,提

出了一個新的加速方式,其方式為當元件為同一大小時,可以進一步將模型的

長寬圖回歸給去除。

在本實驗中與其他現有檢測方法的比較上,本研究建立之系統不但有著很

高的檢測準確率,且在檢測速度上勝過許多,能夠達到即時性的檢測。最後也

把本實驗的系統整合在低成本的嵌入式系統上並成功運行,以此表示本論文的

模型足夠輕量。

在未來發展上,本論文所設計之系統透過從複雜 PCB 上成功檢測出螺絲、

邊緣運算裝置上運行與實機展示,我們認為本系統具有將檢測元件從複雜背景

上分開並準確檢測出的能力,可以很容易地拓展到其他元件檢測任務,並且在

工業應用上具有它的價值所在。

(60)

51

參考文獻

[1] M. A. Mallaiyan Sathiaseelan, O. P. Paradis, S. Taheri, and N. Asadizanjani, "Why Is Deep Learning Challenging for Printed Circuit Board (PCB) Component

Recognition and How Can We Address It?," Cryptography, vol. 5, no. 1, pp. 9, Mar.

2021.

[2] A. J. Crispin and V. Rankov, "Automated inspection of PCB components using a genetic algorithm template-matching approach," Int. J. Adv. Manuf. Technol., vol. 35, pp. 293-300, 2007.

[3] D. Li, C. Li, C. Chen, and Z. Zhao, "Semantic Segmentation of a Printed Circuit Board for Component Recognition Based on Depth Images," Sensors, vol. 20, no. 18, pp. 5318, Sep. 2020.

[4] C. Yang, "Machine Learning and Computer Vision for PCB Verification,"

Dissertation, 2020.

[5] S. Suzuki and K. Abe, "Topological structural analysis of digital binary images by border following," Comput. Vision Graphics Image Process., vol. 30, no. 1, pp. 32-46, 1985.

[6] X. Zhou, D. Wang and P. Krähenbühl, "Objects as points," arXiv:1904.07850 [cs.CV], 2019.

[7] S. Ren, K. He, R. Girshick and J. Sun, "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks," in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 39, no. 6, pp. 1137-1149, 1 June 2017.

[8] J. Redmon and A. Farhadi, "Yolov3: An incremental improvement,"

arxiv:1804.02767 [cs.CV], 2018.

[9] Wenshuo Ma, Tingzhong Tian, Hang Xu, Yimin Huang and Zhenguo Li, "AABO:

Adaptive Anchor Box Optimization for Object Detection via Bayesian Sub- sampling," arXiv:2007.09336 [cs.CV], 2020.

(61)

52

[10] Hei Law and Jia Deng, "CornerNet: Detecting Objects as Paired Keypoints," arXiv:1808.01244 [cs.CV], 2018.

[11] A. Newell, K. Yang, and J. Deng, "Stacked hourglass networks for human pose estimation," European conference on computer vision, pp. 483–499, 2016.

[12] K. He, X. Zhang, S. Ren, and J. Sun, "Deep residual learning for image recognition," Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 770–778, 2016.

[13] Huang J, Rathod V, Sun C, Zhu M, Korattikara A, Fathi A, Fischer I, Wojna Z, Song Y, Guadarrama S and Murphy K, "Speed/accuracy trade-offs for modern convolutional object detectors," CVPR, 2017.

[14] Olaf Ronneberger, Philipp Fischer and Thomas Brox "U-Net: Convolutional Networks for Biomedical Image Segmentation," arXiv:1505.04597 [cs.CV], 2018.

[15] T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dollar, "Focal loss for dense object detection, " Proceedings of the IEEE international conference on computer vision, pp. 2980–2988, 2017.

參考文獻

相關文件

順伯為測量樹高 ¯  CD ,站在距離樹 30 公尺處,即 E 點的位置,將其手臂伸直,把一支有刻度的 尺豎在眼睛前方,若順伯的眼睛 O 點,和尺上的 A 點及樹的頂端 D

化成 reduced echelon form 後由於每一個 row 除了該 row 的 pivot 外, 只剩 free variables (其他的 pivot variable 所在的 entry 皆為 0), 所以可以很快地看出解的形式..

小數點以下第三位四捨五入)在 70 分以上者,且經審查委員會出 席委員過半數同意即為優勝單位,其中序位合計值最低者為第一優

Wi-Fi 定位即利用無線網路來傳遞信號,根據各種網路參數和算法可以找出使用

一般在使用 MFCC 做為特徵擷取參數的方法,是將所有短時域音框所取得 的 MFCC 加總取平均(mean),或是將所有短時域音框所得之 MFCC 計算其標準 差(standard

則巢式 Logit 模型可簡化為多項 Logit 模型。在分析時,巢式 Logit 模型及 多項 Logit 模型皆可以分析多方案指標之聯合選擇,唯巢式 Logit

CD Hybrid 的方法大致如下,當物件進出某個 Anchor 的感測圓時,使用 DCTT 的方法產生的評估位置當作物件的評估位置。當 Anchor 感測到物件但又沒有進 出任何其他

如圖 3.2-1 所示,左邊 port 為 Input 訊號,右邊六個 port 為 Output 訊號。若訊號 要由 Output1 當作輸出時,SW1、SW2、SW5 的 Switch 必頇讓路徑導通,而第三級