DOI QR코드

DOI QR Code

FGRS(Fish Growth Regression System), Which predicts the growth of fish

물고기의 성장도를 예측하는 FGRS(Fish Growth Regression System)

  • Sung-Kwon Won (Department of Business Administration, Catholic Kwandong University) ;
  • Yong-Bo Sim (Department of Software Engineering, Catholic Kwandong University) ;
  • Su-Rak Son (Department of Software Engineering, Catholic Kwandong University) ;
  • Yi-Na Jung (Department of Software Engineering, Catholic Kwandong University)
  • Received : 2023.10.05
  • Accepted : 2023.10.20
  • Published : 2023.10.31

Abstract

Measuring the growth of fish in fish farms still uses a laborious method. This method requires a lot of labor and causes stress to the fish, which has a negative impact on mortality. To solve this problem, we propose the Fish Growth Regression System (FGRS), a system to automate the growth of fish. FGRS consists of two modules. The first is a module that detects fish based on Yolo v8, and the second consists of a module that predicts the growth of fish using fish image data and a CNN-based neural network model. As a result of the simulation, the average prediction error before learning was 134.2 days, but after learning, the average error decreased to 39.8 days. It is expected that the system proposed in this paper can be used to predict the growing date and use the growth prediction of fish to contribute to automation in fish farms, resulting in a significant reduction in labor and cost savings.

양식장에서 물고기의 성장을 측정하는 작업은 아직도 사람의 손이 많이 가는 방식을 사용한다. 이 방식은 많은 노동력이 필요하고, 물고기가 스트레스를 받아 폐사율에 악영향을 준다. 이러한 문제를 해결하기 위해 물고기의 성장도를 자동화하기 위한 시스템 FGRS(Fish Growth Regression System)를 제안한다. FGRS는 두 개의 모듈로 구성된다. 첫째는 Yolo v8 기반의 물고기를 디텍팅하는 모듈이고, 둘째는 물고기 영상 데이터를 CNN 기반의 신경망 모델을 이용하여 물고기의 성장도를 예측하는 모듈로 구성된다. 시뮬레이션 결과 학습전에는 예측 오차가 평균 134.2일로 나왔지만 학습 이후 평균 오차가 39.8일 까지 감소했다. 본 논문에서 제안한 시스템을 이용해 생육일을 예측하여 물고기의 성장예측을 활용해 양식장에서의 자동화에 기여할 수 있고, 많은 노동력 감소와 비용 절감 효과를 가져 올 수 있을 것이라 기대한다.

Keywords

1. 서론

물고기 양식장의 일부 작업은 지금까지도 사람의 손이 많이 가는 방식을 유지하고 있다. 양식장 물고기의 여러 상태를 파악하기 위한 환경, 기술적인 배경이 아직 충분히 발전하지 못했기 때문에 자동화 시스템으로 대체되지 못하고 사람의 세심한 관리가 필요한 것이다. 특히 양식장은 물고기의 집단 폐사율이 높기 때문에 주기적으로 관리를 위해 인력을 동원해야 하고, 정확한 판단이 필요해 전문가가 상주해야 한다. 이렇게 사람이 일일이 관리하면 양식장의 규모를 키우기에 한계가 있고 이는 수익성에 악영향을 준다. 물고기 양식장에서 아직 자동화되지 못한 시스템 중 하나는 물고기의 성장을 측정하는 것이다. 현재 양식장에서는 물고기의 성장을 측정하기 위해서 사람이 수조에 물고기를 뜰채 등을 이용해 포획하고, 측정자로 물고기를 실측한 이후 수조로 돌려보낸다. 이 과정에서 물고기가 심한 스트레스를 받기 때문에 양식장의 폐사율이 높아질 수 있다.

본 논문에서는 이런 문제를 해결하기 위해 물고기를 실측하지 않고 성장을 판단할 수 있도록, 수중 카메라를 이용해 물고기를 촬영하여 물고기의 성장도를 예측하는 자동화 시스템을 제안한다. 본 논문에서는 카메라를 이용해 수조 내부를 촬영한 영상에서 물고기를 탐지하여 성장도를 판별할 수 있는 시스템으로 FGRS (Fish Growth Regression System)를 제안한다. FGRS는 물고기의 위치를 예측하여 물고기 영역을 찾아주는 탐지 모듈과 탐지된 물고기 영상으로부터 물고기의 성장을 추론하는 성장 예측 모듈로 구성된다.

2. 관련연구

