Implementation of a Three-Dimension Scanning Automation System Based on Heterogeneous Device Integration

Yu-jin So♦ and Kyuchang Kang°

Abstract

Abstract: In this paper, we implemented a prototype automation system for inspecting automotive parts using a 3D(Three Dimension) scanner and accumulating the results to predict and infer defects. This implementation consists of a camera for recognizing parts and a 3D scanner attached to a cooperative robot arm to automatically control the robot arm in accordance with the inspection process. The system recognizes the type of part and controls the robot arm along a predetermined path according to the type of part recognized so that the scanner attached to the robot arm can scan optimally. The process of reading and parsing the inspection report is developed indirectly by extracting the necessary information from the inspection report and storing it in the database, as the third-party scanner-only system does not provide an interface to access the internal data. When an event of saving an inspection report is detected, the inspection report is parsed and the results of the inspection report are stored in the database according to the predefined database schema. Based on this, further development is required to expand the implementation of the automated system to a wider range of applications, including 3D scanners, through deeply structured analysis of various statistical data features and automatic analysis of manual work in industry.

Keywords: Automation System , Device Integration , Object Recognition , 3D Scanning

Ⅰ. 서 론

산업계에서는 품질관리에 따른 비용 증가, 공급 단가 조절 및 조달 기간 등 생산성 향상을 위한 일환으로 품질검사 시 3D(Three-Dimension) 스캔(Scan) 기반 검사방식을 적극적으로 추진하고 있다. 특히, 일부 완성차 업체 또는 상위 협력사에 부품 납품 시 3D 스캔 기반 품질 검사자료를 요구하고 있어, 이에 대한 중요도가 매우 높아지고 있음을 알 수 있다[1-3].

최근 휴대용 3D 스캐너(Scanner)가 많이 보급됨에 따라 장소에 구애 받지 않고 스캔할 수 있는 강점이 생김에 따라 다양한 영역에서 3D 스캐너 활용이 늘어나고 있지만 스캐너 제조 업체에서 관련 인터페이스(Interface)를 공개하지 않아 스캐너가 포함된 자동화 시스템의 구축에 많은 어려움이 있다. 또한 자동차 부품 검사와 같은 활용분야의 경우 단순한 3D 스캔 결과 뿐만 아니라 이를 데이터베이스화하고 장기적으로 누적시켜 부품의 불량 예측 등의 영역에 활용하고자 하는 요구사항이 있으나 이종 장치를 통합하고 자동화하기 위해서는 해결해야 하는 문제가 다수 존재한다.

상기의 문제를 해결하고자 본 논문에서는 3D 스캐너를 사용하여 자동차 부품을 검사하고 그 결과를 누적하여 불량 예측 및 추론을 하기 위한 자동화 시스템 프로토타입(Prototype)을 구현하였다. 이를 위해 본 구현에서는 부품을 인식하기 위한 카메라와 3D 스캐너를 협동 로봇암(Robot Arm)에 부착하여 검사 프로세스(Process)에 맞춰 로봇암을 자동제어하는 구조로 개발하였다. 먼저 로봇암에 부착된 카메라로 부품을 촬영하여 부품의 종류를 인식하고 인식된 부품의 종류에 따라 정해진 경로로 로봇암을 제어하여 로봇암에 부착된 스캐너가 최적의 스캔을 할 수 있도록 한다. 물리적인 스캔 과정이 끝나면 스캐너 전용시스템에 의해 자동 처리된 스캐너 제조사 형식의 검사성적서가 저장장치에 저장되면 이 저장 이벤트(Event)를 감지하여 스캐너 제조사 형식의 검사성적서를 읽고 본 구현의 목적에 맞도록 검사성적서를 파싱(Parsing)하여 사전 정의된 데이터베이스(Database) 스키마(Schema)에 따라 검사성적서 결과를 데이터베이스에 저장한다. 검사성적서를 읽고 파싱하는 과정은 서드파티(Third Party) 스캐너 전용 시스템에서 내부 데이터에 접근할 수 있는 인터페이스를 제공하지 않아 간접적으로 검사성적서에서 필요한 정보를 추출하여 데이터베이스에 저장하는 구조로 개발하였다. 다음으로 데이터베이스에 저장된 스캔 결과는 지속적으로 누적되고 기계학습 알고리즘을 통해 후처리된다.

본 논문에서의 구현 시스템은 로봇암의 정밀한 제어와 부품별 사전 정의된 로봇암의 조인트(Joint) 좌표를 활용하여 검사의 재연성을 제공할 수 있는 장점이 있고 검사성적서에서 필요한 정보를 선택적으로 추출, 누적 저장 및 데이터베이스로 관리하여 불량 예측 및 추론을 하기 위한 산업용 데이터셋으로 활용이 가능하다.

본 논문은 다음과 같이 구성된다. 2장 시스템 설계 및 구현에서는 이종 장치 통합 기반 3D 스캔 자동화 시스템 구현을 위한 전체 구성 및 개별 기능 모듈에 대해 상세히 설명한다. 3장 결과 및 고찰에서는 구현한 시스템을 구동하기 위한 셋업 및 주요 모듈의 시험결과에 대해 설명하고 4장 결론에서는 본 프로토타입 구현의 의미와 한계 및 향후 할 일에 대해서 설명한다.

Ⅱ. 시스템 설계 및 구현

본 장은 이종 장치 통합 기반 3D 스캔 자동화 시스템의 전체 구조를 제안하고 시스템을 구성하는 각 세부 모듈에 대해 설명한다.

2.1 시스템 구성도

본 논문의 이종 장치 통합 기반 3D 스캔 자동화 시스템은 그림 1과 같이 구성된다.

그림(Fig.) 1.
시스템 구성도 (System configuration diagram.)

