본문 바로가기
Computer Science/Deep Learning

컴퓨터 비전 입문

by BaekDaBang 2024. 4. 10.

1. 컴퓨터 비전

사람과 인공지능 시스템의 인지 기능

사람은 다섯 가지 인지 기능을 통해 주변 환경을 인식하고 경험

인간을 모사해서 만든 인공지능 시스템은 애플리케이션에 따라 시스템이 처한 세계를 가장 잘 이해할 수 있는 감지 시스템을 선택

 

인공지능 시스템(AI system)의 핵심 개념

자신의 주변 환경을 인식하고, 그 인식을 기반으로 행동을 취하는 것(사용자에게 결과를 도출)

 

컴퓨터 비전의 개념

시각은 세계를 이해하기 위한 한가지 수단으로 컴퓨터 비전은 시각적 인지를 다루는 분야

영상과 비디오를 이용해 세계를 인식하고 이해하는 분야

 

(1) 시각적 인지(Visual Perception)란 무엇인가?

주변 환경을 스캔하는 것만으로 인지라 말할 수 없으며, 시각적 입력을 통헤 주변에 위치한 사물과 그 상태를 이해하는 것

시각적 입력(Visual input)으로 패턴을 관찰하는 행위

예 : 자율주행 자동차의 보행자 인식, 차선 인식, 신호등 상태 인식 등

 

(2) 비전 시스템(Vision Systems)

컴퓨터 비전 시스템의 정의

(전통) 이미지 처리 기법만 컴퓨터 비전 시스템의 전부

(최근) 이미지 처리 기법 뿐만 아니라 이미지를 통해 어떤 일이 일어났는지 이해하는 것을 포함

 

사람의 시각 시스템 (Human Vision Systems)

이미지를 받아들이는 시각센서인 눈이미지를 해석하는 뇌로 구성

시스템의 출력은 이미지에서 얻은 데이터를 기반으로 한 이미지 요소에 대한 예측 결과

 

인공지능의 비전 시스템 (AI Vision Systems)

인공지능 비전 시스템 연구는 사람의 시각 시스템을 착안

최근 사람의 시각 능력을 머신으로 복제하는 놀라운 일을 해냄

인공지능 비전 시스템 역시 눈의 역할을 하는 감지 장치와 뇌의 기능을 맡아 이미지를 해석하는 알고리즘, 두 가지 요소로 구성됨

 

(3) 감지 장치 (Sensing devices)

비전 시스템은 특정 테스크를 수행하도록 설계되었으며, 시스템의 목적에 맞는 감지 장치를 선택하는 것이 중요

비전 시스템은 단일 감지 장치 혹은 감지 장치들의 조합을 통해 주변 환경 정보를 얻음

예 : 카메라, 레이다, 엑스레이, CT스캔, 라이다 등

 

자율주행 자동차

라이다 : 고해상도 3D 지도 제작 및 위치를 인식할 때 사용

카메라 : 교통 표지판이나 도로의 표시를 인식할 때 사용

레이다 : 사물의 거리와 현재 속도를 인식할 때 사용

 

의학 진단 영역

엑스레이나 방사선 단층 촬영을 감지 장치로 사용

 

농업용 시각 시스템

또 다른 유형의 레이다

 

(4) 해석 장치

해석 장치는 감지 장치에서 출력된 이미지를 전달받아 사물을 인식할 수 있는 특징과 패턴을 학습하는 시각 시스템의 뇌와 같은 역할을 담당

일반적으로 컴퓨터 비전 알고리즘이 해석 장치의 역할을 담당

최근 우리의 뇌로부터 영감을 받아 뇌의 동작을 분석하는 방법으로 인공 뇌(인공 신경망(ANN))를 만드려 시도

 

과학자들은 생물학적 뉴런의 학습 능력을 모방해서 뉴런을 서로 연결한 구조를 만듦

사람의 뇌에서 일어나는 정보 처리 과정을 그대로 모방한 인공 뉴런은, 입력된 신호가 일정 이상 활성화되면 자신과 연결된 모든 뉴런에 신호를 일으킴

각각의 뉴런은 매우 단순한 구조를 가졌지만 뉴런 수백만 개를 모아 서로 연결하고 층을 구성하면 학습 능력을 보이게 됨

 

여러 층을 가진 신경망을 만드는 기법을 딥러닝이라고 함

딥러닝 기법은 뉴런으로 구성된 층에 데이터를 통과시켜 데이터를 여러 번 변환하는 방법으로 데이터의 표현(representation)을 학습

딥러닝 구조의 종류 : 인공 신경망(ANN), 합성곱 신경망(CNN), 순환 신경망(RNN), 트랜스포머(Transformer) 등

 

(5) 머신러닝 성능이 사람을 능가할 수 있을까?

