• 대한전기학회
Mobile QR Code QR CODE : The Transactions of the Korean Institute of Electrical Engineers
  • COPE
  • kcse
  • 한국과학기술단체총연합회
  • 한국학술지인용색인
  • Scopus
  • crossref
  • orcid

  1. (Dept. of Control and Robot Engineering, Chungbuk National University, Korea.)



Surface mount device, Deep learning, Defect classification

1. 서 론

자동 광학 검사(Automated Optical Inspection, AOI)장비는 인쇄 회로 기판(Printed Circuit Board, PCB) 제조 공정에서 발생하는 기판의 불량에서부터 기판 표면에 실장되는 표면 실장 부품(Surface Mounted Device, SMD)에 대한 조립 불량까지 종합적으로 검사하는 장비이다. 최근 AOI를 이용한 검사에서는 SPC(Statistical Process Control)를 적극 활용하고 있다. SPC는 공정 불량에 대한 데이터베이스를 구성 및 분석하여 공정 개선, 불량 원인 분석 및 유지보수에 활용하는 공정 개선 방법 중 하나이다.

표면 실장 부품은 인쇄 회로 기판 표면에 실장되는 저항, 캐패시터, IC칩과 같은 부품을 통칭한다. 표면 실장 부품은 크게 두 개의 솔더와 하나의 패키지로 구성되는 칩형 부품과 IC칩, SOD와 같이 칩형 이외의 부품인 이형 부품으로 구분할 수 있다. 그림 1은 칩형 부품과 이형 부품의 예시이다.

조립 불량은 인쇄 회로 기판에 표면 실장 부품을 실장하는 SMT(Surface Mount Technology) 공정에서 발생하는 결함이다. 조립 불량은 미삽, 틀어짐 등 부품 패키지 영역에서 발생하는 결함과 납 불량 등 부품 솔더 영역에서 발생하는 결함으로 나뉜다. AOI는 이와 같은 조립 결함을 검사하여 공정 유지 및 보수에 사용되는 SPC에 활용한다.

조립 결함 분류를 위한 연구는 PCB에 대한 기판검사[1-3]에서부터 시작되었다. 위와 같은 연구는 주로 추출한 이미지 특징값을 의사 결정 트리로 학습하여 검사를 진행하였다. 이후 SMD에 대한 불량 유무 검사에 관한 연구가 있다[4-13]. SMD 불량 유무 검사는 초기에 정상 기준을 만족하는 기준 SMD 이미지와 실제 SMD 이미지를 템플릿 매칭, 유사도 평가 함수 등으로 유사도를 비교하여 검출하는 방법[4-5]이 연구되었다. 이 방법은 단순이 양/불량을 구분하는것에 국한되었다는 한계가 있다.

이후 연구에서는 단순 양/불 판정에서 벗어나 각 개별 결함 종류를 판별하는 연구가 진행되었다[6-13]. 조립 결함 판별에 관한 연구는 칩형 부품과 이형 부품이 구분되어 연구되어왔다. 칩형 부품의 조립 결함 판별에 관한 연구에는 의사 결정트리를 사용한 솔더 조인트 불량 분류에 관한 연구[6], 기계학습을 사용한 솔더 조인트 불량 분류에 관한 연구[7-9]가 있다.

이형 부품에 대한 조립 결함 분류 연구에는 의사 결정 트리를 사용한 IC칩 솔더 조인트 불량 분류[10], IC칩의 솔더 영역의 특징을 추출하는 연구[11], CNN(Convolutional Neural Network)을 사용하여 솔더 영역 추출과 불량 분류를 동시에 진행하는 연구[12]가 있다. 솔더 조인트 검사에 비해 연구가 활발히 진행되지는 않지만 패키지 에 대한 불량 분류 검사[13] 역시 꾸준한 연구가 진행 되고 있다. 기존 연구는 칩형 부품과 이형 부품의 분류가 별도로 연구되어 이를 통합적으로 분류하는 연구가 없다. 또한, 정상과 불량의 분류를 하나의 네트워크에서 진행하여 조립 결함 분류의 정확도가 낮으며, 정상과 불량의 분류를 통합하여 진행하기 위해 네트워크 가중치가 증가한다.