시스템 구성은 크게 서드파티 하드웨어/소프트웨어 모듈과 자체 개발 소프트웨어 모듈로 구성된다. 서드파티 모듈은 로봇암과 3D 스캐너 하드웨어 전용으로 제공되는 모듈이다. 로봇암 모듈의 경우는 TCP/IP(Transmission Control Protocol/Internet Protocol) 통신 기반의 외부 인터페이스를 제공하기 때문에 이를 통해 로봇암 제조사가 제공하는 제어 API(Application Programming Interface) 호출을 통해 로봇암의 제어를 할 수 있다. 3D 스캐너의 경우는 별도의 외부 인터페이스를 제공하지 않고 스캔 된 결과를 제조사가 제공하는 형식의 리포트로 작성할 수 있는 매크로 프로그래밍 기능을 제공한다.

자체 개발 모듈은 자동차 부품 영상을 촬영하고 전처리하는 모듈, 합성곱 신경망 기반 부품 인식 모듈, 자체 설계한 데이터베이스 스키마 기반 데이터 저장 및 관리 모듈, 기계학습 기반 후처리 모듈, 그리고 전체 시스템 구동을 제어하는 통합관리 및 제어 모듈로 구성된다.

2.2 시스템 동작 절차

본 절은 시스템을 구성하는 주요 모듈의 내부 동작 절차를 세부적으로 설명한다. 먼저 검사할 부품이 준비 되었다고 가정하고 전체 절차를 요약하면 아래와 같다.

· 통합관리 및 제어 모듈(Inspection Manager/ Controller)은 검사를 위한 초기 위치로 로봇암을 이동시킨다.

· 이미지 센싱 및 전처리 모듈(Image Sensing & Preprocessing)은 로봇암에 부착된 카메라를 통해 영상을 획득하고 전처리하여 부품인식 모듈을 호출한다.

· 부품 인식 모듈(Parts Recognition)은 촬영된 부품 영상을 기반으로 피검사체의 종류를 인식한 후 데이터베이스에 저장하고 결과를 통합관리 및 제어 모듈로 전송한다.

· 통합 관리 및 제어 모듈(Inspection Manager/ Controller)은 인식된 부품의 스캔 경로를 따라 로봇암을 제어한다.

· 3D 스캐너는 로봇암이 움직이는 경로를 따라가며 부품을 스캐닝하고 서드파티 스캐너 전용 프로그램(3D Scan/Analyzing SW)으로 스캔 된 데이터를 전송한다.

· 스캐너 전용 프로그램(3D Scan/Analyzing SW)은 기 설정된 매크로 스크립터(Reporter Program)를 실행하여 전용의 검사성적서를 발급 및 저장한다.

· 통합관리 및 제어 모듈(Inspection Manager/ Controller)은 검사성적서 저장 이벤트를 감지하고 데이터 저장 및 관리 모듈(Inspection Database)을 통해 이를 재적재 및 파싱하고 기 정의된 데이터베이스 스키마에 따라 검사성적서에서 정보를 추출하여 데이터베이스에 저장한다.

· 누적된 검사성적서 데이터는 기계학습 기반 경향 예측, 불량 추론 등의 분석(Statistical Analysis)을 통해 통계적인 검사성적서(2nd Inspection Report)를 생성한다.

2.2.1 이미지 센싱 및 전처리 모듈

그림 2는 이미지 센싱 및 전처리 모듈의 세부 동작도를 나타내었다. 이미지 센싱 및 전처리 모듈은 통합 관리 및 제어 모듈로부터 이미지 획득에 대한 요청 신호를 연결된 TCP/IP 소켓을 통해 수신하면 로봇암에 부착된 카메라를 구동하여 부품 이미지를 캡처하고 경계점 검출 및 크기 변환과 같은 전처리를 수행한 후 원본 및 전처리 된 이미지를 저장하고 부품 인식 모듈을 호출한다.

그림(Fig.) 2.
이미지 센싱 및 전처리 프로그램 동작도 (Operation diagram of Image sensing and preprocessing program.)

이미지 센싱 및 전처리 프로그램 구현은 파이썬(Python) 3.8 버전을 사용하였고, 이미지 전처리를 위해서 영상처리 및 컴퓨터 비전에서 널리 사용되는 OpenCV(Open Source Computer Vision, opencvcontrib-python == 4.6.0.66) 버전의 오픈소스 라이브러리[4]를 사용하였다.

2.2.2 부품인식 모듈

부품 인식 모듈은 크게 두 가지 부분으로 구성된다. 첫 번째는 촬영된 부품의 종류를 합성곱 신경망 기반의 분류기(Classifiers based on Convolutional Neural Networks)로 부품을 인식하는 부분이다[5-6]. 두 번째는 딥러닝 학습 시스템에서 부품 인식을 위해 필요한 데이터셋을 구축하는 부분이다.

그림 3은 부품 인식을 위해 구현한 합성곱 신경망 기반 분류기 내부 구조이다. 본 구현에서는 입력으로 사용되는 부품의 종류가 다섯 가지이고 종별로 외형의 구분이 명확히 나타나기 때문에 처리 속도 등을 고려하여 2개 층의 합성곱 신경망과 2개 층의 완전연결망 (Fully connected Layer)의 신경망으로 구축하였다.

그림(Fig.) 3.
부품인식에 사용한 분류기 모델 (Classifier model used for part recognition.)

분류기 모델을 학습하기 위한 원본부품 이미지의 개수가 많지 않아 이미지 증강을 통해 학습 데이터의 개수를 늘렸다[7-11]. 이로인한 과적합(Overfitting)을 감소시키기 위해 가중치 규제(Weight Regularization)[12] 및 드랍아웃(Dropout)[13,14] 층을 적극적으로 활용하여 이미지 증강 데이터를 활용한 합성곱 신경망 기반의 분류기[15-17]를 구현하였다.

