Ⅰ. 서론
방사선의 일종인 X-ray는 자외선보다 파장이 짧고 투과력이 좋아서 사물의 형태를 보존하면서 내부 확인이 필요한 경우에 사용된다. 따라서 X-ray는 비파괴가 필수적인 의료 검사, 보안검색 및 완성품의 이물질 검사 등에 주로 활용되어 왔다[1]. 머신비전을 통해서 X-ray 영상에 대한 자동 분석이 가능해지면서 X-ray는 다양한 산업 분야에서 결함검출을 통한 제품의 품질 관리에 필수 장비로 활용되고 있다. 이런 자동화를 통해 자동차, 철강, 반도체 분야의 제품 생산성이 획기적으로 향상되었다. 최근에는 딥러닝 기반 영상처리가 기존의 머신비전 적용이 어려웠던 문제에서 뛰어난 성능을 보이면서 X-ray를 적용한 컴퓨터비전이 더욱 확산되고 있다[1,2,3,4]. 구체적으로 딥러닝 기반 X-ray 검사 응용 분야는 3D 프린팅[5], 금형[6], 용접, 보안 검색, 물성 검사, 반도체 전자제품[7] 등을 포함한다.
지난 십수 년 동안 딥러닝은 머신러닝의 한 분야로서 빠르게 발전되어 왔다. 현재 딥러닝은 과학·공학뿐 아니라 일상 전반에 걸친 다양한 문제를 해결할 수 있는 보편적인 도구로 인식되고 있다. 원래 머신러닝은 딥러닝이 활성화되기 전부터 컴퓨터비전을 포함한 다양한 공학적 문제 해결을 위한 중요한 인공지능 기술이었다. 간단한 컴퓨터비전 문제는 학습이 필요 없는 규칙 기반 머신비전(rule-based machine vision)[8]이 주로 활용되었다. 표 1에서 컴퓨터 비전의 규칙기반 머신비전, 기존 머신러닝, 딥러닝의 특징을 간단히 비교하였다.
표 1. 컴퓨터 비전 기술 비교
Table 1. Computer vision techniques
기존의 머신러닝과 딥러닝의 가장 큰 차이는 입력 데이터를 처리하는 방식에 있다. 기존의 머신러닝은 입력데이터에 대한 전처리를 통해서 문제 해결에 필요한 특성 계수를 추출하는 과정이 필수적이다. 추출된 특성계수를 이용하여 학습을 진행하기 때문에 간단한 모델로 학습이 가능한 장점이 있다. 그러나 각 문제마다 특성이 달라지기 때문에 적절한 특성을 정의하고 추출하는 문제가 중요하고, 이를 위해서는 머신러닝에 대한 전문 지식과 이해가 필요하다. 기존의 머신러닝과 달리 딥러닝은 특성 추출 과정을 포함하여 학습을 진행한다. 즉 입력 데이터부터 출력 결과까지의 과정(end-to-end) 전체를 학습하게 된다. 따라서 학습 모델이 복잡(deep)하고 학습을 위해서 많은 학습 데이터가 필요하다. 그러나 별도의 특성 추출 과정이 필요 없고 학습과정에서 모델 내부적으로 특성 추출이 자동으로 이루어진다. 이런 장점으로 인해 비전문가도 상대적으로 쉽게 딥러닝을 활용한 다양한 문제해결이 가능하다.
본 논문에서는 딥러닝 모델을 기반으로 배터리 X-ray 영상에서 이물질이나 결함을 검출하는 기법을 제안한다. 논문의 구성은 다음과 같다. Ⅱ장에서는 X-ray의 특징과 X-ray 영상을 활용한 컴퓨터 비전의 문제점에 대해서 살펴본다. Ⅲ장에서는 배터리 검사를 위한 딥러닝 모델과 구현 방법을 제안한다. Ⅳ장에서는 실제로 원통형 배터리의 불량 검출 문제에 제안한 기법을 적용하여 성능 검증을 진행한다. 마지막으로 Ⅴ 장에서는 결론과 더불어 성능개선을 위한 제안과 향후 연구 과제에 대해서 논의한다.
Ⅱ. X-ray 기초
1. X-ray 영상 시스템[1]
그림 1은 기본적인 X-ray 이미지 획득 시스템이다. 일반적인 카메라의 경우는 카메라 센서가 사물에 반사된 빛의 세기와 색상을 감지하여 이미지를 생성한다.
그림 1. X-ray 영상 시스템
Fig. 1. X-ray imaging system
그러나 X-ray의 경우 튜브에서 발생된 이온화된 빔을 대상물체에 투과시키고 반대편 검출기에서 도달한 빔을 감지한다. X-ray는 대상물체의 질량 밀도(mass density)에 따라서 투과율이 달라지기 때문에 물체의 종류와 형상에 따라 검출기에서 측정되는 X-ray의 강도가 달라진다. 따라서 패키징이 완료된 제품 내부의 대상물에 대한 비파괴 검사가 가능하다. 현재 X-ray는 다양한 산업 분야의 제품 검사에 많이 활용되고 있다. 본 논문에서는 완성된 배터리에 대한 X-ray 영상을 활용하여 배터리 내부의 결함이나 이물질을 확인하는 방법을 제안하고자 한다. 학습으로 만들어진 딥러닝 모델에 촬영된 X-ray 이미지를 적용하여 배터리의 내부 결함 유무를 자동으로 판단하게 된다.
그림 2. 배터리 검사 장비
Fig. 2. Battery inspection equipment
2. X-ray 기반 딥러닝
컴퓨터 비전 문제를 딥러닝을 통해서 해결하고자 하면 기본적으로 주어진 문제에 적합한 딥러닝 모델과 해당 모델을 학습하기 위한 충분한 데이터가 필요하다. 이때 데이터는 노이즈가 적고 입력 데이터의 통계적 분포를 잘 반영하기 위해서 다양성을 유지해야 한다. 또한 지도학습을 위해서 데이터에 대한 정확한 레이블링이 필수적이다.
X-ray 검사 장비에 딥러닝을 적용하는 경우에는 데이터 확보에 다음과 같은 어려운 점이 있다. 일반적으로 X-ray로 촬영한 이미지는 일반 카메라 이미지에 비해서 화질이 좋지 않다. 고화질의 이미지를 얻기 위해서는 고출력 X-ray를 사용하거나 촬영 시간을 늘리면서 다양한 전처리를 수행해야 한다. 그러나 실제 X-ray 검사 시스템을 구현하는 경우 안전이나 검사 시간 등의 문제로 위 방법들을 적용하는데 제한이 있다. 결함 검출의 경우에는 학습에 사용할 다양한 형태의 불량 데이터가 필요하다. 그러나 배터리를 만드는 과정에 고의로 이물을 첨가하거나 스크래치를 내어 비정상 이미지를 만들기 어렵기 때문에 불량 데이터를 충분히 확보하는 것이 쉽지 않다.
따라서 X-ray 영상에 대한 딥러닝은 다른 컴퓨터 비전 문제에 비해서 데이터 증강(data augmentation)과 자동 레이블링(auto labelling)을 통한 학습이 반드시 필요하다. 간단한 데이터 증강 기법으로 회전, 반전, 확대·축소 이동 등이 있지만 이런 기초적인 증강 방법에 의한 합성 데이터는 배경과 부자연스러운 경계를 갖는 문제가 있고 학습에 의한 성능 향상이 제한적이다. 최근 생성적 적대 신경망(generative adversarial networks)을 이용하여 위의 문제를 해결한 데이터 증강 기법이 많이 사용되고 있다. GANs(generative adversarial networks)[9]의 경우 현재 보유한 데이터와 통계적 분포가 같은 데이터를 생성할 수 있는 모델을 학습을 통해서 구한 후 모델을 통해서 자연스러운 증강 데이터를 생성하게 된다.
Ⅲ. 딥러닝 모델과 구현 방법
1. 딥러닝 모델
컴퓨터 비전 영역의 대표적인 문제로 분류(classification), 객체 검출(object detection)[10], 분할(segmentation)[11] 등이 있다. 분류는 입력 이미지의 클래스를 하나의 레이블로 예측하는 문제이다. 객체 검출은 이미지 내에 있는 객체들의 위치를 검출하고 해당 객체에 대한 클래스를 분류한다. 분할의 경우는 클래스에 대한 분류를 이미지의 모든 픽셀 단위에 대해 실시한다. 딥러닝에 대한 연구가 많이 진행되면서 컴퓨터 비전 문제를 해결하기 위한 다양한 모델들이 제안되어 왔다. 현재까지 객체 검출에는 You Only Look Once(YOLO)[12], Region-based Convolutional Neural Network (R-CNN)[13] 모델이 좋은 성능을 보이는 것이 확인되었고 분할 문제에는 Fully Convolutional Network (FCN)[14], SegNet[15], DeepLab[16] 모델이 효과적이라고 알려져 있다.
실제 딥러닝 기반의 컴퓨터 비전의 구현은 주어진 문제에 효과적인 기본 모델을 선정하고 전이 학습 등을 통해 최적화된 모델 계수를 학습하게 된다. 딥러닝을 이용한 배터리 검사는 객체 검출이나 분할에 해당하므로 관련된 적절한 딥러닝 모델이 필요하다. 본 논문에서는 Saige Research에서 제공하는 딥러닝 플랫폼(SaigeVision)[17]을 사용하여 배터리 검사를 위한 딥러닝 모델 설정과 학습을 했으며 실제 테스트 데이터를 이용하여 학습한 모델에 대한 성능 검증을 진행하였다. X-ray 검사에 필수적인 데이터 증강도[18] SaigeVision 플랫폼에서 제공하는 이미지 생성(Image Generation) 기능을 사용하여 구현하였다. SaigeVision은 객체 검출을 위하여 기존의 객체 검출 모델에 전이 학습과 네트워크 압축을 통해 학습 시간과 모델 크기를 줄여서 불량 검사에 적합한 플랫폼을 제공한다.
2. 딥러닝 배터리 검사 모델 구현
그림 3은 배터리 검사를 딥러닝으로 구현하는 일련의 과정을 간단히 보여주고 있다. 전체 딥러닝 배터리 검사모델을 구현하는 과정에서 2개의 모델에 대한 학습이 필요하다. 첫 번째는 이미지 생성(Image Generation)에 필요한 GANs 모델이고 두 번째는 객체검출을 위한 모델이다. SaigeVision의 Image Generation에서 사용하는 GANs 모델은 기존에 알려진 GAN을 기반으로 더 작은 결함을 학습하고 생성할 수 있도록 개선되었다.
그림 3. 배터리 검사를 위한 딥러닝 구현 과정
Fig. 3. Deep learning workflow
우선 학습, 검증, 테스트에 필요한 다양한 데이터를 확보하기 위해서 다음과 같이 데이터 증강을 진행하였다. 먼저 이물이나 스크래치가 레이블링(labeling)된 비정상 이미지와, 이미지의 기본 배경이 될 정상 이미지를 준비한 후 정상 이미지에서 이물이나 스크래치가 자주 발견되는 영역을 지정해서 해당 영역 위주로 결함이 생성되도록 하였다. 그리고 학습된 모델을 통해 학습(training), 검증(validation), 테스트(test)에 필요한 결함 데이터를 생성하였다.
본 논문에서는 배터리 불량 검사를 객체 검출 문제로 정의하였다. 불량 검사는 분할을 이용해서 구현할 수도 있지만 불량 혹은 이물질에 대한 픽셀 단위의 형상과 위치 파악이 목적이 아니고 불량의 유무와 대략적인 위치 정보를 구하는 경우에는 상대적으로 모델 복잡도가 낮은 객체 검출 모델을 사용하는 것이 유리하다.
Ⅳ. 성능 검증 실험
그림 4는 검사 대상인 원통형 배터리에 대한 실제 X-ray 이미지이다. 왼쪽의 (a)는 결함이 없는 정상 배터리이고 오른쪽 (b) 이미지에서는 결함에 해당하는 여러개의 이물이 보인다. 이처럼 X-ray 촬영을 통해 획득한 이미지를 이용하여 GANs 모델에 대한 학습을 진행하고 데이터 증강을 통한 합성 이미지를 생성하였다.
그림 4. 배터리 X-ray 이미지
Fig. 4. X-ray images of two batteries
그림 5는 이물과 스크래치가 있는 (a) 원본 이미지와 GANs에 의해서 생성한 (b) 합성 이미지를 확대 비교한 것이다. 원본 이미지는 좌측 하단 스크래치와 우측 상단 이물이 보이고, 생성된 이미지에서는 좌측 하단과 좌측 상단에 각각 스크래치와 이물을 확인할 수 있다. 생성된 이미지가 자연스러워 실제 이미지와 비교해서 구분이 쉽지 않다.
그림 5. 원본 이미지와 생성 이미지
Fig. 5. original image vs. generated image
본 실험에서는 표 2와 같이 95개 원본 X-ray 이미지로부터 데이터 증강을 통해서 총 2250의 데이터 세트를 만들었다. 생성된 전체 이미지를 각각 학습 데이터 1750개, 검증 데이터 250개, 테스트 데이터 250개로 분류하였다. 또한 학습 데이터와 검증 데이터의 개수를 표 3에서 5 종류로 만들어 실험을 진행하였다. 이를 통해서 학습 데이터 증가에 따른 테스트 성능 변화를 확인하였으며 실제 상용 장비에 요구되는 성능을 만족시키기 위한 최소한의 데이터의 크기를 구하였다.
표 2. 데이터 증강
Table 2. Data argumentation
표 3. 학습데이터 크기에 따른 성능 결과
Table 3. Test results for different training data sizes
표 3에 x-ray 불량 검사에 대한 성능 결과를 정리하였다. 테스트 성능은 불량이 있지만 발견하지 못하는 미검(underkill)율과 불량이 아닌 부분을 불량으로 표시하는 오검(overkill)율로 나타내었다. 표 3에서 학습 데이터 크기가 증가할수록 테스트 성능이 향상되는 것을 확인 할 수 있다. 대부분의 상용 검사 장비의 미검율과 오검율은 기본적으로 1% 이하는 되어야 하며 제품의 종류나 검사 오류에 따른 영향에 의해 구체적인 성능 기준이 정해진다. 표 3의 Test 5의 경우 오검 0.6%와 미검 0.2%로 두 가지 성능 지표가 모두 1% 이하를 만족하였다. 일반적으로 불량 검사를 하는 목적은 미검에 의한 치명적인 결과를 방지하기 위한 경우가 많아서 미검 성능을 오검 성능보다 좋게 구현하는 경우가 일반적이다.
그림 6. Test 5 데이터 조합의 학습 손실 변화
Fig. 6. Training loss curve for Test 5 data set
Ⅴ. 결론
본 논문에서는 X-ray를 이용한 배터리 검사를 딥러닝 모델을 이용하여 구현하였다. 먼저 X-ray 이미지를 이용한 컴퓨터 비전 문제에서 고품질의 데이터를 충분히 확보하는 방법을 고찰하였다. 또한 불량 검출을 객체 검출 문제로 정의하고 객체검출에 효과적인 딥러닝 모델을 선정하고 학습을 진행하였다. 최종적으로 학습된 모델이 1% 이하의 미검 성능을 내기위한 최소한의 데이터 크기를 확인하였다. 본 논문에서의 결과가 유사한 X-ray 기반 불량 검출 시스템의 초기 학습에 필요한 학습 모델과 학습에 필요한 데이터 크기에 대한 기준을 제공할 수 있을 것으로 기대한다. 본 논문에서는 불량의 유무와 대략적인 위치 검출 문제를 객체 검출로 정의했지만 픽셀 단위의 결함의 형태와 세밀한 위치 정보를 얻기 위해서 분할 문제로 접근하여 관련 모델을 사용한 검사기 구현도 가능하다. 이에 객체 검출과 분할 사이의 성능 비교도 추후 진행할 예정이다.
참고문헌
- M. Rafiei, J. Raitoharju and A. Iosifidis, "Computer Vision on X-Ray Data in Industrial Production and Security Applications: A Comprehensive Survey," IEEE Access, Vol. 11, pp. 2445-2477, 2023. DOI: https://doi.org/10.1109/ACCESS.2023.3234187
- J. Lee, R. Lee, S. Hong, Y. Kim, "Image Processing System based on Deep Learning for Safety of Heat Treatment Equipment," The Journal of The Institute of Internet, Broadcasting and Communication(JIIBC), Vol. 20 No. 6, pp. 77-83, Dec 2020. DOI: https://doi.org/10.7236/JIIBC.2020.20.6.77
- H. Park, "Trend Analysis of Korea Papers in the Fields of 'Artificial Intelligence', 'Machine Learning' and 'Deep Learning'," The Journal of Korea Information Electron Communication Technology, Vol. 13, No. 4, pp. 283-292, 2020. DOI: https://doi.org/10.17661/jkiiect.2020.13.4.283
- Y. Cho, J. Kim, "A Study on The Classification of Target-objects with The Deep-learning Model in The Vision-images," The Journal of Korea Academia-Industrial cooperation Society(JKAIS), Vol. 22, No. 2, pp. 20-25, 2021. DOI: https://doi.org/10.5762/KAIS.2021.22.2.20
- A. Thompson, I. Maskery, and R. K. Leach, "X-ray computed tomography for additive manufacturing: a review," Measurement Science and Technology, Vol. 27, No. 7, 2016. DOI: https://doi.org/10.1088/0957-0233/27/7/072001
- C. Hu and Y. Wang, "An Efficient Convolutional Neural Network Model Based on Object-Level Attention Mechanism for Casting Defect Detection on Radiography Images," IEEE Transactions on Industrial Electronics, Vol. 67, No. 12, pp. 10922-10930, Dec. 2020. DOI: https://doi.org/10.1109/TIE.2019.2962437
- Q. Ling and N. A. M. Isa, "Printed Circuit Board Defect Detection Methods Based on Image Processing, Machine Learning and Deep Learning: A Survey," IEEE Access, Vol. 11, pp. 15921-15944, 2023. DOI: https://doi.org/10.1109/ACCESS.2023.3245093
- S. V. Mahadevkar et al., "A Review on Machine Learning Styles in Computer Vision-Techniques and Future Directions," IEEE Access, Vol. 10, pp. 107293-107329, 2022. DOI: https://doi.org/10.1109/ACCESS.2022.3209825
- I. Goodfellow, et al. "Generative adversarial nets", Neural Information Processing Systems, 2014.
- Z. Zhao, P. Zheng, S. Xu and X. Wu, "Object Detection With Deep Learning: A Review," IEEE Transactions on Neural Networks and Learning Systems, Vol. 30, No. 11, pp. 3212-3232, Nov. 2019. DOI: https://doi.org/10.1109/TNNLS.2018.2876865
- S. Minaee, Y. Boykov, F. Porikli, A. Plaza, N. Kehtarnavaz and D. Terzopoulos, "Image Segmentation Using Deep Learning: A Survey," IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 44, No. 7, pp. 3523-3542, 1 July 2022. DOI: https://doi.org/10.1109/TPAMI.2021.3059968
- J. Redmon, S. Divvala, R. Girshick and A. Farhadi, "You Only Look Once: Unified, Real-Time Object Detection," 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas, NV, USA, 2016, pp. 779-788. DOI: https://doi.org/10.1109/CVPR.2016.91
- R. Girshick, J. Donahue, T. Darrell and J. Malik, "Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation," 2014 IEEE Conference on Computer Vision and Pattern Recognition, Columbus, OH, USA, 2014, pp. 580-587. DOI: https://doi.org/10.1109/CVPR.2014.81
- J Long, E Shelhamer and T. Darrell, "Fully convolutional networks for semantic segmentation," Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 3431-3440, 2015. DOI: https://doi.org/10.1109/CVPR.2015.7298965
- V. Badrinarayanan, A. Kendall and R. Cipolla, "SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation," IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 39, No. 12, pp. 2481-2495, 1 Dec. 2017. DOI: https://doi.org/10.1109/TPAMI.2016.2644615
- L. -C. Chen, G. Papandreou, I. Kokkinos, K. Murphy and A. L. Yuille, "DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 40, no. 4, pp. 834-848, 1 April 2018. DOI: https://doi.org/10.1109/TPAMI.2017.2699184
- Saige Research, "Introducing the SaigeVison: AI Vision Inslpection Platform", [White paper]. https://saige.ai/wp-content/uploads/2021/09/SaigeVision-White-Paper-v12.pdf
- J. Kim, S. and Park, B. On, "A Pooled RNN-based Deep Learning Model based on Data Augmentation for Clickbait Detection," The Journal of KIIT, Vol. 21, No. 4, pp. 45-56, 2023. DOI: https://doi.org/10.14801/jkiit.2023.21.4.45