이미지 분류나 사물 인식 영역에서 사람의 시각적 능력(에러 5%)를 능가

미국 콜로라도주의 한 미술대회에서 디지털 아트 부문 1위를 차지한 AI 화가

 

2. 컴퓨터 비전의 응용 분야

이미지 분류, 사물 인식/물체 검출, 화풍 모방하기, 새로운 이미지 창조하기, 안면 인식, 이미지 검색, etc...

(1) 이미지 분류

이미지 분류(Image Classification)는 미리 정의한 유한한 수의 레이블을 이미지에 분류

 

(2) 사물 인식/물체 검출

분류(classification)는 단일 물체가 찍힌 이미지를 인식(분류)

분류 및 위치 인식(classification & localization)은 단일 물체를 인식하고 위치까지 파악

물체 검출(object detection)은 이미지 안에서 다중 물체를 인식하고 위치까지 파악

 

(3) 화풍 모방하기

신경망을 이용한 화풍 모방 기법(Neural style transfer)은 원본 이미지에 특정 스타일을 입혀 새로운 형태의 이미지를 생성

 

(4) 새로운 이미지 창조하기

적대적 생성 신경망(GAN)은 진짜 같은 사람, 사람, 장소의 이미지를 만들어낼 수 있는 딥러닝 모델

GAN에 일련의 이미지를 입력하면 기존에 없던 새로운 것이지만 원래 있던 것 같은 이미지를 만들어냄

GAN은 이안 굿펠로가 2014년 고안한 CNN을 발전시켜 만든 모델 중 하나

 

(5) 안면 인식

안면 인식(face recognition)은 사람의 이미지를 정확하게 식별하거나 태그를 지정하는 기술

안면 인식은 아주 많은 수의 레이블이 정의된 이미지 분류

웹에서 유명인의 사진을 찾거나, 친구 또는 가족과 함께 찍은 사진의 자동 태깅에 활용

 

안면 인식 시스템은 다음과 같이 두 부류로 분류

  • 안면 대조(face verification) : 질의 안면 이미지와 하나의 후보를 비교해서 신원 일치를 확인하는 일대일 매칭 과정
  • 안면 식별(face identification) : 질의 안면 이미지를 데이터베이스와 비교해서 일치하는 후보를 식별하는 일대다 매칭 과정

 

(6) 이미지 검색

이미지 검색(image retrival)은 질의 영상과 유사한 영상을 찾는 기술

전자상거래 사이트에서 이전에 선택한 상품과 생김새가 비슷한 상품을 찾는데 활용

 

3. 컴퓨터 비전 파이프라인 전체 처리 과정

컴퓨터 비전 시스템

비전 시스템은 감지 장치와 해석 장치로 구성

 

컴퓨터 비전 파이프라인

컴퓨터 비전은 여러 분야에 응용되지만 비전 시스템은 일련의 서로 구분되는 단계를 거쳐 이미지를 분석하고 처리하며, 이를 컴퓨터 비전 파이프라인이라고 함

대부분의 비전 시스템은 이미지와 데이터를 획득하고, 데이터를 처리한 다음 분석 및 인식 과정을 거쳐 추출된 정보를 기반으로 예측

이미지 분류 예제에 컴퓨터 비전 파이프라인을 적용

이미지 분류 향상 방법

  • 1단계 반복 : 학습 이미지를 더 많이 입력
  • 2단계 반복 : 노이즈를 더 많이 제거
  • 3단계 개선 : 더 나은 특징 추출
  • 4단계 개선 : 분류 알고리즘 하이퍼파라미터 튜닝 혹은 분류 알고리즘 변경

 

4. 이미지 입력

(1) 함수로 나타낸 이미지

이미지는 2차원 영역을 정의하는 두 변수 x와 y의 함수 형태로 나타낼 수 있음

이미지는 격자를 채운 픽셀(이미지를 구성하는 기본 요소)로 구성

모든 이미지는 이미지 내 각 좌표의 빛의 강도를 나타내는 픽셀이 모여 만들어짐

회색조 이미지 → 좌표(x, y)에 위치한 픽셀의 빛의 강도는 F(x, y)

 

회색조 이미지의 픽셀이 숫자 하나로 표현된 것과 달리 컬러 이미지는 픽셀을 세 가지 색의 강도로 나타냄

RGB 색상체계에서는 빨간색의 강도, 녹색의 강도, 파란색의 강도 이렇게 3개의 숫자를 이용하여 픽셀을 나타냄

HSV나 Lab 같은 다른 색상 체계도 있지만 픽셀 값을 표현하는 방법은 모두 동일

RGB 색상 체계의 컬러 이미지 → F(x, y) = [red(x, y), green(x, y), blue(x, y)]

 

