컴퓨터 비전

컴퓨터 비전은 장치가 디지털 이미지와 동영상을 획득, 처리, 이해, 분석하여 유용한 정보를 추출할 수 있도록 지원하는 분야로 정의할 수 있습니다.

 

컴퓨터 비전이란?

컴퓨터 비전의 주요 목표는 우선 동영상과 스틸 이미지의 내용을 이해하는 것입니다. 그런 다음 이를 기반으로 유용한 정보를 형성하여 갈수록 다양해지는 여러 문제를 해결합니다. 인공지능(AI)과 딥 러닝의 하위 그룹인 컴퓨터 비전은 합성곱 신경망(CNN)을 훈련하여 인간의 시각적인 인식 능력을 구현하고 여러 용도에 적용합니다. 컴퓨터 비전에는 세분화, 분류, 탐지를 위해 이미지 및 동영상을 데이터로 사용하여 구체적으로 CNN을 훈련하는 것이 포함될 수 있습니다.

 Input image, convolutional layers, fully connected layer, and output class.


합성곱 신경망(CNN)은 수많은 용도를 위해 세분화, 분류, 탐지를 수행할 수 있습니다.

  • 세분화: 이미지 세분화는 자동차, 도로, 보행자 등의 특정 범주에 속하도록 픽셀을 분류하는 것입니다. NVIDIA DRIVE™ 소프트웨어 스택을 비롯한 자율주행차 애플리케이션에서 도로, 자동차, 사람 등을 표시하는 데 널리 사용됩니다. 즉, 컴퓨터가 하는 일을 인간이 더 쉽게 이해할 수 있도록 만드는 시각화 기술이라고 할 수 있습니다.
  • 분류: 이미지 분류는 이미지에 무엇이 있는지 알아내는 데 사용됩니다. 예를 들어, 개, 고양이나 다른 여러 가지 것을 상당히 정확하게 식별하도록 신경망을 훈련할 수 있습니다.
  • 탐지: 이미지 탐지를 통해 컴퓨터는 개체의 위치를 알아낼 수 있습니다. 많은 적용 사례에서 CNN은 관심 영역에 해당 개체를 완전히 포함하는 직사각형의 경계 상자를 그립니다. 또한 탐지기를 훈련하여 이미지 내에서 자동차나 사람이 어디에 있는지 알아내도록 할 수도 있습니다.

세분화, 분류, 탐지

    세분화 분류 탐지
    개체 묘사에 탁월 고양이인가요, 개인가요? 공간의 어디에 위치하나요?
    자율주행차에 사용 정확하게 분류 안전을 위해 사물 인식

컴퓨터 비전이 중요한 이유는?

컴퓨터 비전은 스포츠, 자동차, 농업, 소매, 은행, 건설, 보험 등 수많은 분야에 적용될 수 있습니다. 머신이 사물을 식별하는 데 사용되는 이미지 처리 수단인 합성곱 신경망(CNN) 덕분에 사람의 것과 같은 눈을 갖출 수 있게 됨에 따라 유형을 막론하고 AI 기반 머신의 성능이 향상되고 있습니다. CNN은 오늘날 자율주행차, 석유 탐사, 융합 에너지 연구 등에서 눈의 역할을 하고 있습니다. 의료 영상에서 신속히 질병을 발견하여 생명을 구하는 데 도움이 될 수도 있습니다.

전통적인 컴퓨터 비전 및 이미지 처리 기술은 수십 년간 수많은 애플리케이션과 연구 작업에 사용되어 왔습니다. 그러나 보다 높은 정확도를 제공하는 인공 신경망 기반의 최신 AI 기술이 등장하고 GPU 기반 고성능 컴퓨팅의 발전으로 인간을 능가하는 정확도에 도달하면서 컴퓨터 비전은 운송, 소매, 제조, 의료, 금융 서비스 등 산업 전반으로 광범위하게 확산되었습니다. 

기존의 형태든 AI 기반이든 컴퓨터 비전 시스템은 이미지와 동영상을 정교하게 세분화된 범주와 클래스로 분류하는 데 있어 사람보다 뛰어날 수 있습니다. 예를 들어, 의료 분야의 컴퓨터 단층촬영(CAT 촬영)에서 시간에 따른 미세한 변화를 탐지하여 분류할 수 있습니다. 이러한 측면에서 컴퓨터 비전은 사람이 할 수 있는 작업을 자동화한다고 말할 수 있지만, 훨씬 더 향상된 정확도와 속도를 제공합니다.

무궁무진한 현재 응용 사례와 잠재적 응용 사례를 고려하면, 컴퓨터 비전 기술 및 솔루션이 경이로운 수준으로 성장할 것으로 전망되는 것이 전혀 놀랍지 않습니다. 한 시장 조사에서는 전 세계 규모가 250억 달러에 이르는 2023년까지 이 시장이 매년 47%라는 놀라운 성장률을 기록할 것으로 내다봤습니다. 컴퓨터 과학 전체에서 컴퓨터 비전은 연구 개발이 가장 활발하게 이루어지고 있는 최고 인기 분야 중 하나로 꼽힙니다.