일반적으로 지도학습 기반 분류기를 구현하기 위해서는 반드시 학습 및 평가를 위한 데이터셋이 필요하다. 많은 공개 데이터셋 사이트에서 다양한 분류기용 이미지 데이터셋을 찾을 수 있지만 본 과제에서 목표로 하는 특정한 자동차 부품에 대한 데이터셋은 존재하지 않는다. 따라서 본 시스템의 구현에서 분류기용 데이터셋 구축을 병행하였다.

데이터셋의 구축 작업은 목표 시스템에서 검사용 부품으로 사용될 5종의 자동차 부품을 대상으로 하였고 구축 절차는 그림 4와 같다.

그림(Fig.) 4.
부품인식용 데이터셋 구축 절차도 (Construction procedure for part recognition dataset)

· 데이터 수집 및 정제’ 과정에서는 프로토타입 구현에 필요한 데이터를 수집하여 데이터셋으로 사용할 수 있는 이미지만 따로 선별하여 정제하였다.

· ‘데이터 분석’ 과정에서는 이미지 증강 데이터로 활용하기 위해 데이터 크기 및 형태를 정의하고 데이터의 가공 방향에 대해 분석하였다.

· ‘데이터 가공’ 과정에서는 ‘데이터 분석’ 과정의 결과에 따라 데이터를 전처리하고, 가공된 데이터를 다음 과정인 ‘데이터 검증’ 과정의 입력 데이터로 사용하기 위해 이미지 형태를 변환하였다.

· ‘데이터 검증 및 구축’ 과정에서는 모델이 잘 학습할 수 있도록 데이터 성능평가를 통해 데이터셋의 가용 여부를 판단하는 과정을 진행한 후 데이터셋을 구축하였다.

프로토타입 구현에서 사용할 5종의 자동차 부품 이미지 데이터에 대해서 이미지 증강을 진행한 결과는 표 1과 같다.

표(Table) 1.
이미지 증강 결과 (Image Augmentation Result)

총 233개의 이미지 데이터는 밝기, 대조, 노이즈(Gaussian, Median, Blur), 회전 과정을 포함하여 총 8가지의 이미지 증강 과정을 거친 결과 39,610개의 이미지 데이터로 제작되었다. 구축된 데이터셋의 학습성능을 판단하기 위해 본 구현에서 구현한 분류기에 적용한 결과 99%의 정확도를 확인할 수 있었고, 구축된 데이터셋의 이미지 증강 결과 및 시각화 예시를 그림 5에 나타내었다.

그림(Fig.) 5.
부품 인식용 데이터셋 시각화 (Visualize Datasets for Part Recognition)

2.2.3 데이터 저장 및 관리 모듈

데이터 저장 및 관리 모듈은 구현 시스템의 동작에서 발생하는 정보를 데이터베이스로 저장 및 관리하는 모듈로 서드파티 3D 스캐너 전용 시스템[18]에서 발행한 1차 검사성적서를 재적재(Reloading)하고 본 구현에서 설계한 데이터베이스 스키마에 맞도록 파싱하는 기능을 포함한다.

1차 검사성적서를 파싱하여 저장하기 위한 데이터 저장 스키마 형식은 그림 6과 같이 설계하였다. 스키마 구조에서 TB_ModelMaster 테이블(모델 마스터 테이블)은 모델의 부품명과 부품 번호 등을 저장하고 TB_ModelMeasured 테이블(측정된 부품 모델 테이블)은 모델 부품 마스터의 아이디 및 측정된 날짜 등을 기록한다. TB_ModelMaster 테이블은 복수 개의 TB_ModelMeasured 테이블을 가질 수 있다.

그림(Fig.) 6.
검사성적서 저장을 위한 데이터베이스 스키마 ER(Entity Relation) 다이어그램 (Database schema entity relation diagram for storing inspection reports)

TB_ModelMeasured 테이블은 검사되는 부품의 측정치 속성 정보를 표현하는 TB_Surface 테이블(측정된 파트 모델에 있는 Surface들의 테이블), TB_Circle 테이블(측정된 파트 모델에 있는 Circle들의 테이블), TB_Slot 테이블(측정된 부품 모델에 있는 Slot들의 테이블), TB_Cylinder 테이블(측정된 부품 모델에 있는 Cylinder들의 테이블)을 가질 수 있다.

그림 7은 데이터베이스에 저장되는 측정 정보를 직관적으로 이해할 수 있도록 실제 부품에서 측정되는 1차 검사성적서[19] 정보의 예를 도시하였다.

그림(Fig.) 7.
실제 부품 측정 정보의 예시 (1차 검사성적서) (Example of actual part measurement information (1st inspection report))

2.2.4 통합관리 및 제어 모듈

통합관리 및 제어 모듈은 전체 시스템 운용을 위한 절차에 따라 다른 모듈을 제어하고 관리하는 역할을 수행한다.

주요 역할은 시스템 구동의 시작과 정지, 부품 검사를 위한 카메라 및 스캐너의 이동을 제어하고 1차 검사 성적서 (스캐너 제조사 형식의 검사성적서) 발행 이벤트를 감지하여 검사성적서 재적재 및 파싱 처리 루틴을 호출하는 기능 등의 공정관리를 수행한다. 통합관리 및 제어 모듈 자체적으로 실행하는 주요 기능은 로봇암을 제어하여 절차상 공정대로 시스템이 구동되도록 하는 것이다.