본 논문은 SMD 조립 불량 분류를 위한 시스템을 제안한다. 본 논문의 SMD 조립 불량 분류 시스템은 정상/불량 판정 네트워크와 불량 종류 분류 네트워크의 두 단계로 구성된다. 정상/불량 판정 네트워크는 칩형 부품과 이형 부품 이미지에 대하여 정상/불량을 판정한다. 이후, 불량 종류 분류 네트워크는 정상/불량 판정 네트워크의 판정 결과가 불량인 부품에 대한 불량 종류를 분류한다. 본 논문에서 제안하는 불량 분류 방법은 칩형 부품과 이형 부품에 대한 조립 불량 분류를 동시에 진행한다. 정상/불량에 대한 분류와 불량 종류에 대한 분류를 개별적인 네트워크에서 수행하여 결함 분류의 정확도를 높였다. 또한, 각 분류에 특화된 결함 분류 네트워크의 사용으로 네트워크의 가중치가 감소하였다.

본 논문의 구성은 다음과 같다. 먼저 2장에서 전체적인 시스템의 구성을 제안하고 조명계, 이미지 획득에 대해서 설명한다. 3장에서는 불량 분류에서 사용한 분류 네트워크에 대한 설명을 진행한다. 4장에서는 실제 SMD 이미지를 사용한 실험 결과를 제시한다. 타 분류 방법과 제안 방법의 정확도, 정밀도, 재현율, F1-Score에 대한 비교평가는 본 논문에서 제안하는 방법의 효율성을 입증한다.

2. 시스템 구성

그림 1은 본 논문에서 제안하는 조립 불량 분류 시스템의 흐름도이다. 부품 이미지는 AOI에서 PCB이미지를 촬영하여 각 개별 부품 단위로 분리한 이미지이다. 부품 이미지는 정상과 불량을 구분하도록 학습된 정상/불량 판정 네트워크로 입력된다. 정상/불량 판정 네트워크에서 불량으로 판정된 불량 이미지는 불량 종류 분류 네트워크로 입력된다. 불량 종류 분류 네트워크는 불량 이미지의 불량 종류를 판별한다.

그림. 1. 조립 불량 분류 흐름도

Fig. 1. Assembly defect classification system

../../Resources/kiee/KIEE.2019.68.10.1236/fig1.png

입력된 부품 이미지에서 정상 이미지를 정상/불량 판정 네트워크를 통하여 선별하고, 불량 이미지는 불량 분류에 특화된 네트워크로 분류하였다. 불량 분류 과정을 정상/불량 판정과 불량 종류 분류로 구분하고 각 과정에 최적화된 네트워크를 사용함으로써 불량 분류의 정확도를 높였다. 또한 네트워크 최적화를 통해 기존 네트워크 대비 네트워크의 가중치를 감축하였다.

각 분류 네트워크를 학습하기 위해서는 불량의 종류가 구분된 이미지 데이터셋이 필요하다. 각 분류 네트워크는 Convolutional Neural Network(CNN)으로 구성된다. CNN은 네트워크 구조에 따라 수만에서 수십만개의 가중치를 가지며, 가중치 학습을 위하여 수만에서 수십만 개의 부품 이미지가 요구된다. 그러나 AOI로부터 획득하는 부품 이미지는 한계가 있다. 본 논문에서는 분류 네트워크 학습에 요구되는 부품 이미지 개수를 증가시키기 위하여 영상처리를 사용한 밝기 조절, 대비 조절, 저주파 등 5개의 데이터 보완 방법을 사용하였다. 그림 2는 데이터 보완 방법을 사용한 결과를 보여준다. 그림 2(a)는 원본 이미지에서 밝기 값을 증가시켜 얻은 이미지, 그림 2(b)는 밝기 값을 감소시켜 얻은 이미지, 그림 2(c)는 대비를 증가시킨 이미지, 그림 2(d)는 대비를 감소시킨 이미지, 그림 2(e)는 부품 이미지의 저주파 영역 이미지, 그림 2(f)는 원본 이미지를 나타낸다.

그림. 2. (a) 밝기 증가 이미지 (b) 밝기 감소 이미지 (c) 대비 증가 이미지 (d) 대비 감소 이미지 (e) 저주파 이미지 (f) 원본 이미지

Fig. 2. (a) Brightness increase image (b)Brightness decrease image (c) Contrast increase image (d) Contrast decrease image (e) Low frequency image (f) Original image

../../Resources/kiee/KIEE.2019.68.10.1236/fig2.png

시스템의 최종 출력은 SMD 조립 불량 종류이다. SMD 불량의 종류로는 표 1에 정리 되어있다. 정상은 부품이 지정된 위치에 정상적으로 실장된 상태를 의미한다. 불량 중, 미삽은 부품 실장 위치에 부품이 장착되지 않은 경우를 나타내며, 회전은 부품이 부품 실장 위치를 기준으로 회전이 되어 장착이 된 경우를 뜻한다. 틀어짐은 부품이 부품 실장 위치에서 일정 거리 이상 벗어나 실장이 된 경우를 뜻하며, 이물질은 부품 표면에 먼지 등 이물질이 착상된 상태를 뜻한다. 납 불량은 납 분포의 양이 과다하게 많거나 적은 경우를 의미한다.

