>  기사  >  백엔드 개발  >  오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

王林
王林앞으로
2023-04-14 14:55:032053검색

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

과거에는 얼굴 인식에는 얼굴 이미지 수집, 얼굴 인식 전처리, 신원 확인, 신원 검색 등의 기술과 시스템이 주로 포함되었습니다. 이제 얼굴 인식은 운전자 감지, 보행자 추적, 심지어 ADAS의 동적 객체 추적까지 천천히 확장되었습니다.

얼굴 인식 시스템이 단순한 이미지 처리에서 실시간 영상 처리로 발전했다고 볼 수 있습니다. 또한 알고리즘은 Adaboots, PCA와 같은 전통적인 통계 방법에서 CNN, RCNN과 같은 딥러닝 방법과 그 변형으로 변경되었습니다. 이제 상당수의 사람들이 3D 얼굴인식에 대해 연구하기 시작했고, 이런 종류의 프로젝트는 현재 학계와 산업계, 국가에서 지원을 받고 있다.

먼저, 현재 연구 현황을 살펴보겠습니다. 위의 개발 동향에서 볼 수 있듯이 현재 주요 연구 방향은 딥러닝 기법을 활용하여 영상 얼굴 인식 문제를 해결하는 것입니다.

주요 연구원:

다음: 중국과학원 컴퓨팅기술연구소 Shan Shiguang 교수, 중국과학원 생체인식연구소 Li Ziqing 교수, 칭화대학교 Su Guangda 교수, 중국과학원 Tang Xiaoou 교수 홍콩중문대학교, Ross B. Girshick 등

주요 오픈 소스 프로젝트:

SeetaFace 얼굴 인식 엔진. 이 엔진은 중국과학원 컴퓨팅 기술 연구소의 Shan Shiguang 연구원이 이끄는 얼굴 인식 연구 그룹이 개발했습니다. 코드는 C++를 기반으로 구현되었으며 타사 라이브러리 기능에 의존하지 않습니다. 오픈 소스 라이선스는 BSD-2이며 학계 및 업계에서 무료로 사용할 수 있습니다.

주요 소프트웨어 API/SDK:

  • face++. Face++.com은 무료 얼굴 감지, 얼굴 인식, 얼굴 속성 분석 및 기타 서비스를 제공하는 클라우드 서비스 플랫폼입니다. Face++는 Beijing Megvii Technology Co., Ltd.가 소유한 새로운 얼굴 기술 클라우드 플랫폼입니다. Face++는 다크호스 대회에서 연간 우승을 차지하고 Lenovo Star 투자를 받았습니다.
  • 스카이바이오메트리. 주로 얼굴 인식, 얼굴 인식, 얼굴 그룹화 등이 포함됩니다.

주요 얼굴 인식 이미지 라이브러리:

현재 공개된 더 나은 얼굴 이미지 라이브러리로는 LFW(Labeled Faces in the Wild) 및 YFW(Youtube Faces in the Wild)가 있습니다. 현재 실험 데이터 세트는 기본적으로 LFW에서 파생되었으며 현재 이미지 얼굴 인식의 정확도는 기본적으로 99%에 도달했습니다. 다음은 기존 얼굴 이미지 데이터베이스를 요약한 것입니다.

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

요즘 중국에서는 얼굴 인식을 하는 회사가 점점 많아지고 있으며 그 응용 분야도 매우 넓습니다. 그 중 한왕기술의 시장점유율이 가장 높다. 주요 기업의 연구 방향 및 현황은 다음과 같다.

  • 한왕기술 : 한왕기술은 얼굴인식 인증을 주로 하고 있으며 주로 출입통제시스템, 근태관리시스템 등에 사용된다.
  • iFlytek: iFlytek은 홍콩 중문대학교 Tang Xiaoou 교수 팀의 지원을 받아 가우시안 프로세스를 기반으로 한 얼굴 인식 기술을 개발했습니다. 현재 LFW에서 이 기술의 인식률은 98.52%입니다. LFW에서 DEEPID2 인식률은 99.4%에 달했습니다.
  • 사천대학교 Zhisheng: 현재 회사의 연구 하이라이트는 3D 얼굴 인식이며, 3D 전면 카메라 등의 산업화로 확장되었습니다.
  • SenseTime: 주로 인공지능 핵심 '딥 러닝' 기술의 혁신을 주도하고 인공지능 및 빅데이터 분석 산업 솔루션 구축에 전념하는 회사입니다. 현재는 얼굴 인식, 문자 인식, 인체 인식, 차량 분야에 종사하고 있습니다. 사물인식, 영상처리 등 분야에서 강력한 경쟁력을 갖고 있다. 얼굴 인식에는 106개의 얼굴 인식 핵심 포인트가 있습니다.