로봇암 제조사는 로봇암의 사용자 커스텀 제어를 위한 제어 API를 제공한다. 본 구현에서는 제어 API를 통해서 로봇의 초기 셋업 위치로의 이동, 피검사 부품별로 사전 설정된 스캔 경로로 로봇암을 이동시키는 기능을 구현하였다.

부가적인 로봇암의 기능으로는 부품인식 모듈과의 상호 인터페이스를 통해 부품 스캔을 위한 로봇암의 이동 기동 중 부품인식 모듈이 인식한 부품과 사용자가 설정한 부품이 다를 경우 시스템을 긴급 중지시키는 기능으로 사용자 실수에 의한 오작동을 방지하였다.

그림 8은 로봇암 제어를 위한 통합관리 모듈과 로봇암 컨트롤러와의 동작도를 나타내었고, 그림 9는 상기 동작을 위한 사용자 인터페이스를 도시하였다. 이를 통해 실시간 확인할 수 있는 정보는 제어되는 로봇암을 구분하는 IP, 사용자가 설정한 검사 부품정보, 카메라를 통해 자동 인식한 검사부품과의 일치 여부, 로봇암의 움직임에 따른 실시간 로봇암 좌표정보 그리고 로봇암 구동과정에서 발생하는 내부적인 프로그램 로그이다.

그림(Fig.) 8.
로봇암 제어를 위한 통합관리 모듈과 로봇암 컨트롤러와의 동작도 (Operation diagram between inspection manager/ control and robot arm controller for robot arm control)
그림(Fig.) 9.
그림 로봇암제어 프로그램 사용자 인터페이스 (Robot Arm Control Program User Interface)

통합관리 및 제어 모듈은 스캐너 제조사의 자체 프로그램에서 검사성적서를 생성하여 저장하는 이벤트를 상시적으로 모니터링하고 저장 이벤트 발생 시 이를 감지한 후 검사성적서 재적재 및 파싱 처리 루틴을 호출한다.

스캐너 전용 시스템에서 발행되는 검사성적서는 PDF(Portable Document Format) 형식이다. 따라서 PDF를 파싱하여 필요한 정보를 선택적으로 추출하여 데이터베이스화 하기 위해서는 PDF 문서를 저수준으로 읽고 필요한 정보를 추출하는 작업이 필요하다. 이를 위해 본 구현에서는 공개 소스 코드 아파치 PDFBox[20]를 활용하여 PDF에서 필요한 정보를 추출하였다. 추출하는 주요 정보는 부품번호, 부품명, 서페이스 포인트, 슬롯, 원, 원통의 측정치 등으로 그림 10과 같은 방식으로 반복작업을 통해 추출되었다.

그림(Fig.) 10.
PDF 문서에서 문자(character) 추출하는 절차도 (Procedure for extracting characters from PDF documents)

2.2.5 기계학습 기반 후처리 모듈

기계학습 기반 후처리 모듈(Statistical Analysis)은 스캐너 전용 시스템이 생성한 1차 검사성적서 PDF 파일을 파싱하여 그림 6과 같이 사전에 정의된 스키마에 따라 저장한 데이터를 기준으로 후처리를 실시한다.

후처리의 범위는 데이터에 의존적이며 본 프로토타입 구현에서 1차적으로 적용한 분석은 부품의 검사 데이터의 편향, 데이터의 분포, 데이터의 범주 등에 관한 주성분 분석(PCA, Principle Component Analysis)[21]으로 파이썬의 SCIKIT-LEARN 패키지[22]에서 제공하는 API를 활용하였다.

주성분 분석은 여러 개의 독립변수를 잘 설명해 줄 수 있는 주된 성분을 추출하는 기법으로 주성분 분석을 통해 전체 변수들의 핵심 특성만 선별하기 때문에 독립 변수의 수, 즉 차원의 수를 줄일 수 있다.

그림 11은 주성분 분석을 개념적으로 설명한 것으로 주어진 훈련 데이터에서 분산이 최대가 되는 축을 찾는 과정이다. 첫 번째로 분산이 최대가 되는 축을 찾으면 PC1(제1주성분)을 찾는 과정과 같다. 이어서 PC1에 직교하고 분산을 최대화하는 축을 찾으면 PC2(제2주성분)가 된다. 주성분을 찾는 과정은 이러한 과정을 반복하는 것으로 주성분을 몇 개까지 찾을 것인지는 보통 하이퍼파라미터(Hyperparamter)로 설정되며 분산 관점에서는 기존 분산의 95% 정도를 포함하도록 권장한다.

그림(Fig.) 11.
주성분 분석에 대한 개념적인 이해; 원 데이터의 분산을 최대화하는 축을 찾는 과정을 반복수행함 (Conceptual understanding of principal component analysis; iterative process of finding axes that maximize the variance of raw data)

본 구현의 주성분 분석을 통해 얻고자 하는 것은 다차원의 측정 데이터를 저차원으로 변환하고 특이성을 보이는 데이터나 이상치(outlier)에 대한 검사, 이상치에 근접하는 검사치 예측 등을 하기 위한 것이다.

본 프로토타입 구현에서 활용한 주성분 분석은 scikit-learn package (ver. 1.1.2)의 PCA 클래스를 사용한다. 주성분의 개수는 통상적으로 기존 분산의 95% 정도를 포함하도록 권장되고 시각화를 위해서는 주성분을 2개 혹은 3개를 고려하도록 권장된다.

결과 및 고찰 섹션에서는 주성분을 2개로 했을 때 기존 분산의 97%를 포함하므로 주성분 2개를 사용한 분석 예시를 설명하였다.

Ⅲ. 결과 및 고찰

본 절에서는 이종 장치 통합 기반 3D 스캔 자동화 시스템 프로토타입 구현에 대한 통합 동작 시험을 수행하고 그 주요 결과를 설명한다.