표 1. 조립 불량 종류

Table 1. Assembly defect type

../../Resources/kiee/KIEE.2019.68.10.1236/tbl1_6.png ../../Resources/kiee/KIEE.2019.68.10.1236/tbl1_2.png ../../Resources/kiee/KIEE.2019.68.10.1236/tbl1_3.png

정상

미삽

회전

../../Resources/kiee/KIEE.2019.68.10.1236/tbl1_4.png ../../Resources/kiee/KIEE.2019.68.10.1236/tbl1_5.png ../../Resources/kiee/KIEE.2019.68.10.1236/tbl1_6.png

틀어짐

이물질

납 불량

3. 불량 분류 네트워크

정상/불량 판정 네트워크의 입력으로는 PCB기판으로부터 획득한 부품 이미지가 사용된다. 부품 이미지는 R 채널, G 채널, B 채널 3개의 채널로 이루어진 컬러이미지이다. 부품 이미지에서 $(m,\:n)$위치의 픽셀 $i_{mn}$는 R, G, B 3채널에 대한 밝기값 $i_{mn}=[r_{mn},\: g_{mn},\: b_{mn}]$을 가진다. 부품 이미지 $I$는 $i_{mn}$에 대한 행렬이며, 아래와 같이 정의된다.

(1)
$I=\left[\begin{array}{ccc}{i_{11}} & {\cdots} & {i_{1 N}} \\ {\vdots} & {\ddots} & {\vdots} \\ {i_{M 1}} & {\cdots} & {i_{M N}}\end{array}\right]$

부품 이미지는 네트워크 입력을 위하여 R 채널, G 채널, B 채널 각 채널이미지로 나누어진다. 나누어진 각 채널이미지를 $I_{R}$, $I_{G}$, $I_{B}$라 했을 때, 네트워크 입력인 각 채널이미지는 아래와 같이 정의된다.

(2)

$I_{R}=\left[\begin{array}{ccc}{r_{11}} & {\cdots} & {r_{1 N}} \\ {\vdots} & {\ddots} & {\vdots} \\ {r_{M 1}} & {\cdots} & {r_{M N}}\end{array}\right]$

$I_{G}=\left[\begin{array}{ccc}{g_{11}} & {\cdots} & {g_{1 N}} \\ {\vdots} & {\ddots} & {\vdots} \\ {g_{M 1}} & {\cdots} & {g_{M N}}\end{array}\right]$

$I_{B}=\left[\begin{array}{ccc}{b_{11}} & {\cdots} & {b_{1 N}} \\ {\vdots} & {\ddots} & {\vdots} \\ {b_{M 1}} & {\cdots} & {b_{M N}}\end{array}\right]$

분류 네트워크의 최종출력은 각 불량 종류 $k_{i}(i\in 1,\:2,\:...,\:K)$에 대한 확률값 $P(k_{i})$이다. 이 확률값은 입력된 부품 이미지가 해당 불량 종류에 해당할 확률값이다. 부품 이미지에 대한 불량 종류 $k^{*}$는 아래와 같이 정의된다.

(3)

$k^{*}=\arg\max P(k_{i})$

$\sum_{i=1}^{K}P(k_{i})= 1$

3.1 정상/불량 판정 네트워크

그림 3는 정상/불량 판정을 위한 네트워크 구조를 나타낸다. 네트워크의 입력은 부품 이미지의 컬러채널 이미지 $I_{R}$, $I_{G}$, $I_{B}$이다. 먼저 네트워크에 입력된 부품 이미지는 32채널 $3\times 3$ Convolution layer(Conv)를 통과한다. 이후 출력된 특징맵은 32채널 $3\times 3$ ResBlock을 통과한다. 특징맵은 네트워크 Layer의 출력물을 의미한다. 정상/불량 판정 네트워크의 ResBlock은 Convolution layer와 기울기 소멸 문제 완화를 위한 Shortcut 구조로 구성된다. 64채널 $3\times 3$ Convolution layer를 하나 더 거친 다음 Maxpool layer를 통과하며 특징맵의 크기가 1/4로 감소한다. 이후 설명하는 Maxpool layer는 모두 위와 같은 특성을 가진다. Maxpool을 거친 특징맵은 앞선 구조에서 채널수만 변경된 128채널 $3\times 3$ Convolution layer와 ResBlock으로 입력된다. ResBlock을 거친 특징맵은 Maxpool layer를 거치며 데이터의 크기가 1/4로 축소된다. 축소된 특징맵은 128채널 $3\times 3$ ResBlock과 Maxpool layer를 거쳐 256채널 $3\times 3$ Convolution layer로 전달된다. 256채널 $3\times 3$ Convolution layer와 ResBlock을 거친 특징맵은 Maxpool layer를 거쳐 Fully Connected Layer(FC)로 입력된다.

