[Day1. 컴퓨터 비전(Computer Vision) 이란?]

요즘 딥러닝이나 데이터사이언스 분야 뿐만 아니라 컴퓨터 과학, 물리학, 수학 등 모든 학문에서 주목하고 있는 컴퓨터 비전에 대해서 알아보도록 하겠습니다. 주로 참고하는 서적은 "Hands-On Computer Vision with TensorFlow2" 이며 추가적으로 참고하는 글은 글 하단에 Reference 를 달아두도록 하겠습니다.

 

 

1. 컴퓨터 비전이란?

컴퓨터과학(알고리즘, 데이터 처리, 그래픽), 물리학(광학, 센서), 수학(미적분학, 정보이론), 생물학(시각, 신경) 등 여러 연구 개발 분야가 결합되어 정확한 정의가 어려움

눈 : 끊임없이 포착하는 시각 자극 판독 > 객체 구분 > 인식

컴퓨터 : RGB값 행렬인 픽셀의 한 덩어리. 그 이상의 의미를 갖지 않음

> 컴퓨터 비전의 목표 : 컴퓨터에게 생물학적 눈이 이해하는 방식 또는 그 이상의 방식으로 'RGB값 행렬 픽셀의 한 덩어리를 인식하고 이해하는 방법' 을 학습시키는 것.

실제로 컴퓨터 비전은 딥러닝이 부상한 이후 많은 발전을 이뤄냈으며 일부 분야에서는 인간을 뛰어넘는 성능도 나오고 있음

2. 컴퓨터 비전의 주요 작업 및 종류

1) 객체 분류 (classification)

사전에 정의된 집합의 이미지에 적절한 레이블(혹 클래스, 쉽게 말하면 이름)을 할당하는 작업

ex) 개 품종 분류

> 텍스트를 디지털화 하는 것(문자인식) 과 이미지 데이터베이스에 주석을 자동으로 다는 작업에 적용 가능

2) 객체 식별(recognization)

객체 분류 기법이 사전 정의된 집합에서 레이블을 할당하는 것이라면

객체 식별은 클래스의 특정 인스턴스를 인식하는 방법을 학습하는 것

ex) 얼굴을 포함하는 이미지 반환 : 사람을 식별하는 얼굴 특징에 중점을 두어 이미지들에서 그 얼굴을 식별함

3) 객체 탐지와 위치 측정 ( object detection + localization )

이미지 내의 특정 요소를 탐지하는 것. 대체로 이후의 계산을 위한 사전 준비 단계, 이미지를 분리해 분석 가능하도록 작은 크기의 이미지 배치 제공

4) 객체 및 인스턴스 분할 ( instance segmentation)

단순히 인식된 요소의 경계 상자를 제공하는 것이 아니라 특정 클래스 혹은 특정 클래스의 인스턴스에 속한 모든 픽셀에 레이블을 단 마스크를 반환

이의 성능은 사람보다 좋지 못함

5) 자세 추정 (pose estimation)

어떤 작업을 목표로 하느냐에 따라 다양한 의미를 가짐.

고정된 객체의 경우 일반적으로 3차원 공간에서 카메라를 기준으로 객체의 위치와 방향을 추정하는 것.

고정되지 않은 경우 자세 추정은 하부 요소들의 상대적인 위치를 추정하는 것을 뜻함. 구체적으로 고정되지 않은 타깃이 사람이라고 하면 일반적으로 사람의 자세를 인식하거나 수화를 이해하는 데 적용할 수 있음.

두 경우 모두 알고리즘은 2d 이미지 표현에 기반해 3d 환경에서 카메라 기준으로 그 요소의 실제 위치와 방향을 평가하는 작업 수행

3. 동영상 분석

컴퓨터 비전의 한 분야에는 단일 이미지 뿐만아니라 동영상에도 적용될 수 있음.

동영상 전체를 프레임단위(예: 1초 단위/ 자유롭게 설정 가능) 로 분석해야 하는 경우 어떤 작업에서는 시간적 일관성을 고려하기 위해 이미지 시퀀스를 전체로 고려해야 함

1) 인스턴스 추적(instence tracking)

동영상 스트림의 일부 작업은 순수히 각 프레임을 분리해 연구하면 되지만(망각성), 앞의 이미지에서 연역해서 새로운 프레임을 어떻게 처리할지 알려주거나 전체 이미지 시퀀스를 예측의 입력으로 취하는 것이 더 효율적.

추적(동영상 스트림에서 특정 요소의 위치를 추정)하는 것이 이러한 적업의 좋은 예

추적 : 프레임마다 탐지와 식별 기법을 적용함으로써 이뤄질 수 있음. 하지만 모든 프레임에서 인스턴스의 위치를 부분적으로 예측하기 위해 이전의 결과를 사용해 인스턴스의 움직임을 모델링하는 것이 더 효율적 (움직임의 연속성)

> 하지만 늘 그렇지는 않음 (예외 존재)

2) 행동 인식(action recognition)

이미지 시퀀스를 놓고 봐야만 하는 작업. 어떤 문장의 단어들이 서로 섞이면 문장을 제대로 이해할 수 없는 것과 마찬가지로 연속된 이미지 시퀀스를 갖고 있지 않고는 행동을 인식할 수 없음

행동 인식: 사전 정의된 집합 중 특정 행동을 인식하는 것. 이 기법은 감시부터 인간-기계 상호작용 등 까지 광범위한 분야에 적용됨

3) 움직임 추정 (motion estimation)

움직이는 요소를 인식하려는 대신, 일부 기법은 동영상에서 포착된 '실제속도/궤도를 추정'하는 데 집중함.

이 또한 표시된 장면과 관련해 카메라 자체의 움직임을 평가하는 것이 일반적. 이는 특히 엔터테이먼트 산업에 유용 (예 : 시각효과를 적용하기 위해 움직임을 포착 , 스포츠 방송에 3차원 정보를 입히는 것)

4) 콘텐츠-인식 이미지본

콘텐츠 분석 이외 이미지 자체를 개선하기 위해 적용가능. 기본 이미지 처리 도구는 시간이 지날수록 이미지 콘텐츠에서 사전에 획득한 지식을 사용해 시각 품질을 개선할 수 있는 더 똑똑한 기법으로 대체되고 있음. (예: 어떤 기법이 일반적으로 새가 어떻게 생겼는지 학습했다면 이 기법은 새가 찍힌 사진에서 자신이 얻은 지식을 적용해 잡음 대체 가능)

잡음 제거, 흐릿한 부분 제거, 고해상도 변환 등 모든 유형의 이미지 복원에 적용 가능

(예 : 스마트폰 인물사진 필터, 배경 제거 필터 등에서 사용)

5) 장면 복원

하나 이상의 이미지가 주어졌을 때 장면의 3차원 기하학적 구조를 복원하는 작업. (예: 사람 시력에서 스테레오 정합이라는 기능 : 시각화된 두 요소 사이의 거리를 구하기 위해 한 장면을 다른 시점에서 본 두 이미지의 대응점을 찾는 절차)

+ 더 진보 : 여러 이미지를 가져와 콘텐츠를 일치시켜 타깃 장면의 3차원 모델을 구하는 것. - 스캐닝에 사용 가능

 

References 

Planche, Benjamin , Eliot Andres , Hands-On Computer Vision with Tensorflow 2 , Packt Publishing (2019), chapter1. 
김정인 옮김, 『 실전!텐서플로2를 활용한 딥러닝컴퓨터비전 , 위키북스 (2020), chapter1. 

728x90
반응형