얼굴 인식 과정

얼굴 인식은 크게 얼굴 인식, 얼굴 정렬, 얼굴 확인, 얼굴 식별의 네 부분으로 나뉩니다.

얼굴 감지(얼굴 감지):

이미지에서 얼굴을 감지하고 결과를 직사각형 프레임으로 구도를 잡습니다. OpenCV에는 직접 사용할 수 있는 Harr 분류기가 있습니다.

얼굴 정렬:

감지된 얼굴의 자세를 수정하여 얼굴을 최대한 "긍정적"으로 만듭니다. 교정을 통해 얼굴 인식의 정확도를 높일 수 있습니다. 교정 방법에는 2D 교정과 3D 교정이 있습니다. 3D 교정 방법을 사용하면 측면 인식이 향상됩니다.

얼굴 보정 시 특징점 위치를 검출하는 단계가 있는데, 이러한 특징점 위치는 주로 왼쪽 코, 콧구멍 아래쪽, 동공 위치, 윗입술 아래쪽 등입니다. 등. 이러한 특징을 알고 나면 위치를 클릭한 후 위치 기반 변형을 수행하면 면이 "수정"됩니다. 아래 그림과 같이:

MSRA가 2014년에 도입한 기술은 ECCV14(Joint Cascade FaceDetection and Alignment)입니다. 이 기사에서는 30ms 내에 감지와 정렬을 직접 수행합니다.

얼굴 인증:

얼굴 인증, 얼굴 인증은 페어 매칭을 기반으로 하므로, 얻는 대답은 "예" 또는 "아니오"입니다. 구체적인 작업에서는 테스트 이미지를 주고, 하나씩 짝 매칭을 하게 되는데, 매칭에 성공하면 테스트 이미지와 매칭된 얼굴이 동일인의 얼굴이라는 뜻이다.

이 방법은 소규모 사무실의 얼굴 스캔 펀치인 시스템에서 일반적으로 사용됩니다. 구체적인 작동 방법은 대략 다음과 같습니다. 직원의 얼굴 사진을 오프라인으로 하나씩 입력합니다(일반적으로 직원은 한 개 이상 입력합니다). 얼굴) Zhang) 직원이 체크인을 위해 얼굴을 스와이프하면 카메라가 이미지를 캡처한 후 먼저 얼굴 감지를 수행한 다음 얼굴 보정을 수행한 다음 위에서 언급한 대로 얼굴 검증을 수행합니다. 일단 일치 결과가 "예"이면, 이는 얼굴이 스캔된 사람이 이 사무실에 속한다는 것을 의미하며, 이 단계에서 얼굴 인증이 완료됩니다.

오프라인에서 직원 얼굴을 입력할 때 얼굴과 이름을 일치시켜 얼굴 인증이 성공하면 그 사람이 누구인지 알 수 있습니다.

위에서 언급한 시스템의 장점은 개발 비용이 저렴하고 소규모 사무실에 적합하다는 점입니다. 단점은 캡처 중에 차단할 수 없으며 얼굴 자세도 비교적 직선이어야 한다는 것입니다(저희가 이 시스템을 보유하고 있습니다. , 그러나 경험한 적은 없습니다). 아래 그림은 개략적인 설명을 제공합니다.

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

얼굴 식별/인식:

얼굴 식별 또는 얼굴 인식, 얼굴 인식은 아래 그림과 같이 "나는 누구입니까?"라고 대답합니다. 얼굴 검증에 사용되는 쌍 매칭은 인식 단계에서 더 많은 분류 방법을 사용합니다. 앞의 두 단계, 즉 얼굴 검출과 얼굴 보정을 수행한 후 실제로 이미지(얼굴)를 분류합니다.

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

