7/14/2025

컴퓨터 비전에서 일어나는 모든 일

컴퓨터 비전에 대해서 요즘 관심이 많다. 과거에는 기계는 우리만큼 시각적 세계를 효율적으로 이해하지 못했다. 그러나 요즘은 상황이 다르다.


컴퓨터 비전은 컴퓨터가 이미지와 비디오를 시각적으로 어떻게 이해 할 수 있는지를 다루는 분야이다. 공학적 관점에서 컴퓨터 비전은 인간의 시각 체계가 수행할 수 있는 작업을 모방하고 자동화하는 것을 목표로 한다.


컴퓨터 비전은 AI를 활용하여 컴퓨터가 시각적 세계를 해석하고 이해하도록 훈련한다. 반세기 동안 컴퓨터 비전에 시각 기능을 부여하고자 과학자들은 노력해왔다. 그리고 이것이 컴퓨터 비전이라는 분야로 이어지게되었다. 컴퓨터 비전의 목표는 컴퓨터가 디지털 이미지와 비디오에서 고도의 이해를 도출할 수 있도록 하는 것이다. 그리고 이미 인간보다 능숙한 상황이 되었다.


이렇게 기술이 발전한 이유는

  1. 좋은 카메라가 장착된 모바일 기술 덕분에 엄청난 양의 사진과 비디오를 가지게 되었다.

  2. 컴퓨팅 능력이 발전하였고, 쉽게 접근할 수 있게 저렴해졌다.

  3. 비전용으로 설계된 특정 하드웨어와 도구가 누구나 이용 가능하게 되었다.

컴퓨터 비전 기술은 여러 분야에서 활용중이다. 그 중 몇 가지를 살펴보자.

첫째, 자동차 산업에서 많이 활용중이다. 자율 주행차는 AI 활용사례가 많으며 최근 몇 년동안 언론의 주목을 가장 많이 받았다. 자율주행 기술의 실제 결과보다는 미래 지향적인 개념이 더 강하기 때문일거다. 자율주행에는 컴퓨터 비전이 문제 해결의 중요한 핵심 요소이다. 례를 들어서 차량을 제어하는 알고리즘(에이전트)은 항상 차량 주변 환경을 인식해야 하기 때문이다.

에이전트는 도로의 상태, 주변 차량의 위치, 장애물 및 물체까지의 거리 그리고 해당 물체들이 움직이지는 등을 파악하여 끊임없이 변화하는 환경에 적응해야 한다. 이를 위해 자율주행차 에는 대형 카메라가 장착되어 있다. 촬영된 영상은 이미지 인식 알고리즘에 의해 실시간 모니터링된다. 이 알고리즘은 정적 이미지뿐만 아니라 끊임없이 흐르는 이미지에서도 관련 객체를 검색하고 분류할 수 있어야 한다.


이 기술은 이미 사용되고 있다. 자율 주행의 도로 교통의 문제는 복잡성, 변동성 그리고 예외 상황에서 에이전트의 잠재적인 실패 가능성을 배제할 수 있도록 알고리즘을 훈련하는 어려움에서 비롯된다. 막대한 양의 훈련 데이터가 필요하고 이를 생성하는데 드는 높은 비용이 컴퓨터 비전의 아킬레스건이다.

둘째, 아마존과 같은 온라인 쇼핑몰은 디지털 플랫폼의 분석 기능을 활용하여 고객 행동을 세부적으로 분석하고 사용자 경험을 최적화한다. 지금까지는 진열된 상품과 고객의 상호작용을 자동으로 포착하는 도구가 부족했다. 컴퓨터 비전을 활용하면 어려움을 해소할 수 있다.


기존 보안 카메라와 결합하면 알고리즘이 자동으로 영상 자료를 평가하고 고객 행동을 분석할 수 있다. 예를 들어서 매장 내 현재 인원을 언제든지 파악할 수 있다. 각 진열대와 제품이 고객의 관심을 얼마나 받는지 추적하고, 사람들의 시선 방향을 감지하여 지나가는 사람들이 특정 물건을 얼마나 오랫동안 보는지 측정할 수 있다. 이런 개념은 RMN(Retail Media Network)에서도 활용될 수 있다.


