배경 및 동기
제조업 현장을 Smart Factory화 하기 위한 움직임
1. 스마트공장 설비 투자자금 2조원 조성
2. 22년까지 스마트 산업단지 10개 조성
3. 중소기업 스마트공장 3만개 보급
4. 산업재해 30% 경감시켜 안전한 일자리 조성
5. 스마트 공장 전문인력 10만명 양성을 약속합니다.
중소기업이 스마트공장을 구축하는 데 필요한 정책이 필요합니다.
중소기업에 적합한 스마트 공장 구축 프로세스가 필요합니다.
성균관대학교
스마트팩토리융합학과
정종필 교수
문재인 대통령
정부의 비전은 스마트 제조혁신으로
중소기업 제조강국을 실현하는 것입니다.
어떤 지원이 필요하겠습니까 교수님?
7
배경 및 동기
국내 제조업 기업의 결함 검출 방식 현황과 한계
8
현황 한계
대기업
▪ Machine Vision 방법 사용
▪ *SDD로 표면 결함 평점 부여 및 기
준 평점과 비교 + 육안검사
▪ 부분적으로 자체 개발 AI 모델 사용
(CNN모델)
Vision의 경우 주로 CNN 사용
→ 결함에 대한 학습이 별도로 필요함
(Supervised Learning)
→ 학습되지 않은 결함 검출 불가
중소기업
▪ 예상량이 많은 경우만 검출장비 구매
▪ 생산량 적은 제품 → 육안검사
▪ 비파괴검사
비파괴검사
→ 제품 하나당 검사시간 20~30분 소요
*SDD(Surface Detect Detector, 표면 결함 검출기)
배경 및 동기
Why AnoGAN ?
Smart Factory로의 전환 : 결함 검출 AI 필요
1. AI가 결함이 예상되는 제품을 1차 분류 → 작업시간 단축
2. 작업자의 미숙련/피로로 인한 오검 및 미검 방지
3. 결함이 의심되는 부분을 AI가 제안
9
대기업
중소기업
Supervised 학습 모델(CNN)의 한계 극복
1. 결함 데이터의 학습 없이 결함 검출
2. 새로운 유형의 결함도 검출
AnoGAN
결함에 대한 학습 필요 X
결함 부분 시각화
관련 연구
관련 연구 논문
11
Generative Adversarial Nets (Ian J. Goodfellow, Jean Pouget-Abadie 外 / 2014 .6.10)
▪ 정답을 알려주지 않아도 스스로 학습하는 비지도 학습 모델 GAN 발표
▪ 생성 모델과 분류 모델이 등장하고 서로 적대적으로 경쟁하며 학습하는 구조
Unsupervised Representation Learning with Deep Convolutional Generative
Adversarial Networks (Alec Radford, Luke Metz, Soumith Chintala 外 / 2015.11.19)
▪ Fully Connected Layer가 아닌 Convolution Layer를 활용, GAN의 성능을 높임
▪ 안정적인 학습을 하는 GAN구조에 대한 가이드라인 제시
Unsupervised Anomaly Detection with GANs to Guide Marker Discovery (Thomas
Schlegl, Philipp Seeböck 外 / 2017.3.17)
▪ 비정상 Data의 학습 없이 정상 Data만으로 학습시킨 GAN 모델 이용
▪ Query Data에 대하여 정상 여부는 물론 비정상 시 비정상 영역을 찾아내고자 함
▪ *본 프로젝트에서 구현한 모델의 바탕이 됨
데이터 수집 및 생성
데이터 수집 방법 – 목적과 상황에 따라 두 가지로 사용
13
웹캠 이용
이미지 추출하는 코드로 웹캠 촬영 동시에
데이터 생성
이미지 패치
이미지의 크기와 생성수를 설정해서
이미지 패치 추출하는 코드로 데이터 생성
데이터 수집 및 생성
14
▪ 시도① : 황동철판, 스텐인리스 / 웹캠 이용
구매한 황동철판, 스테인리스를 웹캠을 움직이며 데이터 수집
강판 크기가 작아 강판 밖 배경이 들어오는 문제 발생
Training 데이터 수집 - 안정된 데이터 생성을 위한 다양한 시도
데이터 수집 및 생성
15
▪ 시도② : 큰 스테인리스 강판 / 웹캠
400mmx600mm크기의 큰 강판을 구매하여 웹캠으로 데이터 수집
‘비침’문제 발생 ▶ 블랙보드와 암실박스로 해결 시도
▶ 어두운 경우‘초점 흐림’+ ‘명암 차이 발생’➔ 명암 차이가 anomaly로 검출되는 문제 발생
Training 데이터 수집 - 안정된 데이터 생성을 위한 다양한 시도
데이터 수집 및 생성
16
▪ 시도③ : 큰 스테인리스 강판 / 스캐너
명암 차이를 해결하기 위해 스캐너로 강판 전체 촬영 후 코드로 이미지 패치 추출
700x700, 1000x1000, 2000x2000 등 다양한 크기로 10,000 장 이상 추출
Generation 시 ‘checkerboard’문제 발생
Training 데이터 수집 - 안정된 데이터 생성을 위한 다양한 시도
데이터 수집 및 생성
17
▪ 시도④ : 자동차 강판 제조사로부터 획득한 후판 / 웹캠
웹캠을 천천히 움직이며 데이터 수집
여전히‘명암 차이 발생’시 anomaly로 검출되는 문제 발생
Training 데이터 수집 - 안정된 데이터 생성을 위한 다양한 시도
데이터 수집 및 생성
안정된 Training을 위한 다양한 Training 데이터 수집
18
▪ 시도⑤ : 자동차 강판 제조사로부터 획득한 후판 / 적외선 카메라
적외선 카메라를 이용해 명암 문제를 해결하고자 시도
적외선 빛이 비치는 문제 발생
데이터 수집 및 생성
19
명암을 최소화하는 각도에서 휴대폰으로 데이터 수집, 1000x1000으로 이미지 패치 추출
1000장 만으로도 Generation 성능 확보 및 Test 성능 증가
▪ 시도⑥ : 자동차 강판 제조사로부터 획득한 후판 / 휴대폰 (확정)
Training 데이터 수집 - 안정된 데이터 생성을 위한 다양한 시도
데이터 수집 및 생성
후판 결함 샘플 견학 (연와흠, 이물흠, 크랙)
보안상 사진 촬영이 불가하여 기록으로 대체
20
▪ 포항 제철 공고 방문
Test 데이터 수집
[ 직접 작성한 기록물 ]
데이터 수집 및 생성
이물흠①
21
Test (결함 데이터)
이물흠②
연와흠 크랙
Test 데이터 수집
▪ 4가지 유형의 결함 데이터 제작
후판 결함 샘플과 유사하게 결함 제작
구현 및 결과
Generative vs Discriminator
서로 간의 적대적인 관계 속에서 두 신경망은 서로의 능력이 발전하게 되고 결과적으로 fake data와 real
data를 구별할 수 없게 되는 구조
Architecture Generator가 생성한
fake data를 real data와
Classify 하기 위해 노력
Discriminator를
최대한 속이려고 노력
GAN (Generative Adversarial Network)
23
*Random noise : z, Real image : x, Fake image: G(z)
구현 및 결과
Discriminator
V의 최대값을 갖기 위해 D(x)=1 , D(G(z))=0이 되도록 노력
Generator
V의 최소값을 갖기 위해 D(G(z))=1이 되도록 노력
Minimax two-player game or minimax problem
GAN (Generative Adversarial Network)
24
구현 및 결과
▪ Generator는 원 데이터의 확률분포를 알아내려고 노력하며, 학습이 종료된 후에는 원 데이터의 확률
분포를 따르는 데이터 생성
▪ 결과적으로, Adversarial Loss를 통해 optimization을 해서 Probability Distribution는 Pg =Pdata 로
만드는 것이 GAN의 목표
Probability Distribution
GAN (Generative Adversarial Network)
25
구현 및 결과
AnoGAN 특징
26
Unsupervised learning
▪ 정상 데이터만으로 학습을 진행한 뒤, 정상 데이터를 생성하도록 학습
▪ 결함(anomaly) 이미지가 들어올 경우 제대로 생성하지 못한다는 점에 착안하여 결함 검출
▪ 결함 이미지가 전혀 없이 학습 가능
Visualization
▪ Residual Loss(생성한 이미지와 쿼리 이미지의 차이)를 이용해 시각화 가능
▪ 결함이 어느 부분에 있는지를 알 수 있음
AnoGAN의 특징
구현 및 결과
▪ (a) 비정상 데이터를 확보하기 쉽지 않기 때문에 정상 데이터만으로 학습하여 비정상 데이터 분류
▪ (b) 정상 데이터로 학습한 latent space에서 벗어난 image를 찾아냄
Architecture
AnoGAN (Anomaly Generative Adversarial Network)
27
구현 및 결과
▪ Residual Loss
Query image 와 Generated Image의 차이
LR( 𝑧 𝑟) = ∑|x − G(𝑧 𝑟)|
▪ Discrimination Loss
Discriminator 중간 층인 Feature map에서의 Query Image 와 Generated Image의 차이
LD(𝑧 𝑟) = ∑ ║f(x) − f(G(𝑧 𝑟)) ║
▪ Anomaly Loss
L(𝑧 𝑟) = (1 − λ) · LR(𝑧 𝑟) + λ · LD(𝑧 𝑟).
▪ Anomaly Score at query image x (R(x)= LR(𝑧 𝑟) , D(x)= LD(𝑧 𝑟) )
A(x) = (1 − λ) · R(x) + λ · D(x)
Loss Function
28
· 𝑧 : latent space
· x : query image
· 𝑟 : 1,2,3…
AnoGAN (Anomaly Generative Adversarial Network)
구현 및 결과
Latent Space
29
Z 가 다음과 같은 분포라고 가정 시
▪ 비정상 데이터와 가장 가까운 정상 데이터를 만드는 latent vector를 찾아냄
▪ 찾아낸 latent vector z로 generate한 image와 query image 의 anomaly score를 기준으로
정상, 비정상 분류
Latent Space Mapping
i) 임의의 값 𝑧1에서 시작하여 loss ft’n을 최소화하도록 update
ii) 주어진 Γ번째 iteration 후 𝑧Γ이 allowable range안에
들어왔는지 여부에 따라 정상, 비정상 구분
AnoGAN (Anomaly Generative Adversarial Network)
구현 및 결과
31
▪ 내장된 이미지가 아닌 폴더에 있는 이미지를 가져와 전처리
▪ Anomaly Score를 기준으로 정상, 비정상(결함) 분류
▪ Residual Loss를 이용해 결함 부분 시각화
▪ 최신 *Pytorch 코드 사용, 속도 및 성능을 향상
- layer 구성 시 nn.Sequential 사용
- 데이터 전처리 시 transform.Compose 사용
*Pytorch?
파이썬 기반의 오픈 소스 머신러닝 라이브러리
AnoGAN (Anomaly Generative Adversarial Network)
우리가 구현한 AnoGAN모델 Architecture
Parameters 기준
Training image 1000
Test image 10
Image size 64 x 64 x 1
Learning rate 0.00001
Latent vector size 100 x 1
Batch size 64
Epoch 100
Lambda 0.1
Anomaly score 기준 500
Threshold 50
구현 및 결과
32
▪ Generator의 Loss가 줄어들지 않고 Discriminator의 Loss만 낮은 현상 발생
같이 학습을 해도 Generator의 학습력이 낮다고 판단
➔ Generator를 1 epoch당 4번 학습하여 Discriminator와의 균형 확보
AnoGAN (Anomaly Generative Adversarial Network)
학습 안정화를 위한 시도 ①
구현 및 결과
33
▪ Overconfidence 방지를 위한 Label Smoothing
안정된 Generator의 성능을 위해서 Positive Label을 1 → 0.9로 Smoothing
“Improved Techniques for Training GANs (Tim Salimans, Ian Goodfellow 外, 2016)” 참고
AnoGAN (Anomaly Generative Adversarial Network)
학습 안정화를 위한 시도 ②
구현 및 결과
34
모델 실행 영상
https://www.youtube.com/watch?v=xO6KwWIDIsw&feature=youtu.be
구현 및 결과
35
결과 : Normal
Normal – (anomaly score: 70.41)
Normal – (anomaly score: 201.8)
특징
모델 개선 연구
Adversarially Learned One-Class Classifier for Novelty Detection
▪ Refinement와 Detector를 정의하여 Adversarial
Learning을 수행
▪ Autoencoder 방식으로 이미지를 생성하고
Detector에서 비정상을 탐지
38
장점
한계
▪ 철강 이미지를 노이즈처럼 인식
→ 정상 이미지와 결함 이미지를
Reconstruction한 이미지 간 차이 미미
▪ Inference에 걸리는 시간 감소
Submitted on 2018.02.25 / Last revised on 2018.05.24
모델 개선 연구
40
Adversarially Learned One-Class Classifier for Novelty Detection
Generator network losses Discriminator network losses
모델 개선 연구
41
Adversarially Learned One-Class Classifier for Novelty Detection
Reconstruction loss를 이용해 정상과 결함 데이터를 구분할 수는 있지만
Reconstructed Image에서 시각상으로 많은 차이를 보이지 못함
특징
모델 개선 연구
Deep One-Class Classification
▪ 기존의 Anomaly Detection문제의 Objective
Function을 개선한 DeepSVDD를 제안
▪ Decision Boundary를 Training을 통해서 찾아냄
42
장점
한계
▪ 적은 성능 개선
▪ 기존의 GAN Loss를 활용하지 않음
▪ 모델에서 정상과 결함을 나누는 기준을 제시
Submitted on 2018.01.16
특징
모델 개선 연구
GANomaly: Semi-Supervised Anomaly Detection via Adversarial Training
▪ 3개의 Loss Function을 정의하였고,
이를 이용해서 Training 진행
▪ Model Training과 Inference 과정을 같이 수행함
43
장점
한계
▪ Training 과정에 Test 데이터셋을 필요로 함
→ Unsupervised가 아닌 Semi-Supervised
→ 프로젝트 적용 모델로 적합하지 않음
▪ 정상과 결함 구분에 개선된 성능을 보임
Submitted on 2018.05.17 / Last revised on 2018.11.13
기대효과 및 보완 사항
기대효과
45
기대효과 활용 분야
기존 머신 비전 기술 검사의 한계(미검, 오검, 육안검사) 극복 ▪ 철강, 섬유, 가죽, 부품 등 불량 검출
프로세스가 진행되는 제조업
▪ 의료 질병 진단 이상 발견
▪ 모조품 구별 등
Smart Factory와 같은 지능형 생산 시스템 발전에 기여
빠른 불량 패턴 분석으로 공정 최적화
연속 공정에서의 대량 불량률 획기적 감소 기대
제조업 중소 기업에 보급화
기대효과 및 보완 사항
보완 사항
46
▪ 결함 검출 AI로 범용화
철강 소재 뿐만 아니라 결함 검출을 요구하는 어느 산업 분야에도 사용
▪ 특수 광학 장치를 이용한 데이터 수집으로 데이터 질 향상
데이터 수집의 한계를 극복하기 위해 특수 카메라 구입
▪ 중소기업과의 협업을 통한 진행
실제 불량 검출 및 검사 프로세스에 적용 및 실제 데이터 확보 가능