위 네 가지 개념의 도입에 따르면 얼굴 인식에는 주로 세 개의 크고 독립적인 모듈이 포함되어 있음을 이해할 수 있습니다.

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

위 단계를 자세히 분할하여 다음 프로세스 차트를 얻습니다.

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

얼굴인식 분류

현재 얼굴인식 기술의 발달로 얼굴인식 기술은 크게 3가지로 나뉘는데, 하나는 이미지 기반 인식 방식, 다른 하나는 영상 기반 인식 세 번째 방식은 3가지이다. -차원적인 얼굴 인식 방법.

이미지 기반 인식 방법:

이 프로세스는 주로 이미지 처리를 사용하는 정적 이미지 인식 프로세스입니다. 주요 알고리즘에는 PCA, EP, 커널 방법, 베이지안 프레임워크, SVM, HMM, Adaboot 및 기타 알고리즘이 포함됩니다. 그러나 2014년에 얼굴 인식은 딥페이스의 97.25%, 얼굴++의 97.27%로 대표되는 딥러닝 기술을 사용하여 획기적인 발전을 이루었습니다. 동시에 딥페이스의 훈련 세트는 Tang Xiaoou의 Gussian입니다. 홍콩중문대학교 얼굴 트레이닝 세트는 2w 입니다.

동영상 기반 실시간 인식 방법:

이 과정은 얼굴 인식의 추적 과정에서 볼 수 있는데, 이는 영상 속 얼굴의 위치와 크기를 찾는 것뿐만 아니라, 프레임 사이에 다른 얼굴이 있습니다.

DeepFace

참고 논문(데이터):

1. DeepFace: 얼굴 검증에서 인간 수준의 성능 격차 해소

2. 컨볼루셔널 신경망 이해 블로그. http://blog.csdn.net/zouxy09/article/details/8781543

3. 컨볼루션 신경망 파생 블로그. http://blog.csdn.net/zouxy09/article/details/9993371/

4. 컨볼루션 신경망에 대한 참고 사항

5. 필기 숫자 인식을 위한 신경망

6. / blog.csdn.net/Hao_Zhang_Vision/article/details/52831399?locationNum=2&fps=1

DeepFace는 FaceBook에서 제안되었으며 DeepID와 FaceNet은 나중에 등장했습니다. 게다가 DeepFace는 DeepID와 FaceNet에서도 볼 수 있으므로 DeepFace는 얼굴 인식 분야에서 CNN의 기반이라고 할 수 있습니다. 현재 딥러닝은 얼굴 인식에서도 매우 좋은 결과를 얻었습니다. 이제 DeepFace에서 학습을 시작하겠습니다.

DeepFace의 학습 과정에서는 DeepFace에서 사용하는 방법뿐만 아니라 현재 이 단계에서 사용되는 다른 주요 알고리즘도 소개하고 기존 이미지 얼굴 인식 기술에 대해 간단하고 포괄적으로 설명합니다.

DeepFace의 기본 프레임워크

1. 얼굴 인식의 기본 프로세스

얼굴 인식 -> 얼굴 정렬 -> 얼굴 확인 -> 얼굴 인식

2.1 기존 기술:

haar 분류기:

얼굴 감지(Detection)에는 Viola-Jones 알고리즘을 기반으로 opencv에서 직접 사용할 수 있는 haar 분류기가 이미 있었습니다.

Adaboost 알고리즘(계단식 분류기):

1. 참고 논문: 강력한 실시간 얼굴 감지.

2. 참고 중국 블로그: http://blog.csdn.net/cyh_24/article/details/39755661

3. 블로그: http://blog.sina.com.cn/s/blog_7769660f01019ep0.html

2.2 기사에 사용된 방법

이 기사에서는 감지 지점(fiducial Point Detector)을 기반으로 한 얼굴 감지 방법을 사용합니다.

  • 먼저 기준점 6개, 눈 중심 2개, 코 포인트 1개, 입 포인트 3개를 선택하세요.
  • SVR을 사용하여 LBP 기능을 통해 벤치마크 포인트를 학습하세요.

