문의하기

이미지인식 엔진

이미지인식 엔진은 이미지에 포함되어 있는 객체들을 인식하고 인식된 결과를 바탕으로 이미지가 어떤 장면인지를 분류할 수 있는 엔진입니다. 이미지인식 엔진은 향후 앞서 소개한 시각기반 검색, 비디오 캡셔닝, 자율주행, 시각적 질의응답 등의 응용 분야에 적용하기 위한 기반 기능을 지원합니다. 솔트룩스는 현재의 이미지인식 엔진의 고도화를 통해 이미지를 단순 설명하는 수준을 넘어 이미지속 장면의 의미를 이해하는 수준으로 발전시켜 아래 그림과 같은 기술 스택을 달성할 계획입니다.

< 이미지인식 엔진 기술 스택 >

주요 특징

지식그래프를 활용한 보다 상세하고 정확한 이미지 이해
이미지인식 엔진은 이미지내 객체 인식을 통한 이미지 의미 이해 과정에서 지식그래프를 활용합니다. 단순히 단어나 문장을 태깅한 이미지를 학습하는 기존의 이미지인식 제품들에 비해 의미를 기반으로 하는 지식그래프와 연동을 통해 보다 상세하고 정확한 이미지 이해가 가능합니다.
도메인 특화된 이미지 이해
도메인 지식에 따라 이미지를 해석하는 기준이 다를 수 있습니다. 지식그래프를 기반으로 한 이미지인식 엔진의 경우 다양한 도메인에 대해 구축된 개별 지식그래프와 연동이 가능하여 각 도메인 지식에 특화된 이미지 이해 결과를 도출할 수 있습니다.

주요 기능 및 사양

이미지인식 엔진은 카메라 등을 통해 들어온 이미지를 실시간으로 처리해 상황을 인식하고, 인식된 정보를 응용 어플리케이션에 제공하는 역할을 합니다. 이를 위해 이미지에서 다양한 정보를 분석하는 시각 분석 모듈과 분석된 정보를 바탕으로 상황을 이해하기 위한 시각 이해 모듈로 구성될 수 있습니다.

< 이미지인식 엔진 구성도 >

의미 객체 분할 (Semantic Segmentation)
사진을 분석해 그 안에 있는 사물의 종류를 인식하는 이미지 인식 기술이 발전함에 따라, 인식된 사물이 어디에 위치하는지를 알아내는 object detection 기술이 발전하고 있습니다. Semantic Segmentation은 이미지 내 모든 점들이 어떤 사물에 속하는지 결정하여 나누는 기능으로, 각 사물(객체)의 경계(선)를 찾고, 정확한 범위를 알아내는데 사용됩니다.

< 객체 인식 및 객체 분할 예시 >

포즈 추정 (Pose Estimation)
포즈 추정은 인간의 해부학적 핵심 부분(Key point) 예를 들면, 머리, 목, 어깨, 무릎 등의 관절을 탐지하여 위치를 측정하고, 이를 통해 관찰 대상의 상태를 알아내거나 자세를 추정하기 위한 기술입니다.

< Pose Estimation의 예시 >

제스처 인식 (Hand Gesture Recognition)
제스처 인식은 카메라를 이용하여 획득한 시각 데이터의 영상 및 모션 등과 같은 특징 정보로부터 의미 있는 제스처를 추출하여 인식하는 기능입니다. 대표적으로 손 제스처 인식은 손의 포즈를 분석해 정해진 범주의 손 제스처를 인식합니다. 제스처 인식을 통해 클릭, 스크롤링 등과 같은 형태의 손의 움직임을 감지하여 직접적인 입력 없이도 의미를 해석할 수 있습니다.

< 손 제스처 인식의 예시 >

얼굴 특징 추출 (Face Landmark Detection)
얼굴 특징 추출은 얼굴의 주요 특징점(눈, 코, 입, 턱 선, 눈썹 등)을 탐지하고 추적하는 기능입니다. 이를 이용하면 머리 움직임과 표정으로 인한 강체 및 비 강체의 얼굴 변형을 보정할 수 있고, 얼굴에서 나타내는 의미를 파악할 수 있습니다.