이 기술의 도움으로 매장 내 고객 행동을 세부적으로 평가할 수 있게 되었다. 물론 카메라에 들어가는 비용은 존재한다. 도입 시 매장내 체류 시간 및 동선등을 고려하여 매출 증가 요소를 찾는다면, 꽤 괜찮다고 생각한다.


셋째, 현대 기술 덕분에 농부들은 더 넓은 밭을 효율적으로 경작할 수 있게 되었다. 그리고 경작하는 지역에 해충과 식물 질병이 없는지 반드시 확인해야 한다. 간과할 경우 식물 질병으로 인해 수확량 손실과 흉작이 발생할 수 있기 때문이다.

머신러닝은 드론, 위성 이미지, 원격 센서를 활용하여 방대한 양의 데이터를 분석할 수 있기 때문에 매우 유용한 도구이다. 농부들이 넓은 밭에 광범위하게 작물을 경작하더라도 토양 상태, 관개 수위, 작물 건강 상태, 지역 기온을 24시간 내내 파악할 수 있다. 머신러닝 알고리즘은 이러한 데이터를 분석하여 농부가 잠재적인 문제 발생 지역을 조기에 대응하고 가용 자원을 효율적으로 분배할 수 있도록 지원한다.


이미지 자료 분석을 통해 식물 질병을 조기에 감지 할 수 있다. 불과 몇 년 전만 해도 식물 질병은 이미 확산될 수 있는 단계에 이르러서야 발견되는 경우가 많았다. 하지만 이제는 컴퓨터 비전 기반 조기 경보 시스템을 통해 광범위한 확산을 조기에 감지하고 차단 할 수 있다.


이제, 컴퓨터 비전이 작동하는 원리에 대해서 알아보자.

  • 컴퓨터의 이미지는 픽셀 격자 형태로 저장된다. 각 픽셀은 색상으로 정의되며, RGB(Red Green Blue)의 세 가지 원색의 조합으로 저장된다. 이 색상들은 다양한 명암으로 조합되어 다양한 색상을 표현한다.
  • 축구장에서 밝은 주황색 축구공을 추적하는 간단한 알고리즘을 생각해보자. 이를 하기 위해 가장 가운데 픽셀의 RGB 값을 사용한다. 이 값을 저장한 후, 컴퓨터 프로그램에 이미지를 제공하여 색상이 가장 일치하는 픽셀을 찾도록 할 수 있다. 알고리즘은 각 픽셀을 확인하여 목표 색상과의 차이를 계산한다. 모든 픽셀을 확인한 결과, 가장 일치하는 픽셀은 주황색 공의 픽셀일 가능성이 높다. 이 알고리즘을 비디오의 모든 프레임에 대해 적용하여 시간 경과에 따라 공을 추적할 수 있다. 그러나 네덜란드 축구팀처럼 유니폼이 주황색이라면 알고리즘이 혼란 스러울 수 있다. 이 경우에는 이 방법은 적합하지 않다. 공을 구분할 수 있어야 한다.
  • 이미지에서 이런 특징을 식별하기 위해 컴퓨터 비전 알고리즘은 패치라고 불리는 작은 픽셀 영역을 고려해야 한다. 오늘날 이 분야에서 인기 있는 알고리즘은 합성곱 신경망(CNN)이다.
