한국센서학회 학술지영문홈페이지

Current Issue

JOURNAL OF SENSOR SCIENCE AND TECHNOLOGY - Vol. 33 , No. 2

[ Article ]
JOURNAL OF SENSOR SCIENCE AND TECHNOLOGY - Vol. 30, No. 5, pp. 300-308
Abbreviation: J. Sens. Sci. Technol.
ISSN: 1225-5475 (Print) 2093-7563 (Online)
Print publication date 30 Sep 2021
Received 09 Aug 2021 Accepted 03 Sep 2021
DOI: https://doi.org/10.46670/JSST.2021.30.5.300

DCGAN을 이용한 잡육에서의 바늘 검출
장원재1 ; 차윤석1 ; 금예은1 ; 이예진1 ; 김정도1, +
1호서대학교 전자디스플레이공학부

Detection of Needle in trimmings or meat offals using DCGAN
Won-Jae Jang1 ; Yun-Seok Cha1 ; Ye-Eun Keum1 ; Ye-Jin Lee1 ; Jeong-Do Kim1, +
1Division of Electronics and Display Engineering, Hoseo Unversity, 20, Hoseo-ro 79beon-gil, Baebang-eup, Asan-si, Chungcheongnam-do 31499, Korea
Correspondence to : +jdkim@hoseo.edu


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.
Funding Information ▼

Abstract

Usually, during slaughter, the meat is divided into large chunks by part after deboning. The meat chunks are inspected for the presence of needles with an X-ray scanner. Although needles in the meat chunks are easily detectable, they can also be found in trimmings and meat offals, where meat skins, fat chunks, and pieces of meat from different parts get agglomerated. Detection of needles in trimmings and meat offals becomes challenging because of many needle-like patterns that are detected by the X-ray scanner. This problem can be solved by learning the trimmings or meat offals using deep learning. However, it is not easy to collect a large number of learning patterns in trimmings or meat offals. In this study, we demonstrate the use of deep convolutional generative adversarial network (DCGAN) to create fake images of trimmings or meat offals and train them using a convolution neural network (CNN).


Keywords: X-Ray image, Deep convolutional generative adversarial network (DCGAN), Needle detection, Foreign object

1. 서 론

식품에서의 이물질(foreign body)이란 원료 또는 재료에 다른 물질이 혼입되는 것이며, 이물질을 검출하기 위해 열화상(thermal imaging), 근적외선 분광법(near infrared spectroscopy), 초분광 영상(hyperspectral imaging), 초음파(ultrasonic)와 X-ray같은 기술이 많이 사용되고 있다 [1].

육류에서의 이물질은 뼛조각, 화농, 장갑의 실밥, 주삿바늘 등이 있다. 닭 가슴살에 존재하는 뼛조각을 검출하기 위해 초음파를 사용한 연구가 수행된 바 있으며 [2], 육류에 있는 이물질을 검출하기 위해 초분광 영상이 사용된 바 있다 [3].

육류의 다양한 이물질 중 가장 치명적인 것은 주삿바늘이다. 주삿바늘의 경우 날카롭기 때문에 소비자에게 안전상에 큰 문제를 발생시킬 수 있다. 육류는 보통 도축과정에서 발골 후에 부위별로 나눠 큰 덩어리로 분할되기 때문에 이 분할된 고깃덩어리를 X-Ray 검사를 통해 바늘의 존재 유무를 검사하는 것이 가장 효율적이며 디지털 방사선(digital radiography) 검사 시스템의 개발에 의해 많은 산업 분야에 성공적으로 적용되고 있다 [4].

디지털 방사선에 의한 X-Ray 영상과 합성곱 신경망(convolution neural network, CNN)을 이용하여 레이저 용접(laser welding)의 실시간 품질 검사를 위한 연구가 진행되었으며 [5], 흉부 X-Ray 영상을 통해 폐 결절 검출을 통한 폐암 진단 연구가 진행된 바 있다 [6].

딥러닝(deep learning)의 적용은 기존 머신비전 알고리즘(machine vision algorithm)으로 검출이 어려웠던 공업, 의학 등의 분야에서 이물질 검출과 더 나은 품질 관리를 가능하도록 해주고 있다 [7]. 딥러닝과 X-Ray 영상을 통해 호두나 포장된 식품의 이물질을 검출하는 연구가 진행된 바 있다 [8,9].