정상/불량 판정 네트워크는 정상과 불량을 이분법적으로 분류하는 네트워크이다. 따라서 우리는 네트워크 최적화를 통하여 최소한의 Convolution layer과 ResBlock를 통하여 높은 분류 정확도를 달성하는 것에 초점을 맞추었다. 정상/불량 판정 네트워크는 Convolution layer 10층의 간단한 네트워크로 높은 분류 정확도를 달성하였다.

그림. 3. 정상/불량 판정 네트워크 구조

Fig. 3. Normal SMD classification network structure

../../Resources/kiee/KIEE.2019.68.10.1236/fig3.png

3.2 불량 종류 분류 네트워크

그림 4는 세부 분류를 위한 분류 네트워크 2에 대한 구조를 나타낸다. 네트워크의 입력은 정상/불량 분류 네트워크와 마찬가지로 부품 이미지의 컬러채널 이미지 $I_{R}$, $I_{G}$, $I_{B}$이다. 입력데이터는 32채널 $3\times 3$ Convolution layer를 두 층 거친 후, ResBlock으로 입력된다. 불량 종류 분류 네트워크의 ResBlock은 두 개의 Convolution layer와 Shortcut 구조로 구성되어 있다. ResBlock을 거친 특징맵은 3.1의 정상/불량 판정 네트워크와 마찬가지로 Maxpool을 거처 크기가 1/4로 축소된다. 이후 두 개의 64채널 $3\times 3$ Convolution layer와 Maxpool layer를 거친다. Maxpool layer로부터 출력된 특징맵은 두 개의 128채널 $3\times 3$ Convolution layer와 ResBlock을 거쳐 Maxpool layer로 입력된다. 이후 두 개의 256채널 $3\times 3$ Convolution layer, ResBlock 그리고 Maxpool layer, 512채널 $3\times 3$ Convolution layer, ResBlock 그리고 Maxpool layer를 거친다. 마지막 Maxpool layer에서 출력된 특징맵은 Fully Connected layer로 입력되어 최종으로 각 불량 종류에 대한 확률값 $P(k_{i})$가 출력된다.

그림. 4. 불량 종류 분류 네트워크 구성

Fig. 4. Defect type classification network structure

../../Resources/kiee/KIEE.2019.68.10.1236/fig4.png

불량 종류 분류 네트워크는 앞서 정상/불량 판정 네트워크에서 불량으로 판정된 부품 이미지에 대한 불량 종류를 판별하는 네트워크이다. 네트워크의 가중치 감소와 효율적인 학습을 위하여 ResBlock을 적극 활용하였으며, 불량 종류 구분을 위하여 최적화된 layer배치에 초점을 맞추었다.

본 논문의 제안 방법은 SMD 부품의 불량 분류 문제를 두 개의 네트워크로 구분하였다. 먼저 정상/불량 판정 네트워크에서 정상과 불량을 분류하고, 불량으로 판정된 부품 이미지에 대하여 불량 종류 분류를 진행하였다. 정상과 불량 종류를 종합하여 구분하던 기존 방법에 비해 분류 문제를 단순화하고, 정상/불량 판정과 불량 종류 분류에 특화된 네트워크를 설계하여 불량 분류의 정확도를 향상시켰다. 또한, 효율적인 layer 배치를 통한 네트워크 최적화로네트워크 가중치의 감축을 달성하였다.

4. 실험 결과

본 논문에서 부품 이미지는 실제 AOI장비로부터 획득한 PCB이미지를 사용하였다. PCB이미지 획득에 사용한 AOI장비는 ㈜미르기술사의 MV-3L 장비이다. 실험 데이터베이스 획득을 위하여 MV-3L과 ㈜미르기술사의 Inspection 프로그램을 사용하였다. 그림 5는 본 논문의 실험 데이터베이스 획득에 사용한 기기와 프로그램을 보여준다. 정상/불량 판정 네트워크 학습을 위하여 $256\times 256$크기의 SMD 부품 이미지 정상 3,000장, 불량 3,000장을 사용하였다. 또한, 불량 종류 분류 네트워크 학습을 위하여 미삽 600장, 회전 600장, 틀어짐 600장, 이물질 600장과 납 불량 600장을 각각 사용하였다.