수산 양식업 혁명(Blue Revolution)은 2003년 영국의 경제 저널인 이코노미스트에 소개된 용어로 1960년대 후반 농업 생산량의 비약적 증대를 가져온 그린 레볼루션(Green Revolution)에서 파생된 용어이다. 인류가 2030년경에 블루 레볼루션을 통해 대부분의 수산물 수요를 수산 양식업을 통해 조달할 것으로 예상했다. 하지만, 국내 수산 양식업은 아직 초기단계에 머물러 있다[1]. 기존 물속을 유영하는 물고기를 비전 기술을 통해 감지하는 연구는 Faster R-CNN 기반의 아키텍처를 도입하여 82.4% (mAP)의 정확도를 달성했고, RCNN, SSD, RetinaNet, YOLOv3 및 YOLOv4등 다양한 딥러닝 방법을 살펴보는 등의 연구들로 많은 발전을 이뤘다 [2-9]. 컴퓨터 비전은 이미징 센서를 통해 얻어진 영상 데이터를 데이터 셋으로 하여 특징을 추출하고 분석, 분류하는 시스템으로 인간의 시각을 모방한 기술 분야이다 [10]. 비전 기술은 다양한 분야에 활용될 수 있다. 대량의 물품을 생산하는 공장에서 컨베이어 벨트 위를 이동하는 제품들에서 불량을 찾는 작업에 활용될 수 있다 [11]. 핸드폰 잠금, 공항 등 본인을 인증하기 위한 수단으로 얼굴 감지 및 인증에 활용된다. 또한 자율주행 자동차, 로봇 등에 길을 인식하고 피하거나 우회하며 다닐 수 있다. 인간의 뇌를 모방하여 의사 결정하는 것을 신경망 모델이라고 한다. 그중에 1998년 합성곱 신경망(CNN) 기반의 LeNet5가 나오고, 딥러닝 기반의 모델이 뛰어난 성능을 보여 현재까지도 활발히 연구되고 있다 [12].

JBJTBH_2023_v16n5_347_f0001.png 이미지

그림 1. FGRS의 구조

Fig. 1. Structure of FGRS

객체 탐지 방법 중에는 1-stage 방식과 2-stage 방식이 있다. 이중 Yolo는 1-stage 방식을 사용한다. 객체 영역을 예측하는 데 필요한 지역 제안과 객체 분류의 과정이 별도의 네트워크로 분리되어 2개의 stage(지역 제안, 특징 추출기)를 가진 것을 2-stage라고 한다. 2-stage 모델은 탐지 성능은 상대적으로 높지만, 추론 속도가 상대적으로 낮은 경향을 보인다. 반대로 1-stage detector는 객체 영역을 예측하는 데 필요한 지역 제안과 객체 분류의 과정에서 별도 네트워크를 분리하지 않고 1개의 stage(특징 추출기)로 통합하는 구조를 가진다. 탐지 성능은 상대적으로 낮지만, 추론 속도가 상대적으로 높은 경향을 보이는 특징을 가지고 있다 [13-16].

3. 본론

본 논문은 물고기를 탐지하여 물고기의 성장을 예측하는 시스템 FGRS(Fish Growth Regression System)를 제안한다. FGRS는 두 개의 모듈로 구성된다.

첫째, 물고기 디텍팅 모듈은 수조 내부가 촬영된 영상에서 물고기를 탐지하는 기능을 수행한다. 물고기를 탐지하는 기능을 수행하기 위해 Yolo v8 기반의 모델을 학습한다. AI-Hub에서 Yolo v8 기반의 모델을 학습하기 위해 필요한 데이터 셋을 준비하고 Yolo v8에 맞는 데이터 셋으로 변환하여 학습을 진행한다. AI-Hub로 부터 수집한 데이터 셋에서 5종의 물고기가 담긴 수조 영상을 각 500장씩 학습용 데이터 총 2,500장을 학습 데이터로 활용하고, 각 500장씩 검증용 데이터 총 2,500장을 검증 데이터로 활용한다. 학습된 물고기 디텍팅 모델을 이용해 수조 내부를 촬영한 영상에서 물고기를 잘라낸 이미지를 생성한다.

둘째, 성장예측 모듈은 물고기 영상을 통해 물고기의 성장도를 예측한다. 물고기의 성장을 예측하기 위한 CNN 기반의 모델인 물고기 성장예측 모델(FGRM) 학습하기 위해 탐지한 물고기 영상을 잘라내서 물고기 이미지를 동일한 크기로 변환한다. 이 과정으로 모든 물고기 이미지가 가로, 세로 312픽셀 정사각형 크기로 통일된다. 학습을 위한 정답 데이터를 생성하기 위해 AI-hub에서 수집한 데이터 셋에 json 파일을 분석하여 생육일 정보를 얻는다. 생육일 데이터를 이용해 정답 데이터 리스트를 생성한다. 생성된 데이터 셋은 5종의 물고기를 각 500장씩 준비하여 총 2,500장의 데이터를 준비한다. 학습 데이터를 통해 학습된 성장예측 모델을 준비한 검증 데이터를 이용해 검증하여 생육일 예측 모델의 성능을 확인한다.