최근 디지털 X-Ray 영상과 CNN을 이용하여 육류 내 바늘을 검출하는 연구가 진행되어 99.89%의 매우 높은 바늘 검출률을 얻은 바 있다 [10]. 하지만 이 연구에서는 같은 부위별로 분류된 고깃덩어리를 대상으로 하였고 고기 껍데기, 지방 덩어리, 서로 다른 부위의 고기 조각 등이 뭉쳐진 잡육(trimmings or meat offals)은 연구 대상에 포함되지 않았다. 같은 부위로 나뉜 고깃덩어리는 검출을 위한 머신비전 알고리즘을 거치면 잡음이 거의 없기 때문에 큰 문제 없이 바늘 검출이 가능하다. 하지만 잡육의 경우 처리 과정을 거쳐도 잡음이 매우 심해 잡음을 바늘로 오인식하는 경우가 많아져 바늘 검출이 매우 어려워진다.

잡육의 경우 다양한 형태의 잡음이 존재하기 때문에 딥러닝을 통해 학습을 진행할 경우 검출 확률을 높이기 위해서는 보통 수만 개 이상의 훈련 패턴이 필요하다. 하지만 실제 고깃덩어리를 검사하면 바늘이 존재할 확률은 0.1% 미만이기 때문에 다양한 형태의 잡음을 포함하는 바늘 훈련 패턴을 수만 개 이상이나 수집하는 것은 쉬운 일이 아니다.

최근, 생성적 적대 신경망 (generative adversarial network: GAN)이나 심층 합성곱 생성적 적대 신경망 (deep convolutional generative adversarial network, DCGAN)을 이용하여 직물에서의 다양한 결함을 검출하기 위한 연구가 진행되었다 [11]. 이러한 DCGAN을 이용한 결함 검출이 여러 분야에 성공적으로 적용되고 있으나, 아직 육류의 이물질 검출 분야에 적용된 사례가 거의 없다.

본 연구에서는 잡육에서의 바늘 검출 확률을 높이기 위해 DCGAN을 이용하여 위조 영상 생성을 통해 훈련 패턴을 증식시키는 방법을 제안하였다.

본 연구에서는 대비 제한 적응 히스토그램 평활화(contrast limited adaptive histogram equalization, CLAHE), 감마 보정(gamma correction), 캐니 에지 검출(canny edge detection), 모폴로지(morphology)와 허프 변환(hough transform)과 같은 전처리 과정을 통해 바늘이 있을 것으로 의심되는 영역을 추출하여 작은 조각 영상을 만들어 기초 훈련 패턴을 제작한다. 이 기초 훈련 패턴을 DCGAN에 적용하여 다양한 잡음이 포함된 위조 바늘 영상을 만들고, 또한 바늘로 의심될만한 바늘이 아닌 위조 잡음 영상을 만들어 훈련 패턴을 제작한다. 이렇게 제작된 훈련 패턴은 CNN에 적용되어 학습된다.

DCGAN을 통해 얻어진 훈련 패턴을 학습시킨 후에 테스트 패턴을 적용시킨 결과 99.67%의 정확도를 얻었다.


2. 잡육 X-Ray 영상과 기본적인 전처리 과정

보통 도축 과정에서 고기는 발골 후에 부위별의 큰 덩어리로 분할되며, 이 분할된 고깃덩어리를 X-Ray 검사기로 바늘의 존재 유무를 검사한다. Fig. 1은 고깃덩어리의 예시를 보여주고 있다. Fig. 1의 (a)는 같은 부위로 분할된 고깃덩어리이며, (b)의 경우 고기 껍데기, 지방 덩어리, 서로 다른 부위의 고기 조각 등이 뭉쳐진 잡육이다.


Fig. 1. 
Chunks of meat after boning and cutting; (a) Meat cuts, and (b) Trimmings or meat offals.

Fig. 2는 일반적으로 사용되는 X-Ray 영상을 이용한 이물질 검출 과정이다.


Fig. 2. 
Typical algorithm for the detection of foreign bodies.

식품 X-Ray 검출기의 이용하여 육류의 이물질을 검출할 경우, X-Ray의 파장 및 세기 등을 조정하여 영상을 획득하면 두께 및 지방의 함유 정도에 따라 이물질과의 대비가 너무 낮거나 밝기가 불균일한 영상이 나온다. 이러한 문제를 해결하기 위해 보통 히스토그램 평활화(histogram equalization)를 사용하지만 영상 전체를 대상으로 대비를 변경하기 때문에 이물질과 구분이 어려워지는 문제가 발생한다. CLAHE는 영상 전체가 아니라 타일이라고 하는 작은 영역에 대해 연산을 수행하기에 영역별로 대비가 변화하여 이물질 구분이 가능해진다.

그 후 육류 부분보다 화소값이 어두운 경우가 많은 바늘을 강조하기 위해 대비를 증가시키는 감마 보정을 사용한다. 감마 보정 후에는 바늘의 에지 부분을 검출하여 이진 영상으로 처리하기 위해 캐니 에지 알고리즘을 이용하며 모폴로지 닫기 연산을 통해 에지 부분을 강화한다.