그림. 5. AOI장비(좌)와 Inspection 프로그램(우)

Fig. 5. AOI Machine(left) and inspection program(right)

../../Resources/kiee/KIEE.2019.68.10.1236/fig5.png

각 네트워크는 minibatch size, learning rate 등 학습에 필요한 하이퍼 파라미터 지정이 필요하다. 우리는 실험을 통하여 최적화된 값으로써 minibatch size = 8, 학습률 $\eta = 0.003$으로 네트워크 학습을 진행하였다. 네트워크의 최적화 방법은 Adagrad방법을 사용하였다. Adagrad방법은 네트워크의 가중치 갱신 시 각 가중치마다 step size를 다르게 설정하여 가중치를 갱신하는 방법이다. Adagrad방법의 가중치 갱신은 아래 수식과 같다.

(4)

$G_{t}= G_{t-1}+(\nabla_{\theta}J(\theta_{t}))^{2}$

$\theta_{t+1}=\theta_{t}-\dfrac{\eta}{\sqrt{G_{t}+\epsilon}}\bullet\nabla_{\theta}J(\theta_{t})$

여기서 $\nabla_{\theta}J(\theta_{t})$는 가중치 갱신에 사용되는 목표값과 출력값간의 차이를 나타내는 손실 함수의 미분값이고, $G_{t}$는 $k$차원의 벡터로써 time step t까지 각 가중치가 이동한 gradient의 표준편자이다. $\epsilon$는 $10^{-4}\sim 10^{-8}$의 작은 값으로, 0으로 나누는 것을 방지하기 위한 값이다. 가중치 갱신 시 기존 학습률 $\eta$에 $G_{t}$의 루트값에 반비례하여 가중치 갱신을 진행한다. 따라서 갱신이 드물게 진행된 가중치는 갱신을 적극적으로 수행하고, 갱신이 빈번하게 진행된 가중치는 갱신을 소극적으로 수행한다. 이 결과로 네트워크가 지역 최적해(Local optimal)에 빠지는 것을 방지하고, 전역 최적해(Global optimal)에 접근하도록 최적화한다.

실험에서는 먼저 각 분류네트워크, 정상/불량 판정 네트워크와 불량 종류 분류 네트워크의 성능을 각각 제시한다. 이후 정상과 불량 종류 분류에 대한 결과를 종합하여 기존 네트워크인 VGGNet[14]과 ResNet[15]의 결과와 비교한다. VGGNet과 ResNet은 정상과 불량 종류를 단일 네트워크로 학습 및 분류하였다. 실험의 평가지표는 정확도, 정밀도, 재현율, F1-Score 4가지 평가 지표를 사용하였다.

표 2는 실제 부품 이미지에 대한 정상/불량 판정 네트워크의 분류 결과를 행렬로 정리한 것이다. 테스트 이미지로는 학습 이미지와는 다른 정상 부품 이미지 3,000장과 불량 부품 이미지 3,000장을 사용하였다. 분류 결과 정상/불량 판정 네트워크의 분류 정확도가 99.6%가 나오는 것을 확인할 수 있었다.

표 2. 정상/불량 판정 네트워크 분류 결과

Table 2. Classification result of normal SMD classification network

실제

분류 결과

정상

불량

평균

정상

2985

6

-

불량

15

2922

-

정확도(%)

99.5

99.8

99.6

표 3 은 불량 종류 분류 네트워크의 분류 결과를 나타낸다. 입력 데이터로는 불량 부품 이미지 미삽 599장, 회전 598장, 틀어짐 598장, 이물질 599장, 납 불량 528장을 사용하여 실험을 진행하였다. 실험 결과 불량 종류 분류 네트워크의 분류 정확도가 92.6%가 나오는 것을 확인할 수 있었다.

표 3. 불량 종류 분류 네트워크 분류 결과

Table 3. Classification result of defect type classification network

실제

분류 결과

미삽

회전

틀어짐

이물질

납 불량

평균

미삽

472

26

36

14

0

-

회전

82

537

59

14

6

-

틀어짐

34

1

493

13

0

-

이물질

12

25

12

565

78

-

납 불량

0

11

0

6

444

-

정확도(%)

78.8

89.8

82.4

94.3

84.1

92.6