CNN에 대해서 알아보도록 하자.

  • 인공 뉴런은 신경망의 구성 요소이다. 일련의 입력을 받아 각 입력에 지정된 가중치를 곱한 다음에 그 값들을 모두 더한다. 입력 가중치는 커널 값과 동일하지만, 미리 정의된 커널과 달리 신경망은 이미지에서 흥미로운 특징을 인식할 수 있는 유용한 커널을 스스로 학습할 수 있다.
  • CNN은 뉴런 뱅크를 사용하여 이미지 데이터를 처리하고, 각 뉴런은 서로 다른 학습된 커널에 의해 새로운 이미지를 출력한다. 이후 뉴런 계층에서 처리되어 반복적인 합성곱 연상을 가능하게 한다.

  • 첫 번째 합성곱 계층은 모서리와 같은 것을 찾고, 다음 계층은 모서리와 같은 모서리로 구성된 간단한 모양을 인식하기 위해 모서리 특징을 합성곱할 수 있다. 다음 계층은 모서리 특징을 합성곱하고, 입과 눈썹과 같은 간단한 물체를 인식할 수 있는 뉴런을 포함할 수 있다. 이런 과정이 계속 반복되면서 복잡성이 증가하여 눈, 귀, 입, 코 등 모든 특징을 인식하고 “얼굴입니다.” 라고 말하는 계층이 나타나게 된다.

  • 얼굴을 분리한 후에는 전문화된 컴퓨터 비전 알고리즘을 적용하여 코끝이나 입꼬리와 같은 얼굴의 랜드마크를 정확하게 찾아낼 수 있다. 이를 통해 눈을 뜨고 있는지, 눈썹의 위치 등을 파악할 수 있는데, 랜드마크가 있으면 이러한 파악이 쉽다. 눈과 눈썹 사이의 상대적인 거리를 비교하여 놀라움이나 기쁨을 표현할 수 있다.

  • 이 모든 정보는 감정 인식 알고리즘을 통해 해석될 수 있으며, 이를 통해 컴퓨터는 기본적인 “기분”을 추론할 수 있다. 이는 컴퓨터가 주변 환경을 인식하는 맥락 인식 능력을 향상시키는데 도움이 될 수 있다.


CNN은 여러 층으로 구성될 필요가 없지만, 복잡한 사물과 장면을 인식하기 위해서는 일반적으로 여러 층으로 구성된다. 이러한 기술을 딥러닝이라고 한다.


이제 컴퓨터 비전에 사용되는 주요 도구를 살펴보자.


1. OpenCV

OpenCV는 컴퓨터 비전과 머신 러닝을 위한 다양한 기능을 담고 있는 오픈 소스 컴퓨터 비전 라이브러리이다.


Intel에서 개발하여 2000년에 처음 출시하였고, 얼굴 감지 및 인식, 객체 식별, 움직이는 객체 모니터링, 카메라 움직임 추적, 눈 움직임 추적, 객체의 3D 모델 추출, 풍경을 활용한 증강 현실 오버레이 생성, 이미지 데이터베이스에서 유사한 이미지 인식 등 다양한 작업을 수행할 수 있는 알고리즘을 갖추고 있다.


OpenCV는 C++, Python, Java, Matlab 등에 대한 인터페이스를 갖추고 있으며 Windows, Android, Mac OS, Linux 등 다양한 운영체제를 지원한다.


2. 텐서플로우

텐서플로우는 컴퓨터 비전을 포함한 AI 및 머신러닝을 위한 다양한 도구, 라이브러리, 리소스등을 제공하는 오픈소스 플랫폼이다. 구글 브레인팀에서 개발하여 2015년에 처음 출시되었다. 텐서플로우는 얼굴인식, 객체 식별 등 컴퓨터 비전 관련 머신러닝 모델을 구축하고 학습하는 데 사용할 수 있다. 구글은 또한 2017년에 모바일 기기용 이미지, 비전 및 인공지능 프로세서인 픽셀 비주얼 코어(PVC)를 출시했다.


Pixel Visual Core는 머신 러닝을 위한 텐서플로우도 지원한다. 텐서플로우는 Python, C++, C, Java, Javascript, Go, Swift 등의 언어를 지원하지만 API 하위 호환성은 보장하지 않는다. Matlab, C#, Julia, Scala, R, Rust 등을 위한 서드파티 패키지도 존재한다.


3. Matlab

Matlab은 1984년 MathWorks에서 개발한 수치 컴퓨팅 환경이다. Matlab에는 컴퓨터 비전을 위한 다양한 알고리즘과 함수를 제공하는 컴퓨터 비전 툴박스가 포함되어 있다. 여기에는 객체 감지, 객체 추적, 특징점 감지, 특징점 매핑, 3차원 카메라 보정, 3차원 재구성 등이 포함된다. YOLO v2, ACF, Faster R-CNN 등의 머신 러닝 알고리즘을 사용하여 Matlab에서 사용자 정의 객체 감지기를 만들고 학습시킬 수도 있다. 이런 알고리즘은 멀티코어 프로세서와 GPU에서 실행하면 훨씬 더 빠르게 실행할 수 있다. Matlab 툴박스 알고리즘은 C, C++을 지원한다.


