Image classification[lect 2-1]

Hesoyam·2021년 1월 4일
0

cs231n

목록 보기
1/3
post-custom-banner

이미지 분류에서 발생되는 문제 : Semantic Gap (의미적 차이)

Semantic Gap : 컴퓨터가 이미지를 볼때 3차원 배열의 값로 인식하기 때문에 생기는 문제들이 있다.

  • Viewpoint variation(시점 변화). 객체의 단일 인스턴스는 카메라에 의해 시점이 달라질 수 있다.
  • Scale variation(크기 변화). 비주얼 클래스는 대부분 그것들의 크기의 변화를 나타낸다(이미지의 크기뿐만 아니라 실제 세계에서의 크기까지 포함함).
  • Deformation(변형). 많은 객체들은 고정된 형태가 없고, 극단적인 형태로 변형될 수 있다.
  • Occlusion(폐색). 객체들은 전체가 보이지 않을 수 있다. 때로는 물체의 매우 적은 부분(매우 적은 픽셀)만이 보인다.
  • Illumination conditions(조명 상태). 조명의 영향으로 픽셀 값이 변형된다.
  • Background clutter(배경 분규). 객체가 주변 환경에 섞여(blend) 알아보기 힘들게 된다.
  • Intra-class variation(내부클래스의 다양성). 분류해야할 클래스는 범위가 큰 것들이 많다. 예를 들어 의자 의 경우, 매우 다양한 형태의 객체가 있다.


이미지 분류(Image Classification)가 유용한 분야

  • 의료 : 피부 발병의 진단, x-ray를 보고 악성 종용인지 아닌지 진단할 수 있다.
  • 천문학자 : 별들에 관한 시각적인 이미지를 망원경으로 얻은 후 분석할 수 있다.
  • 환경 관련 : 하늘에서 고래나 다른 동물들의 이미지를 찍은 데이터를 가지고 고래의 계절별 이동 등의 데이터 분석

이미지 분류 : Buildaing Block for other tasks

각 개체를 Block으로 구축하고 탐지하는것을 의미한다.
예시)


1. 귀여운 고양이 이미지에서 고양이를 찾고자 할때 Block을 구축해서 고양이를 찾을 수 있다.


2. Block 안에 개체가 없으니 Background이다.


3. Block 안에 개체가 있고 해당 개체는 배게와 고양이이다.

위의 고양이 사진에서 고양이를 탐지하기 위한 이미지 분류 과정을 간단하게 나타낸다면,

  1. 탐지를 시작할 이미지 준비
  2. Block으로 분류를 진행 + Block 내분의 물체가 없으므로 Background
  3. Block 내부의 고양이와 배게 각 물체를 탐지
    위와 같이 이미지 분류에서 Detection이란 Block으로 각각의 내부를 분류하는 것이다.

가장자리 감지 알고리즘 (edge detection algoruthm)으로 이미지 분류

  1. 이미지의 가장자리 데이터를 추출한다. [Find edges]
  2. 추출된 가장자리 데이터에서 어떤 부분이 어떻게 꺽이는지
    ex) 고양이의 뾰족한 귀, 특징있는 수염

=> 고양이에 대한 정보를 하드코딩해서 고양이인지 아닌지를 알 수 있다.


위의 방법처럼 찾고자 하는 대상의 정보를 세세하게 하드코딩할 경우 나타나는 문제!!

  1. 고양이 중에서 뾰족한 귀가 아닌 고양이나 수염이 다르게 생긴 경우 고양이 인지를 제대로 detection하지 못한다

  2. 다른 문제 즉, 고양이를 찾는 문제가 아닌 개나 소를 찾는다거나 아니면 아예 다른 분야인 의료나 환경과 같은 문제에선 매번 처음부터 다시 가장자리를 찾고 특징을 분석 해야한다는 문제가 발생한다.

해당 문제를 해결하기 위한 방법으로 나온 것이 바로 Data-driven 방법론이다.


Machine Learning : Data-driven approach(데이터 기반 방법론).

어떻게 하면 이미지를 각각의 카테고리로 분류하는 알고리즘을 작성할 수 있을까? 숫자를 정렬하는 알고리즘 작성과는 달리 고양이를 분별하는 알고리즘을 작성하는 것은 어렵다.

그러므로, 코드를 통해 직접적으로 모든 것을 카테고리로 분류하기 보다는 좀 더 쉬운 방법을 사용할 것이다. 먼저 컴퓨터에게 각 클래스에 대해 많은 예제를 주고 나서 이 예제들을 보고 시각적으로 학습할 수 있는 학습 알고리즘을 개발한다. 이런 방법을 data-driven approach(데이터 기반 방법론) 이라고 한다. 이 방법은 라벨화가 된 이미지들 training dataset(학습 데이터셋) 이 처음 학습을 위해 필요하다.

  • 데이터 기반 방법론은 단순히 하나의 문제를 해결하기 위한 방법이 아닌 다양한 문제를 해결하기 위해 나타난 방법이다.

cs231n을 보고 개인적으로 정리한 글입니다.
내용의 오류가 있을시 알려주시면 다시 해당 부분을 고치고 다시 정리하겠습니다.
profile
거북이가 되고 싶은 자라
post-custom-banner

0개의 댓글