기존 방법과 제안 방법의 비교를 위하여 정확도, 정밀도, 재현율, F1-Score 4가지 평가 지표를 사용하였다. 평가 지표의 계산을 위해서는 부품 이미지의 실제 레이블과 네트워크 분류 결과의 레이블을 행렬로 정리한 혼동 행렬(Confusion matrix)가 필요하다. 여기서 레이블은 정상, 미납, 틀어짐 등 부품 이미지의 불량 종류를 의미한다. 위 평가 지표에 대한 정의는 표 4를 참조하여 아래 수식 (5) ~ (9)와 같이 정의된다.

(5)

$N = N_{TP}+N_{TN}+N_{FP}+N_{FN}$

$N_{Correct}= N_{TP}+N_{TN}$

(6)
$정확도(\%)=\dfrac{N_{Correct}}{N}$

(7)
$정밀도(\%)=\dfrac{N_{TP}}{N_{TP}+N_{FP}}$

(8)
$재현율(\%)=\dfrac{N_{TP}}{N_{TP}+N_{FN}}$

(9)
$F1-Score(\%)= 2\times\dfrac{재현율\times 정밀도}{재현율 + 정밀도}$

표 4. 혼동 행렬

Table 4. Confusion matrix

실제

분류 결과

True

False

True

$N_{TP}$

$N_{FP}$

False

$N_{FN}$

$N_{TN}$

표 5는 정상/불량 판정 네트워크와 불량 종류 분류 네트워크의 결과를 종합한 결과이다. 불량 분류 정확도는 제안 방법이 실제 부품 이미지를 레이블에 맞게 정확이 분류하였는가에 대한 평가 지표이다. 제안 방법의 분류 정확도87.6%로 나타났다. 정밀도는 분류 모델이 특정 레이블 $k_{i}$로 분류한 부품 이미지 중에서 실제 $k_{i}$에 속하는 부품 이미지에 비율이다. 제안 방법의 정밀도는 86.8%로 나타난다. 재현율은 실제 특정 레이블 $k_{i}$의 부품 이미지 중에서 분류 모델이 $k_{i}$ 레이블로 분류한 부품 이미지의 비율을 뜻한다. 제안 방법의 재현율은 87.6%로 나타난다. F1-Score는 정밀도와 재현율의 조화평균으로 분류 모델의 종합적인 성능을 의미한다. 제안 방법의 F1-Score는 86.9%로 나타났다.

표 5. 불량 분류 결과

Table 5. Defect classification result summary

입력

출력

정상

미삽

회전

틀어짐

이물질

납 불량

평균

정상

2985

1

2

2

1

0

-

미삽

15

472

26

36

14

0

-

회전

82

537

59

14

6

-

틀어짐

34

1

493

13

0

-

이물질

12

25

12

565

78

-

납 불량

0

11

0

6

444

-

정확도(%)

99.5

78.5

89.2

81.9

92.2

84.1

87.6

정밀도(%)

99.8

83.8

75.3

88.7

79.9

93.3

86.8

재현율(%)

99.5

78.5

89.2

81.9

92.2

84.1

87.6

F1-Score(%)

99.6

81.1

81.7

85.1

85.6

88.4

86.9

표 6은 제안 방법과 MLP, VGGNet, ResNet과의 결함 분류 결과를 나타낸다. MLP의 경우, J. Song[12]의 방법을 사용하여 학습 및 분류를 진행하였다. VGGNet과 ResNet은 각 논문에 명시된 CNN 구조를 참고하여 학습 및 분류하였다. 네트워크의 minibatch size와 학습률 등 하이퍼 파라미터는 제안 방법과 동일하게 지정하였다. 비교 방법 모두 단일 분류 모델로, 정상과 불량을 일괄적으로 학습하여 분류하도록 하였다. 비교 항목은 제안 방법에서 사용한 평가지표인 정확도, 정밀도, 재현율 및 F1-Score를 도출하여 비교에 사용하였다. 그림 6은 비교 실험에 사용한 VGGNet과 ResNet의 구조를 나타낸다.

표 6. 기존 분류 방법과의 비교

Table 6. Compared to existing classification methods

비교 네트워크

메모리 (KB)

정확도 (%)

정밀도 (%)

재현율 (%)

F1-Score (%)

검사 시간 (ms/chip)

MLP[12]

28,688

56.3

61.7

57.0

59.3

10.2

VGG[14]

131,484

62.0

65.8

58.2

61.8

45.3

ResNet[15]

82,542

77.5

79.0

65.8

71.8

20.8

제안 방법

62,800

87.6

86.8

87.6

86.9

24.9