효과는 다음과 같습니다:

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

3. 얼굴 정렬(얼굴 정렬)

2D 정렬:

  • 감지 후 이미지를 2차원 자르기, 크기 조정, 회전 및 6개로 변환 앵커 위치. 얼굴 부분을 잘라냅니다.

3D 정렬:

  • 3D 모델을 찾아 이 3D 모델을 사용하여 2D 얼굴을 3D 얼굴로 자릅니다. 67개 기준점, 들로네 삼각측량, 불연속성을 피하기 위해 등고선에 삼각형 추가.
  • 삼각형 얼굴을 3D 모양으로 변환
  • 삼각형 얼굴은 깊은 3D 삼각형 네트워크가 됩니다
  • 삼각형 네트워크를 편향시켜 얼굴의 앞면이 앞을 향하도록
  • 마지막으로 곧게 펴짐 사람 얼굴의 효과

는 다음과 같습니다.

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

위의 2D 정렬은 그림(b)에 해당하고, 3D 정렬은 (c)~(h)에 해당합니다.

4 얼굴검증(얼굴검증)

4.1 기존기술

LBP && 합동 베이지안:

고차원 LBP와 합동 베이지안의 두 가지 방식을 결합한 것입니다.

  • 논문: 베이지안 얼굴 재검토: 공동 공식

DeepID 시리즈:

SVM을 사용하여 99.15%의 정확도로 7개의 공동 베이지안 모델 융합

  • 논문: 공동 식별에 의한 딥 러닝 얼굴 표현 - 검증

4.2 기사의 방법

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

논문에서는 다중 클래스 얼굴 인식 작업을 통해 심층 신경망(DNN)을 훈련합니다. 네트워크 구조는 위 그림과 같습니다.

구조 매개변수:

3D 정렬 후 형성된 이미지는 모두 152×152 이미지이며, 이는 위의 네트워크 구조에 입력됩니다.

  • Conv: 32 11×11×3 볼륨 커널
  • max-pooling: 3×3, stride=2
  • Conv: 16 9×9 컨볼루션 커널
  • Local-Conv: 16 9×9 컨볼루션 커널, 로컬은 컨볼루션 커널 매개변수가 공유되지 않음을 의미함
  • Local- Conv: 16개의 7×7 컨볼루션 커널, 매개변수는 공유되지 않음
  • Local-Conv: 16개의 5×5 컨볼루션 커널, 매개변수는 공유되지 않음
  • 완전 연결: 4096 차원
  • Softmax: 4030 차원

Extract low- 레벨 기능:

과정은 다음과 같습니다.

  • 전처리 단계: 3채널 얼굴을 입력하고 3D 보정을 수행한 후 152*152픽셀로 정규화합니다. 크기 - 152*152*3.
  • 콘볼루션을 통해 레이어 C1: C1에는 32개의 11*11*3 필터(즉, 컨볼루션 커널)가 포함되어 있으며 32개의 기능 맵이 획득됩니다( 32*142*142*3 ).
  • 최대 폴링 레이어 M2를 통해: M2의 슬라이딩 윈도우 크기는 3*3이고 슬라이딩 단계 크기는 2이며 3개 채널이 독립적으로 폴링됩니다.
  • 다른 컨볼루션 레이어 C3을 통해: C3에는 9*9*16의 16개의 3차원 컨볼루션 커널이 포함되어 있습니다.

위의 3-layer 네트워크는 단순 엣지 특징, 질감 특징 등 하위 수준 특징을 추출하기 위한 것입니다. Max-polling 레이어는 컨벌루션 네트워크를 로컬 변환에 더욱 강력하게 만듭니다. 입력이 수정된 얼굴인 경우 작은 라벨링 오류에 대해 네트워크가 더욱 강력해집니다.