컴퓨터 비전의 작동 원리는?

컴퓨터 비전은 이미지를 분석한 다음, 합성곱 신경망(CNN)을 사용하여 '본' 것을 숫자 표현으로 변환합니다. CNN은 인공 신경망의 한 범주로, 합성곱층을 사용하여 입력을 필터링하고 유용한 정보를 반환합니다. 합성곱 연산에는 입력 데이터(특징 맵)와 합성곱 커널(필터)을 결합하여 변형된 특징 맵을 생성하는 작업이 포함됩니다. 합성곱층(conv층)의 필터는 특정 작업에 가장 유용한 정보를 추출할 수 있도록 학습된 매개변수를 기반으로 수정됩니다. 합성곱 신경망은 작업에 따라 최상의 특징을 찾을 수 있도록 자동 조정을 거칩니다. 일반적인 사물 인식 작업이 주어지면 CNN은 사물의 모양에 대한 정보를 필터링하겠지만, 새를 인식하는 작업이 주어지면 새의 색상에 대한 정보를 추출할 것입니다. 사물은 클래스마다 모양이 다르지만, 새는 종류별로 모양보다 색상에서 차이를 보일 가능성이 더 높다는 CNN의 이해를 기반으로 한 것입니다.

How a deep neural network sees

컴퓨터 비전의 업계 사용 사례

컴퓨터 비전의 사용 사례에는 이미지 인식, 이미지 분류, 동영상 레이블링, 가상 비서 등이 포함됩니다. 보다 인기 있고 눈에 띄는 컴퓨터 비전의 사용 사례 몇 가지를 꼽으면 다음과 같습니다.

  • 의료 분야: 의료 이미지 처리에는 환자를 적절히 진단하는 데 도움이 되도록 중요 이미지 데이터를 신속하게 추출하는 작업이 포함됩니다(예: 종양이나 동맥 경화의 재빠른 탐지). 컴퓨터 비전이 제공하는 진단에만 의존할 수는 없지만, 컴퓨터 비전은 오늘날 의료 진단 기술에 있어 매우 중요한 부분을 차지합니다. 적어도 의사가 판단을 강화하는 데 도움이 되고 컴퓨터 비전이 없었다면 보지 못했을 정보를 의사에게 제공하는 경우도 늘어나고 있습니다.
  • 자율주행차 분야: 컴퓨터 비전 연구가 매우 활발히 이루어지고 있는 또 다른 분야인 자율주행차는 전적으로 컴퓨터 비전 솔루션만으로 운행하거나 상당한 운행 향상을 달성할 수 있습니다. 이미 일반적으로 쓰이고 있는 응용 사례로는 차량 내 조기 경보 시스템 등이 있습니다.
  • 산업 분야: 제조업은 제조 공정 지원을 위해 컴퓨터 비전 솔루션을 사용하는 현재 사례와 잠재적 사례로 넘쳐납니다. 현재 사용 사례로는 결함을 찾기 위해 컴퓨터 비전 시스템으로 부품 및 완제품을 검사하는 품질 관리 작업을 들 수 있습니다. 농업에서는 컴퓨터 비전 시스템이 광학 분류를 사용하여 식품에서 원치 않는 물질을 제거합니다.

데이터 사이언티스트와 컴퓨터 비전
파이썬은 머신 러닝(ML)에 가장 널리 사용되는 프로그래밍 언어로, 대부분의 데이터 사이언티스트는 파이썬의 사용 편의성과 대규모 라이브러리에 익숙할 것입니다. 파이썬 라이브러리는 대부분 무료이고 오픈 소스입니다. 파이썬은 광범위한 ML 모델과 알고리즘을 지원하기 때문에 데이터 사이언티스트는 ML 시스템에서 파이썬을 사용하여 데이터 마이닝과 데이터 분석을 수행합니다. ML과 컴퓨터 비전 간의 관계를 고려하면, 데이터 사이언티스트는 확대되고 있는 컴퓨터 비전 애플리케이션을 모든 종류의 기업에 활용하여 이미지와 동영상에서 중요한 정보를 추출하고 데이터 기반 의사결정을 강화할 수 있습니다.

GPU를 사용하여 합성곱 신경망 가속화

구조적으로 볼 때, CPU는 단 몇 개의 코어와 많은 캐시 메모리로 구성되어 있어 한 번에 처리할 수 있는 소프트웨어 스레드가 적습니다. 반대로 GPU는 수백 개의 코어로 구성되어 있어 수천 개의 스레드를 동시에 처리할 수 있습니다.

 The difference between a CPU and GPU.