그림. 6. CNN 구조 (a) VGGNet 구조 (b) ResNet 구조

Fig. 6. CNN structure (a) VGGNet structure (b) ResNet structure

../../Resources/kiee/KIEE.2019.68.10.1236/fig6.png

표 6과 같이, 실험 결과 제안된 방법이 87.6%로 가장 높은 분류 정확도를 보이는 것을 보이고 있다. MLP는 분류 정확도가 56.3%로 다른 CNN 기반 방법에 비해 낮은 분류 정확도를 보이고 있다. VGGNet과 ResNet은 각각 62.0%와 77.5%로 MLP에 비해 높은 정확도를 가지나, 제안 방법에 비해 10.1% 이상 낮은 분류 정확도를 보인다. 네트워크 가중치 면에서도 제안 방법이 기계학습 방법인 MLP 다음으로 가중치가 낮은 것을 볼 수 있다. 이는 정상/불량 분류 및 불량 종류 분류에 따른 최적화된 네트워크 사용으로 분류 정확도가 향상되었고, 네트워크 가중치가 감소하였다.

표 7은 각 네트워크에 대한 분류 결과 중 일부를 나타낸다. 부품 이미지 위에 표기된 것이 부품 이미지의 실제 레이블을 뜻하며, 오른쪽에 표기된 레이블은 각 네트워크가 해당 부품 이미지를 입력으로 하여 분류하였을 때 출력된 결과 레이블을 의미한다. 표 7을 참조하면, 제안 방법이 기존 CNN에 비해 분류 정확도가 높은 것을 확인할 수 있다. 표 7의 정상 부품 이미지는 솔더 부분에 음영으로 인해 VGGNet은 납 불량으로 판단하였으나, ResNet과 제안 방법을 정상으로 판단하였다. 미삽 부품 이미지의 경우, 이미지 중앙의 실크 마크가 이물질로 판단되어 VGGNet은 이물질로 오판단하였으나, ResNet과 제안 방법은 미삽으로 판단하였다. 틀어짐 부품 이미지는 솔더 부분이 정 위치에서 이탈하여 불량으로 판정된 사례이며, 납 불량 부품 이미지는 납이 칩의 리드 부분에 넘쳐흘러 불량으로 판정된 사례이다. 이 경우, 불량 부분이 부품 이미지에서 극소하게 분포되어 불량의 분류가 쉽지 않다. VGGNet과 ResNet은 불량을 오 분류한 반면, 제안 방법은 해당 결함을 정확히 분류한 것을 확인할 수 있다. 불량 분류에 특화된 네트워크가 해당 부품 이미지에 대한 불량 종류를 정확히 구분한 것이라 볼 수 있다.

표 7. 네트워크별 분류 결과

Table 7. Classification results of networks

../../Resources/kiee/KIEE.2019.68.10.1236/tbl7.png

5. 실험 결과

본 논문에서는 두 단계의 네트워크를 이용하여 SMD 부품의 불량을 분류하는 시스템을 제안하였다. 정상/불량 판정 네트워크를 통해 부품 이미지의 정상/불량을 분류하였다. 또한, 불량으로 분류된 부품 이미지를 불량 종류 분류 네트워크로 불량의 종류를 세부적으로 분류하였다. 본 논문이 제안하는 방법은 정상/불량 분류와 불량 종류 분류에 대한 최적 네트워크를 별도로 설계하여 불량 분류 정확도를 높이고, 네트워크의 가중치 감축을 달성하였다.

향후 연구로는 SMD에 대한 부품 영역을 세분화하고 그에 따른 특징 추출에 대한 네트워크를 변형하여 더욱 적절한 특징들을 종합하여 정확도를 높일 수 있는 연구를 진행할 계획이다. 또한, 현재 연구보다 다양한 불량으로 세분화하여 검사 대응 부품 및 그에 대한 불량에 대한 분류를 진행할 계획이다.

Acknowledgements

본 논문은 중소벤처기업부에서 지원하는 지역특화(주력)개발산업육성사업(P0002857)과 산업통상자원부의 재원으로 한국산업기술진흥원(KIAT)의 지원을 받아 수행된 연구임. (2019년 스마트공장 운영설계 전문인력 양성사업, 과제번호 : N0002429)

References