Fig. 3은 같은 부위의 고깃덩어리에 전처리 과정을 거친 결과를 보여주고 있으며, 잡음이 적기 때문에 바늘 검출이 쉬운 걸 알 수 있다.


Fig. 3. 
Typical processing of X-ray images for needle detection in meat; (a) Original X-Ray image, (b) Histogram equalization, (c) Gamma correction, and (d) Canny edge detection.

그러나 본 연구에서는 잡육에서의 바늘 검출을 대상으로 한다. Fig. 4는 잡육에 전처리 과정을 거친 결과를 보여주고 있다. Fig. 4의 (a)에서 볼 수 있는 바와 같이, 잡육의 경우 껍데기와 두꺼운 지방과 같은 서로 다른 부위가 뭉쳐져 있기 때문에 X-Ray 영상에서 바늘보다 더 검은 부분이 존재한다. 이러한 부분으로 인해 Fig. 4의 (d)에서 볼 수 있는 바와 같이 바늘 이외에 많은 잡음이 생성될 수 있다.


Fig. 4. 
Typical processing of X-ray images for needle detection in trimmings or meat offals; (a) Original X-Ray image, (b) Histogram equalization, (c) Gamma correction, and (d) Canny edge detection.


3. 잡육에서 DCGAN을 이용한 바늘 검출
3.1 잡육에서 바늘 검출의 어려움과 DCGAN의 필요성

같은 부위로 나눠진 고깃덩어리의 경우 잡음이 거의 발생하지 않기 때문에 딥러닝을 이용한 학습 시 비교적 적은 훈련 패턴을 가지고도 바늘 검출이 가능하다.

Fig. 5는 잡육 영상에서 전처리 과정 후에 영상의 일부를 보여주고 있다. Fig. 5의 (a)는 바늘 영상이며 바늘 근처에 여러 잡음이 존재하고 다양한 형태가 있으며, (b)는 바늘 아닌 잡음 영상이며 다양한 잡음 형태가 있음을 알 수 있다. 너무 다양한 바늘과 잡음 형태로 인해 잡육의 경우 많은 훈련 패턴이 있어야 정확한 바늘 검출이 가능하다. 또한, 일반적으로 전처리 과정을 거친 후 문턱값(threshold)을 정하여 바늘인지 아닌지를 결정하는 반면 잡육의 경우 학습하지 않고 전처리 과정만을 가지고는 바늘과 잡음을 구분하기 쉽지 않다.


Fig. 5. 
X-Ray images of meats after Gamma correction; (a) With needle, and (b) Without needle.

즉, 잡육의 경우 다양한 바늘과 잡음 형태가 존재하며 바늘 검출의 확률은 훈련 패턴의 수에 비례하기 때문에 수만 개 이상의 훈련 패턴이 필요하다. 그러나, 실제 고깃덩어리를 검사 시 바늘이 있는 경우는 0.1% 미만이기 때문에 많은 훈련 패턴을 모으는 것이 매우 어려우며 많은 시간이 필요하다. 이러한 문제 때문에 고깃덩어리에 임의로 바늘을 집어넣어 훈련 패턴을 취득해야 하는데, 이러한 방법을 사용하더라도 많은 시간이 필요할 수밖에 없다. 훈련 패턴의 수집 시간을 줄이고 다양한 패턴을 생성한다면 검출 성능 향상이 가능하기 때문에 수집된 훈련 패턴을 인가하여 위조 영상 생성이 가능한 DCGAN을 이용하였다.

3.2 바늘 의심 조각 영상 검출 알고리즘

Fig. 6은 의심 영역을 검출하기 위한 알고리즘을 보여주고 있다. 본 연구에서는 2장에서 설명한 전처리 과정을 거친 후 허프 변환을 통해 바늘 부분과 바늘 아닌 잡음 부분들에 대한 의심 영역을 검출한다. 그 다음 직선에서의 끝점을 이용하여 중앙점을 얻고, 중앙점의 좌표를 통해 감마 보정까지 처리된 영상에서 의심 영역의 영상을 추출하게 된다. 이렇게 추출된 바늘 의심 영상은 훈련 패턴 및 바늘 검출 영상으로 사용한다.


Fig. 6. 
Method for extraction of 6 fragment images that are suspected of having needles.

바늘의 경우 직선 모양이 뚜렷하기 때문에 길이가 긴 직선이 검출되고 바늘이 아닌 잡음의 경우 불연속적인 직선 모양이 나타나기 때문에 바늘보다 길이가 짧은 직선이 검출된다. 따라서 검출된 직선들을 긴 직선 순으로 정렬하여 일정 순위까지만 의심 영역으로 가져가 의심 영역을 줄임으로써 바늘 검출에 대한 정확도를 높였다.

