딥러닝 - 농업에서 딥러닝을 통한 이미지 처리

DL (Deep Learning) - 지난 글


Deep learning – Method overview and review of use for fruit detection and yield estimation 논문 리뷰입니다.



목차

  1. Introduction
  2. CNN and deep learning – A background
  3. Object (fruit) detection in images
  4. Deep learning object detection framework




1. Introduction

딥러닝이란?

리뷰에 앞서 딥러닝이란 무엇인지 간단하게 정의하고 넘어가겠다.

딥러닝이란 인간의 뇌의 작동방식인 신경망을 모방하여 모델링한 알고리즘으로 머신러닝의 일종으로 볼 수 있다. 입력층, 은닉층, 출력층으로 구성되어있으며, 문제와 정답을 미리 제시하고 은닉층에서 이를 해석하는 것이 큰 틀이라고 볼 수 있다.

흔히 말하는 인공지능 학습이란 인간이 계산하기 어려운 수많은 비선형 수식을 가중치 (Weight)와 편향 (Bias)을 조절하여 정답과의 오차 (Loss)를 줄여 나가는 것이라 할 수 있다.

딥러닝은 시계열 예측, 이미지 분류 및 객체 인식, 번역 등에 적용하고 있으며, 기존 머신러닝 기법에서 감당하기 어려웠던 연산량을 극복하여 더 딥 (deep)한 모델을 만들 수 있게 되었다.

이러한 딥러닝 기술은 나의 전공인 농업에도 적용을 시도중인데 오늘은 그 중 농업에서 이미지 분류 및 객체 인식에 활용되는 딥러닝 기법에 대하여 전반적인 내용을 다루는 논문인 Deep learning – Method overview and review of use for fruit detection and yield estimation 에 대하여 리뷰하는 시간을 가져보겠다.



기존의 객체 인식

인공지능에서 객체 인식이라 하면 가장 먼저 등장하는 내용은 컴퓨터 비전 (Computer Vision, CV)이다. CV는 1960년대 후반부터 연구가 시작되었다. 하지만 농업에서의 CV에 대한 연구가 시작한 것은 그리 오래 되지 않았다.

우리는 여기서 딥러닝의 시작에 대해서 엿볼 수 있다. 딥러닝은 그래픽 처리장치 (Graphics Processing Unit, GPU)의 등장으로 그 발전이 가속화 될 수 있었다. 앞에서 기존 머신러닝 기법에서 감당하기 어려웠던 연상량을 극복하여 더 딥 (deep)한 모델을 만들 수 있게 되었다고 했다. 이는 수만개의 코어수로 연산을 병렬로 처리하여 많은 양의 연산을 빠르게 할 수 있는 GPU의 등장이 있었기 때문이다.

Labelme의 등장으로 쉽고 빠르게 이미지의 레이블링과 어노테이션이 가능해졌으며, 이는 라이트 유저 또한 이미지만 있다면 인공지능 학습을 할 수 있게 되었고, PASCAL-VOC, COCO 데이터셋과 같이 수십만장의 레이블링 및 어노테이션 된 훈련용 이미지 데이터 셋을 제공함으로서 최첨단 딥러닝 프레임워크의 발전이 가속화 되었다.



2. CNN and deep learning – A background

배경 (Background)



VGGNet

VGGNet은 작은 필터 크기와 더 많은 convolution layer(16-19 layers)를 사용하여 엄청난 메모리 요구량으로 인해 너무 많은 연산량을 요구했다. 더 많은 레이어(더 깊은 모델)의 사용은 정확성을 위해 연산 속도를 희생해야했다.

image



GoogleNet

GoogLeNet은 inceptio modules를 도입했고 더 깊었지만 (22 layers), 계산적으로 효율적이었다. A basic inception module은 같은 layer에서 작동하는 여러 크기의 필터로 구성됨.

image



ResNet

ResNet은 더 깊은 (최대 152 layers) 네트워크에 대한 효율적인 학습을 위해 residual learning 프레임워크를 사용했다. ResNet은 더 깊은 네트워크에서 정보가 손실되지 않고 (vanishing gradient 없이) 흐를 수 있도록 ‘identity shortcut connection’을 특징으로 하는 residual blocks을 사용했다.

image



R-CNN Family

image



Mask R-CNN

2017년에 세분화(bounding box 내부의 각 물체에 대한 정확한 픽셀의 위치와 마스크)를 위해 Faster R-CNN의 확장으로 Mask-RCNN을 도입했다.

image



YOLO

image



3. Object (fruit) detection in images

과거 컴퓨터 비전의 객체 인식의 한계


과거 컴퓨터 비전의 객체 인식 방법



딥러닝을 이용한 객체 인식

딥러닝을 사용하면 feature 선택 및 classification 작업을 자동으로 수행하며, 많은 개체 클래스를 감지할 수 있다. 하지만 전통적인 컴퓨터 비전을 사용하면 이는 어려울 것이다.


딥러닝 모델의 객체 인식 과정

  1. 이미지 전처리 (이미지 크기 조정, 이미지 데이터 정규화 등)

  2. 가설 생성 (ex: 각 위치에서 테스트 패치, 패치 또는 주요 지점에서 투표, 검색 알고리즘을 사용하여 지역 기반 제안과 같은 객체를 포함하는 가능한 영역을 생성)

  3. 점수 가설 (객체에 대한 확률/신뢰 수준 할당 • 분류기를 사용하여 특정 클래스/카테고리에 속하도록)

  4. 결과 (ex: 클래스 신뢰 임계값(threshold)을 사용하여 낮은 채점 가설을 제거하고, 객체당 하나의 상자를 할당하여 여러 중복 감지를 억제”



CNN 모델의 구성

image



CNN 모델의 구성

image


imageCNN Layer



CNN 모델의 구성

image



4. Deep learning object detection framework

Sliding Window


heuristic Selective Search algorithm



Two stage detection

image


image



One stage detection

image