4. CUDA

CUDA(Compute Unified Device Architecture)는 엔비디아에서 개발하여 2007년에 출시한 병렬 컴퓨팅 플랫폼이다. 소프트웨어 엔지니어는 CUDA 지원 그래픽 처리 장치인 GPU를 사용하여 범용 프로세싱을 수행한다. CUDA는 이미지, 신호 및 비디오 처리를 위한 다양한 함수를 포함하는 엔비디아 퍼포먼스 프리미티브 라이브러리도 제공한다.


다른 라이브러리와 컬렉션으로는 GPU4Vision, CUDA 기반의 OpenVIDIA, 컴퓨터 비전을 위한 최소 GPU 라이브러리인 MinGPU 등이 있다. 개발자는 CUDA를 사용하는 동안 C, C++, Fortran, Matlab, Python 등 다양한 언어로 프로그래밍 할 수 있다.


5. SimpleCV

SimpleCV는 다양한 컴퓨터 비전 애플리케이션 구축에 사용할 수 있는 오픈소스 컴퓨터 비전 프레임워크이다. SimpleCV는 간단하며 파일 형식, 버퍼 관리, 색 공간, 고유값, 비트 심도, 행렬 저장, 비트맵 저장 등 CV 개념을 심도 있게 배우지 않고도 OpenCV와 같은 다양한 고급 컴퓨터 비전 라이브러리를 사용할 수 있다. SimpleCV는 웹캠, 스마트폰 등의 이미지나 비디오 스트림을 사용하여 컴퓨터 비전을 실험할 수 있도록 지원한다.


간단한 프로토타입 제작이 필요할 때 가장 적합한 프레임워크이다. SimpleCV는 Mac, Windows, Linux 운영체제에서 사용할 수 있다.


6. GPUImage

GPUImage는 이미지, 실시간 모션 비디오, 영화에 GPU 가속 효과와 필터를 적용할 수 있는 프레임워크 또는 iOS 라이브러리이다. OpenGL ES 기반으로 구축되었다. GPU에서 사용자 지정 필터를 실행하려면 설정 및 유지 관리에 많은 코드가 필요하지만 GPUImage는 이런 코드를 줄이고 작업을 자동으로 처리한다.


지금까지 관련 도구들을 살펴보았다. 도구를 사용하여 직접 구현하는 방법도 있지만, 서비스를 이용하는 방법도 존재한다. 서비스에서 제공하는 컴퓨터 비전에 대해서도 알아보자.


1. 마이크로소프트 애저

Microsoft API를 사용하면 이미지를 분석하고, 이미지 속 텍스트를 읽고, 비디오를 거의 실시간으로 분석할 수 있다. 또한 성인 콘텐츠를 표시하고, 이미지 썸네일을 생성하고, 필기체를 인식할 수 있다.


2. Google Cloud Vision API

Google Cloud Vision API를 사용하면 개발자는 강력한 머신러닝 모델을 애플리케이션에서 호출 가능한 간단한 REST API로 캡슐화하여 이미지 처리를 수행할 수 있다.


모바일 Vision API를 사용하면 기기내 비전 기술을 활용하여 사진과 비디오 속 객체를 감지할 수 있다. 또한 바코드와 텍스트를 스캔하고 인식할 수 있다.


3. Amazon Rekognition

Amazon Rekognition은 딥러닝 기반 이미지 및 비디오 분석 서비스로 애플리케이션에 이미지 및 비디오 분석 기능을 추가하는 것을 매우 쉽게 만들어준다. 이 서비스는 사물, 텍스트, 사람, 장면, 활동을 식별하고 부적절한 콘텐츠도 감지할 수 있다. 매우 정확한 얼굴 분석 및 감정 분석을 위한 얼굴 인식 기능도 제공한다.


내가 속한 곳은 이런 알고리즘을 연구하여 서비스하는 곳은 아니다. 응용하는 쪽에 적합하다. 따라서 이런 기술들이 어떤 매커니즘을 가지고 동작되는지는 알아야 하지만, 어떻게 응용할 것인지가 더 중요하다.


본 글은 이런 관점에서 정리했다.

Share:

잠깐, 글이 유익했나요?

Donate!

0 Comments:

댓글 쓰기