이미지를 함수로 나타내면 이미지 처리에 유용한 점이 많음

이미지를 F(x, y)로 생각할 수 있고, 수학적 연산을 통해 새로운 이미지 G(x, y)로 변환할 수 있음

 

(2) 컴퓨터가 보는 이미지

우리의 뇌는 이미지를 보는 즉시 모터사이클을 찍은 사진임을 알 수 있으나, 컴퓨터는 이 이미지를 픽셀값이 담긴 2차원 행렬로 보게됨

컴퓨터가 인식하는 이미지는 맥락이 전혀 없는 데이터 뭉치

(3) 컬러 이미지

표준 RGB 색상 체계를 사용하는 컬러 이미지에는 채널이 3개(빨간색, 녹색, 파란색)가 존재

컬러 이미지를 나타내려면 빨간색의 강도를 나타내는 행렬, 녹색의 강도를 나타내는 행렬, 파란색의 강도를 나타내는 행렬 등 3개의 행렬이 필요

컴퓨터의 컬러는 서로 다른 강도의 색상 세가지를 혼합한 것

세가지 색상을 서로 다른 강도로 합쳐 다양한 색을 만들 수 있음

 

5. 이미지 전처리

(1) 컬러 이미지를 회색조 이미지로 변환

비전 시스템에서 계산 복잡도를 낮추기 위해 불필요한 정보를 제거해야 하는 경우가 존재

이미지에서 대상을 인식(사물의 모양이나 특징을 활용)하는 것이 목적이라면 컬러 이미지를 회색조 이미지로 변환하여 사용할 경우 계산 복잡도를 낮출 수 있음

의료 이미지에서 붉은 발진을 확인해야 하는 진단 시스템 또는 자율주행자동차의 차선 감지 시스템은 컬러 정보가 문제 해결에 큰 역할을 하기 때문에 계산 복잡도를 낮추기 위해 회색조 이미지로 변환하여 정보를 처리하는 것은 적절한 솔루션이 아님

 

(2) 기타

이미지 표준화

일부 머신러닝 알고리즘은 데이터셋의 이미지를 모두 같은 크기로 조정해야 한다는 제약이 존재하며, 이런 알고리즘에 이미지를 입력하려면 배율을 조정해서 이미지의 크기를 같게 만들어야 함

 

데이터 강화

기존 데이터셋에 포함된 이미지를 조금씩 변형하는 방식으로 새로운 데이터를 추가하는것

이미지를 변형하는 방법은 배율 조정, 회전, 아핀 변환 등을 주로 사용

추가한 데이터로 학습한 모델은 더 다양한 형태와 모양을 가진 대상도 인식할 수 있음

 

그 외 기법

이미지에 포함된 노이즈를 줄이기 위해 배경색을 제거

필요에 따라 이미지의 밝기를 조절

 

(3) 이미지 전처리 적용 방법

어떤 기법을 적용할지는 데이터셋과 해결하려는 문제가 무엇이냐에 따라 달라짐

실제 프로젝트 상황에 따라 필요한 기법을 선택하는 방법을 익히는 것이 좋음

 

6. 특징 추출

특징 추출

특징 추출(feature extraction)은 컴퓨터 비전 파이프라인의 핵심 요소

최근 딥러닝 모델의 발전으로 이미지에서 유용한 특징을 직접 추출하는 방식(handcraft feature)으로 대상을 명시적으로 정의할 필요는 없음

 

특징(feature)이란

(정형데이터 VS 속성/특성 VS 특징)

관찰된 현상에서 측정할 수 있는 속성이나 특성을 말함

머신러닝 모델은 특징을 입력 받아 예측 또는 분류 결과를 내놓음

예를 들어 (정형 데이터) 주택 가격을 예측할 때 면적, 방의 수, 욕실 등과 같은 속성을 입력하면 모델은 특징 값을 기반으로 예측한 주택 가격을 출력함

대상을 잘 드러내는 좋은 특징을 선택해야 머신러닝 알고리즘의 정확도를 높일 수 있음

 

(1) 컴퓨터 비전에서 사용되는 특징

(비정형데이터) 이미지에서 사용하는 특징이란 특정 대상(모터사이클, 자전거, 개 등)에만 해당하며 측정 가능한 데이터를 뜻함(예 : 모터사이클 - 두개의 바퀴)

선, 모서리, 이미지 조각 등 특이한 모양이 특징일 수 있고, 다른 것과 구분되는 색상도 특징이 될 수 있음

"좋은 특징"은 대상을 다른 대상과 쉽게 구분 짓게 해주는 속성을 의미함

 

좋은 특징 VS 나쁜 특징 예시

여러분에게 바퀴라는 속성을 알려준 후, 아래의 대상이 모터사이클과 개 중 무엇일지 물어보았다면? 

