- 한러혁신센터 김용재 선임연구원
□ CNN (convolution neural network) 기반 얼굴인식 기술
CNN은 1차원 벡터 형태의 입력이 아닌 2차원 정보를 기반으로 학습이 가능한 인공신경망 분야중 하나로 현재 이미지 처리 분야에서 많이 활용되고 있는 알고 리즘이다. 기존 인공신경망과는 이미지 데이터가 갖는 특성(공간정보)을 활용 할 수 있다는 점이 큰 차이점이다. 즉, CNN의 특징은 convolution 연산의 특성 (filter와 같을수록 높은 값 출력)을 활용하여 이미지 데이터의 특성을 추출 및 처 리한 것을 기반으로 학습시킴으로써 분류의 정확도를 높인다는 것이다.
CNN의 구성은 크게 특징을 추출하는 부분과 클래스를 분류하는 부분으로 나눌 수 있다. 특징 추출(feature extraction)부분에서는 아래 그림 1과 같이 convolution layer 와 pooling layer가 여러 번 반복되는 구조이다. Convolution layer에서는 filter와의 convolution 연산을 활용해 feature map 을 생성한다. Convolution 연산을 통해 입력 이미지에서 filter 특성을 추출하고 feature map을 생성한다, 생성된 feature map은 pooling layer에서 대푯값(주 로 최댓값 또는 평균값)을 추출함으로써 noise 영향을 덜 받게 한다. 즉, 얼굴위 치, 조명환경 등의 변화에 대한 영향을 줄이는 역할을 한다. 특징을 추출 한 후에 는 기존 인공신경망과 같은 fully-connected layer를 연결시켜 분류를 수행한다. 학습을 통해 각 filter들의 변수들을 업데이트하게 되며, 최적의 filter를 찾아 CNN의 구조를 완성시킨다.
그림 1 CNN 구조
- 얼굴인식의 세계적인 러시아 기업, NTechLab의 보유기술 리뷰
러시아 모스크바에 위치한 기업 NTechLab은 미국국립표준기술연구소(NIST), 정보 고등연구 계획청(IARPA)등에서 주최하는 얼굴인식 대회에서 뛰어난 기량을 보인 세계적 수준의 기업으로, 본고에서는 NTechLab에서 보유한 CNN 기반 얼 굴인식 기술에 대해서 간략히 리뷰해보고자 한다.
NTechLab의 CNN은 특징 추출을 위해 4단계의 convolution layer(Conv), pooling layer(MaxPool), activation layer(PReLU)로 다음 그림 2와 같이 구성 되어 있다. Convolution layer에서는 여러 filter들을 활용하여 convolution 연 산을 수행하여 특징을 추출한다. 추출한 특 징을 전달(pooling)하기 위해 pooling layer에서는 보통 사용하는 최댓값 전달과 평균값 전달 중 최댓값 전달 방법을 이용한 다. Activation layer에서는 parametric rectified linear unit (PReLU)함수를 사용 하여 비선형 변환을 수행하여 특징 추출의 성능을 향상시킨다. 입력 image는 4단계에 걸친 특징 추출을 통해 지역적이고 낮은 차 원(local low-level)의 특징은 점차 고차원 (high-level) 특징들로 좁혀지게 된다. 그 후 fully-connected layer(FaceN, FC)와 regularization layer(Drop), loss layer (SoftMax)를 거치는데, fully-connected layer에서는 이전 layer와 모두 연결되어있 는 neuron들을 활용하여 image 분류를 수행한다. Regularization layer에서는 통계적으로 학습 샘플 값을 0으로 만드는 dropout 연산을 수행함으로써 overfitting 문제를 해결할 수 있다. Loss layer에서는 학습을 위해 gradient descent방법을 통한 loss 함수를 계산하여 사용한다.
그림 2
NTechLab에서는 위에서 설명한 CNN 기반 얼굴인식 기술로 방문자 식별, 빠 른 얼굴 인식을 통한 공항 체크인 서비스, 소매상점에서의 도난방지, 공공 인프 라에서의 보안 등의 다양한 응용서비스를 창출하여 매출을 늘리고 있으며, 전 세 계로 사업을 확장하고 있다.
전체 보기
전체검색