CV(Computer Vision)는 ML, DL에 포함되지 않는 새로운 영역이다. 
다만, ML, DL과의 교집합은 분명히 존재한다 (부분집합이 아니다).
인공지능 분야

CV에는  두 가지의 definition이 있다. 

첫 번째는, scientific field로서 digital images로부터 "extract information" 정보를 얻는 것을 뜻한다. image로부터 얻은 정보의 종류는 identification, space measurements for navigation, augmented reality application에 따라 다양하다.

두 번째로는 "application" 적용이 있다. image를 이해 혹은 해석할 수 있는 algorithm을 만들고, 이를 적용하는 것이다. 

CV는 여러 학문의 분야가 서로 연관되어 있다. 특히 "Neuroscience"는 human vision을 이해하는데 많은 도움을 주었고, 이를 CV에 적용할 수 있도록 하였다. 또한, CV는 computer science, algorithm theory, machine learning의 부분인 측면도 있어서, 이를 통해 CV의 algorithm을 발전시켜 왔다.


그렇다면, CV는 왜 "hard problem" 어려운 문제로 여전히 연구되고 있는 분야일까?

우리 인간은 무의식적으로 하는 행동이, computer에게는 어렵기 때문이다.

 

예를 들어 보자. IBM이 1997년 Deep Blue를 개발하여 세계 chess왕인 Garry Kasparov를 처음으로 이긴 사건이 발생했다. 하지만 Deep Blue가 Kasparov를 chess에서 이겼다고 해서, 더 똑똑하다고 볼 수 있을까? 아니다! chess분야에서는 보다 intelligence 하다고 볼 수 있지만, poetry분야에서는 여전히 computer는 고전하고 있다. 이를 통해 인간이 intelligence의 기준으로 삼는 것이 종종 적절치 못한 경우가 있음을 알 수 있다.

 

다음으로, 3D modelling task와 Vision, 즉 object recognition task가 있을 때, 어떤 것이 더 어려울까? 인간에게 object는 단순히 눈으로 보면 인식되는 것에 불과하지만, 3D modelling은 어려운 문제이다. 반대로 computer에게는 3D modelling은 단순히 계산된 algorithm으로 하면 되지만, object recognition은 여전히 어려운 문제이다.

 

그렇다면 인간에게는 쉬운 일이, computer에게는 왜 어려운 것일까?

그 이유는, pixel과 "meaning" object의 의미를 파악하는 데의 그 "gap" 차이 때문이다. computer는 200x200 RGB image로 세상을 인식하고, 이는 120,000개의 숫자 값이다. 이 숫자들로부터 meaningful information을 얻기까지의 과정이 매우 어렵다. 인간의 경우에는 눈으로 인식된 image가 자연스럽게 neuron signal로 바뀌는데 반해, computer에게는 복잡한 algorithm에 대한 학습이 필요한 것이다.


CV의 첫 아이디어는 human vision을 이해하고, 이를 computer에게 적용시켜 보자는 데에서 탄생했다. 

먼저, Vision의 정의를 살펴보자.

Vision은 두 가지 속성을 가지고 있다.

 

먼저, "sensing device" 즉 image로부터 정보를 받아들이는 것이다. 인간은 눈으로부터 image를 받아들이고 이를 neuron을 통해 뇌로 전달한다. computer는 camera를 통해 image를 받아들이고 이를 pixel단위로 전송한다. 이 분야에서는 인간의 눈보다 computer가 더 우수하다고 볼 수 있다.

 

다음으로는 "interpreting device" 즉 "sensing device"로부터 얻은 정보로 의미를 추출하는 것이다. 인간은 뇌에서 여러 단계를 거치면서 이 작업을 수행하고, computer는 이 분야에서는 인간을 아직 따라오지 못하고 있다. 

 

Human Vision system에 대한 유명한 고전 논문인 1962년 Hubel&Wiesel이 고양이의 neuron을 촬영함으로써 동물이 사물을 인식하는 데에 대한 연구의 시작을 알렸다.

물론, 새를 모방한다고 인간이 날 수 있게 되는 것은 아닌 것처럼, computer도 인간을 모방한다고 인간처럼 될 수 있는 것은 아니다. 다만, 인간이 새를 연구하여 비행기를 발명한 것처럼, computer도 human vision에 대한 연구를 통해 얻은 insight로 발전해 갈 수 있다.


다음은 Vision의 task를 low level부터 high level까지 분류한 것이다. 

low level의 단순한 계산식 알고리즘에서, high level로 갈수록 인간의 인식 구조를 모방하려는 시도가 엿보인다. 

 

1. Low-level Vision

  • Capturing low feature of an image

 

  • Image pre-processing

 

2. Mid-level Vision

  • Reconstructing image, Estimating depth, Motion the image
    • scanned image
    • 3d reconstruction

 

3. High-level Vision

  • Making inference
    • image classification
    • activity recongnition

CV분야의 high-level Vision task가 어려운 이유이다. 세상의 모든 image가 증명사진인 것처럼 반듯하지 않듯이, real-world에서는 같은 object에 대해서 다양한 image를 얻을 수 있고, 이를 meaningful 한 object로 추출 및 인식하는 것은 computer에게 쉽지 않은 문제이다. 

 

4. Obstacles of CV

  • Viewpoint variation
  • Scale
  • Illumination
  • Occlusion (교집합, 맞물림)
  • Deformation
  • Background clutter (어수선함)
  • Different resolution
  • intra-Class variation

CV의 한계에도 불구하고, 많은 발전으로 real-world에서는 이제 다양한 방향으로 CV가 사용된다.

 

5. Application of CV

  • OCR(Optical Character Recognition) : 종이 위에 써 놓은 글씨를 인식하여 텍스트 데이터로 치환
  • Biometrics
    • FingerPrinting recognition
    • Face recognition
    • Iris(동체) recognition
  • self-driving Car
  • Advanced driver-assistance systems
  • Unattended convenience store
  • Annotation tool (=automatic tagging)
  • (medical) Diagnosis / Prediction
  • Artistic images / Face information (DeepFake)
  • VR / AR

참고자료

+ Recent posts