3.1 디텍팅 모듈

DM(디텍팅 모듈)은 성장예측 모듈에서 사용하는 데이터 생성을 위해, Yolo v8 기반의 객체 탐지 모델을 활용한다. DM은 수조 내부 영상에서 물고기를 탐지하기 위해 세 단계의 기능을 수행한다. 첫째, DM은 전처리 과정을 통해 신경망 모델의 학습을 위한 데이터 세트를 구축한다. 둘째, DM은 데이터 세트를 이용해 Yolo v8 기반의 신경망 모델을 학습시킨다. 셋째, DM은 학습한 모델을 이용해 수조 내부의 사진에서 물고기를 탐지하여 탐지된 물고기를 잘라낸다. 디텍팅 모듈의 전처리 과정에서는 AI-hub에서 수중 카메라로 촬영된 수조 내부의 영상 데이터를 수집하고, 수집된 데이터 셋에서 학습에 활용할 영상을 분류한다[17]. Yolo 기반 신경망 모델은 학습을 위해 라벨링된 데이터 셋이 필요한데, 수집된 데이터 셋은 여러 데이터를 한꺼번에 저장한 json 형식 파일을 가지고 있기 때문에 신경망 모델을 학습 시킬 수 없다. Yolo 기반의 모델에서 학습을 진행하기 위해서는 각 이미지 파일의 이름과 동일한 txt파일이 이미지별로 하나씩 필요하다. 텍스트 파일에는 탐지한 개체의 종류와 바운딩 박스에 대한 정보가 담겨 있어야 한다.

그림 2는 물고기 이미지에 필요한 라벨 데이터를 나타낸다. 그림 2에서, class는 물고기의 종류이며, x, y는 바운딩박스의 좌표를 나타내고, w, h는 바운딩박스의 크기를 의미한다. 물고기 이미지에 대한 라벨 데이터는 클래스, 바운딩 박스에 대한 정보가 텍스트파일에 “class x y w h”와 같은 형식으로 들어간다. 바운딩 박스를 표현하는 방식은 여러 종류가 있다. 이미지의 픽셀 크기를 그대로 담아 표현하는 방식과 이미지의 크기에 비례한 수치를 표현하는 방식으로 구분되며 Yolo v8에서는 비례 수치를 이용해 바운딩 박스를 표현한다. x, y 값 또한 바운딩 박스의 좌측 상단에 위치해 있는 경우와 중심에 위치해 있는 경우로 나뉘는데 Yolo v8에서는 중심의 좌표를 기준으로 바운딩박스가 위치한다.

JBJTBH_2023_v16n5_347_f0002.png 이미지

그림 2. Yolo 모델의 label 형식

Fig. 2. Yolo 모델의 label 형식

3.2 성장도 예측 모듈

성장도 예측 모듈은 CNN 기반의 신경망 모델인 물고기 성장도 예측 모델(FGRM)을 이용해 물고기의 성장도를 알아낸다. FGRM은 표 1의 CNN 구조를 사용한다. 성장도 예측 모듈은 세 단계에 걸쳐 기능을 수행한다. 첫째, 전처리 과정을 통해 물고기 이미지와 그에 맞는 성장 데이터를 짝지어 데이터 셋을 구축한다. 둘째, 데이터 셋을 이용해 CNN 기반의 신경망 모델을 구축하고 학습한다. 셋째, 학습한 모델의 트레이닝 결과와 테스트 결과로 모델의 성능을 검증한다. 성장도 예측 모듈의 전처리 과정에서는 디텍팅 모듈을 통해 생성한 물고기 이미지를 CNN 모델의 입력 데이터로 활용하기 위해 일정한 크기로 변환해주는 작업을 수행한다. 또한, 입력 영상에 따른 정답 데이터로 활용될 생육일 데이터를 준비한다. 생육일 데이터는 AI-Hub에서 수집한 데이터 셋에 json 형식의 파일에 저장되어 있기 때문에 json을 파싱하여 필요한 생육일 정보만 list로 담는다. 생성한 성장도 예측 데이터 셋을 훈련, 점증, 테스트 데이터로 분리하여 성장예측 모델을 학습하고 성능을 검증한다. FGRM의 구조는 CNN 기반의 신경망 모델이다. CNN에서 사용되는 컨볼루션 레이어는 inner product를 사용한다.