Fig. 7은 허프 변환의 결과를 보여주고 있으며 직선의 길이에 따라 순위를 정하고, 일정 이상의 기준치에 해당하면 바늘 의심 부분으로 정한다. Fig. 7에서 1번 부분은 바늘이고 2-6번까지의 부분은 바늘이 아닌 잡음이다.


Fig. 7. 
Detection of Suspicious areas using Hough Transform.

의심 영역 영상 추출 시 먼저 200 × 200 픽셀(pixel) 만큼 잘라낸다. 바늘의 경우 다양한 각도를 가지고 있기 때문에 본 연구에서는 허프 변환에서 검출된 직선에 대한 각도만큼 반시계 방향으로 영상을 회전시켜 하나의 각도만을 가지게 하였다. 영상 회전 시 테두리에 나타나는 배경을 없애기 위해 40 × 200 픽셀만큼 잘라내어 훈련 패턴을 만든다.

Fig. 8Fig. 7에서의 의심 영역을 감마 보정까지 처리된 영상에서 잘라내어 회전시킨 6개의 바늘 의심 조각 영상을 얻은 결과를 보여주고 있다. Fig. 8에서 첫 번째 조각 영상만 바늘이며 나머지 조각 영상은 바늘이 아닌 잡음 영상이다.


Fig. 8. 
Examples of fragment images that are suspected of having needles; (a) Needle image, and (b)-(f) Noise images.

3.3 DCGAN을 이용한 훈련 패턴 증식

Fig. 9는 실제 고깃덩어리를 통해 얻어진 바늘 의심 조각 영상의 예를 보여주고 있다. Fig. 9의 (a)는 실제 바늘이 포함된 조각 영상의 예이며, (b)는 바늘로 의심되지만 실제 바늘이 포함되지 않은 잡음 영상의 예이다. 수집한 바늘 조각 영상의 수는 2,952개이며, 바늘이 아닌 잡음 조각 영상의 수는 15,237개이다. 이를 DCGAN에 인가하여 위조 영상을 생성해 부족한 훈련 패턴을 증식시킨다.


Fig. 9. 
Examples of fragment images; (a) With needle, and (b) Without needle.

DCGAN이란 기존 완전 연결 계층(fully connected layer)으로만 이루어진 GAN에서 합성곱 층(convolutional layer)으로 대체한 신경망이다. GAN은 생성망(generator)과 판별망(discriminator) 두 개의 네트워크를 활용한 생성 모델이다. GAN에서의 학습방식은 Fig. 10과 같으며 생성망과 판별망이 한 번씩 교차로 학습이 진행된다. GAN은 MiniMax Problem을 해결하는 방식으로 학습이 진행되며 다음 식 (1) 과같이 풀이된다.

minGmaxD=VD,G                  =Ex~pdataxlogDx+Ez~pzzlog1-DGz(1) 

Fig. 10. 
GAN Learning Progresses.

판별망 학습 시에는 지도 학습(supervised learning)으로 진짜 영상의 라벨은 1이고 위조 영상의 라벨은 0이다. x~pdata(x)는 진짜 학습 데이터의 확률 분포이며 log D(x)에서의 x는 진짜 영상으로 1이 되도록 학습이 진행되기에 D(x) = 1일 때 log1로 최대화 되도록 학습된다. z~pz(x)는 잠재 벡터(latent vector) z의 확률 분포이며 log(1-D(G(z)))에서의 G(z)는 위조 영상으로 0이 되도록 학습이 진행되기에 D(G(z)) = 0일 때 log 1로 최대화 되도록 학습된다.

생성망 학습 시에는 비지도 학습(unsupervised learning)으로 판별망에서 분류된 영상 데이터의 분포를 근사하는 방향으로 학습이 진행된다. 생성망 학습은 위조 영상만 입력되기에 다음 식 (2)와 같이 진행된다. 생성망에서는 판별망에 위조 영상을 입력 시 1로 판단하도록 만드는 것이 목표이기 때문에 D(G(z)) = 1일 때 log 0으로 최소화 되도록 학습된다 [12].

minGmaxD=VD,G=Ez~pzzlog1-DGz(2) 

DCGAN은 기존 GAN 구조에서 합성곱 층으로 대체한 신경망으로써 생성망에는 Up-sampling을 통해 영상이 커지는 전치 합성곱 층(transposed convolutional layer)을 사용하며, 판별망에서는 Down-sampling을 통해 영상이 작아지는 합성곱 층을 사용한다.