3.1 시험 및 환경 설정

그림 12는 구현 시스템의 동작 시험을 위한 구성을 나타내었다.

· (1) 협동 로봇암[23]

· (2) 3D 스캐너[24] 및 부품인식용 USB카메라[25]

· (3) 시험결과 저장 및 성적서 생성을 위한 통합 제어 장치 (노트북 내부에 3D 스캐너 제어장치와 통신하는 통합제어 SW, 스캐너 제조사 형식의 1차 성적서 발행 시 자동으로 이를 파싱 및 데이터베이스화하는 2차 성적서 생성 SW, API를 통해 로봇암과 통신하는 모듈 내장)

· (4) 협동 로봇암 보조 제어장치 (로봇 제조사 제공)

· (5) 로봇암 컨트롤박스

그림(Fig.) 12.
시험 환경 설정 및 구성도 (Test environment settings and configuration diagram)

먼저 부품 인식을 위해 부품인식용 USB 카메라(2-1)를 로봇암(1) 머리 부분에 부착하였다. 그리고 부품의 3D 스캔을 위해 스캐너(2-2)를 또한 로봇암(1) 머리 부분에 부착하였다. 그리고 USB 카메라의 시야(FOV, Field of View)는 3D 스캐너의 시야와 동일하도록 설정하였다.

검사 프로세스에 맞춰 로봇암(1)을 통합 제어장치(3)와 보조 제어장치(4)를 통해 자동제어하는 구조로 시험 환경을 구성하였다.

3.2 부품 인식 실험 결과 고찰

부품 인식을 위한 분류기 모델의 동작을 확인하기 위해 성능 평가를 실시하였다. 테스트는 총 20회 반복하여 실험을 수행하였고 회당 에포크는 20으로 설정한 실험 결과는 그림 13과 같다.

그림(Fig.) 13.
부품 인식을 위한 분류기 모델의 평가 (Evaluation of Classifier Model for Part Recognition)

그림 13에서 살펴보면, 3~4 에포크(Epoch)가 지나면 인식 정확도가 95%가 넘어가고 99%로 수렴한다. 분류기의 하이퍼파라미터 튜닝은 과적합이 발생하지 않는 범위 내에서 가장 높은 정확도를 보이는 범위에서 학습을 종료하고자 학습 그래프를 통해 모니터링하였다.

상기 결과로 설계한 부품 인식 모듈은 부품을 자동인식하여 부품별 스캔 동작을 실시하는 용도로 활용 가능함을 확인하였다.

3.3 2차 검사성적서 생성 결과 고찰

서드파티 스캐너 프로그램이 생성한 1차 검사성적서, 이를 기반으로 한 PDF 파싱 및 데이터베이스 생성, 그리고 데이터베이스에 저장된 데이터 기반 분석을 통해 2차 검사성적서를 생성하는 파이프라인을 시험하였다.

다음 그림 14는 2차 검사성적서 생성과정에서의 중간 결과물을 예시하였다.

그림(Fig.) 14.
부품 인식을 위한 분류기 모델의 평가 (Evaluation of Classifier Model for Part Recognition)

그림 14의 (a)는 스캐너 전용 프로그램에서 매크로 동작을 통해 PDF 형식으로 생성된 시험 결과의 일부로 1차 검사성적서에 해당된다. 그림14의 (b)는 1차 검사 성적서 PDF에서 측정값을 추출하고 기설계된 스키마에 따라 데이터베이스에 저장된 측정값을 엑셀 파일형식으로 불러온 예이다. 스캔 결과는 기계학습과 같은 도구를 통해 후처리하기 위해 지속적으로 데이터베이스로 로깅된다. 그림14의 (c)와 (d)는 데이터베이스에 저장된 측정값을 판다스(Pandas) 라이브러리를 통해 적재하고 파이썬 환경에서 데이터분석 도구를 활용하여 2차적으로 분석한 2차 검사성적서의 예에 해당된다. (c)는 실 측정치 관점에서 전체적인 표준편차가 큰 측정 포인트를 라인그래프(Line graph) 형식으로 가시화한 예시이고 (d)는 상자-수염 그래프(Box-and-whisker plot)로 가시화하여 측정 포인트별 분포와 변화율 등을 직관적으로 알아볼 수 있도록 가시화한 예시이다. (d)의 경우와 같이 실 측정치를 상자-수염 그래프로 가시화할 경우 실 측정 데이터를 그린 (c)의 경우보다 실 측정치로부터 얻어낸 통계량, 즉 최솟값, 제1사분위값(Q1) 제2사분위값(Q2, 중앙값), 제3사분위값(Q3), 최댓값, 이상치 등을 한꺼번에 확인할 수 있어 시험 데이터에 대한 이상 유무 사전 판단에 도움을 줄 수 있다.

그림 15는 2차 검사성적서 생성 과정에서 내부적 분석에 사용된 기계학습 활용의 예로 주성분 분석 결과를 실제 측정 데이터에 활용하여 이상이 발생할 가능성이 높은 측정치를 분석한 예시이다.

그림(Fig.) 15.
주성분 분석을 통해 이상치 확률이 높은 지점을 찾고 실 측정치 공간에서 표시한 예시 (Examples of principal component analysis to locate points with high probability of outliers and plot them in the real measurement space)

그림 15의 (a)는 ‘BRKT ENG CTRL CABLE MTG – 3221600650’ 부품의 100개 측정지점별 편차를 도식화한 예이다. 예시한 부품의 검사 규격상 정상 범주는 편차 범위가 1.0 이내인 경우로서 도식화한 10개 부품은 모두 합격 범위 내에 들어오기 때문에 합격으로 처리할 수 있다. 그러나 15번 측정지점 부근과 90번 측정지점 부근의 값들 편차가 정상범위를 벗어날 확률이 높은 지점으로 추정해 볼 수 있다. 그림 15의 (a)에서 x축은 검사를 위한 측정 포인트의 번호를 나타내고 y축은 실제 스캐너를 통해 계측된 값의 편차를 나타내었다.