그러나 이러한 폴링 레이어로 인해 네트워크는 얼굴의 세부 구조와 작은 텍스처의 정확한 위치에 대한 일부 정보를 잃게 됩니다. 따라서 논문에서는 첫 번째 컨벌루션 레이어 뒤에 Max-polling 레이어만 추가합니다. 이러한 이전 레이어를 프런트엔드 적응형 전처리 수준이라고 합니다. 그러나 이것이 필요한 많은 계산의 경우 이러한 레이어에는 매개변수가 거의 없습니다. 그들은 단순히 입력 이미지를 간단한 로컬 기능 세트로 확장합니다.

후속 레이어:

L4, L5, L6은 모두 로컬로 연결된 레이어입니다. 컨벌루션 레이어가 필터를 사용하는 것처럼, 서로 다른 필터 세트가 피처 이미지의 각 위치에서 훈련되고 학습됩니다. 서로 다른 영역은 수정 후 서로 다른 통계적 특성을 갖기 때문에 컨벌루션 네트워크의 공간적 안정성에 대한 가정을 설정할 수 없습니다.

예를 들어 코와 입 사이의 영역에 비해 눈과 눈썹 사이의 영역은 매우 다른 모습을 보이며 차별화도가 높습니다. 즉, 입력된 수정 이미지를 활용하여 DNN의 구조를 맞춤화합니다.

로컬 연결 레이어 사용은 특징 추출 중 계산 부담에 영향을 미치지 않지만 훈련 매개변수 수에는 영향을 미칩니다. 레이블이 지정된 얼굴의 대규모 라이브러리가 있기 때문에 로컬로 연결된 세 개의 큰 레이어를 감당할 수 있습니다. 로컬 연결 레이어의 출력 단위는 큰 입력 패치의 영향을 받으며 이에 따라 로컬 연결 레이어의 사용(파라미터)이 조정될 수 있습니다(가중치가 공유되지 않음)

예를 들어 L6 레이어의 출력이 영향을 받음 입력 패치의 74*74*3 효과로 인해 교정된 얼굴에서는 이러한 큰 패치 간에 통계적, 매개변수 공유가 어렵습니다.

상위 레이어:

마지막으로 네트워크의 상위 2개 레이어(F7, F8)가 완전히 연결되었습니다. 모든 출력 장치가 모든 입력에 연결됩니다. 이 두 레이어는 얼굴 이미지에서 멀리 있는 영역의 특징 간의 상관 관계를 캡처할 수 있습니다. 예를 들어, 눈의 위치와 모양, 입의 위치와 모양(이 부분에도 정보가 포함되어 있음) 사이의 상관 관계를 이 두 레이어에서 얻을 수 있습니다. 첫 번째 완전 연결 레이어 F7의 출력은 원본 얼굴 특징 표현 벡터입니다.

특징 표현 측면에서 이 특징 벡터는 기존 LBP 기반 특징 설명과 매우 다릅니다. 전통적인 방법은 일반적으로 로컬 기능 설명(히스토그램 계산)을 사용하고 분류기에 대한 입력으로 사용됩니다.

마지막 완전 연결 계층 F8의 출력은 K-way 소프트맥스(K는 범주 수)에 입력되어 범주 레이블의 확률 분포를 생성합니다. Ok가 네트워크를 통과한 후 입력 이미지의 k번째 출력을 나타내도록 합니다. 즉, 출력 클래스 레이블 k의 확률은 다음 공식으로 표현될 수 있습니다.

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

훈련의 목표는 올바른 출력 카테고리(얼굴의 ID)가 나올 확률. 이는 각 훈련 샘플의 교차 엔트로피 손실을 최소화함으로써 달성됩니다. k가 주어진 입력의 올바른 범주에 대한 레이블을 나타내도록 하면 교차 엔트로피 손실은 다음과 같습니다.

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

교차 엔트로피 손실은 매개변수에서 교차 엔트로피 손실 L의 기울기를 계산하고 다음을 사용하여 최소화됩니다. 확률적 경사 감소 방법.

그라디언트는 오류의 표준 역전파로 계산됩니다. 흥미롭게도 이 네트워크에서 생성되는 기능은 매우 희박합니다. 최상위 기능 요소의 75% 이상이 0입니다. 이는 주로 ReLU 활성화 함수를 사용하기 때문입니다. 이 소프트 임계값 비선형 함수는 모든 컨벌루션 레이어, 로컬 연결 레이어 및 완전 연결 레이어(마지막 레이어 F8 제외)에 사용되어 전체 캐스케이드 후에 매우 비선형적이고 희소한 특징을 생성합니다.