본 연구에서 사용된 생성망은 Fig. 11과 같이 K개의 Random Noise가 입력되고 L개의 뉴런을 가지는 1개의 Dense 층을 통과한다. 통과한 데이터는 L(N × M× P)개의 데이터를 (N, M, P)차원으로 재구성(reshape)된다. 전치 합성곱 층은 판별망에 위조 영상을 입력하여 출력된 특징을 필터값으로 가져오며, R개의 필터가 사용되고 stride=(2,2)일 경우 두 배로 샘플링되어 (2N, 2M, R) 차원으로 변환된다. 전치 합성곱 층은 다수가 사용될 수 있으나 본 연구에 사용된 영상은 회색조(grayscale)이기에 마지막 전치 합성곱 층은 반드시 1개의 필터를 사용하여 최종 출력 영상이 (200, 40, 1)이 되어야 한다. 출력된 영상은 육류 X-Ray 영상에서 전처리 과정을 통해 생성된 진짜 영상과 비슷한 위조 영상이 생성된다. 또한, 활성 함수는 각각의 전치 합성곱 층에 리키 렐루(leaky relu) 함수가 사용되며, 학습 과정 자체를 전체적으로 안정화하여 학습 속도를 가속하기 위한 Batch Normalization이 사용된다.


Fig. 11. 
The structure of Generator.

본 연구에서 사용된 판별망은 Fig. 12와 같이 입력 영상으로부터 특징을 추출하는 다수 개의 합성곱 층과 분류를 위한 1개의 Dense 층으로 구성되어 있다. 입력 영상에는 진짜 영상과 위조 영상 두 가지가 입력된다.


Fig. 12. 
The structure of Discriminator.

합성곱 층은 특징 추출을 하는 필터와 이 필터의 값을 비선형 값으로 바꾸어 주는 리키 렐루 함수로 이루어진다. 필터와의 합성곱 연산시에는 특징의 손실을 방지하기 위하여 제로 패딩(zero padding)을 사용한다. 합성곱 연산 후에는 맥스 풀링(max pooling)을 통해 보통 반으로 다운 샘플링하며 과적합(overfitting)을 방지하기 위해 드롭 아웃을 사용한다. 이러한 다운 샘플링에 의해 합성곱 층을 거칠수록 작아지며, 마지막 층을 거쳤을 때 P개의 필터가 사용되고, (N, M, P) 차원으로 변화된 데이터는 Flatten되어 L(N × M × P) 개의 뉴런을 가지는 Dense 층에 전달되어 한 개의 값을 출력한다. 판별망은 진짜 영상인지 위조 영상 인지만을 분류하기 때문에 진짜 영상에서는 양수의 값, 위조 영상에서는 음수의 값이 출력되도록 훈련된다.

3.4 위조 영상을 이용한 CNN 학습

DCGAN의 생성망에 의해 생성된 위조 영상은 크게 두 가지로 나뉘게 된다. 첫 번째는 실제 바늘 조각 영상을 이용하여 만들어진 위조 바늘 영상, 두 번째는 바늘이 아닌 잡음 영상을 이용하여 만들어진 위조 잡음 영상이다. 이 중에서 위조 바늘 영상들은 라벨을 [1, 0]으로 부여하고, 위조 잡음 영상들은 [0, 1]을 부여한 후 훈련 패턴으로 사용한다. 물론 위조 영상의 제작을 위해 사용되었던 실제 조각 영상들도 테스트 패턴으로 사용된다. 훈련 패턴들은 Fig. 13의 CNN 모델에 의해 학습이 이루어져 바늘의 유무를 판단하는 데 사용된다.


Fig. 13. 
The structure of CNN.

3.5 학습 후 바늘 검출을 위한 전 방향 연산 방법

CNN의 학습 후에 실제 육류에서의 바늘 존재 유무를 파악하기 위해서는, Fig. 6에서 설명한 전처리 과정과 바늘 의심 영상 추출 알고리즘을 이용하여 6개의 바늘 의심 조각 영상을 추출한 후에 미리 학습된 CNN에 인가하여 바늘인지 아닌지를 검사하게 된다. Fig. 14는 바늘 검사를 위한 전체 과정을 보여주고 있다.


Fig. 14. 
The method for Needle inspection.


4. 실험 결과
4.1 전처리 실험 조건

먼저 육류 영상의 히스토그램을 분석하여 배경을 제거하였다. 히스토그램 분석 시 어두운 영역의 분포는 대부분 육류 부분이었으며, 밝은 영역의 분포는 윤곽선 부분이었기 때문에 회색조로 표현된 각 픽셀의 값이 240 이상일 경우 255로 변환하여 제거하였다. CLAHE는 영상에 대한 크기의 비율과 평균값을 통해 블록의 크기를 결정하였다. 그 후 최대치(cliplimit)를 1로 설정해 히스토그램 클리핑(clipping) 방법을 적용하였다. 감마 보정의 경우 감마 값을 0.8로 설정하여 바늘 부분을 강조하도록 하였다.