신경망은 수많은 동일 뉴런에서 생성되기 때문에 본질적으로 병렬성이 매우 높습니다. 이러한 병렬성은 당연히 GPU에 안성맞춤입니다. GPU는 데이터 병렬 산술 아키텍처를 제공하고 CPU만 사용하는 훈련에 비해 연산 속도가 월등히 뛰어납니다. 이러한 아키텍처 유형은 광범위한 이미지 데이터에 대해 비슷한 계산을 반복적으로 수행합니다. GPU는 단일 명령 복수 데이터(SIMD) 기능으로 인해 전체 이미지에 비슷한 계산을 수행하는 일이 많은 컴퓨터 비전 작업을 실행하는 데 아주 적합합니다. 특히 NVIDIA GPU는 컴퓨터 비전 작업을 크게 가속화하므로 CPU를 다른 작업에 사용할 수 있습니다. 뿐만 아니라 동일한 머신에 여러 개의 GPU를 사용할 수 있기 때문에 여러 컴퓨터 비전 알고리즘을 병렬로 실행할 수 있는 아키텍처를 만들 수 있습니다.

NVIDIA GPU 가속 딥 러닝 프레임워크

GPU 가속 딥 러닝 프레임워크는 파이썬과 같이 일반적으로 사용되는 프로그래밍 언어에 대한 인터페이스를 제공합니다. 이러한 프레임워크는 또한 맞춤형 CNN과 DNN을 쉽게 생성하여 탐색할 수 있는 유연성을 제공하는 동시에, 실험과 산업 배포에 필요한 빠른 속도를 제공합니다. NVIDIA CUDA-X AICaffe, Microsoft Cognitive Toolkit(CNTK), 텐서플로, Theano, Torch 등 널리 사용되는 딥 러닝 프레임워크와 기타 여러 머신 러닝 애플리케이션을 가속화합니다. 딥 러닝 프레임워크는 GPU에서 더 빠르게 실행되고 단일 노드 내에서 여러 GPU에 걸쳐 확장됩니다. 합성곱 신경망 훈련 및 추론 프로세스에 GPU 기반 프레임워크를 사용할 수 있도록 NVIDIA는 cuDNN과 TensorRT™를 각각 제공합니다. cuDNNTensorRT는 합성곱층, 풀링층, 정규화층, 활성화층과 같은 표준 루틴을 위해 고도로 튜닝된 구현을 제공합니다. 

단계별 NVCaffe 설치 및 사용 가이드를 보려면 여기를 클릭하세요. 합성곱 신경망의 빠른 C++/CUDA 구현은 여기에서 확인할 수 있습니다.

NVIDIA는 비전 모델을 바로 개발하고 배포할 수 있도록 비전 AI 개발자용 DeepStream SDK를 제공합니다. 여기에는 컴퓨터 비전 분야를 위한 정확하고 효율적인 AI 모델을 생성할 수 있도록 TAO 툴킷도 포함되어 있습니다.

Training versus Inference.

NVIDIA GPU 가속 엔드투엔드 데이터 사이언스

CUDA를 기반으로 하는 오픈 소스 소프트웨어 라이브러리인 NVIDIA RAPIDS™ 제품군을 사용하면 Pandas 및 Scikit-learn API와 같은 익숙한 인터페이스를 계속 사용하면서 엔드투엔드 데이터 사이언스 및 분석 파이프라인을 전적으로 GPU에서 실행할 수 있습니다.

End-to-end data science and analytics pipelines entirely on GPUs

다음 단계

CNN을 포함하여 다른 컴퓨터 비전 주제에 대한 심층 기술 분석 및 뉴스를 보려면 NVIDIA의 개발자 사이트를 확인해 보세요.

더 알아보기:

  • 컴퓨터 비전 및 이미지 처리 알고리즘은 연산 집약적입니다. CUDA로 가속화하면 애플리케이션이 인터랙티브 동영상 프레임 속도의 성능을 달성할 수 있습니다. 컴퓨터 비전 솔루션 랜딩 페이지에서는 컴퓨터 비전 분야에서 NVIDIA가 어떤 성과를 내고 있고 전체 워크플로를 어떻게 지원할 수 있는지를 강조하여 설명합니다.
  • NVIDIA Jetson Nano개발자 키트는 단 5와트로 실행되는 사용하기 편한 플랫폼에서 이미지 분류, 개체 탐지, 세분화, 음성 처리 등의 용도를 위해 여러 신경망을 병렬로 실행할 수 있게 해주는 작고 강력한 컴퓨터입니다.
  • NVIDIA는 딥 러닝 워크플로의 학습 및 추론 단계를 가속화하는 최적화된 소프트웨어 스택을 제공합니다. 더 자세한 내용은 NVIDIA 딥 러닝 홈페이지에서 확인해 보세요.
  • NVIDIA의 Deep Learning Institute(DLI)에서는 이미지 세분화 시작하기, 컴퓨터 비전을 위한 딥 러닝의 기초 등과 같은 교육 과정을 제공합니다.

더 많은 기술 정보는 다음을 참조해 주세요.