표 1. FGRM 모델의 구조

JBJTBH_2023_v16n5_347_t0001.png 이미지

Table 1. FGRM 모델의 구조

표 1의 내용은 그림 1에 FGRM 구조를 표로 표현 한다. RGRM의 구조는 conv 레이어 5개와 fc 레이어 3개로 구성된다. 컨볼루션 레이어의 필터는 3x3의 크기로 stride를 1로 하여 한 번씩 이동하며 컨볼루션을 수행해 feature map을 얻는다. Padding은 1로 주어 데이터 외각에 한줄씩 0을 넣어 주며 컨볼루션 이후에도 feature map의 크기가 일정하게 해준다. 활성화 함수로는 ReLU를 사용한다. 3개의 fc 레이어 중 fc1과 fc2에 활성화 함수는 RelU를 이용하고, fc3에 활성화 함수는 0에서 1 사이의 값으로 정규화하기 위해 sigmoid를 사용한다.

표 1을 보면 입력 데이터로 사용하는 영상의 크기를 224x224로 하고, 첫 번째 컨볼루션 레이어에서 연산을 수행한다. 이후 첫 번째 풀링 레이어에서 최대 풀링(max pooling)을 하여 특징 맵(feature map)의 사이즈를 112x112로 만든다. 두 번째 컨볼루션 레이어에서 컨볼루션 연산을 수행해 112x112 사이즈의 특징맵을 만들어 주고 두 번째 풀링 레이어에서 최대 풀링 작업을 하여 특징맵의 크기를 56x56으로 만든다. 세 번째 컨볼루션 레이어에서 56x56 사이즈의 특징맵을 만들고 세 번째 풀링 레이어에서 28x28 크기로 축소한다. 네 번째 컨볼루션 레이어에서 28x28 사이즈의 특징맵을 만들고, 네 번째 풀링 레이어에서 14x14 사이즈로 축소해 준다. 다섯 번째 컨볼루션 레이어에서 14x14 사이즈의 특징맵을 만들고 다섯 번째 풀링 레이어에서 7x7 사이즈로 축소한다. 7x7 사이즈의 특징맵을 일렬로 정렬한 데이터를 입력으로 FC1 레이어와 완전 연결 (Fully Connect) 방식으로 1024개의 노드를 연결한다. FC2 레이어에서는 512개의 노드로 완전 연결 레이어를 구성한다. FC3 레이어의 활성화 함수를 sigmoid로 하여 출력값이 0에서 1사이로 나올 수 있도록 한다.

4. 시뮬레이션

기존 많은 연구는 물고기를 탐지하고 탐지 성능을 올리는 연구가 주된 과제였으나 본 논문에서는 탐지한 물고기의 영상을 이용한 성장예측 모델을 도입하여 물고기 양식장의 자동화를 위한 시스템을 제안한다. 물고기 성장예측 시스템의 시뮬레이션 환경은 구글 코랩을 활용해 진행되었다. 사용언어는 Python3 언어를 기반으로 keras를 이용해 모델을 구성한다, 하드웨어는 VRAM 12GB의 용량을 가진 T4 GPU를 이용한다. 또한 51GB 용량의 RAM을 활용하고 디스크 용량은 총 166.8GB중 26.3GB가 사용된다. 준비한 데이터 셋 총 2,500개 중에서 1,750개를 트레이닝 데이터로 활용하고 750개를 검증 데이터로 활용하여 진행한다. 그림 3을 보면 학습이 진행됨에 따라 MAE, MSE가 감소해나가며 정삭적으로 학습되는 것을 확인할 수 있다. 트레이닝 MAE는 Epoch 1에서 0.1765가 나왔고, 0.0011까지 감소하는 모습을 보인다. 검증 MAE는 학습을 시작할 때 0.1342가 나오고, 0.0398까지 감소하는 모습을 보였다. 약 10 Epoch 구간에서 트레이닝 MAE와 검증 MAE의 그래프가 교차하여 과적합이 시작되고, 이후 Epoch에서는 차이가 점점 벌어진다. 검증 데이터의 오차는 0.0398까지 감소하고 더 이상 감소하지 않는 것을 볼 수 있다. Epoch 20이후 지속적인 학습시 과적합이 발생하여 검증 데이터의 Loss가 더 이상 감소하지 않기 때문에 Epoch 20회까지 학습을 진행한다. 물고기의 생육일을 1/1000로 스케일링 하였기 때문에 학습전 0.1342의 오차는 생육일을 134.2일의 오차를 가지고 예측하고 있으며, 20 Epoch 학습 이후 오차는 0.0398로 감소하여 생육일을 39.8일의 오차로 예측하는 모습을 볼 수 있다.