→ 두 사물을 구분할 수 있는 강력한 특징 (바퀴)

그러나 바퀴라는 속성을 알려준 후, 모터사이클과 자전거 중 무엇인지 물어보았다면?

추가적인 속성 필요 (번호판, 페달 등)

 

(2) 좋은 특징이란 무엇인가

일반화 가능한 특징

특징은 동일 대상에서 모두 찾아낼 수 있는 성질(반복성)이어야 함

예를 들어, 특징은 모든 모터사이클에서 찾아낼 수 있는 성질이어야 함

바퀴라는 특성의 경우, 입력 이미지의 일부를 그대로 복사한 것을 특징으로 사용할 수 없음

영상 내 대상 물체의 크기, 회전 등의 변환에도 대표성을 갖는 정보로 변환이 필요

 

사물 인식 분야에서 유용한 특징

다른 것과 구별될 것

추적과 비교가 쉬울 것

배율, 밝기, 각도가 달라고 일관적일 것

노이즈가 많은 이미지 또는 대상의 일부만 찍힌 이미지에서도 관찰 가능할 것

 

(3) 특징 추출하기 (자동 추출과 수동 추출)

사람이 직접 추출한 특징을 사용하는 기존 머신러닝 (수동 추출)

머신러닝 알고리즘이 제대로 성능을 낼 수 있는 특징을 선택하려면 대상 분야에 대한 도메인 지식을 갖춰야 함

  • 정형 데이터 : 데이터  속성/특성의 정의가 중요
  • 비정형 데이터 : 좋은 특징 정의가 중요

수동추출된 특징 SVM 또는 Adaboost 같은 분류기에 입력하여 예측 결과를 얻고 했음

 

수동추출된 특징의 예시

  • 하르 캐스케이드(Haar Cascades)
  • 크기 불변 특징 변환(SIFT)
  • 고속 강인한 특징 추출(SURF)
  • 기울기 방향성 히스토그램(HOG)

 

자동으로 추출된 특징을 사용하는 딥러닝 (자동 추출)

딥러닝 모델의 출현 이후 사람이 직접 특징을 추출할 필요가 없어짐

신경망이 자동으로 특징을 추출하고 뉴런 간의 연결에 부여된 가중치를 통해 출력에 미치는 각 특징의 중요도를 학습함

신경망은 특징 추출기와 분류기의 기능을 합친 것으로 볼 수 있으며, 특징 추출과 분류를 동시에 학습할 수 있음

이 점이 사람이 직접 추출한 특징을 필요로 하는 기존 머신러닝 모델과의 차이점임

 

7. 분류 학습 알고리즘

신경망 기반 이미지 분류

신경망은 이미지의 특징을 자동으로 추출하며 동시에 예측한 레이블을 출력하는 분류기 역할을 수행함

신경망의 마지막 층이 예측 결과 레이블을 출력하는 분류기 역할을 수행함

신경망의 층수가 깊을수록 데이터셋에서 더 많은 특징을 학습할 수 있음

 

8. 마치며

사람의 시각 시스템과 컴퓨터의 비전 시스템은 모두 감지 장치(sensor)와 해석 장치(interpreter)로 구성됨

해석 과정은 데이터 입력, 데이터 전처리, 특징 추출, 모델 생성으로 구성됨

  • 컴퓨터비전 파이프라인

컴퓨터는 픽셀 값의 행렬 형태로 이미지를 이해함

  • 이미지를 x와 y의 함수 형태로 나타낼 수 있음
  • 회색조 이미지는 채널 1개, 컬러 이미지는 3개

이미지 처리 기법은 데이터셋과 해결하려는 문제의 종류에 따라 달라짐

  • 상황에 맞춰 컬러 이미지를 회색조로 변환하거나, 신경망 입력 크기에 맞게 이미지 크기를 조정하거나, 데이터를 강화하는 방법이 사용됨

특징은 이미지에 실린 대상을 이해(이미지 분류, 사물 인식/물체 검출, 화풍 모방하기, 새로운 이미지 창조하기, 안면 인식, 이미지 검색 등)하기 위해 사용되는 속성

  • 고전적인 머신러닝 알고리즘에는 사람이 직접 특징을 디자인하는 다양한 특징 추출 기법이 사용됨
  • 신경망 알고리즘에서는 머신이 디자인하는 특징이 사용됨

 

 

'Computer Science > Deep Learning' 카테고리의 다른 글

CNN(합성곱 신경망) ③ [CIFAR-10]  (0) 2024.04.14
CNN(합성곱 신경망) ② [MNIST]  (0) 2024.04.14
CNN(합성곱 신경망) ①  (1) 2024.04.13
딥러닝과 신경망 ②  (0) 2024.04.12
딥러닝과 신경망 ①  (0) 2024.04.11