1 단계. 딥 러닝의 기초
딥 러닝은 머신 러닝의 표준 패러다임입니다. 대부분의 경우 인간 두뇌의 개념과 뉴런의 상호 작용을 기반으로합니다. 딥 러닝이 무엇인지 인터넷 검색을 시작하면 오늘날이 매우 뜨거운 단어가 새로운 것이 아니라는 것을 알 수 있습니다. 이 용어 자체는 1980년대에 나타 났지만 2012 년까지는이 기술을 수행 할 수 있는 충분한 힘이 없었으며 거의 아무도 관심을 기울이지 않았습니다.
2012 년에 Dahl이 이끄는 팀은 멀티 태스킹 심층 신경망을 사용하여 한 약물의 생체 분자 표적을 예측하는 Merck Molecular Activity Challenge를 수상했습니다. 그리고 이로 인해, 매스 미디어 분야에서 상당한 호황이 생겨서 많은 다른 연구원들과 개발자들도 작업을 시작했습니다.
유명한 과학자들, 과학 저널에 실린 출판물에 대한 일련의 기사를 읽은 후, 이 기술은 빠르게 인기를 얻었습니다. 오늘날에는 다양한 응용 분야가 있으며 그 중에서도 중요한 부분은 안면 인식이 차지하고 있습니다. 우선 딥 러닝은 개인을 고유하게 식별하거나 확인할 수있는 인식 생체 인식 소프트웨어를 구축 할 수 있는 힘을 제공합니다. 딥 러닝 방법은 매우 큰 얼굴의 데이터 세트를 활용하고 풍부하고 간결한 얼굴 표현을 학습 할 수 있기 때문에 나중에 사람의 얼굴 인식 기능을 능가 할 수 있습니다.
딥 러닝 시스템은 인간 두뇌의 신피질에서 신경망을 모델로하여 더 높은 수준의 인지가 발생합니다. 뇌에서 뉴런은 전기적 또는 화학적 정보를 전달하는 세포입니다. 다른 뉴런과 연결되면 신경 네트워크를 형성합니다. 기계에서 뉴런은 기본적으로 통계적 회귀를 실행하는 코드의 비트입니다. 이 가상 뉴런을 충분히 연결하면 가상 신경망이 생깁니다.
전통적인 머신 러닝 알고리즘은 선형이지만 딥 러닝 알고리즘은 복잡성과 추상화가 증가하는 계층 구조로 쌓입니다. 모르는 것은 각 계층의 이전 계층에서 얻은 지식으로 각 추상화 수준을 만드는 계층을 구축하여 복잡한 추상화를 명확히하는 것입니다.
딥 러닝을 사용하는 컴퓨터 프로그램은 거의 동일한 프로세스를 거칩니다. 계층 구조의 각 알고리즘은 입력에 비선형 변환을 적용하고 학습한 내용을 사용하여 통계 모델을 출력으로 만듭니다. 출력이 허용 가능한 수준의 정확도에 도달할 때까지 반복이 계속됩니다. 데이터가 통과해야 하는 처리 계층의 수는 레이블에 깊은 영향을 미칩니다.
2 단계. 얼굴 인식의 기초
인간이 얼굴을 어떻게 인식하는지 먼저 살펴 보겠습니다. 얼굴 인식은 뇌의 광범위하고 다양한 영역을 포함하기 때문에 얼굴 인식은 매우 복잡합니다. 뇌 영상 연구는 일반적으로 측두엽 영역에서 손상을 입었을 때 선포증을 유발하는 것으로 알려진 영역에서 많은 활동을 보여줍니다. 사람들은 태어날 때부터 얼굴을 인식하는 법을 배우고 거의 4 개월이 되면 한 사람과 다른 사람을 분명히 구별 할 수 있습니다.
사람이 주의해야 할 주요 사항은 눈, 광대뼈, 코, 입 및 눈썹뿐만 아니라 피부의 질감과 색상입니다. 동시에, 우리의 뇌는 얼굴 전체를 처리하며 얼굴의 절반까지도 사람을 식별 할 수 있습니다. 뇌는 결과 그림과 내부 평균 패턴을 비교하여 특징적인 차이를 찾습니다.
그렇다면 얼굴 인식 시스템은 어떻게 작동합니까?
우선, 얼굴 인식 시스템은 이미지에서 얼굴을 찾아 영역을 강조 표시해야 합니다. 이를 위해 소프트웨어는 다양한 알고리즘을 사용할 수 있습니다. 예를 들어 비율과 피부색의 유사성 결정, 이미지의 윤곽선 선택 및 얼굴의 윤곽선과의 비교, 신경망을 사용한 대칭 선택. 가장 효과적인 Viola-Jones 방법은 실시간으로 사용할 수 있습니다. 그것으로, 시스템은 30도 회전해도 얼굴을 인식합니다.
이 방법은 모양이 다른 흑백 사각형 마스크 세트 인 Haar의 표시를 기반으로합니다. 마스크는 이미지의 다른 부분에 겹쳐지고 알고리즘은 마스크의 흑백 부분 아래에 있는 이미지의 모든 픽셀의 밝기를 추가한 다음 이러한 값 사이의 차이를 계산합니다. 다음으로, 시스템은 결과를 축적 된 데이터와 비교하고, 이미지에서 얼굴을 결정한 후에는 최적의 각도 및 이미지 품질을 선택하기 위해 계속 추적합니다. 이를 위해, 움직임 벡터 예측 알고리즘 또는 상관 알고리즘이 사용됩니다.
가장 성공적인 사진을 선택하면 시스템은 얼굴 인식 및 기존베이스와의 비교를 진행합니다. 아티스트가 인물 사진을 그리는 것과 동일한 원리에 따라 작동합니다.이 프로그램은 개인의 특징을 구성하는 사람의 얼굴에서 기준점을 찾습니다. 일반적으로 프로그램은 약 100 개의 이러한 지점을 할당합니다.
얼굴 인식 프로그램의 가장 중요한 측정은 눈 사이의 거리, 콧 구멍의 폭, 코의 길이, 광대뼈의 높이와 모양, 턱의 너비, 이마의 높이 및 기타 매개 변수입니다. 그 후, 획득 한 데이터를 데이터베이스에서 사용 가능한 데이터와 비교하고, 매개 변수가 일치하면 사람을 식별합니다.
3 단계. 사진에서 얼굴을 감지하는 주요 단계
얼굴 인식은 실제로 몇 가지 관련 단계의 시퀀스입니다.
1. 먼저 이미지를보고 모든 얼굴을 찾아야합니다.
2. 둘째, 각 얼굴에 초점을 맞추고 얼굴이 부자연스럽게 바뀌거나 조명이 어두워도 같은 사람인지 확인해야합니다.
3. 셋째, 다른 사람들과 구별하기 위해 사용할 수 있는 얼굴의 고유한 특성을 강조해야 합니다.
4. 결론적으로, 얼굴의 이러한 독특한 특성을 사람의 이름을 결정하기 위해 아는 다른 사람들의 특성과 비교할 필요가 있습니다.
인간의 두뇌는 이 모든 것을 자동으로 즉시 수행합니다. 실제로 사람들은 얼굴을 매우 잘 인식하고 궁극적으로 일상적인 물체의 얼굴을 봅니다. 컴퓨터는 높은 수준의 일반화가 불가능하므로 프로세스의 모든 단계를 별도로 가르쳐야합니다.
얼굴 인식 프로세스의 각 단계에서 개별적으로 솔루션을 찾고 현재 단계의 결과를 다음 단계로 전송하는 파이프 라인을 구축해야합니다. 다시 말해 여러 머신 러닝 알고리즘을 하나의 체인으로 결합해야합니다.
4 단계. 얼굴 인식의 딥 러닝
인간에게 눈에 띄는 것처럼 보이는 특성 (예 : 눈 색깔)은 이미지의 개별 픽셀을 분석하는 컴퓨터에는 적합하지 않습니다. 연구원들은 컴퓨터가 수집해야 할 특성을 결정할 수 있도록하는 가장 적절한 방법을 발견했습니다. 딥 러닝은 훨씬 더 좋고 빠른 식별을 허용합니다.
그리고 그러한 가능성이 나타나거나 최근에 발견 된 것이 더 낫습니다. 처음에는 모든 사람이 신경망이 인간 수준의 성능을 달성 할 수 없다고 생각했습니다. 그러나 과학자들은 현재 두 가지 최고의 네트워크(AlexNet과 Matthew D. Zeiler와 Rob Fergus가 개발 한 네트워크)를 통해 이를 확인하기로했습니다. 원숭이의 뇌는 또한 일부 물체를 인식하도록 배웠습니다. 원숭이가 혼동하지 않도록 물건은 동물계에서 나왔습니다.
원숭이로부터 반응을 얻는 것이 명백히 불가능하기 때문에, 전극에 전극을 이식하고 각각의 뉴런의 반응을 직접 측정하였습니다. 정상적인 조건에서 뇌 세포는 당시의 최신 모델, 즉 Matthew Zeiler 네트워크와 반응했습니다.
그러나 물체를 표시하는 속도가 빨라지고 이미지의 노이즈와 물체 수가 증가하면 뇌와 영장류의 뇌의 인식률과 품질이 크게 떨어집니다. 가장 단순한 컨볼루션 신경망조차도 객체를 더 잘 인식합니다. 즉, 공식적으로 신경망은 우리의 뇌보다 잘 작동합니다.
얼굴 인식을위한 딥 러닝의 AlexNet 및 Zeiler 네트워크 혁신 외에도 DeepFace, DeepID 계열 시스템, VGGFace 및 FaceNet과 같은 다른 시스템도 있습니다. 얼굴 인식과 딥 러닝이 어떻게 발전했는지 더 잘 이해하려면 역사를 알아야합니다.
DeepFace는 2014 년 Facebook 연구 그룹이 만든 심층 컨볼루션 신경망을 기반으로 하는 안면 인식 시스템입니다. 디지털 이미지에서 사람의 얼굴을 식별합니다. 97 %의 정확도로 얼굴 인식에 딥 러닝을 사용하는 것이 큰 도약이었습니다.
DeepID 또는 "Deep hidden IDentity 기능"은 Yi Sun 등에 의해 처음 설명 된 일련의 시스템 (예 : DeepID, DeepID2 등)입니다. 2014 년 논문에서“1 만개의 클래스를 예측하는 심층 학습 얼굴 표현”이라는 제목의 논문에서 시스템은 DeepFace와 유사하게 처음 설명되었지만 대조적인 손실을 통한 교육을 통해 식별 및 검증 작업을 모두 지원하도록 확장되었습니다.
VGGFace (더 나은 이름이 없음)는 Omkar Parkhi 등이 개발했습니다. 옥스포드의 VGG (Visual Geometry Group)의 2015년 논문 인 "Deep Face Recognition (딥 얼굴 인식)"에 설명되어 있습니다. 더 잘 조정 된 모델 외에도 작업의 초점은 매우 큰 훈련 데이터 세트를 수집하고 사용하는 방법에 있었습니다. 이를 통해 얼굴 인식을 위한 매우 깊은 CNN 모델을 훈련시켜 표준 데이터 세트에서 최첨단 결과를 얻을 수 있었습니다.
FaceNet은 2015 년 Google 연구원이 개발한 얼굴 인식 시스템으로, 다양한 얼굴 인식 벤치 마크 데이터 세트에서 최첨단 결과를 달성했습니다. FaceNet 시스템은 모델의 여러 타사 오픈 소스 구현 및 사전 훈련된 모델의 가용성 덕분에 광범위하게 사용할 수 있습니다.