1 
M. Moganti, F. Ercal, Apr 1998, A Subpattern Level Inspection System for Printed Circuit Boards, International Journal of Computer Vision and Image Understanding, Vol. 70, No. 1, pp. 51-62DOI
2 
Y. Hara, H. Doi, K. Karasaki, T. Iida, Jan 1988, A System for PCB Automated Inspection using Fluorescent Light, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. vol 10, No. 1, pp. 69-78DOI
3 
T. Hidvegi, P. Szolgay, Mar 2002, Some New Analogic CNN Algorithms for PCB Quality Control, International Journal of Circuit Theory and Applications, Vol. 30, No. 2-3, pp. 231-245DOI
4 
K. Fredrilsson, E. Ukkonen, Oct 2001, Faster Template Matching without FFT, in Proceedings of International Conference on Image Processing, pp. 678-681DOI
5 
H. J. Cho, T. H. Park, Oct 2010, Wavelet Transform based Image Template Matching for Automatic Component Inspection, International Journal of Advanced Manufacturing Technology, Vol. 50, No. 17, pp. 1033-1039DOI
6 
X. Hongwei, Z. Xianmin, K. Yonhcong, O. Gaofei, Dec 2011, Solder Joint Inspection Method for Chip Component Using Improved AdaBoost and Decision Tree, IEEE Transactions on Components, Packaging and Manufacturing Technology, Vol. 1, No. 12, pp. 2018-2027DOI
7 
N. Cai, G. Cen, J. Wu, F. Li, H. Wang, X. Chen, Apr 2018, SMT Solder Joint Inspection via a Novel Cascaded Convolution Neural Network, IEEE Transactions on Components, Packaging and Manufacturing Technology, Vol. 8, No. 4DOI
8 
H. Wu, X. Zhang, H. Xie, Y. Kuang, G. Ouyang, Mar 2013, Classification of Solder Joint using Feature Selection based on Bayes and Support Vector Machine, IEEE Transactions on Components, Packaging and Manufacturing Technology, Vol. 3, No. 3, pp. 516-522DOI
9 
J. S. Lee, T. H. Park, Oct 2015, Defect Classification of Components for SMT Inspection Machines, Robotics and System(in Korea), Vol. 21, No. 10, pp. 982-987DOI
10 
G. Acciani, G. Brunetti, G. Fornarelli, Aug 2006, Application of Neural Networks in Optical Inspection and Classification of Solder Joints in Surface Mount Technology, IEEE Transactions on industrial Informatics, Vol. 2, No. 3, pp. 200-209DOI
11 
F. Wu, X. Zhang, May 2011, Feature Extraction Based Inspection Algorithm for IC-Solder Joint, IEEE Transactions on Components, Packaging and Manufacturing Technology, Vol. 1, No. 5, pp. 689-694DOI
12 
J. D. Song, Y. G. Kim, T. H. Park, Apr 2019, SMT Defect Classification by Feature Extraction Region Optimization and Machine Learning, The International Journal of Advanced Manufacturing Technology, Vol. 101, No. 9, pp. 1-11DOI
13 
B. M. Haddad, S. Yang, L. J. Karam, J. Ye, N. S. Patel, M. W. Braun, Jan 2018, Multifeature, Sparse-Based Approach for Defects Detection and Classification in Semiconductor Units, IEEE Transactions on Automation Science and Engineering, Vol. 15, No. 1, pp. 145-159DOI
14 
K. Simonyan, A. Zisserman, May 2015, Very Deep Convolutional Networks for Large Scale Image Recognition, arXiv:1409.1556, pp. 1-14DOI
15 
K. He, X. Zhang, S. Ren, J. Sun, Jun 2016, Deep Residual Learning for Image Recognition, in Proceedings of IEEE Conference on Computer Vision and Pattern Recognition 2016 (CVPR 2016), pp. 770-778Google Search

저자소개

류 종 현(Jong-Hyun Ryu)
../../Resources/kiee/KIEE.2019.68.10.1236/au1.png

2015년 충북대학교 전자공학부(공학사).

2017년~2019년 충북대학교 대학원 제어로봇공학전공(공학석사).

관심분야는 머신비전.

김 영 규(Young-Gyu Kim)
../../Resources/kiee/KIEE.2019.68.10.1236/au2.png

2014년 충북대학교 전자공학부(공학사).

2016년 충북대학교 대학원 제어로봇공학전공(공학석사).

2017년~현재 동 대학 박사과정.

관심분야는 머신비전.

박 태 형(Tae-Hyoung Park)
../../Resources/kiee/KIEE.2019.68.10.1236/au3.png

1988년 서울대학교 제어계측로봇과(공학사).

1990년 동 대학(공학석사).

1994년 동 대학(공학박사). 1994년~1997년 ㈜삼성테크윈 선임연구원.

1997년~현재 충북대학교 전자공학부 교수.

관심분야는 로보틱스 및 자동화.