리스 그림슬리 (Reese Grimsley), 텍사스 인스트루먼트 시스템 애플리케이션 엔지니어
컴퓨터 비전은 인간의 시각을 컴퓨터에 구현하여 조립 라인 검사부터 운전자 보조 및 로봇에 이르는 애플리케이션을 구현하는 기술적 목표를 말한다. 컴퓨터는 사람처럼 시각과 이미지를 직관하는 능력이 부족하다. 대신, 우리가 도메인별 작업을 해결할 수 있는 알고리즘을 컴퓨터에 제공해야 한다.
이 기고문에서는 인간과 더 비슷하게 세상을 인식할 수 있도록 컴퓨터가 "보는" 관점에서 인공지능(AI)에 대해 알아본다. 특히 클라우드 기반 리소스에 의존하지 않고 로컬에서 데이터를 수집, 처리 및 작업하는 임베디드 시스템에서 각 유형의 컴퓨터 비전을 간략하게 비교하겠다.
컴퓨터 비전이란 무엇일까?
1960년대에 컴퓨터 비전은 페이지에서 텍스트를 읽고(광학 문자 인식) 원이나 직사각형과 같은 모양을 인식하는 작업을 수행했다. 이후 컴퓨터 비전은 데이터에서 의미를 인식, 합성 또는 추론하는 모든 컴퓨터 시스템을 포괄하는 AI의 핵심 영역 중 하나로 자리 잡았다.
컴퓨터 비전에는 세 가지 접근 방식이 있다.
- 기존의 컴퓨터 비전: 모션 추정, 파노라마 이미지 스티칭 또는 선 감지 등의 작업을 해결하는 프로그래밍된 알고리즘을 말한다. 기존의 컴퓨터 비전은 표준 신호 처리와 논리를 사용하여 작업을 해결한다. 엔지니어는 이미지에서 의미를 추출하는 함수를 직접 선택하고, 그 결과 생성된 특징을 알고리즘 내에서 사용하여 작업을 해결한다. 캐니(Canny) 에지 감지 또는 광학 흐름과 같은 알고리즘은 각각 윤곽선 또는 움직임의 벡터를 찾을 수 있어 이미지에서 물체를 분리하거나 후속 이미지를 추적하는 데 유용하다. 이 작업 또는 환경에 대해 보정이 필요한 매개 변수는 수동으로 조정하거나 지원 알고리즘을 통해 조정된다.
- 고전적인 기계 학습이 적용된 컴퓨터 비전: 기계 학습 모델을 훈련하는 기능 세트를 "제작"하는 전문가가 필요하다. 이러한 기능 중 많은 부분은 기존의 컴퓨터 비전 애플리케이션에 공통적으로 적용된다. 모든 기능이 유용한 것은 아니므로 유용하지 않은 기능을 제거하기 위한 분석이 필요하며, 기계 학습 알고리즘은 이러한 기능에 대한 학습을 통해 수작업으로 분리하기 어려운 패턴을 찾아낸다. 이러한 알고리즘을 효과적으로 구현하려면 기계 학습뿐만 아니라 이미지 처리에 대한 전문 지식이 필요하다.
- 딥 러닝이 가능한 컴퓨터 비전: 기계 학습이지만 대부분 처리되지 않은 "원시" 데이터에서 작동하는 매우 큰 신경망 모델에 적용된다. 딥 러닝은 기능 추출 작업을 모델로 가져와서 알고리즘이 기능 세트를 직접 만들 전문 지식 없이도 가장 유익한 기능을 학습하도록 함으로써 컴퓨터 비전에 큰 영향을 미쳤다. 딥 러닝은 미묘한 패턴을 더 잘 분리할 수 있지만 계산 및 메모리 요구 사항이 더 높다.
그렇다면 어떤 유형의 컴퓨터 비전이 가장 좋을까?
이는 궁극적으로 표 1에 요약된 몇 가지 요인에 따라 달라진다. 이는 광범위한 일반화로, 정확도 및 작업 복잡성과 같은 측정 기준은 사용 사례에 따라 달라진다.
관점 |
기존의 컴퓨터 비전 |
고전적인 기계 학습 |
딥 러닝 |
정확도 |
보통 |
보통 |
높음 |
전문 지식 필요 |
높음 |
높음 |
낮음 |
복잡한 작업에 대한 효과 |
낮음 |
보통 |
높음 |
계산 집약도 |
낮음 |
보통 |
높음 |
특정 작업 또는 환경에 맞게 조정하는 일반성 또는 단순성 |
낮음, 전문가 조정 필요 |
보통, 더 많은 데이터로 조정 |
높음, 더 많은 데이터로 조정 |
설명 가능성 |
높음 |
보통~낮음 |
낮음~없음 |
샘플 또는 학습 데이터 필요 |
낮음~없음 |
보통 |
높음 |
성장 및 연구 개발 관심도 |
낮음 |
낮음 |
높고 가속 |
표 1: 컴퓨터 비전 기술 비교
고전적인 기계 학습을 사용하는 컴퓨터 비전은 기존 방식과 딥 러닝 방식 사이에 위치하며, 다른 두 접근 방식에 비해 이점을 얻을 수 있는 애플리케이션의 수가 적다. 기존의 컴퓨터 비전은 단순하고 처리량이 많거나 안전이 중요한 애플리케이션에서 정확하고 매우 효율적일 수 있다. 딥 러닝은 가장 일반적이고 개발하기 쉬우며, 고밀도 설계를 위한 인쇄 회로 기판(PCB) 어셈블리 검증 중에 누락된 작은 부품을 식별하는 등 복잡한 애플리케이션에서 정확도가 가장 높다.
일부 애플리케이션은 여러 유형의 컴퓨터 비전 알고리즘을 함께 사용하여 서로의 약점을 보완하는 이점을 누릴 수 있다. 이 접근 방식은 운전자 보조 시스템과 같이 환경이 매우 가변적인 안전이 중요한 애플리케이션에서 일반적으로 사용된다. 예를 들어, 주변 차량을 추적하기 위해 딥 러닝 모델과 함께 기존 컴퓨터 비전 방법을 사용하여 광학 흐름을 도입하고, 알고리즘을 사용하여 결과를 융합하여 두 접근 방식이 일치하는지 확인할 수 있다. 그렇지 않으면 시스템이 운전자에게 경고하거나 안전 기동을 시작할 수 있다.
대안은 여러 종류의 컴퓨터 비전을 순차적으로 사용하는 것이다. 바코드 판독기는 딥 러닝을 사용하여 관심 영역을 찾고 해당 영역을 잘라낸 다음 기존의 컴퓨터 비전 알고리즘을 사용하여 디코딩할 수 있다.
컴퓨터 비전 애플리케이션에서 딥 러닝의 이점
딥 러닝은 기존의 컴퓨터 비전과 고전적인 기계 학습에 비해 연구, 오픈 소스 및 상업 커뮤니티에서 큰 인기를 끌면서 지속적으로 정확도가 높고 빠르게 향상되고 있다. 그림 1은 세 가지 기술에 대한 개발자 관점에서의 데이터 흐름의 차이를 정리한 것이다.
그림 1: 각 컴퓨터 비전 접근 방식에 대한 데이터 흐름
딥 러닝은 계산 집약적이다. 그러나 처리 능력, 속도, 가속기(신경 처리 장치 및 그래픽 처리 장치 등)의 개선과 행렬 및 벡터 연산에 대한 소프트웨어 지원의 향상으로 임베디드 시스템에서도 계산 요구 사항이 완화되었다. AM62A7과 같은 마이크로프로세서는 하드웨어 가속기를 활용하여 높은 프레임 속도로 딥 러닝 알고리즘을 실행한다.
컴퓨터 비전의 실제
AM62A7과 같은 TI AM6xA 포트폴리오의 프로세서에는 딥 러닝 가속 하드웨어와 기존 및 딥 러닝 컴퓨터 비전 작업을 위한 지원 소프트웨어가 포함되어 있다. 광학 흐름 및 스테레오 깊이 추정을 위한 C66x와 같은 디지털 신호 프로세서 코어와 하드웨어 가속기를 사용하면 TDA4VM 및 AM68PA와 같은 프로세서에서 고성능의 기존 컴퓨터 비전 작업도 수행할 수 있다.
기존 컴퓨터 비전과 딥 러닝 컴퓨터 비전을 모두 지원하는 프로세서를 사용하면 공상 과학 소설에서나 볼 수 있는 도구를 구축할 수 있다. 자동화된 쇼핑 카트는 쇼핑을 간소화하고, 수술 및 의료 로봇은 의사가 질병의 초기 징후를 발견하도록 안내하며, 모바일 로봇은 잔디를 깎고 소포를 배달한다. 임베디드 컴퓨터 비전이 세상을 어떻게 변화시키고 있는지 알아보려면 TI의 에지 AI 비전 페이지를 참고할 수 있다.
(원문보기)