서 론
재료 및 방법
1. 데이터 수집 및 전처리
2. 컴퓨터 비전의 활용
3. 이미지 보강
4. 코드 사용
결과 및 고찰
1. 토마토 분류 및 성숙도 평가
2. 파프리카 색상 분포 및 숙성도 시각화
3. 멜론 네트 품질 평가
4. 오이 화방 검출
서 론
컴퓨터 비전(computer vision)은 모든 종류의 이미지에서 시각 데이터를 수학적으로 분석하여 디지털 이미지, 비디오 및 기타 시각적 입력에서 의미 있는 정보를 추출하는 인공지능 분야이다(Tian 등, 2020). 정보 과학이 빠르게 성장함에 따라 컴퓨터 비전 기반 패턴 인식 및 이미지 처리는 농업 분야에도 광범위하게 적용되고 있다. 특히 농산물의 품질을 평가하는 데 중요한 도구로 부상하고 있으며(Bhargava와 Bansal, 2021; Saldaña 등, 2013) 고해상도 이미지와 딥러닝 기반 알고리즘을 활용하면 육안과 수작업으로는 수행하기 어려운 복잡한 분석과 분류를 수행할 수 있다(Cubero 등, 2011; Hameed 등, 2018). 예컨대 과일과 채소 검사에 컴퓨터 비전을 사용하면 표면의 이상 징후를 신속하고 정확하게 식별할 수 있을 뿐만 아니라(Barnes 등, 2010; Zhang 등, 2014), 품질 평가를 통해 등급 지정 및 분류 작업의 효율성을 높일 수 있다(Arakeri, 2016; Mahendran 등, 2012).
또한 컴퓨터 비전은 최종 수확물의 품질을 면밀히 검사하는 것 외에도 시설 과채류 작물의 생장과 발달, 과실의 성숙을 비파괴적으로 모니터링하는 데 유용한 도구로 인정받고 있다(Bernotas 등, 2019; Wan 등, 2018). 예로서 Support Vector Machine(SVM)은 패턴 분류 문제에 있어서 효과적인 성능을 보여왔으며, 종 식별, 과실의 숙도 감지 및 질병 분류에 그 효과를 입증하였다(Kumar 등, 2020). 또한 Gaussian Mixture Model(GMM)은 데이터가 여러 개의 정규 분포의 혼합으로 이루어져 있다고 가정하는 확률적 모델로서, 유연하게 색, 크기, 질감 등의 과실 특성을 모델링하는 데 널리 활용되고 있다(Nandi 등, 2012). 이처럼 시설 과채류 작물 및 과실 표현형 분석에 있어서 컴퓨터 비전 시스템은 감지, 분류, 검출 등 반복적인 분석 및 조사를 수행할 수 있어 인력을 효과적으로 대체할 수 있기 때문에 널리 연구되고 구현되고 있다(Fracarolli 등, 2021; Gomes와 Leta, 2012).
이러한 발전에도 불구하고 컴퓨터 비전은 아직 시설원예 분야에서 인간에 의한 평가 및 조사를 완전히 대체하지는 못하였다. 과실 품질 평가의 경우, 인간 평가자는 농산물을 평가할 때 무의식적으로 다양한 속성을 고려하는 반면, 컴퓨터 비전 시스템은 이미지 분석에만 의존해 품질을 판단하기 때문에 해석 과정에 상당한 어려움이 있다(Bhargava와 Bansal, 2021). 따라서 컴퓨터 비전 시스템의 연구 개발 및 개선 과정에 재배 생리와 관련한 정보 및 지표들이 적극 반영되어야 한다.
본 연구에서는 컴퓨터 비전을 이용하여 토마토, 파프리카, 오이 및 멜론의 표현형을 특성화하고, 이에 사용된 코드를 공개하여 많은 학생 및 연구자들이 어려움 없이 활용해볼 수 있도록 공유하였으며, 농산업에 컴퓨터 비전이 효과적으로 적용되기 위한 방향을 고찰하였다.
재료 및 방법
1. 데이터 수집 및 전처리
본 연구를 위해 온실 내에서 토마토(Solanum lycopersicum L. ‘TYCharmant’), 파프리카(Capsicum annuum L. ‘Gina’), 멜론(Cucumis melo L. ‘Miracle’), 오이(Cucumis sativus L. ‘Joeunbaekdadagi’) 등의 시설 과채류 이미지를 스마트폰(Galaxy S21, Samsung Electronics Inc., Suwon, Korea)을 이용하여 직접 수집하였다. 이러한 이미지들은 실제 온실의 태양광 하에서 촬영되었고 일반적인 재배 환경에서 나타나는 표현형의 다양성을 대표하는 샘플이다. 원본 이미지는 컴퓨터 비전에 적용하기 위하여 가공 처리가 되었다. 원본 이미지 내의 특정 객체를 분할하여 마스크를 생성하는 작업은 segment anything model(Kirillov 등, 2023)을 활용하였다(Fig. 1). 마스크는 과실, 잎, 꽃 등 원본 이미지에서 원하는 부분을 선별적으로 추출한 결과이며, 이미지 분석에서 특징을 정확하게 파악하고 분석할 수 있도록 이용된다. 본 연구에서는 과실 분석이 주가 되는 멜론 및 파프리카의 경우, 마스크를 이용하였고, 토마토와 오이의 경우, 별도의 마스크 생성 과정 없이 원본 이미지 데이터를 이용하였다.
2. 컴퓨터 비전의 활용
연구에 사용된 컴퓨터 비전 알고리즘은 오픈소스 라이브러리인 Open Source Computer Vision Library(OpenCV)를 기반으로 하였다. OpenCV는 실시간 컴퓨터 비전을 위한 크로스 플랫폼 라이브러리로, 다양한 프로그래밍 언어와 OS 환경에서 널리 사용되고 있다(Solem, 2012). OpenCV의 기본 구조는 Core Functionality(CV), Machine Learning Library(MLL), High-level GUI(High GUI)로 구성된다. CV는 OpenCV의 핵심 라이브러리로, 기본적인 이미지 처리 기능들을 포함하고 있는데, 이미지의 필터링, 변환, 히스토그램 등의 다양한 연산을 수행할 수 있다. MLL는 머신러닝 라이브러리로, 다양한 알고리즘과 훈련 방법을 제공하여 통계적 분류, 패턴 인식, 클러스터링 등의 작업을 지원한다(Howse, 2013). High GUI는 사용자 인터페이스 도구들을 제공하는 모듈로, 이미지를 사용자가 원하는 형태로 가공 및 출력할 수 있다.
2.1 토마토 분류 및 숙성도 평가
OpenCV와 scikit-image(skimage) 라이브러리를 활용하여 토마토 이미지(Fig. 3A, B)를 그레이스케일로 변환한 후, 학습 데이터와 동일한 크기인 128×128로 조절하였다. HOG(histogram of oriented gradients)를 사용하여 특징을 추출하였다. 이미지는 원본 이미지 기준에 따른 크기 배율(0.5, 1, 1.5, 2)이 조절되었고, 각 조절된 이미지에 대해 HOG 특징이 추출되었다.
추출된 특징을 기반으로 support vector machine(SVM) 모델을 사용해 토마토를 검출하였다. 숙성도 평가는 이미지의 색상을 기반으로 진행되었다. OpenCV는 원본 이미지를 BGR(blue, green, red) 형식으로 읽어 들이기 때문에, 프레임워크나 호환성을 유지하기 위하여 이미지들은 RGB(red, green, blue) 형식으로 변환되었고, 이를 기반으로 HSV(hue, saturation, value) 값으로 변환되었다(Moreira 등, 2022). 색상을 담당하는 H 채널의 평균 값을 사용하여 토마토의 숙성도를 판별하였다. 특정 색상값의 범위에 따라 ‘익음(10 미만, 160 초과)’, ‘부분적으로 익음(10 이상 15 미만)’, ‘익지 않음(그 외)’의 3가지 카테고리로 분류하였다.
2.2 파프리카 색상 분포 및 숙성도 시각화
OpenCV, Matplotlib, Scikit-learn 라이브러리를 활용하여 파프리카의 숙성도를 시각적으로 평가하였다. 주어진 RGB 값에 가장 근접한 색상의 이름을 찾기 위해 webcolors 라이브러리의 기능을 활용하였다. BGR 값을 RGB, HSV 순서로 변환하였고, HSV 색상 공간을 활용하여 빨간색과 초록색 영역을 검출하기 위해 빨간색의 경우 최소(0, 50, 50), 최대(10, 255, 255) 범위로 및 초록색의 경우 최소(35, 50, 50), 최대(85, 255, 255)로 설정하였다. 파프리카의 전체 색상 분포를 3차원 산점도로 시각화하였다. 각 클러스터는 고유한 색상으로 표시되었다.
주어진 파프리카 이미지의 픽셀 값들을 2차원 배열로 변환한 후, 가우스 혼합 모델(Gaussian mixture model, GMM)을 사용하여 클러스터링을 수행하였다. 파프리카의 숙성도를 시각화하기 위해서 GMM을 통해 결정된 클러스터 중심(centroid)과 데이터 포인트들을 색상(hue)과 채도(saturation)를 축으로 하여 시각화하였다. 각 클러스터는 육안으로 해당 색상을 판별할 수 있도록 HSV에서 RGB로 변환된 색상으로 표시되었다. 또한 파프리카의 색상값 분포를 히스토그램과 커널 밀도 추정(kernel density estimation, KDE) 그래프를 사용하여 시각화 하였다. 빨간색 색상 값을 기본값으로 강조하여, 이를 통해 원본 이미지의 빨간색 분포 및 숙성도를 확인할 수 있다.
2.3 멜론 네트 품질 평가
OpenCV, Matplotlib, Numpy 라이브러리를 활용하여 네트 멜론의 네트 품질을 평가하고자 하였다. 네트의 품질을 효과적으로 정량화하기 위하여 다양한 기법을 예로서 적용해 보았다. 먼저 네트의 패턴과 색상 분포를 분석하기 위해, 이미지는 HSV 색상 공간으로 변환되었다. HSV 변환을 통해, 멜론의 색상 특징과 밝기 정보를 분리하여 분석하였다. 이를 밝기, 녹색-붉은색, 파란색-노란색 범위의 채널을 담고 있는 LAB(lightness, a, b) 색상 공간으로 이미지를 변환한 후, k-means 군집화 기법을 사용하여 멜론 이미지에서 두 가지 주요 색상을 추출하였다. 이를 통해 멜론의 표면 색상 특징을 분석하였다. 또 다른 기법으로, 2차원 원본 이미지를 통해 멜론의 3차원 형상과 깊이 정보를 얻기 위해 그레이스케일 변환과 깊이 매핑(pseudo-color depth) 기법이 사용되었다. 이를 통해 멜론의 표면의 높낮이와 텍스처 정보를 시각화하였다.
2.4 오이 화방 검출
OpenCV, Matplotlib, Numpy 라이브러리를 활용하여 오이 재배 온실 이미지에서 오이의 화방을 검출하고자 하였다. ‘cvtColor’ 함수를 사용하여 BGR 이미지를 RGB로 변환한 뒤 RGB 이미지를 HSV 색상 공간으로 변환하였다. 오이 꽃을 검출하기 위해 노란색의 범위를 HSV 색상 공간에서 정의한 다음 ‘inRange’ 함수를 사용하여 HSV 이미지에서 노란색만 추출하였다. HSV 이미지의 Value 채널을 사용하여 깊이 정보를 가져왔다.‘bitwise_and’ 함수를 사용하여 노란색 마스크에 따라 깊이 값을 추출하였다. ‘findContours’ 함수를 사용하여 노란색 화방의 윤곽선을 검출하였고 각 화방의 깊이와 면적 값을 바탕으로 평가 점수를 계산하였다. 평가 점수에 따라 화방들을 정렬하고, 가장 높은 평가 점수를 가진 화방 5개를 선택하였다.
3. 이미지 보강
이미지 처리 작업은 종종 강한 조명과 그림자로 인해 왜곡된 결과를 얻을 수 있다. 예컨대, 온실에서의 이미지 수집은 심한 역광, 강렬한 햇빛, 골조 및 잎에 의한 차광 등으로 인해 일관된 데이터 획득에 어려움이 있다. 컴퓨터 비전을 수행하기 위해서는 수집된 이미지 데이터를 최적화하는 과정이 반드시 필요하다. 이를 위해 OpenCV 알고리즘에 포함된 샤프닝, 조명 강화, 히스토그램 평탄화와 같은 이미지 보강 기법을 사용할 수 있다.
샤프닝은 이미지의 공간주파수 영역 가운데 고주파 성분을 강화하여 세부 정보를 더 잘 드러내게 하는 기법이다. 이를 통해 이미지의 경계선과 세밀한 패턴, 세부 정보 등이 더욱 뚜렷하게 표현될 수 있다. OpenCV에서는 커널을 활용한 컨볼루션 연산을 통해 샤프닝을 적용할 수 있다. 주로, 라플라시안과 같은 필터를 이용하여 이미지의 고주파 성분을 추출하고 원본 이미지에 더하는 방식으로 적용된다(Prasanna 등, 2012).
조명 강화는 불규칙한 조명 조건 하에서 얻은 이미지의 밝기를 일관되게 조절하는 기법이다. 강한 조명 또는 그림자의 영향을 최소화하여 이미지의 전반적인 명도를 향상시킨다. OpenCV에서는 이미지 값을 지정된 범위로 제어하는 ‘adjust_gamma()’ 함수나 임계값을 조정하는‘cv2.threshold()’ 함수를 사용하여 이미지의 밝기와 대비를 조절한다.
히스토그램 평탄화 또는 평활화(histogram equalization)는 이미지의 명도 분포를 균일하게 만드는 기법이다. 이를 통해 낮은 픽셀 영역의 대비가 향상되며, 세부 정보가 더욱 잘 드러나게 된다. 특히 너무 밝거나 어두운 영역의 정보를 다른 영역과 균등하게 하여 세부정보를 볼 수 있게 함으로써 이미지 품질을 향상시킨다. OpenCV에서는 ‘equalizeHist’ 함수를 통해 히스토그램 평탄화를 적용할 수 있다(Fig. 2).
4. 코드 사용
본 연구에 사용된 이미지, 코드 및 모델 파일은 https://github.com/seungriYoon/cv에서 무료로 다운로드할 수 있었다.
결과 및 고찰
1. 토마토 분류 및 성숙도 평가
다양한 조명 조건 하에서 촬영된 토마토 이미지에서 특정 숙기의 토마토를 검출하고 성숙도를 판단하는 알고리즘을 제안하였다(Fig. 3). 이 과정은 두 단계로 구성되며, 첫 번째 단계에서는 이진화 이미지와 색상 채널 이미지를 활용하여 숙기에 따른 토마토 마스크를 검출하였다(Fig. 3A, B). 두 번째 단계에서는 특정 영역 내 토마토의 성숙도를 평가하였다(Fig. 3C). 가우스 블러를 사용하여 노이즈를 효과적으로 제거한 후, 이미지의 형태학적 변환 기능을 이용하여 작은 노이즈를 제거하고 내부의 빈 공간을 채웠다.
실험에 사용된 이진화 이미지는 잘 익은 토마토를 흰색으로, 그 외의 배경은 검은색으로 표현함으로써 성숙한 토마토 검출이 용이하다. 반면, HSV 색공간의 H 채널 이미지를 활용하면, 스케일바에 따라 숙기가 구분되어 시각화되어 성숙도나 품종에 따른 색상 변화를 명확하게 파악할 수 있다. 본 연구에서는 간결성을 위해 색상(hue) 값을 기반으로 세 가지 단계를 판별 기준으로 설정하였다. 대량의 학습 이미지 데이터를 확보하여 다양한 조명 조건 및 여러 숙기를 고려하고, 세분화된 색상 단계를 추가하면 정확성이 더욱 향상될 것으로 예상된다.
2. 파프리카 색상 분포 및 숙성도 시각화
수확된 파프리카의 착색 정도를 분석하기 위해 이미지 처리 및 색상 클러스터링 기법을 활용하였다(Fig. 4). 직관적인 시각화를 위해 3차원 분포도를 사용하여 RGB(Red, Green, Blue) 색상 축에 따른 픽셀 분포값을 확인하였다(Fig. 4D). 해당 분포값을 기반으로 색상 이름 데이터베이스에서 추출한 가장 가까운 색상 두 가지는 ‘chestnut’과 ‘rusty red’ 컬러였다. 빨간색 범위의 색상 값을 도수 분포로 표현한 결과(Fig. 4E)에서 추출된 마스크(Fig. 4C)의 히스토그램은 빨간색과 거의 일치하였다. 가우스 혼합 모델을 사용하여 색상값과 채도값의 분포를 분석하고 클러스터링하였다(Fig. 4F). 색상값과 채도값은 이미지 내의 색의 종류와 강도를 나타내는 중요한 요소로, 두 개의 클러스터로 분할된 데이터 포인트의 집합에서 평균 위치는 중심점(centroid)으로 표시되었다. 색상값은 0-50 및 150-175의 범위에서 높은 채도 값을 보였으며, 특히 0-50 범위에서는 높은 분포를 나타냈다.
색상값 0-50 범위는 주로 빨간색에서 주황색을 나타내며, 이 범위의 높은 채도 값은 해당 이미지에서 완숙 파프리카의 색상이 표현되고 있음을 의미한다. 또한 이 범위에서 다양한 색상이 높은 분포를 보이므로 여러 톤의 빨간색과 주황색이 포함되어 있음을 알 수 있다. 색상값 150-175 범위는 주로 녹색에서 청록색을 나타내며, 해당 이미지에서는 강렬한 녹색 또는 청록색 톤이 포함되어 있다. 이미지를 통한 K-means 클러스터링 및 가우스 혼합 모델은 전통적인 숙도 판별 도구인 착색계에 비해, 세분화된 색상 및 채도 정보를 바탕으로 빠르고 정확하게 미세한 색상 정보를 효과적으로 추출할 수 있다. 따라서 농업 현장에 적용될 경우, 많은 양의 파프리카의 품질 평가 및 분류 작업에 효과적으로 활용될 것이다.
3. 멜론 네트 품질 평가
원본 이미지에서 멜론 과실을 성공적으로 추출하였으며, 해당 객체 마스크에서 멜론의 색상 특징과 밝기 정보를 분리해 색상 분포를 파악하였다(Fig. 5). HSV로 변환된 이미지에서 가장 특징적인 색상을 이진화하여 네트 색상과 과피 원색을 구분하면, 흑백 이진화 이미지(binarized image)와 유사하게 변환된다. 또한, HSV 이미지를 깊이 매핑 이미지(depth mapped image)로 변환하여, 네트와 과피의 높낮이에 따른 텍스처 차이를 ‘높음’과 ‘낮음’으로 표현할 수 있었다. 이러한 기법들을 활용해 네트와 과피를 색상 영역으로 구분하고, 패턴(개별 영역의 표준편차) 또는 밀도(개별 영역의 면적값)를 계산할 수 있었다.
국내에서 주로 소비되는 멜론 품종은 네트 패턴이 있는 네트 멜론으로 알려져 있으며, 특유의 사향맛 때문에 머스크멜론으로도 불린다. 멜론의 네트는 미관상의 가치를 높이는 동시에, 과실의 적절한 양수분 상태를 반영하기 때문에 상품성을 나타내는 중요한 지표로 간주된다(Paris 등, 2008). 네트의 품질은 전통적으로 인간 검수자에 의해 네트의 굵기, 패턴, 밀도 등을 기준으로 평가되나, 이 방법은 노동집약적이고, 평가자의 주관성이나 오류가 개입될 가능성이 있어 표준화하기가 어렵다. 그러므로 컴퓨터 비전을 활용한 네트 품질의 자동 평가는 객관적이고 표준화된 평가를 제공하는 장점이 있어, 실제 응용에서의 효용성이 크다고 판단된다.
4. 오이 화방 검출
실험 결과, 오이 온실 이미지에서 HSV 색상 범위를 활용하여 특정 영역 내 오이 꽃을 성공적으로 검출할 수 있었다(Fig. 6). 오이 재배 온실에서 구조물을 제외한 부분은 주로 녹색의 작물과 노란색의 꽃으로 명확하게 구분되므로, 노란색인 암꽃과 수꽃의 검출이 상대적으로 용이하다. 그러나 이미지에 노란색 유인줄이나 해충 끈끈이가 포함되면 화방 검출에 방해가 된다. 이를 해결하기 위해, 꽃으로 잘못 인식되는 유인줄을 제외하고자 깊이 정보를 포함하여 화방을 검출하였다. 노란색 범위를 이진화하여 마스크를 생성하고, 면적을 계산하였으며, Value 채널을 통해 깊이 정보도 얻었다. 작물에서 멀리 떨어진 유인줄과 해충 끈끈이는 깊이 값에서 멀리 있는 것으로 인식되어 평가 점수가 낮게 책정되었다. 가장 크고 가까운 화방을 검출하기 위해 면적과 깊이 값을 기반으로 평가 점수를 산출하였고, 이를 통해 5개의 꽃을 성공적으로 검출하고 그 윤곽선을 표시하였다.
오이는 전 세계적으로 널리 재배되는 주요 채소 중 하나이며, 다양한 꽃의 성별 유형 때문에 꽃 형태 연구에도 활용되곤 한다(Lonsbary 등, 2004; Zhou 등, 2019). 오이 꽃은 식물의 영양 상태를 반영하는 중요한 생식 기관으로, 전체 식물의 생산성에도 큰 영향을 미친다(Xu 등, 2023). 꽃의 수와 그 출현 시기는 높은 수확량을 위한 적엽 작업에 핵심적인 요소로, 오이의 재배 과정에서 엄격한 관리가 필요하다. 컴퓨터 비전을 활용해 오이 꽃 같은 관찰 가능한 표현형을 자동으로 인식하는 것은 농업 현장에서의 인건비 절감 및 작업 효율성 향상에 크게 기여할 것으로 예상된다.