< 얼굴 특징 추출 및 검증 예시 >

나이/성별 분류 (Age-Group/Gender Classification)
이미지에서 사람의 얼굴을 인식하고, 이를 대상으로 한 사람의 연령대나 성별을 분류하여 추정하는 기능입니다. 이 외에도 표정이나 감정 상태, 인종 등 여러 부가 정보도 식별이 가능합니다.

< 나이/성별 분류 예시 >

안면 인식 및 검증 (Face Recognition and Verification)
얼굴을 인식하여 누구인지 찾아내는 기능입니다. Face Recognition은 이미지에서 사람 얼굴을 인식하고, 미리 등록된 인물(얼굴) 정보들과 비교하여 어디에 속하는지 식별하는 작업이라면, Face Verification은 이미지에서 찾은 미리 등록된 얼굴 중 특정 얼굴과 일치하는지를 검증하는 작업입니다.

< 안면 인식 및 검증의 예시 >

Dnl 그림에서 보듯이 Face Recognition 과정에서 오류가 많으므로 이미지인식 엔진에서는 이를 보정하기 위한 Face Verification을 후처리 단계에서 사용합니다.
이미지 이해
이미지인식 엔진은 이미지에서 식별된 객체에 대해, 지식그래프를 활용하여 그 의미를 이해하는 이미지 이해 과정을 포함합니다. 일반적인 사실 정보뿐만 아니라 도메인 지식에 따라 달리 해석될 수 있는 특화된 이미지 이해 결과를 제공할 수 있습니다.
① Knowledge Graph for Fact
주어진 현상을 두 개의 대상과 relation을 결합해 triple로 표현하는 지식 표현 방법입니다. 미국 Stanford 대학에서 주도하는 Visual Genome Project에서도 사진을 분석해 얻어지는 세부적인 정보를 KG로 표현한 dataset으로 구축하고 있습니다. 이미지인식 엔진의 이미지 이해 모듈에서는 이미지 분석 모듈로부터 얻어진 다양한 분석 결과를 표현하기 위해 사실정보(fact)를 위한 KG를 사용합니다.
② Knowledge Graph for Domain Knowledge
이미지를 통해 상황을 보다 잘 이해하기 위해서는 fact 뿐만 아니라 이와 연관된 다양한 지식을 같이 고려해 주어야 합니다. 특히, 하나의 응용 서비스에서 이와 연관된 도메인 지식은 해당 분야에 특화된 이해를 위해서는 필수적입니다. 이미지 이해 모듈에서는 이를 위해 특정 도메인에 특화된 지식을 각 도메인 별 KG로 표현하고 각 응용 서비스에서 이를 fact를 위한 KG와 결합하여 사용할 수 있습니다.

주요 성능

앞서 소개한 이미지 인식 엔진의 각 기능들은 지속적인 연구 및 개발 진행 중에 있습니다. 현재까지의 SOTA(Status-Of-The-Art)는 아래 표와 같습니다.

분석 기능 데이터 셋 모델/방법론 측정 값 측정 기준
Semantic Segmentation Cityscapes DeepLab v3+ 80.6 mIoU
VOC2012 DeepLab v3+ 81.2 mIoU
Pose Estimation Leeds Sports Poses - Pyramid Residual Modules
- Stacked Hourglass
93.9 PCK
Hand Gesture Recognition NYU Hands V2V-PoseNet 8.42 Average 3D
Error
Face Landmark Detection 300W SAN GT 3.98 NME
Age-Group/Gender Classification AFAD CORAL 3.48 MAE
Face Recognition Olivetti Faces 5 Image RMDL 95 Accuracy
Face Verification Labeled Faces in the Wild ArcFace 99.83 Accuracy

< 이미지 인식 기능별 Status-Of-The-Art >