JBJTBH_2023_v16n5_347_f0003.png 이미지

그림 4 학습 결과 MAE, MSE 수치

fig 4 Learning output MAE, MSE regulator

5. 결론

본 논문은 스마트 양식에서 물고기의 성장 판단을 자동화하기 위해 물고기의 성장을 분류하는 시스템인 FGRS를 제안했다. 수조 안에 설치된 수중 카메라를 통한 물고기의 개체 식별과 성장 예측을 위해 FGRS는 Yolo v8 기반 모델로 개체를 디텍팅하고, FGRM을 학습하여 물고기의 성장도를 알 수 있다. 이를 통해 스마트양식장에서 물고기의 성장도를 측정하는 방법을 자동화함으로써 먹이 배급의 자동화 기술에 이용하거나, 성장에 따라 출하 시기를 결정하는 등 다양하게 활용할 수 있을 것이라 기대한다.

References

  1. "The promise of a blue revolution", The Economist Special Report : The Economist, Aug. 2003.
  2. Mandal, Ranju, etal, "Assessing fish abundance from underwater video using deep neural networks," 2018 International Joint Conference on Neural Networks (IJCNN), pp. 1-6, 2018
  3. Wulandari, Nurcahyani, lgi Ardiyanto, and Hanung Adi Nugroho, "A Comparison of deep learning approach for underwater object detection.", Jurnal RESTI (Rekayasa Sistem dan Teknologi Informasi) 6.2, pp.252-258, 2022. https://doi.org/10.29207/resti.v6i2.3931
  4. Mandal, Ranju, et al, "Assessing fish abundance form underwater video using deep neural networks.", 2018 International Joint Conference on Neural Networks (IJCNN), IEEE, 2018
  5. S Hwang, Sung-ll, Oe-Yeong Kim, and Seok-Yong Lee, "A case study on the ICT-based smart aquaculture system by applying u-farms.", The Journal of Korean Institute of Commounications and Information Sciences 39.2, pp.173-181, 2014. https://doi.org/10.7840/kics.2014.39C.2.173
  6. Lee, Yong-Hwan, and Heung-Jun Kim, "Implementation of Fish Detection Based on Convolutional Neural Networks.", Journal of the Semiconductor & Display Technology, 19.3, pp.124-129, 2020
  7. Saleh, Alzayat, Marcus Sheaves, and Mostafa Rahimi Azgha야, "Computer vision and deep learning for fish classification in underwater habitats : A survey.", Fish and Fisheries, 23.4, pp.977-999, 2022. https://doi.org/10.1111/faf.12666
  8. Yang, Xinting, et al, "Deep learning for smart fish farming : applications, opportunities and challenges.", Reviews in Aquaculture, 13.1, pp.66-90, 2021. https://doi.org/10.1111/raq.12464
  9. Park, Jin-Hyun, et al, "Application of CNN for fish species classification.", Journal of the Korea Institute of Information and Communication Engineering 23.1, pp,39-46, 2019. https://doi.org/10.14801/jkiit.2019.17.1.39
  10. Bo Zhang, "Computer Vision vs. Human Vision", International Conference on Cognitive Informatics, 2010.
  11. Chien, Chen-Fu, et al, "AI and big data analytics for water fab energy saving and chiller optimization to empower intelligent manufacturing.", 2018 e-Manufacturing & Design Collaboration Symposium (eMDC). IEEE, pp.1-4, 2018.
  12. Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner, "Gradient-based learning applied to document recognition." Proceedings of the IEEE, vol. 86, no. 11, pp. 2278-2324, 1998.
  13. Redmon, Joseph, et al, "You only look once: Unified, real-time object detection.", Proceedings of the IEEE conference on computer vision and pattern recognition, pp.779-788, 216.
  14. Redmon, Joseph, and Ali Farhadi, "YOLO9000: better, faster, stronger.", Proceedings of the IEEE conference on computer vision and pattern recognition. pp.7263-7271, 2017.
  15. Redmon, Joseph, and Ali Farhadi, "Yolov3: An incremental improvement.", arXiv preprint arXiv:1804.02767, 2018
  16. A Bochkovskiy, Alexey, Chien-Yao Wang, and Hong-Yuan Mark Liao. "Yolov4: Optimal speed and accuracy of object detection.", arXiv preprint arXiv:2004.10934, 2020. 
  17. https://www.aihub.or.kr/aihubdata/data/view.docurrMenu=115&topMenu=100&aihubDataSe=realm&dataSetSn=154