4.2 실험 1: DCGAN을 이용한 위조 영상 생성 결과

본 연구에서는 DCGAN의 학습을 위해 Intel i7-9700KF CPU와 RTX 2080 SUPER GPU를 사용하였다. 훈련을 위해 사용된 영상의 수는 Table 1과 같으며, 위조 영상을 얻기 위해 DCGAN은 총 10,000번의 반복 학습이 이루어졌다. Table 2Table 3은 학습을 위해 사용된 생성망과 판별망의 모델을 보여주고 있다.

Table 1. 
The number of training patterns used for DCGAN.
Number of partial images
with needles
Number of partial images
without needles
2,952 15,237

Table 2. 
Generator Model for experiment.
Layer Input Shape Output shape
InputLayer (100) (100)
Dense (100) (128,000)
Batch
Normalization1
(128,000) (128,000)
Reshape (128,000) (25, 5, 1024)
Conv2d
Transpose
Layer1
Conv2d
Transpose1
(25, 5, 1024) (50, 10, 256)
Batch
Normalization2
(50, 10, 256) (50, 10, 256)
Conv2d
Transpose
Layer2
Conv2d
Transpose2
(50, 10, 256) (100, 20, 128)
Batch
Normalization3
(100, 20, 128) (100, 20, 128)
Conv2d
Transpose
Layer3
Conv2d
Transpose3
(100, 20, 128) (200, 40, 1)

Table 3. 
Discriminator Model for experiment.
Layer Input shape Output shape
InputLayer (200, 40, 1) (200, 40, 1)
Conv2d
Layer1
Conv2d1 (200, 40, 1) (200, 40, 32)
MaxPooling1 (200, 40, 32) (100, 20, 32)
Dropout1 (100, 20, 32) (100, 20, 32)
Conv2d
Layer2
Conv2d2 (100, 20, 32) (100, 20, 128)
MaxPooling2 (100, 20, 128) (50, 10, 128)
Dropout2 (50, 10, 128) (50, 10, 128)
Conv2d
Layer3
Conv2d3 (50, 10, 128) (50, 10, 256)
MaxPooling3 (50, 10, 256) (25, 5, 256)
Dropout3 (25, 5, 256) (25, 5, 256)
Conv2d
Layer4
Conv2d4 (25, 5, 256) (25, 5, 1024)
Dropout4 (25, 5, 1024) (25, 5, 1024)
Flatten (25, 5, 1024) (128,000)
Dense (128,000) (1)

Fig. 15는 DCGAN 학습이 진행될수록 생성망에서 출력되는 위조 영상의 변화이며, 영상은 100번, 1,000번, 10,000번 반복일 때의 결과를 보여주고 있다. 학습이 100번 반복되었을 때는 바늘 형태도 정확하지 않으며 실제 영상과는 다른 잡음 형태가 나타나고 있다. 1,000번 반복되었을 때는 주변 잡음 형태가 어느 정도 잡히지만 바늘 형태가 정확하지 않다. 10,000번 반복 학습이 되었을 때 주변 잡음 형태와 바늘 형태가 진짜 영상과 비슷한 것을 확인할 수 있으며 DCGAN에서는 충분한 반복 학습이 진행되어야 한다는 것을 보여주고 있다.


Fig. 15. 
Fake image with needles according to epochs; (a) 100 epochs, (b) 1,000 epochs, and (c) 10,000 epochs.

Fig. 16은 DCGAN을 통해 생성된 위조 영상의 일부를 보여주고 있으며 진짜 영상과 비슷한 영상이 생성된다는 것을 확인할 수 있다. 본 연구에서는 DCGAN을 이용하여 50,000개의 위조된 바늘 위조 영상과 50,000개의 위조된 바늘 아닌 잡음 위조 영상을 얻었다.


Fig. 16. 
Part of fake images created by DCGAN; (a) With Needle, and (b) Without Needle.

4.3 실험 2 : 위조 영상을 이용한 CNN 학습 결과

본 연구에서 CNN에 훈련과 검증을 위해 사용된 영상의 수는 Table 4와 같다. 훈련 패턴에는 DCGAN을 통해 생성된 위조 영상만으로 구성되었으며, 바늘 위조 영상 50,000개와 잡음 위조 영상 50,000개가 사용되었다. 총 100,000개의 훈련 패턴은 CNN에 인가된다. 또한, 검증을 위해 사용된 훈련되지 않은 테스트 패턴은 DCGAN을 이용하여 위조 영상을 생성하기 위해 사용된 바늘 조각 영상 2,952개와 바늘이 아닌 잡음 조각 영상 15,237개가 사용되었다.

