[논문 리뷰] A Comprehensive Review of Convolutional Neural Networks for Defect Detection in Industrial Applications
이 리뷰는 오직 학습과 참고 목적으로 작성되었으며, 해당 논문을 통해 얻은 통찰력과 지식을 공유하고자 하는 의도에서 작성된 것입니다. 본 리뷰를 통해 수익을 창출하는 것이 아니라, 제 학습과 연구를 위한 공부의 일환으로 작성되었음을 미리 알려드립니다.
이 논문은 2024년 IEEE에 게제된 논문으로 CNN이 어떻게 산업에 사용되고 사용되어지고 있는지를 보여주는 논문이였으며, 향후 앞으로 나의 연구에 도움이 될만한 부분이 많아 보여 리뷰하게 되었다.
R. Khanam, M. Hussain, R. Hill and P. Allen, "A Comprehensive Review of Convolutional Neural Networks for Defect Detection in Industrial Applications," in IEEE Access, vol. 12, pp. 94250-94295, 2024, doi: 10.1109/ACCESS.2024.3425166.
keywords: {Defect detection;Hardware;Convolutional neural networks;Computer architecture;Reviews;Artificial intelligence;Inspection;Computer vision;Deep learning;Quality assessment;Manufacturing processes;Computer vision;convolutional neural network;deep learning;industrial defect detection;object detection;quality inspection: manufacturing},
ABSTRACT
이 논에서는 합성곱 신경망(CNN)이 산업 분야에서 품질 검사 및 결함 탐지에 어떻게 활용되는지 설명합니다. CNN은 이미지 분석 작업에서 뛰어난 성능을 보이며, 특히 결함 탐지에서 높은 정확도와 실시간 성능을 발휘합니다. 다양한 산업 시나리오에서 CNN 모델을 적용한 사례를 다루고, 객체 탐지 방법론과 적합한 하드웨어 플랫폼도 소개합니다. Industry 4.0의 확산에 따라 품질 검사 프로세스를 개선하는 데 중요한 역할을 하고 있지만, 제한된 데이터셋, 계산 복잡성, 도메인 특수성 등의 문제도 해결해야 할 과제로 남아 있습니다. 이 기술은 품질 향상, 비용 절감 및 프로세스 최적화에 긍정적인 영향을 미칠 수 있습니다.
I. 서론
인공지능(AI)은 1950년대에 학문 분야로 등장했으며, 처음에는 약 50년 동안 모호하고 실질적인 영향력이 적었습니다. 그러나 이후 AI는 데이터의 폭발적 증가, 컴퓨터 기술의 발전, 이론적 이해의 향상 덕분에 현대 세계를 혁신적으로 변화시켰습니다. AI는 제조업, 의료, 사이버 보안, 군사, 마케팅, 금융 등 다양한 산업에서 현대 기술의 핵심 요소로 자리 잡았습니다. AI는 알고리즘을 통해 작동하며, 이는 컴퓨터가 문제를 해결하거나 상황을 처리할 수 있도록 하는 일련의 명시적 지침입니다.
기계 학습(ML)은 AI의 하위 분야로, 대규모 데이터셋을 사용해 시스템이 패턴을 인식하고 결과를 예측하도록 학습시킵니다. ML 알고리즘은 데이터 내에서 숨겨진 관계를 발견하여 명시적 지침 없이 의사 결정을 가능하게 합니다.
딥러닝(DL)은 ML의 강력한 하위 분야로, 여러 처리 계층을 사용하여 데이터의 다양한 수준을 학습하고 정의할 수 있습니다. 이 기술은 인간 뇌가 복잡한 멀티모달 정보를 처리하는 방식과 유사하게, 복잡하고 대규모의 데이터 구조를 직관적으로 이해하는 방식을 모방합니다. 뇌의 기능을 재현하려는 필요성은 1943년 맥컬록과 피츠에 의해 신경망(NNs)이 탄생하게 만든 원동력이었으며, 이들은 뇌가 어떻게 복잡한 패턴을 처리하고 해석하는지 이해하려고 했습니다. 이들은 '뉴런'으로 알려진 상호 연결된 세포를 사용하여 패턴을 처리하는 뇌의 놀라운 능력을 모델링한 MCP 모델을 만들었습니다. 이러한 기여는 인공 신경망(ANNs)의 탄생에 중요한 영향을 미쳤습니다. DL 방법의 증가된 수요와 NNs 훈련의 성공은 이러한 기술의 널리 퍼지게 한 주요 원인입니다.
A. 응용 프로그램
딥러닝(DL) 기술은 의료, 산업, 센서, 사회, 시각, 텍스트, 오디오, 그래프 등 다양한 출처에서의 복잡한 데이터의 풍부함으로 인해 널리 사용되고 있습니다. 잘 알려진 DL 기술 중 하나는 합성곱 신경망(CNN)이며, 이는 자연어 처리(NLP), 이미지, 음성 인식 등의 여러 분야에서 크게 사용되고 있습니다. 여러 모델이 CNN이 특히 이미지 인식 작업에서 효과적임을 입증하였으며, 최첨단(SOTA) 결과를 달성하였습니다. CNN의 성공적인 주요 요인 중 하나는 계층적 아키텍처가 다양한 추상화 수준에서 특징을 추출하고 이미지 내의 공간적 특징과 패턴을 추출하는 능력에 있습니다. 그림은 AI, ML, DL 및 CNN 간의 일반적인 관계를 보여줍니다.
컴퓨터 비전(CV)의 발전은 다양한 산업에서 운영을 향상시킬 수 있는 능력을 가지고 있습니다. 그럼에도 불구하고, 연구자들은 CV 아키텍처가 학술 연구실에서 제조업 및 산업 부문으로 전이되면서 기존 응용 프로그램 요구 사항과 호환되지 않는다는 사실을 점점 더 많이 발견하고 있습니다. 이러한 문제를 일으키는 여러 요인에는 높은 계산 비용, 증가된 에너지 소비, 중앙 처리 장치(CPU)와 그래픽 처리 장치(GPU)에서의 처리 성능 증가 등이 있습니다. 이러한 불일치로 인해 연구자들은 고정밀도를 제공하는 일차원 기준보다는 계산 복잡성, 아키텍처의 풋프린트, 에너지 소비와 같은 다차원 매개변수에 초점을 맞추기 시작했습니다.
이미지 인식 분야는 DL의 발전에 따라 혁신적인 변화를 겪었습니다. 이 분야에서 CNN은 강력한 모델로 떠오르며 정확도를 인간의 능력에 근접하거나 이를 초과하는 수준으로 끌어올렸습니다. 이 놀라운 성과는 CNN이 기존의 인공 피쳐 추출 및 얕은 학습 방법에 비해 여러 가지 장점을 가지고 있기 때문입니다. 전통적인 방법이 수작업으로 만든 특성에 의존하는 것과 달리, CNN은 여러 개의 합성곱 층과 풀링 층으로 구성된 계층적 아키텍처를 활용합니다. 이 계층적 구조는 네트워크가 원시 이미지 데이터에서 점진적으로 더 복잡하고 추상적인 특징을 추출할 수 있게 합니다. 또한, CNN은 데이터 기반 접근 방식을 따릅니다. 전통적인 방법이 전문가가 정의한 특성에 의존하는 것과 달리, CNN은 대규모 이미지 데이터셋에서 직접 학습합니다. 이는 피쳐 추출을 자동화하여 CV 연구 및 제품 개발의 진입 장벽을 크게 낮추었습니다.
지능형 제조는 Industry 4.0의 핵심 요소로 인식되며, 품질 검사는 생산 및 유지보수 프로세스에서 중요한 연결 고리로 작용합니다. 머신 비전 기반 표면 결함 탐지는 다양한 산업에서 제품 품질을 보장하는 중요한 역할을 합니다. 그러나 산업 이미지 처리에는 자연 이미지 분석과 비교할 때 고유한 도전 과제가 존재하며, 특히 비표준 맞춤화에 큰 비중을 둡니다. 따라서 일반적인 CNN 모델을 산업 작업에 직접 적용하는 것은 종종 비효율적입니다. 이로 인해 특정 산업 시나리오에 맞는 맞춤형 CNN 변환의 개발이 필요합니다.
이 논문은 CNN의 응용 프로그램, 특히 산업 표면 결함 탐지 분야에서의 응용을 포괄적으로 분석하는 것을 목표로 합니다. 이 리뷰의 범위를 넓히기 위해, 팔레트 선반, 유출물, 철강, 철도, 자기 타일, 태양광 셀, 직물, 디스플레이 등 다양한 표면에서 결함을 식별하는 검사 방법론과 같은 구조 건강 모니터링(SHM)과 밀접하게 관련된 분야들이 체계적으로 조사되었습니다. 이를 통해 이 리뷰는 산업 부문에서 연구자와 실무자에게 유용한 자료와 지침을 제공하고자 합니다. 또한, 다양한 산업 환경에서 강력하고 자동화된 표면 결함 탐지를 위한 맞춤형 CNN을 포함한 고급 DL 기술의 효과적인 활용을 설명합니다.
산업 검사 시스템에서 CNN에 대한 포괄적인 이해를 돕기 위해, 이 논문은 CNN의 역사적 발전, 기본적인 구성 요소, 실제 객체 탐지(OD) 구현 기술 및 효율적인 배포를 위한 필수 하드웨어 구성 요소와 같은 중요한 상호 연결된 모듈들을 탐구합니다. 이 탐구는 독자들이 다양한 산업 환경에서 강력하고 자동화된 결함 탐지를 위해 CNN의 힘을 효과적으로 활용할 수 있도록 필요한 지식과 도구를 제공할 것입니다.
B. 연구 범위 및 방법론
- 연구 범위
이 연구는 CNN을 산업 표면 결함 탐지에 적용하는 데 있어 중요한 질문들을 설정하였습니다. 주요 질문들은 CNN의 구성 요소, 발전 과정, 객체 탐지 구현 기술, 하드웨어 구성 요소, 그리고 다양한 산업 표면에서의 결함 탐지 방법 등을 포함합니다. - 연구 방법
이 연구는 문헌 리뷰를 통해 CNN의 산업 표면 결함 탐지 응용에 관한 정보를 수집했습니다. 주요 방법론은 다음과 같습니다:
- 체계적인 문헌 리뷰
- 키워드 기반 검색 (IEEE Xplore, ACM Digital Library, Scopus 등 사용)
- 역참조 및 전방참조 검색
- 수동 검색 및 전문가 상담
- 데이터 추출 및 분석 (표면 분류, 결함 범주, CNN 아키텍처 등)
- 정성적 및 정량적 분석
C. CNN과 하드웨어 인프라의 관계
CNN은 많은 계산 자원을 요구하며, 모델이 복잡해질수록 처리 능력이 크게 증가합니다. 따라서 효율적인 하드웨어 선택이 중요하며, 이는 CNN 기반 솔루션의 성능에 큰 영향을 미칩니다.
- 계산 요구 사항
CNN은 복잡한 연산을 수행하는 데 상당한 계산 능력이 필요합니다. 모델의 복잡성이 증가함에 따라 계산 요구 사항도 기하급수적으로 증가하므로, 훈련과 추론을 가속화할 수 있는 GPU, FPGA, ASIC 같은 전문 하드웨어 플랫폼을 사용하는 것이 중요합니다. - 메모리 요구 사항
CNN은 중간 피쳐 맵 및 추론 가중치를 저장해야 하므로 메모리 요구 사항이 큽니다. 더 깊은 아키텍처는 모델 크기와 파라미터 수를 증가시켜 메모리 부담을 가중시킵니다. 이를 해결하기 위해 충분한 메모리 용량과 대역폭을 갖춘 하드웨어 가속기가 필요합니다. - 에너지 효율성
에지 장치나 임베디드 시스템에 배치된 CNN의 경우 에너지 효율성이 매우 중요합니다. 이를 해결하기 위해 전력 소비를 최소화하면서 실시간 추론 속도를 달성할 수 있는 하드웨어 가속기가 필요하며, 양자화, 가지치기, 메모리 접근 최적화와 같은 기술도 에너지 효율성을 높이는 데 사용될 수 있습니다. - 확장성 및 병렬 처리
CNN 아키텍처는 대규모 데이터셋 처리 및 병렬 계산을 효율적으로 수행할 수 있는 확장성을 요구합니다. GPU와 같은 병렬 처리 능력을 갖춘 하드웨어 플랫폼은 CNN 아키텍처의 고유한 병렬성을 활용하여 훈련 및 추론 속도를 가속화하는 데 기여합니다. - 배치 배포의 유연성
CNN의 배치 배포 유연성은 하드웨어 고려 사항에 의해 크게 영향을 받습니다. 다양한 응용 분야에서는 무게, 전력 소비, 크기, 비용 등의 제한 사항에 맞는 특정 하드웨어 플랫폼을 요구할 수 있습니다.
D. 기존의 연구들
몇 가지 중요한 설문조사들이 CNN을 활용한 산업 표면 결함 탐지 응용에 대해 다뤘습니다. 이들 설문조사는 CNN의 잠재력을 조명하지만, 실제 현장에서의 성공적인 배치를 위한 하드웨어 가속기와 CNN 아키텍처 간의 중요한 관계를 다루지 못했습니다. 본 논문은 이를 보완하며, 객체 탐지와 하드웨어 가속기를 결합하여 산업 결함 탐지 시스템을 위한 중요한 자원으로 자리 잡을 수 있습니다.
E. 논문의 조직
이 논문은 다음과 같은 섹션으로 구성됩니다:
- 섹션 II는 CNN의 기초 구성 요소와 기능을 가능하게 하는 수학적 계산에 대해 설명합니다.
- 섹션 III는 ANN에서 CNN으로의 아키텍처 진화를 다룹니다.
- 섹션 IV는 객체 탐지(OD) 분야에 대해 깊이 있는 분석을 제공합니다.
II. CNN의 구성 요소
CNN(Convolutional Neural Networks)은 이미지 인식 분야에서 널리 사용되는 강력한 신경망(NN) 유형으로, 계층적 아키텍처를 특징으로 합니다. CNN은 풀링 층과 합성곱 층을 포함하여 입력 이미지에서 중요한 특성을 캡처하도록 구성됩니다. 특징 추출 후, 여러 개의 완전 연결(FC) 층은 이들 추출된 특성을 활용하여 예측 결과를 생성합니다. CNN을 이미지 인식에 적용하려면 먼저 레이블이 지정된 이미지로 구성된 대규모 데이터셋을 사용하여 훈련을 진행해야 합니다. 이 훈련 과정에서 CNN은 역전파(backpropagation)와 최적화 기법을 통해 추출된 특성과 정확한 레이블을 연관짓는 능력을 점진적으로 습득합니다. 훈련을 마친 후, CNN은 새로운 이미지에 대해서도 예측을 할 수 있습니다. 예측 과정에서는 이미지를 네트워크를 통해 전달하고, CNN은 추출된 특성을 분석한 뒤, 가장 높은 예측 확률에 해당하는 레이블을 출력으로 선택합니다. 이 체계적인 접근 방식은 이미지 인식 작업에서 CNN의 적응력과 효과성을 강조합니다.
CNN 아키텍처 기본 구조
CNN은 물리적 이미지를 픽셀 값의 행렬로 입력받아 첫 번째 특성 추출 단계인 입력층을 거쳐 후속 은닉층으로 전달됩니다. 이 초기 은닉층에서는 이미지 데이터를 처리하는 일련의 필터(또는 커널)가 사용됩니다. 이 필터들은 보통 작은 가중치 행렬로 구성되어 이미지 위를 슬라이딩하며 엣지나 패턴과 같은 저수준 특성을 추출합니다. 이 층의 출력은 특성 맵(feature map)으로, 각 픽셀은 특정 위치에서 필터의 활성화를 나타냅니다. 이후, 특성 맵은 다음 은닉층으로 전달되어, 더 복잡한 특성들을 추출할 수 있는 필터들이 적용됩니다.
CNN의 구성 요소
1. CNN 아키텍처 CNN은 여러 층으로 구성되며, 각 층은 이미지에서 특징을 추출하고 분류하는 역할을 합니다. 입력 이미지에서 시작해, 각 층은 점진적으로 더 복잡한 패턴을 인식합니다. 최종적으로 FC(Full-Connected) 층을 통해 이미지를 특정 클래스로 분류합니다. 이 과정에서 각 필터의 가중치는 역전파를 통해 최적화됩니다.
2. 입력 이미지 이미지는 픽셀로 구성되며, CNN은 수용영역(receptive field)을 사용하여 간단한 특성부터 복잡한 패턴까지 인식합니다. 인간의 시각 시스템처럼 CNN도 점차적으로 이미지를 추상화하여 복잡한 구조를 인식합니다.
3. 활성화 함수 (Activation Layer) 활성화 함수는 CNN에서 중요한 역할을 하며 네트워크에 비선형성을 추가합니다. 이를 통해 네트워크는 단순히 입력의 선형 결합이 아닌, 비선형 변환을 수행하여 복잡한 패턴을 추출하고 해석할 수 있게 됩니다. 활성화 함수는 네트워크의 성능 향상에 핵심적입니다.
4. 완전 연결층 (Fully Connected Layer) 완전 연결층은 전통적인 신경망의 층으로, 이전 층의 뉴런을 마지막 층의 뉴런과 연결합니다. 이 연결망은 정보 교환을 촉진하고, 복잡한 관계를 학습하여 정확한 출력값을 생성하는 데 중요한 역할을 합니다. 주로 네트워크의 끝에 위치하며, 전체 특징을 종합적으로 분석합니다.
5. 배치 정규화 층 (Batch Normalization Layer) 배치 정규화는 각 미니 배치의 평균과 표준편차를 사용하여 활성화 값을 정규화합니다. 이 과정은 네트워크의 훈련을 안정화하고, 내부 공변량 변화 문제를 해결하며, 더 나은 일반화 성능을 제공합니다.
6. 드롭아웃 층 (Dropout Layer) 드롭아웃은 과적합을 방지하는 정규화 기법으로, 훈련 중 일부 뉴런을 무작위로 제외시켜 네트워크가 더 일반화된 특징을 학습하도록 합니다. 이를 통해 네트워크가 훈련 데이터에 과도하게 적합하는 것을 방지하고, 더 튼튼한 특징을 학습할 수 있습니다.
7. 특징 맵 (Feature Maps) 특징 맵은 합성곱 층에서 출력되는 2D 배열로, 입력 이미지에서 필터가 추출한 특징을 나타냅니다. 각 특징 맵은 특정 패턴을 강조하고, 네트워크의 후속 층이 점차 더 복잡한 특징을 학습하게 도와줍니다.
8. 활성화 함수 (Activation Function) 활성화 함수는 네트워크의 비선형 처리를 가능하게 하여 CNN이 더 복잡한 패턴을 학습할 수 있도록 합니다. 주요 활성화 함수에는 ReLU, Sigmoid, Tanh 등이 있으며, 각각의 함수는 네트워크 학습에 서로 다른 장점과 단점을 가집니다.
9. 역전파 (Back Propagation) 역전파는 네트워크의 출력과 실제 출력의 차이를 계산하여 가중치를 업데이트하는 알고리즘입니다. 이 과정은 네트워크의 가중치를 점진적으로 조정하여 손실 함수를 최소화하고 모델 성능을 향상시킵니다. 역전파는 경사 하강법과 결합되어 네트워크를 효율적으로 학습시킵니다.
각 층은 네트워크가 이미지를 효과적으로 인식하고 분류할 수 있도록 돕습니다.
F. 패딩, 스트라이드, 필터
1. 패딩 (Padding) 패딩은 합성곱 연산 중 특징 맵이 축소되는 문제를 해결하기 위해 입력 특징 맵의 경계에 제로(0)로 둘러싼 행과 열을 추가하는 기법입니다. 이를 통해 이미지를 처리하는 동안 공간적 차원을 보존할 수 있습니다. 패딩을 적절히 사용하면 공간 정보를 유지하면서 계산 효율성을 최적화하고 과적합을 방지할 수 있습니다.
2. 스트라이드 (Stride) 스트라이드는 합성곱 연산이 입력 이미지 위를 이동할 때의 단계 크기를 결정합니다. 스트라이드가 클수록 입력 이미지에서 더 드문 샘플링이 이루어져 출력 특징 맵의 해상도가 낮아지고 크기가 작아집니다. 반면, 작은 스트라이드는 입력 이미지를 더 촘촘히 샘플링하여 더 큰 출력 맵과 높은 해상도를 생성합니다. 이를 통해 네트워크의 성능과 계산 효율성에 큰 영향을 미칠 수 있습니다.
3. 필터 (Filters) 필터(또는 커널)는 특징을 탐지하는 작은 행렬로, 입력 이미지를 스캔하여 특정 공간 패턴을 식별하고 추출합니다. 필터가 입력 이미지 위를 이동하며 해당 이미지 패치와 원소별 곱셈을 수행한 후, 결과로 특징 맵을 생성합니다. 필터의 크기는 감지하려는 패턴의 공간적 범위를 결정하며, 큰 필터는 넓은 패턴(예: 엣지)을 캡처하고 작은 필터는 세부적인 특징(예: 모서리나 질감)을 포착합니다. 따라서 필터 크기의 선택은 네트워크의 목적에 맞춰 중요합니다.
4. 특징 맵 크기 계산 출력 특징 맵의 크기는 입력 이미지의 크기(W), 필터의 크기(F), 패딩(P), 스트라이드(S)에 따라 결정됩니다.
5. 디자인 고려 사항 패딩, 스트라이드, 필터 크기의 미세 조정은 CNN 아키텍처에서 입력 이미지에서 특징을 잘 추출하고 고품질 특징 맵을 생성하는 데 중요한 역할을 합니다. 예를 들어, 이미지 분류 작업에서는 더 큰 필터와 작은 스트라이드를 사용하여 정밀한 특징을 캡처하는 것이 유리할 수 있습니다. 반면, 객체 탐지(OD) 작업에서는 더 작은 필터와 더 큰 스트라이드를 사용하여 계산 요구 사항을 줄이고 탐지 속도를 높일 수 있습니다.
III. EVOLUTION OF CNNS
다음은 CNN의 역사를 자세하게 기술해 놓았다.
A. 초기 개발 (1940년대-1960년대)
신경망(NN)의 초기 개발에서 과학자들은 Warren McCulloch(신경생리학자)와 Walter Pitts(수학자)의 기여에 영감을 받았습니다. 이들은 1943년에 논문 **"The Logical Calculus of the Ideas Immanent in Nervous Activity"**에서 기본적인 논리 기능을 실행할 수 있는 이진장치로서의 뉴런 모델을 제시했습니다. 1958년, 심리학자 Frank Rosenblatt는 이를 확장하여 퍼셉트론(Perceptron)을 만들었고, 이는 생물학적 원리를 통해 학습할 수 있는 전자 장치였습니다. Rosenblatt는 또한 **다층 퍼셉트론(MLP)**을 개발했으며, 이는 더 복잡한 신경망 모델로, 간단한 작업을 수행할 수 있었습니다. 1962년, Widrow와 Hoff는 ADALINE 시스템을 개발했으며, 그럼에도 불구하고 초기 NN은 훈련이 어려워 복잡한 입력-출력 관계를 학습할 수 없었습니다.
B. 역전파 (1970년대-1990년대)
1980년대, 역전파(backpropagation) 알고리즘은 신경망 연구에서 큰 돌파구가 되었습니다. 1974년에 Werbos가 역전파를 개발했지만, 그 중요성은 1986년까지 완전히 인식되지 않았습니다. 이 알고리즘은 네트워크의 가중치를 수정하여 오차를 학습하는 방식을 가능하게 했습니다. 1980년대, **네오코그니트론(Neocognitron)**은 **합성곱층(convolutional layers)**을 소개하며 CNN의 기초를 마련했습니다. 1998년, LeNet-5는 역전파를 사용하여 성능을 향상시켰으며, 우편번호 숫자 인식에서 1%의 오차율을 달성했습니다.
C. 부흥 (2000년대)
2000년대 초반, 컴퓨팅 파워의 한계로 CNN의 인기가 하락했으나, Greedy layer-wise training과 같은 새로운 훈련 알고리즘 도입으로 CNN에 대한 관심이 다시 증가했습니다. 2012년, AlexNet은 ImageNet Large Scale Visual Recognition Challenge에서 우승하며 CNN의 발전을 이끌었습니다. AlexNet은 GPU를 활용하고, ReLU 활성화 함수와 드롭아웃(dropout), 데이터 증강(data augmentation) 기술을 사용해 큰 성과를 거두었습니다.
D. 지배 (2010년대)
AlexNet의 승리 이후 CNN은 딥러닝에서 가장 널리 사용되는 아키텍처로 자리 잡았습니다. ZFNet(2013)은 AlexNet의 진화형으로, 성능을 향상시킨 CNN 모델입니다. GoogLeNet(2014)은 Inception module을 도입하여 복잡한 특징 학습 효율성을 높였고, VGG는 모델의 깊이를 증가시켜 SOTA 성능을 달성했습니다. ResNet(2015)은 skip connections를 도입하여 심층 신경망 훈련의 문제를 해결했고, 이후 DenseNet과 같은 다양한 혁신적인 모델이 개발되었습니다.
E. 현대 시대
최근 몇 년간, MobileNets와 EfficientNet은 컴퓨팅 효율성을 높이고 경량화된 CNN 모델을 구현하려는 시도의 일환으로 개발되었습니다. **Vision Transformer (ViT)**와 Swin Transformer는 CNN을 대신하여 이미지 처리에 혁신적인 성과를 이뤄냈습니다. 또한, ConvNeXt는 **cross-covariance attention (CCA)**와 같은 새로운 메커니즘을 도입하여 CNN을 더욱 향상시켰습니다.
IV. 객체 탐지 (Object Detection)
2010년대부터 딥러닝(DL)은 컴퓨터 비전(CV) 문제 해결에 큰 성과를 거두었습니다. 그 중 **객체 탐지(OD)**는 결함 탐지에서 중요한 분야로 자리 잡았습니다. CNN을 이용한 OD는 입력 이미지를 처리하여 특성 맵을 추출하고, 풀링 레이어를 통해 공간적 복잡성을 줄이며, 이를 분류기로 전달해 결함을 탐지하는 방식입니다. OD는 bounding box를 사용하여 객체의 위치와 크기를 정확히 지정하는 방식으로 진행됩니다.
최근, DL 기반 OD 방법은 복잡한 장면에서도 우수한 성능을 보였으며, 의료 영상, 자율 주행차, 로봇 비전 등 다양한 분야에서 활용되고 있습니다.
객체 탐지에서 딥러닝 탐지기
2010년대 초, 객체 탐지(OD) 분야는 수작업으로 특징을 추출하는 방식이 포화 상태에 이르면서 침체기를 겪었습니다. 그러나 2012년 **CNN(컨볼루션 신경망)**의 부활은 객체 탐지 분야에 큰 변화를 가져왔습니다. 특히, 2014년에 **RCNN(Region-based CNN)**의 도입은 객체 탐지 분야에서 중요한 전환점을 맞이하게 했습니다. 딥러닝 기반의 객체 탐지 모델들은 "2단계 탐지기"와 "1단계 탐지기"라는 두 가지 주요 접근 방식을 구분하게 되었습니다.
1) 2단계 탐지
2단계 탐지기는 "조금씩 더 정밀한 방법"을 적용하는 전략을 따르며, 여러 단계를 거쳐 탐지 결과를 다듬습니다. 처음에는 후보 객체 위치를 제안하고, 그 후 제안된 후보 지역을 평가하여 객체의 존재 여부를 확인합니다.
a: RCNN (Region-based CNN)
RCNN은 수작업 특징 기반의 객체 탐지 방법이 가지고 있던 문제점들을 해결하기 위해 개발되었습니다. 기존 방법들은 높은 계산 비용, 노이즈에 민감함, 객체 가리기 등에서 어려움이 있었습니다. RCNN은 선택적 탐색(Selective Search) 방법을 사용해 후보 영역 수를 크게 줄여 계산 효율성을 높였습니다.
RCNN 아키텍처:
- 선택적 탐색(Selective Search): 약 2000개의 후보 영역을 생성.
- CNN (예: AlexNet): 크기를 일관되게 조정한 후보 영역에서 특징을 추출.
- SVM 분류기: 각 영역에서 객체가 존재하는지 분류하고, 객체를 식별.
RCNN은 VOC-2007 데이터셋에서 **58.5%**의 평균 정밀도(mAP)를 기록하며 기존의 **33.7%**의 성능을 뛰어넘었습니다. 하지만 각 이미지당 47초가 소요되는 높은 계산 비용으로 인해 실시간 애플리케이션에 적합하지 않았습니다.
b: SPPNet (Spatial Pyramid Pooling Network)
2014년에 SPPNet이 He et al.에 의해 개발되었습니다. 기존 CNN 모델들은 고정 크기의 입력 이미지를 요구했지만, SPPNet은 공간 피라미드 풀링(SPP) 레이어를 사용하여 다양한 크기의 이미지를 처리할 수 있게 했습니다.
SPPNet 아키텍처:
- 공간 피라미드 풀링(SPP) 레이어: 전체 이미지에서 특징을 추출하고, 여러 크기의 영역에 적용할 수 있도록 개선.
- 실시간 성능: SPPNet은 이미지 처리 시간을 47초에서 6.9초로 단축시켜 실시간 객체 탐지가 가능해졌습니다.
SPPNet은 RCNN보다 훨씬 더 빠른 성능을 제공하며, 고속 처리와 높은 정확도를 유지해 실제 애플리케이션에 더 적합했습니다.
V. 하드웨어 카탈로그
객체 탐지 분야에서 딥러닝(CNN)의 성공은 건축적 발전 덕분이지만, 하드웨어의 진화 역시 중요한 기여 요소입니다. 특히 CNN을 배포하는 데 있어 하드웨어 가속의 발전은 매우 중요한 역할을 했습니다. 하드웨어 가속은 컴퓨터 하드웨어에서 특정 작업을 최적화하여 지연 시간을 줄이고 처리량을 향상시키는 방법으로, 일반적인 CPU에서 소프트웨어 실행을 하는 것보다 훨씬 더 효율적입니다. CNN은 대규모 병렬 계산을 요구하기 때문에 고메모리 대역폭과 복잡한 네트워크 아키텍처에서는 많은 전력을 소비하게 됩니다. 이를 해결하기 위해 하드웨어 연구자들과 공급업체들이 병렬 처리 성능을 강화하고, 최적화된 추론 및 전력 효율성을 달성하기 위한 다양한 전략을 개발해 왔습니다.
이 절에서는 주요 하드웨어 가속화 기술을 살펴보며, 그들의 기여, 잠재적인 단점, 그리고 컴퓨터 비전(CV) 애플리케이션에서의 응용에 대해 논의합니다.
A. GPU
**그래픽 처리 장치(GPU)**는 원래 3D 그래픽 렌더링과 게임 응용을 위한 전용 가속기로 개발되었으나, CNN과 같은 고성능 컴퓨팅 작업을 처리할 수 있는 잠재력을 인식하게 되면서 과학적 및 공학적 응용 분야로 그 범위가 확장되었습니다. GPU는 수천 개의 순차 실행 코어를 갖추고 있으며, 병렬 처리에 최적화되어 있어 CNN과 같은 작업을 빠르고 효율적으로 처리할 수 있습니다.
GPU 아키텍처와 DL:
- GPU는 대규모 병렬 연산을 처리하기 위한 수천 개의 코어를 가지고 있으며, 작은 캐시와 낮은 주파수로 병렬 처리의 효율성을 높입니다. 이러한 구조는 CNN의 합성곱 연산, 서브샘플링 전략 및 신경망 활성화 함수와 잘 맞아떨어집니다.
- 대표적인 GPU 관련 라이브러리로는 cuDNN, CUDA 등이 있으며, Caffe, TensorFlow, Torch와 같은 딥러닝 프레임워크에서 활용됩니다.
NVIDIA Jetson: NVIDIA는 Jetson 플랫폼을 통해 소형 임베디드 시스템에서도 강력한 GPU 성능을 제공하며, 다양한 실시간 애플리케이션에 적합한 솔루션을 제공합니다. 예를 들어, Jetson TX2는 CNN을 활용한 직물 결함 탐지 작업에서 16ms의 추론 시간으로 실시간 성능을 발휘하며 뛰어난 효율성을 보여주었습니다.
B. FPGA
**FPGA(Field-Programmable Gate Array)**는 하드웨어 재구성이 가능한 칩으로, 높은 전력 효율성을 제공하며, 실시간 처리와 특정 작업에 최적화된 구조를 구현할 수 있습니다. 특히, 산업 4.0 시대의 IoT와 같은 엣지 디바이스에서 요구되는 저전력, 고속 추론 및 정확도를 충족할 수 있는 능력을 가지고 있습니다.
FPGA는 디지털 신호 처리(DSP), 룩업 테이블(LUT), 블록 RAM 등을 활용하여 CNN 구현에 필요한 연산을 효율적으로 처리할 수 있습니다. 그러나 메모리 대역폭이 GPU보다 제한적이어서 CNN을 FPGA에서 효율적으로 구현하기 위해서는 알고리즘 최적화가 필수적입니다.
CNN 최적화 전략:
- 프루닝(Pruning): 불필요한 파라미터나 가중치를 제거하여 네트워크 복잡도를 줄이는 기법입니다.
- 저랭크 근사(Low-rank Approximation): 가중치 행렬을 저랭크 필터로 분해하여 계산량을 줄이는 방법입니다.
- 양자화(Quantization): CNN을 고정 소수점 형식으로 변환하여 연산을 최적화하는 기법입니다.
이러한 최적화 기법은 FPGA에서의 성능을 향상시키는 데 큰 도움이 됩니다.
C. ASIC
**ASIC(Application-Specific Integrated Circuit)**는 특정 응용을 위해 설계된 맞춤형 하드웨어로, GPU나 FPGA보다 높은 성능을 제공합니다. ASIC은 특정 작업에 최적화되어 있어 뛰어난 정확도와 추론 속도를 자랑하지만, 개발 주기가 길고, 하드웨어 수정이 불가능한 단점이 있습니다.
대표적인 ASIC 예시로는 **구글 TPU(Tensor Processing Unit)**와 화웨이의 Kirin-970 칩셋이 있습니다. 이들은 특정 AI 작업을 최적화하여 성능과 에너지 효율성을 크게 개선하였습니다.
F. 산업 응용을 위한 경량 아키텍처 활용
딥러닝(DL)의 산업 응용은 품질 검사 및 결함 탐지 분야에서 큰 발전을 예고합니다. 하지만 산업 환경에서는 종종 처리 자원에 제약이 있어, 계산 자원이 많이 소모되는 모델의 배치는 어려움을 겪습니다. 이때 경량 네트워크가 중요한 해결책으로 떠오릅니다. 경량 모델은 효과적이고 효율적인 딥러닝 구현을 통해 산업에서 AI의 활용을 촉진하는 중요한 역할을 합니다. 이러한 모델은 자원 제약을 완화하고 비용 효율적인 배치를 가능하게 하여, AI가 산업 현장에 자연스럽게 스며들어 자동화, 효율성 및 생산성 증대를 이끌어가는 미래를 열어갑니다.
G. 일반화된 결함 탐지 모델 개발
일반화된 결함 탐지 모델을 구현하면 다양한 산업 환경에서의 적용이 용이해져 개발 비용 절감과 더 짧은 개발 주기를 가져올 수 있습니다. 이 접근법은 딥러닝 모델의 기본 네트워크 구조를 유지한 채, 훈련 샘플만 변경하는 방식으로 진행됩니다. 간단하면서도 효율적인 이 방법은 대부분의 산업 기업들 사이에서 더 널리 받아들여질 것으로 예상됩니다.
VIII. 결론
이번 종합적인 리뷰에서는 산업 결함 탐지 시스템에서 CNN(컨볼루션 신경망)의 잠재력과 응용 가능성을 철저히 분석했습니다. 먼저 CNN의 기본 구성 요소를 정의하고, 그 아키텍처 설계와 수학적 공식, 그리고 인공신경망(ANN)에서의 진화를 살펴보았습니다. 중요한 발전 사항으로는 합성곱 층, 풀링 연산, 역전파 알고리즘, 그리고 특수화된 활성화 함수들이 소개되었습니다. 이들 혁신이 CNN이 복잡한 시각적 작업에서 뛰어난 성과를 내도록 가능하게 했다는 점을 설명했습니다.
그러나 이 리뷰는 CNN의 주요한 과제들도 강조했습니다. 특히, 대규모 라벨링된 데이터셋과 계산 자원이 강력한 하드웨어 인프라가 필요하다는 점입니다. 사전 훈련된 모델이 데이터 부족 문제를 해결할 수 있는 방법을 제공하지만, 이러한 접근법은 편향, 투명성, 책임 문제와 같은 윤리적 쟁점도 동반합니다.
이 리뷰는 또한 객체 탐지 기술의 발전을 다루었으며, 이는 CNN과 밀접한 관계가 있습니다. 객체 탐지의 진화에는 아키텍처 혁신뿐만 아니라, 지원 도구, 프레임워크, 데이터셋, 성능 평가 지표 등도 포함되었습니다. 또한, GPU, FPGA, ASIC와 같은 하드웨어 가속기가 계산 성능을 향상시키는 중요한 역할을 한다는 점도 강조되었습니다. 최근 연구 트렌드는 리소스를 효율적으로 사용하는 아키텍처 설계로의 전환을 나타내며, 설계 단계에서 배치 요구 사항이 중요한 지표로 고려되고 있습니다.
철강 제조, 태양광 셀 검사, 철도 트랙 유지보수, 섬유 품질 관리 등 다양한 산업 분야에서 CNN은 결함과 이상을 검사하는 데 매우 효과적임을 보여주었습니다. CNN은 복잡한 패턴과 미세한 결함을 인식할 수 있어 자동화된 품질 검사에 강력한 솔루션이 됩니다. 그러나 데이터 부족, 해석 가능성 문제, 적응성 부족, 보안 취약점, 실시간 성능 제한 등의 문제로 인해 널리 채택되는 데 어려움이 있음을 강조했습니다. CNN은 산업 결함 탐지 애플리케이션에 큰 가능성을 지니고 있지만, 그 자체로 모든 문제를 해결할 수 있는 만능은 아니며, 데이터 효율성, 모델 해석 가능성, 보안, 추론 속도와 관련된 주요 한계를 해결하는 것이 중요합니다.
또한, 기하학적 컴퓨터 비전, 전통적인 머신러닝 기법, 혼합 방법론 등의 대체 접근법을 특정 사용 사례와 제약에 맞춰 고려할 필요성도 언급했습니다.
결론적으로, 이 리뷰는 산업 결함 탐지 시스템에서 CNN의 응용에 관한 주요 연구 질문들을 철저히 탐구하고 답했습니다. CNN은 엄청난 잠재력을 지니고 있지만, 아직 완전히 성숙한 단계는 아닙니다. 따라서 효율성, 강건성, 해석 가능성 및 실시간 기능을 향상시키기 위한 지속적인 연구가 필요합니다. 결국, CNN의 강점과 한계, 그리고 가능한 대안들을 균형 있게 평가하는 것이 산업 품질 검사에서 최적의 해결책을 찾는 데 중요한 역할을 할 것입니다.
리뷰후기
Review논문을 리뷰하는 글이 되었는데 나름 전반적으로 CNN의 흐름과 역사를 보기에는 충분한 논문이였던 것 같다. 레퍼런스를 위해 읽었는데 살짝 아쉬웠다.
출처
R. Khanam, M. Hussain, R. Hill and P. Allen, "A Comprehensive Review of Convolutional Neural Networks for Defect Detection in Industrial Applications," in IEEE Access, vol. 12, pp. 94250-94295, 2024, doi: 10.1109/ACCESS.2024.3425166.
keywords: {Defect detection;Hardware;Convolutional neural networks;Computer architecture;Reviews;Artificial intelligence;Inspection;Computer vision;Deep learning;Quality assessment;Manufacturing processes;Computer vision;convolutional neural network;deep learning;industrial defect detection;object detection;quality inspection: manufacturing},