희소성은 학습 중에 무작위 기능 요소를 0으로 설정하는 드롭아웃 정규화 사용과도 관련이 있습니다. 우리는 F7 완전 연결 계층에서만 드롭아웃을 사용했습니다. 훈련 세트가 크기 때문에 훈련 과정에서 심각한 과적합을 발견하지 못했습니다.

이미지 I에서 해당 특징 표현 G(I)는 피드포워드 네트워크를 통해 계산됩니다. 각 L 레이어의 피드포워드 네트워크는 일련의 함수로 간주될 수 있습니다.

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

정규화:

마지막 수준에서 , 조명 변화에 대한 기능의 민감도를 줄이기 위해 기능의 요소를 0에서 1로 정규화합니다. 특징 벡터의 각 요소는 훈련 세트의 해당 최대값으로 나뉩니다. 그런 다음 L2 정규화를 수행합니다. ReLU 활성화 함수를 사용하기 때문에 우리 시스템은 이미지 크기에 덜 불변합니다.

출력 4096-d 벡터의 경우:

  • 먼저 각 차원을 정규화합니다. 즉, 결과 벡터의 각 차원에 대해 전체 훈련 세트의 차원의 최대값으로 나누어야 합니다.
  • 각 벡터는 L2 정규화됩니다.

2. 검증

2.1 카이제곱 거리

이 시스템에서 정규화된 DeepFace 특징 벡터는 기존 히스토그램 기반 특징(예: LBP)과 다음과 같은 유사점을 갖습니다.

  • 모든 값은 동일합니다. negative
  • very sparse
  • 특징 요소의 값은 모두 간격 [0, 1] 사이에 있습니다.

카이제곱 거리 계산 공식은 다음과 같습니다.

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

2.2 Siamese network

The 기사에서는 또한 엔드투엔드 메트릭 학습 방법에 대해 언급했습니다. 학습(훈련)이 완료되면 얼굴 인식 네트워크(최대 F7)를 두 개의 입력 사진에 재사용하고 획득한 두 개의 특징 벡터를 직접 사용하여 여부를 예측합니다. 두 개의 입력 사진은 동일한 개인에 속합니다. 이는 다음 단계로 나뉩니다:

a. 단일 논리 단위에 매핑된 완전히 연결된 레이어인

b 간의 절대 차이를 계산합니다(출력 동일/다름).

3. 실험적 평가

3.1 데이터세트

  • 소셜 얼굴 분류 데이터 세트(SFC): 440만 얼굴/4,030명
  • LFW: 13,323개 얼굴/5,749명
  • 제한됨: 예/아니요 마커만
  • 제한 없음: 다른 훈련 쌍도
  • 감독되지 않은 상태로 가져갈 수 있음: LFW에 대해 훈련하지 않음
  • Youtube Face(YTF): 3425videos/1595명

LFW에 대한 결과:

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

YTF에 대한 결과:

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

DeepFace와 후속 방법이 가장 큽니다. 차이점은 DeepFace가 사용한다는 것입니다. 신경망을 훈련하기 전의 정렬 방법. 논문에서는 얼굴이 정렬되면 얼굴 영역의 특징이 특정 픽셀에 고정되기 때문에 신경망이 작동할 수 있다고 생각합니다. 이때 컨볼루션 신경망을 사용하여 특징을 학습할 수 있습니다.

이 기사의 모델은 C++ 도구 상자 dlib의 딥 러닝을 기반으로 한 최신 얼굴 인식 방법을 사용합니다. 야외 얼굴 데이터 테스트 라이브러리인 Labeled Faces in the Wild의 벤치마크 수준을 기준으로 99.38%의 정확도에 도달합니다.

추가 알고리즘

​ http://www.gycc.com/trends/face%20recognition/overview/​

dlib: http://dlib.net/데이터 테스트 라이브러리 Labeled Faces in the Wild : http://vis-www.cs.umass.edu/lfw/