Table 4. 
The number of training and test patterns.
Train
Patterns
Test
Patterns
Number of partial images with needles 50,000 2,952
Number of partial images without needles 50,000 15,237

Table 5는 학습을 위해 사용된 CNN의 모델을 보여주고 있다. CNN 모델 학습 시 Batch Size는 1,000개로 설정하였으며 총 200번의 반복 학습을 시켰다.

Table 5. 
CNN Model for experiment.
Layer Input Shape Output shape
InputLayer (200, 40, 1) (200, 40, 1)
Conv2d
Layer1
Conv2d1 (200, 40, 1) (200, 40, 32)
MaxPooling1 (200, 40, 32) (100, 20, 32)
Dropout1 (100, 20, 32) (100, 20, 32)
Conv2d
Layer2
Conv2d2 (100, 20, 32) (100, 20, 128)
MaxPooling2 (100, 20, 128) (50, 10, 128)
Dropout2 (50, 10, 128) (50, 10, 128)
Conv2d
Layer3
Conv2d3 (50, 10, 128) (50, 10, 256)
MaxPooling3 (50, 10, 256) (25, 5, 256)
Dropout3 (25, 5, 256) (25, 5, 256)
Conv2d
Layer4
Conv2d4 (25, 5, 256) (25, 5, 1024)
Dropout4 (25, 5, 1024) (25, 5, 1024)
Fully
Connected
Layer
Flatten (25, 5, 1024) (128,000)
Dense (128,000) (500)
Dropout (500) (500)
Dense (500) (2)

반복 학습 후에 훈련 패턴과 테스트 패턴의 정확도는 Table 6과 같으며, 훈련 패턴의 경우 100%의 정확도를 보이고, 테스트 패턴의 경우 99.67%의 정확도를 보인다. 테스트 패턴의 정확도가 높은 것을 볼 때 DCGAN을 통해 생성된 위조 영상이 훈련 패턴으로 사용되기에 문제가 없다는 것을 확인할 수 있다.

Table 6. 
The accuracy of Training pattern and test pattern.
Number of Repetitions Train Patterns Test Patterns
50 repetitions 99.99% 99.26%
80 repetitions 99.99% 99.69%
100 repetitions 99.98% 99.69%
200 repetitions 100% 99.67%

Fig. 17은 훈련 패턴과 테스트 패턴에 대한 Loss의 변화율을 보여주고 있다. Loss의 변화율을 보면 훈련 패턴의 경우 50번 반복 학습 후에는 학습이 완료되지만 테스트 패턴은 그렇지 않다는 것을 보여준다. 훈련 패턴 테스트 패턴 모두 80번 정도의 반복 학습 후에는 학습이 완료되며 Table 6을 통해 80번 반복 학습 후에는 정확도의 변화가 거의 없다는 것을 확인할 수 있다.


Fig. 17. 
Loss with training and test patterns; (a) Training Pattern, and (b) Test Pattern.

Fig. 18은 18,189개의 테스트 패턴 중 분류가 잘못된 패턴들 을 보여주고 있다. Fig. 18에서 (a)는 바늘 영상에서 잘못 분류된 7개의 패턴을 보여주며 해당 영상들은 다른 바늘 영상과 비교 시 바늘 형태가 정확하지 않다는 것을 확인할 수 있다. (b)는 바늘 아닌 잡음 영상에서 잘못 분류된 48개의 패턴을 보여주며 해당 영상들은 바늘 형태와 비슷하며 몇몇 영상들은 충분히 바늘로 잘못 분류될 가능성이 있는 영상임을 확인할 수 있다.


Fig. 18. 
Mis-classified test patterns; (a) With needle, and (b) Without needle.

4.4 실험 3 : DCGAN 학습에 사용되지 않은 테스트 패턴 검증

실험 2에서는 DCGAN 학습에 사용된 바늘 영상과 잡음 영상을 가지고 테스트 패턴에 사용하였다. 본 연구에서는 정확한 검증을 위해 DCGAN 학습에 사용되지 않은 바늘 영상과 잡음 영상을 테스트 패턴으로 사용하여 CNN을 통한 검증을 진행하였다.

Table 7은 CNN 학습에 사용된 훈련 패턴과 테스트 패턴의 수를 보여주고 있다. 훈련 패턴의 경우 DCGAN을 통해 생성된 바늘 위조 영상 50,000개와 잡음 위조 영상 50,000개가 사용되었다. 테스트 패턴의 경우 DCGAN 학습에는 사용되지 않은 바늘 영상 1,200개와 잡음 영상 10,000개가 사용되었다. CNN 모델의 경우 Table 5의 모델을 사용했으며 Batch Size는 1,000개와 총 200번의 반복 학습을 진행하였다.