그림 15의 (b)는 주어진 그림 (a) 데이터를 입력으로 주성분을 계산하여 표시한 것이다. 가시화를 위해 주성분 2개 또는 3개를 고려하였는데 주성분 2개 만으로 기존 데이터의 97%를 설명할 수 있으므로 그림 (c)의 시각화에서는 주성분 2개를 사용하였다.

그림 15의 (c)는 주성분 2개를 사용하여 (a)에서 주어진 데이터를 2차원으로 가시화한 예이다. 실험에 사용된 입력 데이터가 모두 정상 범주에 있는 데이터이기 때문에 그림 (c)를 통해 가시화를 하여도 뚜렷하게 분리된 클러스터는 보이지 않는다. 그러나 다른 데이터에 비해 떨어진 지점을 표시하기 위해 시각화 과정에서 붉은 실선을 임의로 그려 표시하였다. 붉은 실선 밖에 있는 두 데이터 포인터는 1차 검사성적서상 정상 범주에 들어가지만 이상치로 갈 가능성이 높은 지점으로 고려해 볼 수 있다.

그림 15의 (d)는 (c)에서 이상으로 갈 가능성이 높은 데이터 포인터를 실 데이터 공간에 오버레이하여 표시하였다. PCA를 통해 이상치로 갈 가능성이 높은 데이터는 실 데이터 측정치 90번 근처의 두 측정치로 판별이 되었으므로 결과적으로 실제 스캐너를 통해 부품을 검사할 때 주의영역으로 간주하여 스캐너가 지나가는 시간을 늘리거나 반복 스캔하여 주의를 기울일 수 있다.

상기와 같은 분석결과는 2차 시험성적서와 같은 형식으로 실제 부품을 생산하는 회사에 지속적으로 제공하여 불량 발생을 줄이는데 기여할 수 있을 것으로 기대된다.

본 섹션은 이미 산업현장에서 사용되는 서드파티 제품을 변형하지 않고 기존 검사결과를 재활용하여 기존 장비로 도출하지 못한 심층 분석보고서 발행이 가능함을 몇 가지 예시를 통해 설명하였다.

실제 산업현장에서 획득되는 비정상 데이터는 매우 드물게 발생한다. 따라서 이를 효과적으로 분석하기 위해서는 지속적인 시험 데이터 확보가 필수적이다. 이를 위해 시험 과정에서 데이터를 지속적으로 축적할 수 있는 시스템을 구축할 필요가 있고 후속연구를 통해 진행 예정이다.

Ⅳ. 결 론

본 논문에서는 3D 스캐너를 사용하여 자동차 부품을 검사하고 그 결과를 누적하여 불량예측 및 추론을 하기 위한 자동화 시스템 프로토타입을 구현하였다. 이를 위해 본 구현에서는 카메라와 3D 스캐너를 협동 로봇암에 부착하여 검사 프로세스에 맞춰 로봇암을 자동 제어하는 구조로 개발하였다.

본 논문에서 구현한 시스템의 성능 평가를 위해서 산업현장에서 자동차 부품을 검사하는 실 장비에 카메라, 3D 스캐너 및 로봇암과 통합하여 평가를 진행하였다. 평가 결과 부품 인식 및 2차 검사성적서 생성 과정이 정상적으로 수행됨을 확인하였다.

본 프로토타입 구현의 한계점으로는 이종 장치의 통합 및 통합된 동작 프로세스 구축에 초점을 맞춰 개발이 진행되어 대용량 실험데이터 확보에 어려움이 있었다.

향후 추가적으로 개발이 진행되어야 할 부분은 두 가지 방향으로 고려해 볼 수 있다. 첫 번째는 기계학습 기반 후처리의 성능 향상을 위해 검사성적서의 양적인 확대를 고려해 볼 수 있고 이를 기반으로 다양한 통계학적 데이터 특징을 심층적으로 구조화하여 분석하는 것이다. 두 번째는 산업용에서 수작업으로 진행되는 업무에 대한 분석을 통해 3D 스캐너를 포함한 다양한 범위로 자동화 시스템 구현을 확대 적용하여 인력난을 겪고있는 중소 규모의 업체를 지원하는 것이다.

Biography

소 유 진 (Yu-jin So)

2023년 2월:국립군산대학교 IT 융합통신공학과 (공학사)

2023년~현재 : 국립군산대학교 전자정보공학부 정보통신전파 공학전공 (석사 수료 후 연구생)

<관심분야> 인공지능, 지능형보안 (AI보안)

[ORCID:0009-0005-9413-0715]

Biography

강 규 창 (Kyuchang Kang)

2009년 8월 : 충남대학교 컴퓨터공학과 (공학박사)

1997년~2001년 : 국방과학연구소 종합시험단 연구원

2001년~2017년 : 한국전자통신 연구원 SW콘텐츠연구소 책임연구원

2017년~현재 : 국립군산대학교 IT융합통신공학과 교수

<관심분야> 개방형 소프트웨어플랫폼, 지능형사물인 터넷(AIoT), 지능형보안(AI보안), 휴먼이해 인지 컴퓨팅

[ORCID:0000-0003-0833-8906]

