X-선 영상과 합성곱 신경망을 이용한 육류 내의 바늘 검출
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(https://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
Abstract
The most lethal foreign body in meat is a needle, and X-ray images are used to detect it. However, because the difference in thickness and fat content is severe depending on the type of meat and the part of the meat, the shade difference and contrast appear severe. This problem causes difficulty in automatic classification. In this paper, we propose a method for generating training patterns by efficient preprocessing and classifying needles in meat using a convolution neural network. Approximately 24000 training patterns and 4000 test patterns were used to verify the proposed method, and an accuracy of 99.8% was achieved.
Keywords:
X-ray Image, Convolutional Neural Network (CNN), Foreign Object Detection, Needle, Hough Transform1. 서 론
이물질(Foreign Object)은 다른 물질이 본래의 재료 속에 혼입되거나, 공정 과정 중에 부주의로 다른 물질이 들어가는 것으로, 생산 제품의 불량률을 높일 수 있어 정확한 검출이 필요하다[1]. 특히 육류에서의 이물질은 사육단계에서 발생하는 화농, 작업 장갑의 실밥, 주삿바늘 등을 의미한다. 이중 가장 치명적인 이물질은 주삿바늘이다. 대부분 목살 깊숙이 주삿바늘이 박혀 있어 수직으로 세워진 바늘이 잘 검출이 안 될 경우가 있다. 가공과정에서 주삿바늘을 검출하기 위해 일부 가공 공장에서는 X-Ray 검출기를 운영하지만, 검출기의 영상을 사람이 판별하기 때문에 100% 완벽하게 검출하기는 힘든 상황이다. 만일 고기를 먹다가 바늘이 입천장을 찔러 상처를 입는 것은 육류 가공 기업을 파산시킬 수 있을 정도의 중대한 사안이다. 실제 이러한 문제는 해마다 여러 건이 발생하고 있다.
X-Ray란 파장이 짧은 전자기파로 이는 자외선보다 짧은 파장의 영역이며 물체 투과성이 좋다[2-3]. X-Ray검사는 물체를 투과하면서 파손하지 않고도 내부 형상의 촬영이 가능한 비파괴 검사 방법이기에 이물질 검출 등 다양한 방법으로 사용되고 있다[4-6]. 산업 분야에서는 빠른 영상 획득과 판독시간을 위해 필름 X-Ray보다 디지털(Digital) 형식으로 획득하는 디지털 방사선(Digital Radiography) 검사 시스템이 많이 발달하고 있다[7]. 디지털 방사선 촬영 방식의 확산으로 검출기의 사용이 활발해지고 있으나 내부의 센서 잡음 및 감도에 따라 이물질 검출이 불가능한 경우도 발생하고 있다[8].
최근 흉부 X-Ray 영상을 이용하여 흉부질환, 폐종양 검출을 통한 폐암 진단이나 X-Ray 수하물 보안 영상을 통한 밀수품 검사를 합성곱 신경망(Convolutional Neural Network : CNN)을 통해 학습시키려는 연구가 많이 진행되고 있다[9-10]. 하지만 CNN을 활용하여 음식물 안에 있는 이물질 검출에 대한 연구는 많이 미비한 상황이다. 본 연구에서는 음식물 중에서 육류 안에있는 주삿바늘 존재 여부를 CNN 학습을 통해 판별할 수 있는지를 제안하였다.
육류 영상에서의 바늘을 검출하기 위해 여러 단계의 전처리(Preprocessing) 과정이 필요하다. 전처리는 고기 윤곽선 제거,대비 제한 적응 히스토그램 평활화(Contrast Limited Adaptive Histogram Equalization), 감마 보정(Gamma Correction), 메디안 필터(Median Filter), 캐니 에지 검출(Canny Edge Detection), 허프 변환(Hough Transform) 등의 과정으로 진행되었으며 해당 전처리를 통해 육류를 제외한 바늘 의심 영역만을 검출하여 훈련 데이터를 만들었다. 총 사용된 영상은 바늘이 존재하는 육류영상이 29개이며, 바늘이 존재하지 않는 영상은 4,641개이다.
딥러닝(Deep Learning) 진행 시 부족한 훈련 데이터를 증식 시키기 위해 두 가지 방식을 제안하였다. 첫 번째로 전처리 과정을 하더라도 바늘 이외에 남아있을 수 있는 육류 부분을 포함시키기 위한 바늘 위치 이동이며, 두 번째로 한정된 각도를 해결하기 위한 영 회전이다. 두 가지 방식을 통하여 학습 데이터를 증식시켰다. 이를 통해 바늘이 있는 영상과 없는 영상을 합쳐 전체 훈련 데이터 4,445개와 미훈련 데이터 4,704개를 준비하여 학습을 진행하였다.
학습을 위해 3개의 합성곱 층(Convolution Layer)을 사용하였고, Batch Size는 1,100개로 설정하여 총 55번의 반복 학습을 시행한 결과를 얻었다. 학습에 참여하지 않은 미훈련 데이터를 분류한 결과 99.89%의 인식률을 얻었다.
2. X-RAY 영상에서 훈련영상 제작을 위한 전처리 과정
2.1 육류 내의 이물질 검출을 위한 X-Ray 영상
가축의 사육과정에서 접종을 위해 사용된 주삿바늘이 부러져 가축의 살 내부에 존재하게 되며, 육류의 가공과정에서 제거되지 못한 주삿바늘은 고기의 내부에 그대로 존재하게 된다. 이러한 바늘의 영상은 크게 세 가지의 형태로 존재한다. Fig. 1은 육류에 존재하는 바늘의 X-Ray 영상을 보여주고 있다.
실제 대부분의 주삿바늘의 형태는 Fig. 1의 (a)와 (b)의 형태이지만 수직으로 세워져 있을 경우 점 바늘 형태로 영상이 찍힐 수 있다. 이 문제는 두 개의 각도로 영상을 촬영할 경우 해결될 수 있기 때문에 본 연구에서는 주삿바늘의 형태가 두 개라고 가정한다. 물론 긴 바늘의 경우 상대적으로 길 수도 있고 짧을 수도 있다.
2.2 기존 검사방법과 육류 검사 적용시의 문제점
식품 이물질 검사기(X-Ray food Inspection Machine)의 LDA(Linear Detector Array)에서 원 영상을 획득한 후, 원 영상에서 양품이 차지하는 화소 값들을 전체 영상에서 거의 비슷한 값이 되도록 필터를 사용하여 영상을 변환한다.
또한, 미세한 화소 값의 차이를 더 확실하게 구분하기 위해 대비 향상 필터를 사용하여 이물질과 이물질 이외의 부분 대비를 향상시킨 후에, 두 부분의 화소 값에 대한 임계 값을 설정하여 불량(이물질)부분을 쉽게 검출할 수 있도록 영상을 변환한다.
그 후에 실제 불량(이물질)의 외관을 추출할 수 있는 필터들을 사용하여 실제 불량을 검출한다. 이때 각 필터의 종류 및 방법에 대해서는 검사 대상물의 특징에 따라 선택되어야 한다.
보통 X-Ray 영상을 이용하여 이물질을 검출할 경우, 이물질이 아닌 물질의 형태가 일정하기 때문에 물질의 특징에 맞도록 X-Ray 파장 및 세기 등을 조정하여 이물질의 구분이 쉬운 영상을 얻는 것은 어렵지 않다. 이러한 경우 전처리 알고리즘과 분류 알고리즘을 통해 쉽게 이물질의 분류 및 인식이 가능하다.
그러나, 육류의 경우는 육류의 종류 및 부위에 따라 두께 및 지방의 함유 정도의 차이가 심하기 때문에 경우에 따라 명암의 대비 차이가 심하게 나타난다. 이러한 문제 때문에 최적의 XRay의 파장이나 세기를 결정할 수 없으며, 전처리 과정에서 이물질의 존재가 약화되어 나타날 수 있는 문제점이 존재한다. 즉, XRay의 파장이나 세기를 조절한다 하더라도 바늘의 명암 값과 거의 같은 부분이 많이 존재할 수밖에 없다. Fig. 2는 육류의 종류 및 부위에 따른 다양한 X-Ray 영상을 보여주고 있다.
2.3 육류 처리를 위한 전처리 과정
본 연구에서는 바늘이 있는 영상과 바늘이 없는 영상의 전처리 과정을 통해 바늘이라고 의심되는 영역을 추출하고 바늘이있는 영상의 경우 라벨 1을 부여하고 바늘이 없는 영상은 0을 부여하여 합성곱 신경망을 통해 학습시킨다. Fig. 3은 훈련 데이터의 제작을 위한 전처리 과정을 보여주고 있다.
본 연구에서는 먼저 특정 화소 값 이상이면 해당 화소 값을 255로 만드는 방법을 이용하여 고기 이외의 배경 부분을 제거한 후에 대비 제한 적응 히스토그램 평활화를 시행한다.
앞서 설명한 대로 육류에 따라 명암의 대비 차이가 심하게 나타나고 기존의 전처리 방법을 잘못 사용할 경우 이물질의 존재가 약화될 수 있다는 문제점이 나타난다. 히스토그램 평활화는 육류의 두께 및 지방의 함유 정도의 차이에 의해 명암 값의 분포가 한쪽으로 치우치거나 균일하지 못한 문제를 해결하기 위해 명암이 균일한 분포를 가질 수 있도록 조정하여 영상의 명암 대비를 좋게 개선하는 방법이다. 하지만 평활화된 영상의 히스토그램이 균등하게 분포될 경우, 이물질 부분과 이물질이 아닌 부분의 명암과 같아지는 영역이 지나치게 커지게 되어 다른 전처리 과정에서 이물질의 외형이 손상되거나 잡음으로 처리될 수 있다는 문제점을 가지게 된다. 본 연구에서는 이 문제를 해결하기 위해 지역적 명암 대비 향상 기법인 대비 제한 적응 히스토그램 평활화를 사용한다. Fig. 4는 대비 제한 적응 히스토그램 평활화를 통해 얻은 육류의 영상을 보여주고 있다.
이 기법은 영상을 여러 개의 블록으로 나누어 대비 제한 적응 히스토그램 평활화를 수행함으로써 지나친 평활화를 방지할수 있다. 즉, 이 방법을 X-ray 영상에 도입할 경우, 모든 블록에 대해서 같은 한계점 값을 적용하여 이물질(바늘)과 이물질이 아닌 부분이 지나치게 같은 명암으로 평활화되는 것과 잡음이 강조되는 문제를 어느 정도 해소할 수 있다.
또한, 본 연구에서는 바늘의 경우 고기 부분보다 어두운 경우가 많기 때문에 감마 보정을 통해 바늘 부분을 강조한다. 이를 위해 감마값은 1보다 크게 설정한다.
Fig. 5는 본 연구에서 사용된 감마 보정 방법을 보여주고 있으며 Fig. 6은 감마 보정에 의해 얻어진 육류 영상을 보여주고 있다.
Fig. 6을 통해 알 수 있듯이 영상에서 가장 어두운 영역들은 남아있고 대부분 밝은 영역에 분포해 있음을 알 수 있다. 이로인해 육류 부분이 점잡음(Salt & Pepper Noise)과 비슷한 잡음의 형태로 나타나게 된다. 바늘의 경우 연속적인 영상이고 나머지 육류 부분은 잡음 형태로 나타나기 때문에 연속적인 부분을 강조하고 잡음처럼 나타나는 육류 부분을 약화시키기 위해 메디안 필터를 사용한다. Fig. 7은 메디안 필터에 의한 결과를 보여주고 있다.
2.4 훈련 데이터 및 인식 데이터 생성
메디안 필터 까지의 전처리 과정을 통해 얻은 영상을 이용하여 바늘이 존재하는 영역이나 바늘로 의심되는 영역을 검출하고 라벨 1과 0을 부여하여 학습시키고자 한다. 이를 위해 바늘이 가지는 직선 부분 및 곡선 부분을 검출하여 바늘 영상 혹은 바늘 의심 영상을 구분한다. 직선 및 곡선을 검출하기 위해 본 연구에서는 간단하지만 매우 효율적으로 검출이 가능한 허프 변환을 이용하였다. 그러나, 실제 영상에 허프 변환을 바로 적용하기에는 계산량이 많기 때문에 먼저 에지 검출 알고리즘인 캐니 에지 검출을 이용하여 육류 영상에 존재하는 다양한 직선 및 곡선에 대한 에지를 검출한다. Fig. 8은 캐니 에지 알고리즘에 의한 결과 영상을 보여주고 있다. Fig. 8의 (a)와 같이 바늘이 있는 영상의 에지는 직선의 모양이 뚜렷이 나타나지만 바늘이 없는 (b)의 에지는 직선이 나타난다고 하더라도 불연속적인 직선 모양이 나타날 수 있다. 마찬가지로 곡선 형태의 바늘도 연속적인 모양으로 나타난다.
이렇게 얻어진 에지 영상은 허프 변환을 통해 가장 긴 곡선을 검출한다. 허프 변환은 Fig. 9에서 나타난 것처럼 X-Y 평면의 한 점을 지나는 직선을 r = xcosθ + ysinθ로 표현함으로써 X-Y 평면에서 x와 y로 표현되는 것을 θ−r 평면에서의 θ와 r로 매핑한다.
θ−r 평면에서 한 점을 지나는 식 (1)과 같은 두 개의 곡선이 존재한다고 가정하자.
(1) |
이 직선을 찾은 후, 직선이 지나는 두 정점을 에지에서 검출함으로써 직선을 검출할 수 있다. 또한, 검출되는 최소 직선의 길이를 적절하게 조정하여 곡선의 검출도 가능하다. 허프 변환에 의해 검출된 직선 및 곡선 부분의 중앙점을 검출한 후에, 그 중앙점을 중심으로 200 × 200만큼 잘라내어 훈련 영상으로 저장한다. 그 후에 200 × 200 픽셀(Pixel)의 바늘 영상은 라벨 1을 부여하고 바늘이 없는 영상은 라벨 0을 부여한다. Fig. 10은 허프 변환에 의해 만들어진 훈련 영상의 일부를 보여주고 있다.
실제 훈련을 위해서는 많은 바늘 영상이 필요하지만, 바늘이 없는 X-Ray 영상에 비해 바늘이 존재하는 X-Ray 영상은 매우 부족하다. 이 문제를 해결하기 위해 본 연구에서는 두 가지의 방식으로 바늘이 있는 훈련 영상을 증식하였다.
첫째, 바늘 이외의 잡음은 그대로 둔 상태에서 바늘의 자세는 변화시키지 않고 위치만을 이동시키는 방식이다. 두 번째는 바늘의 자세를 변화시키기 위해 바늘을 회전시키는 방법이다. 두번째 방법에서는 바늘 이외의 잡음도 같이 회전시키도록 하였다. 실제 훈련 영상은 GPU의 메모리 부족 현상을 방지하기 위해 100 × 100 픽셀로 변환시켜 사용한다.
3. Convolution 신경망을 이용한 바늘 검출
본 연구에서 사용된 X-Ray 영상은 보통 1200 × 800 픽셀이다. 전처리 과정을 통해 100 × 100 픽셀의 바늘 혹은 바늘 의심 영상이 얻어진다. 이 100 × 100 영상은 합성곱 신경망을 통해 바늘의 특징이 추출되고 바늘과 바늘이 아닌 영상을 분류한다.
본 연구에서 사용된 합성곱 신경망은 Fig. 11과 같이 입력 영상으로부터 특징을 추출하는 3개의 합성곱 층과 분류를 위한 완전 연결층으로 구성되어 있다. 합성곱 층은 특징 추출을 하는 필터와, 이 필터의 값을 비선형 값으로 바꾸어 주는 활성(Activiation) 함수로 이루어진다.
첫 번째 합성곱 층은 3 × 3의 필터 256개를 사용하였으며 특징의 손실을 방지하기 위하여 제로 패딩(Zero Padding)을 사용하였다. 합성곱 층을 거쳐 추출된 모든 특징들을 가지고 판단을 할 필요가 없기 때문에 이를 줄이기 위하여 필요에 따라 서브 샘플링 과정을 거친다. 그중 맥스 풀링(Max Pooling) 기법은 활성 맵(Activation Map)을 Mm의 크기로 잘라낸 후, 그 안에서 가장 큰 값을 뽑아내는 방법이다. 본 연구에서는 2 × 2 맥스 풀링을 사용하였다.
두 번째 합성곱 층은 2 × 2의 필터 128개와 2 × 2 맥스 풀링을 사용하고 있다. 세 번째 합성곱 층은 2 × 2의 필터 32개와 2 × 2 맥스 풀링을 사용하고 있다. 또한, 세 개의 합성곱 층은 모두 과적합(Overfitting) 문제를 방지하기 위해 30%의 드롭아웃(Dropout)을 사용하고 있다.
완전 연결층은 합성곱 층과 활성 함수인 렐루(Relu) 함수 그리고 맥스 풀링을 반복적으로 조합하여 특징을 적용해 나온 출력 값을 입력 값으로 한다. 완전 연결층에서는 추출된 특징 값을 기존 신경 회로망에 넣어 분류한다. 합성곱 신경망은 입력 영상의 값을 신경 회로망에 바로 넣는 것이 아닌, 특징을 추출한 결과를 신경 회로망의 입력으로 넣는다. 특징을 추출하여 신경 회로망에 적용 때문에 연산속도의 정확도가 높으며 파라미터(Parameter) 수가 적어진다.
4. 실험 결과
4.1 전처리 실험 조건
먼저 배경을 제거하기 위해서 육류 영상의 히스토그램을 분석하였다. 히스토그램 분석 시 육류 부분은 대부분 어두운 영역에 분포해 있고, 윤곽선 부분은 밝은 영역에 분포되어 있기 때문에 회색조(Grayscale)로 표현된 각 픽셀의 값이 170 이상일경우 255로 변환하여 제거하였다.
대비 제한 적응 히스토그램 평활화는 영상을 10 × 10의 고정된 블록으로 분할한 후 히스토그램 클립핑(Clipping) 방법을 적용하였으며, Cliplimit를 1로 설정하였다[11]. 그 후에 감마 보정의 감마 값을 3으로 설정하여 바늘 부분을 강조하도록 하였다. 그 후 메디안 필터는 마스크 크기를 5 × 5로 설정하여 잡음을 제거하도록 하였다.
4.2 CNN 학습 결과
바늘 영상과 바늘이 없는 영상의 학습 데이터는 Table 1과 같으며, Table 2는 학습을 위해 사용된 합성곱 층의 모델을 보여주고 있다.
학습 시 Batch Size는 1,100개로 설정하고 총 55번 반복 학습시켰다. 딥러닝 구동을 위해 케라스(Keras)를 이용하여 프로그램하였다.
55번의 반복 학습 후에 훈련 패턴의 정확도는 100%를 보였으며, 테스트 패턴의 경우 99.89%의 정확도를 보였다. Fig. 12는 학습에 대한 Loss의 변화율을 보여주고 있다. 훈련 패턴과 테스트 패턴 둘 다 실제 훈련에서는 약 20번 정도면 완료된다는 것을 확인할 수 있다.
Fig. 13은 4,704개의 테스트 패턴 중 분류가 잘못된 5개의 패턴을 보여주고 있다. 오류가 발생한 5개의 패턴은 모두 바늘이없는 영상으로 바늘이 있는 것으로 오인식하였으며, 바늘이 있는 영상은 100% 분류가 가능하였다. 그림에서 볼 수 있는 바와 같이 충분히 바늘로 오인식 할 수 있을 정도로 바늘과 유사한 영상임을 알 수 있다.
5. 결 론
최근 흉부 X-Ray 영상을 이용하여 흉부질환, 폐종양 검출을 통한 폐암 진단이나 X-Ray 수하물 보안 영상을 통한 밀수품 검사를 합성곱 신경망을 통해 학습시키려는 연구가 많이 진행되고 있다. 하지만 딥러닝을 활용하여 육류 안에 있는 바늘과 같은 이물질 검출에 대한 연구는 많이 미비한 상황이다.
육류의 경우는 육류의 종류 및 부위에 따라 두께 및 지방의 함유 정도의 차이가 심하기 때문에 경우에 따라 명암의 대비 차이가 심하게 나타난다. 이러한 문제 때문에 자동화된 분류 방법을 사용할 경우 분류 성능이 매우 떨어지게 된다. 현재 육류 이물질 검출의 경우 전처리된 영상을 사람이 최종 검사하는 방법을 사용한다.
본 연구에서는 고기 윤곽선 제거, 대비 제한 적응 히스토그램 평활화, 감마 보정, 메디안 필터, 캐니 에지 검출 및 허프 변환등의 전처리 과정을 통해 학습 패턴을 추출하여 합성곱 신경망에 적용할 수 있는 방법을 제안하였다. 약 4000개의 훈련에 참여하지 않은 테스트 패턴을 이용한 실험을 통해 99.89%의 정확도를 얻음으로써 그 적용 가능성을 입증하였다.
Acknowledgments
본 연구는 과학기술정보통신부와 정보통신기획평가원의 SW 중심대학사업의 연구결과로 수행되었음(2019-0-01834)
References
- H. R. Ji and H. Hong, “Automatic Detection of Foreign Body through Template Matching in Industrial CT Volume Data”, J. Korea Multi. Soc., Vol. 16, No. 12, pp. 1376-1384, 2013. [https://doi.org/10.9717/kmms.2013.16.12.1376]
- J. W. Jeong, J. T. Kang, J. W. Kim, S. Park, M. L. Lee, and Y. H. Song, “Digital X-Ray Technology and Applications”, Elec. Telecom. Trends, Vol. 34, No. 5, pp. 1-13, 2019.
- S. W. Cho, “The introduction of X-ray spectroscopy for surface and interface electronic structures”, Vacuum. maga., Vol. 1, No. 1, pp. 17-20, 2014. [https://doi.org/10.5757/vacmag.1.1.17]
- I. S. Cho, J. I. Kim, and C. H. Lim, “In-situ X-Ray Observation of Shrinkage Defect of the Aluminum Alloy Castings”, J. Korea Foundry Soc., Vol. 30, No. 5, pp. 174-178, 2010.
- Y. T. Yoo, J. H. Oh, and J. W. Kim, “Development of X-ray Non-destructive Testing (NDT)Equipment for the Detection of Alien Substances”, J. Korea Soc. Manu. Proc. Eng., Vol. 18, No. 8, pp. 60-66, 2019. [https://doi.org/10.14775/ksmpe.2019.18.8.060]
- R. Haff, and N. Toyofuku, “X-ray detection of defects and contaminants in the food industry”, sensing instru. food qua. safety, Vol. 2, No. 4, pp. 262-273, 2008. [https://doi.org/10.1007/s11694-008-9059-8]
- M. K. Park, H. J. Moon, and D. H. Lee, “The development of product inspection X-ray DR image processing system using intensifying screen”, J. Korea Inst. Inf. Commun. Eng., Vol. 19, No. 7, pp. 1737-1742, 2015. [https://doi.org/10.6109/jkiice.2015.19.7.1737]
- W. Kim, “X-ray image correction model for enhanced foreign body detection in metals”, J. Korea Converg. Soc., Vol. 10, No. 10, pp. 15-20, 2019.
- M. Schultheiss, S. A. Schober, M. Lodde, J. Bodden, J. Aichele, C Müller-Leisse, B. Renger, F Pfeiffer, and D Pfeiffer, “A robust convolutional neural network for lung nodule detection in the presence of foreign bodies”, Sci. Rep., Vol. 10, pp. 1-9, 2020. [https://doi.org/10.1038/s41598-020-69789-z]
- R. Wei, F. Zhou, B. Liu, X Bau, D Fu, Y Li B Liang, and Q Wu, “Convolutional Neural Network (CNN) Based Three Dimensional Tumor Localization Using Single X-Ray Projection”, IEEE Access, Vol. 7, pp. 37026-37038, 2019. [https://doi.org/10.1109/ACCESS.2019.2899385]
- B. S. Min and T. K. Cho, “A Novel Method of Determining Parameters for Contrast Limited Adaptive Histogram Equalization”, J. Korea Acad. Ind. Coop. Soc., Vol. 14, No. 3, pp. 1378-1387, 2013. [https://doi.org/10.5762/KAIS.2013.14.3.1378]