Table 7. 
The number of training and test patterns.
Train
Patterns
Test
Patterns
Number of partial images with needles 50,000 1,200
Number of partial images without needles 50,000 10,000

CNN을 통한 반복 학습 후에 훈련 패턴과 테스트 패턴의 정확도는 Table 8과 같다. Table 8을 통해 훈련 패턴의 경우 99.99%의 정확도를 보이며, 테스트 패턴의 경우 99.71%의 정확도를 보인다. 테스트 패턴의 정확도를 통해 DCGAN 학습에 사용되지 않은 패턴의 분류도 정확한 것을 볼 수 있다.

Table 8. 
Training pattern and test pattern accuracy
Train Patterns Test Patterns
99.99% 99.71%


5. 결 론

잡육은 고기 껍데기, 지방 덩어리, 서로 다른 부위의 고기 조각 등이 뭉쳐져 있기 때문에 기존 전처리 과정을 거치면 잡음이 매우 심해 잡음을 바늘로 오인식하는 경우가 많아져 바늘 검출률이 현저히 떨어진다. 또한, 고깃덩어리를 검사 시 바늘이 있는 경우는 0.1% 미만이기 때문에 다양한 잡음 형태가 나타나는 잡육의 경우 수만 개 이상의 훈련 패턴이 필요하지만 데이터 수집이 쉽지 않다.

본 연구에서는 잡육에서의 바늘 검출 성능 향상을 위해 DCGAN을 이용하여 위조 영상을 생성해 훈련 패턴을 증식했으며 검증을 위해 위조 영상만 학습시킨 CNN에 진짜 영상을 테스트 패턴으로 인가 시 높은 정확도를 얻었다.


Acknowledgments

본 연구는 과학기술정보통신부 및 정보통신기획평가원의 대학ICT연구센터지원사업의 연구결과로 수행되었다 (IITP-2021-2018-0-01417).


REFERENCES
1. M. R. Ahmed, J. Yasmin, W. H. Lee, C. Mo, and B. K. Cho, “Imaging technologies for nondestructive measurement of internal properties of agricultural products: a review”, J. Biosyst. Eng., Vol. 42, No. 3, pp. 199-216, 2017.
2. L. R. Correia, G. S. Mittal, and O. A. Basir, “Ultrasonic detection of bone fragment in mechanically deboned chicken breasts”, Innov. Food Sci. Emerg. Technol., Vol. 9, No. 1, pp. 109-115, 2008.
3. R. Díaz, L. Cervera, S. Fenollosa, C. Ávila, and J. Belenguer, “Hyperspectral system for the detection of foreign bodies in meat products”, Procedia Eng., Vol. 25, pp. 313-316, 2011.
4. C. A. Roobottom and M. J. Weston, “The detection of foreign bodies in soft tissue—Comparison of conventional and digital radiography”, Clin. Radiol., Vol. 49, No. 5, pp. 330-332, 1994.
5. S. Shevchik, T. Le-Quang, B. Meylan, F. V. Farahani, M. P. Olbinado, A. Rack, G. Masinelli, C. Leinenbach, and K. Wasmer, “Supervised deep learning for real-time quality monitoring of laser welding with X-ray radiographic guidance”, Sci. Rep., Vol. 10, No. 1, pp. 1-12, 2020.
6. 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, No. 1, pp. 1-9, 2020.
7. L. Zhou, C. Zhang, F. Liu, Z. Qiu, and Y. He, “Application of deep learning in food: a review”, Compr. Rev. Food Sci. Food Saf., Vol. 18, No. 6, pp. 1793-1811, 2019.
8. D. Rong, L. Xie, and Y. Ying, “Computer vision detection of foreign objects in walnuts using deep learning”, Comput. Electron. Agric., Vol. 162, pp. 1001-1010, 2019.
9. K. Kim, H. Kim, J. Chun, M. Kang, M. Hong, and B. Min, “Real-time anomaly detection in packaged food X-ray images using supervised learning”, Comput. Mater. Contin., Vol. 67, No. 2, pp. 2547-2568, 2021.
10. J. H. Ahn, W. J. Jang, W. H. Lee, and J. Do Kim, “Detection of needles in meat using X-ray images and convolution neural networks”, J. Sens. Sci. Technol., Vol. 29, No. 6, pp. 427-432, 2020.
11. J. Liu, C. Wang, H. Su, B. Du, and D. Tao, “Multistage GAN for fabric defect detection”, IEEE Trans. Image Process., Vol. 29, pp. 3388-3400, 2020.
12. I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio, “Generative adversarial nets”, Adv. Neural Inf. Process. Syst., Vol. 27, pp. 1-9, 2014.