References

  • 1 J. Cui, "3D scanning modelling of auto parts for intelligent driving," J. Control and Decision, vol. 10, no. 4, pp. 1-10, Mar. 2022. (http://doi.org/10.1080/23307706.2022.2026261)doi:[[[10.1080/23307706.2022.2026261]]]
  • 2 R. Sato, K. Kato, and K. Harada, "Development of the hole position inspection system of pressed car parts by using laser 3-d measurement," The 19th Korea-Japan Joint Wkshp. Frontiers of Computer Vision, vol. 19, no. 1, pp. 317-322, Jan. 2013. (http://doi.org/10.1109/FCV.2013.6485513)doi:[[[10.1109/FCV.2013.6485513]]]
  • 3 M.-Y. Han, K.-H. Kim, H.-Y. Kim, K.-I. Ko, K.-M. Ku, D.-J. Ki, and J.-H. Shim, "Development of vision system for quality inspection of machined holes of automobile (a) Distribution of actual data by measurement point; there is a sharp change at measurement points near 15 and 90 (b) Variances for top 10 PCA components; only two PCA components can explain 97% of data (c) Dimensionally reduced representation of data using two PCA components; you can see two pieces of data that are relatively isolated from the others (d) This example shows data from the original measurement data space alongside data that is relatively isolated from other data in the dimensionally reduced space 그림 15. 주성분분석을통해이상치확률이높은지점을찾고실측정치공간에서표시한예시 Fig.15. Examples of principal component analysis to locate points with high probability of outliers and plot them in the real measurement space 1836 mechanical parts," J. Korean Soc. for Precision Eng., vol. 40, no. 6, pp. 499-506, 2023. (http://doi.org/10.7736/JKSPE.022.141)doi:[[[10.7736/JKSPE.022.141]]]
  • 4 G. Bradski, The OpenCV Library (2000), Retrieved Jul. 3. 2024, from https://opencv.org/ (https://www.drdobbs.com/open-source/the-ope ncv-library/184404319.)custom:[[[https://opencv.org/(]]]
  • 5 Y. LeCun, Y. Bengio, and G. Hinton, "Deep learning," Nature, vol. 521, no. 7553, pp. 436-444, May 2015. (https://doi.org/10.1038/nature14539)doi:[[[10.1038/nature14539]]]
  • 6 M. Kim, C. Lee, M. So, and J. Shin, "Classification using machine learning techniques: Defect detection in product inspection equipment using convolutional neural networks," in Proc. Korean Oper. Res. and Manag. Sci. Soc. Conf. 2018, pp. 26402644, Gyeongju, Korea, Apr. 2018. (https:///journal/articleDetail?n odeId=NODE07424691)custom:[[[https://journal/articleDetail?n odeId=NODE07424691]]]
  • 7 C. Shorten and T. M. Khoshgoftaar, "A survey on image data augmentation for deep learning," J. Big Data, vol. 6, no. 60, pp. 1-48, 2019. (https://doi.org/10.1186/s40537-019-0197-0)doi:[[[10.1186/s40537-019-0197-0]]]
  • 8 S. Yang, W. Xiao, M. Zhang, S. Guo, J. Zhao, and F. Shen, "Image data augmentation for deep learning: A survey," arXiv preprint arXiv:2204.08610, Apr. 2022, Retrieved Dec. 2023, from https://arxiv.org/abs/2204.08610. (https://doi.org/10.48550/arXiv.2204.08610)doi:[[[10.48550/arXiv.2204.08610]]]
  • 9 C. Khosla and B. S. Saini, "Enhancing performance of deep learning models with different data augmentation techniques: A survey," in Proc. ICIEM, pp. 79-85, London, UK, Jun. 2020. (https://doi.org/10.1109/ICIEM48762.2020.916 0048)doi:[[[10.1109/ICIEM48762.2020.9160048]]]
  • 10 P. Kaur, B. S. Khehra, and E. B. S. Mavi, "Data augmentation for object detection: A review," in Proc. IEEE Int. MWSCAS, pp. 537-543, Lansing, MI, USA, Aug. 2021. (https://doi.org/10.1109/MWSCAS47672.2021. 9531849)doi:[[[10.1109/MWSCAS47672.2021.9531849]]]
  • 11 H. Cho and J. Moon, "A layered-wise data augmenting algorithm for small sampling data," J. Internet Computi. and Services, vol. 20, no. 6, pp. 65-72, Dec. 2019. (https://doi.org/10.7472/jksii.2019.20.6.65)doi:[[[10.7472/jksii.2019.20.6.65]]]
  • 12 I. Loshchilov and F. Hutter, "Decoupled weight decay regularization," arXiv preprint arXiv:1711.05101, Nov. 2017, Retrieved Dec. 15. 2022, from https://arxiv.org/abs/1711.05101. (https://doi.org/10.48550/arXiv.1711.05101)doi:[[[10.48550/arXiv.1711.05101]]]
  • 13 N. Srivastava, G. Hinton, A. Krizhevsky, I. Sutskever, and R. Salakhutdinov, "Dropout: A simple way to prevent neural networks from overfitting," J. Mach. Learn. Res., vol. 15, no. 56, pp. 1929-1958, Jun. 2014. (https://jmlr.org/papers/v15/srivastava14a.html)custom:[[[https://jmlr.org/papers/v15/srivastava14a.html]]]
  • 14 X. Bouthillier, K. Konda, P. Vincent, and R. Memisevic, "Dropout as data augmentation," arXiv preprint arXiv:1506.08700, Jun. 2015, Retrieved Nov. 2022, from https://arxiv.o rg/abs/1506.08700. (https://doi.org/10.48550/arXiv.1506.08700)doi:[[[10.48550/arXiv.1506.08700]]]
  • 15 L. Perez and J. Wang, "The effectiveness of data augmentation in image classification using deep learning," arXiv preprint arXiv: 1712.04621, Dec. 2017, Retrieved Dec. 2022, from https://arxiv.org/abs/1712.04621. (https://doi.org/10.48550/arXiv.1712.04621)doi:[[[10.48550/arXiv.1712.04621]]]
  • 16 R. Takahashi, T. Matsubara, and K. Uehara, "Data augmentation using random image cropping and patching for deep CNNs," IEEE Trans. Cir. and Syst. for Video Technol., vol. 30, no. 9, pp. 2917-2931, Sep. 2020. (https://doi.org/10.1109/TCSVT.2019.2935128)doi:[[[10.1109/TCSVT.2019.2935128]]]
  • 17 J. Son, "A study of mixed augmentation for reducing model bias," in Proc. KIPS Conf. (The KIPS Spring On-line Conf. 2020), pp. 455-457, Seoul, Korea, May 2020. (https://doi.org/10.3745/PKIPS.y2020m05a.455)doi:[[[10.3745/PKIPS.y2020m05a.455]]]
  • 18 Innovmetric, Polyworks, Retrieved May 15, 2024, from https://www.innovmetric.comcustom:[[[https://www.innovmetric.com]]]
  • 19 3D SYSTEMS, Geomagic Design X, Retrieved May 15, 2024, from https://oqton.co m/geomagic-designxcustom:[[[https://oqton.com/geomagic-designx]]]
  • 20 The Apache Software Foundation, Apache 1837 PDFBox - A Java PDF Library, Retrieved May 15. 2024, from https://pdfbox.apache.org/custom:[[[https://pdfbox.apache.org/]]]
  • 21 H. Hotelling, "Analysis of a complex of statistical variables into principal components," J. Edu. Psychol., vol. 24, no. 6, pp. 417-441, Sep. 1933, and vol. 24, no. 7, pp. 498-520, Oct. 1933. (https://doi.org/10.1037/h0071325)doi:[[[10.1037/h0071325]]]
  • 22 F. Pedregosa, G. Varoquaux, A. Gramfort, V. Michel, B. Thirion, O. Grisel, M. Blondel, P. Prettenhofer, R. Weiss, V. Dubourg, J. Vanderplas, A. Passos, D. Cournapeau, M. Brucher, M. Perrot, and É. Duchesnay, "Scikit-learn: Machine learning in Python," J. Mach. Learn. Res., vol. 12, no. 85, pp. 28252830, 2011. (https://www.jmlr.org/papers/v12/pedregosa11 a.html)custom:[[[https://scikit-learn.org/stable/]]]
  • 23 Rainbow robotics, RB Series, Retrieved May 15. 2024, from https://www.rainbow-robotics.c omcustom:[[[https://www.rainbow-robotics.com]]]
  • 24 Createc, Creaform, Retrieved May 15, 2024, from https://www.createc.kr.custom:[[[https://www.createc.kr]]]
  • 25 Logitech, C920 HD PRO WEBCAM, Retrieved May 15. 2024, from https://www.logitech.com/ en-eu/products/webcams/c920-pro-hd-webcam. 960-001055.html.custom:[[[https://www.logitech.com/en-eu/products/webcams/c920-pro-hd-webcam.960-001055.html]]]

표(Table) 1.

이미지 증강 결과 (Image Augmentation Result)
PART NAME Original Brightness Contrast Blurring Rotation Brightness Contrast Contrast Blurring Brightness Contrast Blurring Result
BRKT_ENG CTRL_CABLE_MTG 40 280 280 120 2160 560 840 1680 6800
BRKT_FAN GUIDE_LRW 40 280 280 120 2160 560 840 1680 6800
BRKT_FAN GUIDE_UPR 40 280 280 120 2160 560 840 1680 6800
BRKT_TM COOLER_SIDE 40 280 280 120 2160 560 840 1680 6800
SIDE BUMPER_L 511 511 219 3942 1022 1533 1533 3066 12410
TOTAL 1631 1631 699 12582 3262 4893 4893 9786 39610
시스템 구성도 (System configuration diagram.)
이미지 센싱 및 전처리 프로그램 동작도 (Operation diagram of Image sensing and preprocessing program.)
부품인식에 사용한 분류기 모델 (Classifier model used for part recognition.)
부품인식용 데이터셋 구축 절차도 (Construction procedure for part recognition dataset)
부품 인식용 데이터셋 시각화 (Visualize Datasets for Part Recognition)
검사성적서 저장을 위한 데이터베이스 스키마 ER(Entity Relation) 다이어그램 (Database schema entity relation diagram for storing inspection reports)
실제 부품 측정 정보의 예시 (1차 검사성적서) (Example of actual part measurement information (1st inspection report))
로봇암 제어를 위한 통합관리 모듈과 로봇암 컨트롤러와의 동작도 (Operation diagram between inspection manager/ control and robot arm controller for robot arm control)
그림 로봇암제어 프로그램 사용자 인터페이스 (Robot Arm Control Program User Interface)
PDF 문서에서 문자(character) 추출하는 절차도 (Procedure for extracting characters from PDF documents)
주성분 분석에 대한 개념적인 이해; 원 데이터의 분산을 최대화하는 축을 찾는 과정을 반복수행함 (Conceptual understanding of principal component analysis; iterative process of finding axes that maximize the variance of raw data)
시험 환경 설정 및 구성도 (Test environment settings and configuration diagram)
부품 인식을 위한 분류기 모델의 평가 (Evaluation of Classifier Model for Part Recognition)
부품 인식을 위한 분류기 모델의 평가 (Evaluation of Classifier Model for Part Recognition)
주성분 분석을 통해 이상치 확률이 높은 지점을 찾고 실 측정치 공간에서 표시한 예시 (Examples of principal component analysis to locate points with high probability of outliers and plot them in the real measurement space)