모델은 사용자가 명령을 통해 얼굴 인식 작업을 위해 이미지 폴더를 직접 사용할 수 있는 간단한 얼굴 인식 명령줄 도구를 제공합니다.

얼굴 특징을 사진으로 포착

모든 얼굴을 한 장의 사진으로 포착

사진 속 얼굴 특징을 찾아 처리

각 사람의 눈, 코, 입, 턱의 위치와 윤곽을 찾아보세요.

importface_recognition

image =face_recognition.load_image_file("your_file.jpg")

face_locations =face_recognition.face_locations(image)

얼굴 특징을 캡처하는 것은 매우 중요한 목적을 가지고 있으며 물론 디지털 뷰티에도 사용될 수 있습니다. 얼굴 디지털 메이크업(예: Meitu Xiuxiu)

디지털 메이크업: https://github.com/ageitgey/face_recognition/blob/master/examples/digital_makeup.py

사진 속 얼굴 인식

식별 사진에 나오는 사람

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~설치 단계

이 방법은 Python3/python2를 지원합니다. macOS와 Linux에서만 테스트해 봤습니다. Windows에 적용 가능한지는 알 수 없습니다.

pypi의 pip3(또는 Python 2의 pip2)을 사용하여 이 모듈을 설치하세요.

중요 사항: dlib를 컴파일할 때 문제가 있을 수 있습니다. pip가 아닌 소스에서 dlib를 설치하면 오류를 해결할 수 있습니다. 설치 매뉴얼 방법을 참조하세요. install dlib from source

​https://gist.github.com/ageitgey/629d75c1baac34dfa5ca2a1928a7aeaf​

dlib를 수동으로 설치하고 pip3 installface_recognition을 실행하여 설치를 완료합니다.

명령줄 인터페이스 사용 방법

face_recognition을 설치하면 사진 한 장 또는 사진 폴더에 있는 모든 얼굴을 인식하는 데 도움이 되는 간단한 명령줄 프로그램인 Face_recognition을 얻을 수 있습니다.

먼저 사진이 포함된 폴더를 제공해야 하며 사진 속 인물이 누구인지 이미 알고 있어야 합니다. 각 사람은 사진 파일을 가지고 있어야 하며 파일 이름은 해당 인물의 이름을 따서 지정해야 합니다. 얼굴을 인식하려는 사진이 포함된 다른 폴더를 준비해야 합니다.

다음으로, 얼굴 인식 명령만 실행하면 프로그램이 알려진 얼굴 폴더를 통해 알 수 없는 얼굴 사진 속의 사람을 식별할 수 있습니다.

각 얼굴에 대해 한 줄의 출력이 필요합니다. 데이터는 파일 이름과 인식된 사람의 이름을 쉼표로 구분하여 구성합니다.

파일 이름 없이 사진 속 각 사람의 이름만 알고 싶다면 다음을 수행할 수 있습니다.

오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

Python 모듈

face_recognition을 도입하여 얼굴 인식 작업을 완료할 수 있습니다.

API 설명서 : https://face-recognition.readthedocs.io.오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~

사진 속 모든 얼굴을 자동으로 인식

이 예를 참조하세요: https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture. py

사진 속의 얼굴을 인식하고 이름을 말하세요

다음 예를 참조하세요: https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.py

Python 코드 케이스

모든 예는 다음과 같습니다. 여기

​https://github.com/ageitgey/face_recognition/tree/master/examples​

·사진에서 얼굴 찾기

https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.py
· 识别照片中的面部特征Identify specific facial features in a photograph
https://github.com/ageitgey/face_recognition/blob/master/examples/find_facial_features_in_picture.py
· 使用数字美颜Apply (horribly ugly) digital make-up
https://github.com/ageitgey/face_recognition/blob/master/examples/digital_makeup.py
·基于已知人名找到并识别出照片中的未知人脸Find and recognize unknown faces in a photograph based on photographs of known people
https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.pypython人脸

자 오늘은 여기까지입니다~

위 내용은 오프라인 인식률 최대 99%의 파이썬 얼굴인식 시스템, 오픈소스~의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제