얼굴 인식의 MATLAB 응용 프로그램: 코드, 설명 및 구문
게시 됨: 2020-06-23얼굴로 휴대폰의 잠금을 해제하거나 첨단 사무실 감시 시스템을 통과할 때마다 백그라운드에서 정교한 얼굴 인식 기술이 작동합니다. 그렇다면 얼굴 인식이란 무엇이며 MATLAB을 사용하여 어떻게 얼굴 인식을 수행할 수 있습니까?
얼굴 인식은 기술을 통해 사람의 얼굴을 식별하는 프로세스입니다. 얼굴 인식 시스템은 컴퓨터 비전과 머신 러닝 기술을 사용하여 이미지와 비디오에서 추출한 얼굴 특징을 모델링하고 분류합니다. 얼굴 식별 알고리즘은 얼굴 특징을 추출 및 매핑하고 알려진 얼굴 데이터베이스와 비교하여 가장 일치하는 항목을 찾습니다.
원천
목차
얼굴 인식의 MATLAB
MATLAB 코드를 사용하여 얼굴 인식 을 달성할 수 있습니다. MATLAB의 내장 클래스 및 함수를 사용하여 얼굴, 눈, 코 및 입을 감지할 수 있습니다. object vision.CascadeObjectDetector 컴퓨터 비전 시스템 도구 상자의 시스템은 Viola-Jones 얼굴 감지 알고리즘을 기반으로 개체를 인식합니다.
MATLAB 객체 감지기에 대한 설명
Vision.CascadeObjectDetector는 얼굴, 눈, 입, 코 또는 상체를 식별하기 위해 Viola-Jones 알고리즘을 사용합니다. 사용자 지정 분류기는 MATLAB의 Image Labeler를 사용하여 훈련하고 System 객체와 함께 사용할 수 있습니다. 그렇다면 이미지에서 얼굴 특징이나 상체는 어떻게 감지됩니까? 단계는 다음과 같습니다.
- 첫 번째 단계에는 vision.CascadeObjectDetector 개체를 만들고 해당 속성을 설정하는 작업이 포함됩니다.
- 이 단계에서 객체는 인수와 함께 호출됩니다( 마치 함수처럼 작동하는 것처럼).
읽기: 초보자를 위한 15가지 흥미로운 MATLAB 프로젝트 아이디어 및 주제

객체 감지기 생성 구문
Object Detector 생성에 사용되는 구문은 다음과 같습니다.
- 감지기 = 비전.CascadeObjectDetector
- 감지기 = 비전.CascadeObjectDetector(mode1)
- 감지기 = vision.CascadeObjectDetector(이름, 값)
- 감지기 = 비전.CascadeObjectDetector(XMLFILE)
구문 설명
- detector = vision.CascadeObjectDetector: 이 구문은 Viola-Jones 알고리즘을 사용하여 객체를 감지하는 감지기를 만드는 데 사용됩니다.
- detector = vision.CascadeObjectDetector(mode1): 이 구문은 입력 벡터 모드1에 의해 정의된 객체를 감지하도록 구성된 감지기 생성에 사용됩니다.
- detector = vision.CascadeObjectDetector(Name,Value): 이 구문은 하나 이상의 이름-값 쌍을 사용하여 속성을 설정하는 데 사용되며, 여기서 각 속성 이름은 따옴표로 묶입니다. 예: 감지기 = vision.CascadeObjectDetector('ClassificationModel','UpperBody')
확인: 기계 학습 프로젝트 아이디어
속성
달리 지정하지 않는 한 계단식 개체 감지기의 기능은 조정할 수 없습니다. 즉, 개체를 호출한 후에는 해당 값을 변경할 수 없습니다. 객체는 호출될 때 잠기며 잠금 해제는 '해제' 기능에 의해 수행됩니다.
반면에 조정 가능한 속성은 해당 값이 언제든지 변경될 수 있음을 의미합니다. 따라서 MATLAB 코드 를 사용한 얼굴 인식을 이해하기 전에 몇 가지 기능을 살펴보겠습니다 .
- ClassificationModel: 문자 벡터로 정의되는 이 속성은 감지할 개체의 유형을 제어하는 역할을 합니다. 감지기의 기본 구성은 얼굴을 감지합니다.
- MinSize: 인식 가능한 가장 작은 개체의 크기는 요소를 2개 가진 벡터 [높이 너비]로 표시됩니다. 속성 값을 지정하지 않으면 탐지기는 분류 모델 학습에 사용되는 이미지 크기로 설정합니다.
- MaxSize: 인식 가능한 가장 작은 객체의 크기는 요소를 2개 가진 벡터 [height width] 로 표시됩니다 . 속성 값이 지정되지 않은 경우 감지기는 이를 크기(I)로 설정합니다.
- ScaleFactor: 1.0001보다 큰 지정된 값이 있습니다. 이 속성은 MinSize와 MaxSize 사이의 감지 해상도의 증분 스케일링을 위한 것입니다.
- MergeThreshold: 4와 동일한 정수 값을 지정합니다. 대상 물체 주변에 다중 감지가 있는 경우 임계값은 최종 감지 기준을 정의합니다.
- UserROI: false로 지정된 이 속성은 입력 이미지에서 관심 있는 직사각형 영역 내의 객체 감지에 대해 true로 설정할 수 있습니다.
객체 감지기 사용 구문
- bbox = 검출기(I)
- bbox = 검출기(I,roi)
구문 설명
- bbox = detector(I) 는 감지된 객체를 포함하는 ' M ' 경계 상자를 정의하는 M x4 행렬인 bbox를 반환합니다.
- bbox = detector(I,roi)는 roi로 지정된 직사각형 관심 영역 내의 객체를 감지하는 데 사용됩니다.
입력 인수

- I — 입력 이미지: 트루 컬러 또는 그레이스케일(RGB)로 지정됩니다.
- model — 분류 모델: 문자형 벡터로 지정되며 감지할 객체 유형을 설명합니다.
- XMLFILE — 사용자 정의 분류 모델: XML 파일로 지정되며 OpenCV 교육 기능 또는 trainCascadeObjectDetector 기능을 사용하여 생성할 수 있습니다.
- roi — 관심 있는 직사각형 영역: 이 입력 인수를 지정하는 데 요소를 4개 가진 벡터 [ x y 너비 높이 ]가 사용됩니다.
출력 인수
bbox — 탐지: 탐지는 M x4 요소 행렬로 반환되며, 각 행에는 요소를 4개 가진 벡터 [ x y 너비 높이 ]가 포함됩니다.
모든 시스템 개체에 공통적인 개체 기능
- 단계: 시스템 개체 알고리즘 실행을 위해
- 릴리스: 시스템 리소스 릴리스용
- reset: System Object의 내부 상태를 재설정합니다.
얼굴 인식을 위한 MATLAB 코드
이 섹션에서는 MATLAB 코드를 사용한 얼굴 인식의 예를 살펴보겠습니다.
얼굴 인식
원천
원천
단계(Detector,I)는 감지 대상 객체의 [x,y,Height,Width]를 포함하는 경계 상자 값을 반환합니다.
원천
코 감지
원천
원천
설명:
- 인수 '코'의 전달은 관심 대상이 코임을 나타냅니다.
- 기본 코 감지 구문은 vision.CascadeObjectDetector('Nose')입니다.
- Vision.CascadeObjectDetector에 전달된 기본 매개변수 값은 입력 이미지를 기반으로 수정할 수 있습니다.
- 'MergeThreshold' 값을 재정의하여 대상 객체 주변에서 여러 번 감지되는 것을 방지할 수 있습니다(위 이미지 참조).
눈 감지
원천
원천

입 감지
원천
원천
또한 읽기: MATLAB의 While 루프: 알아야 할 모든 것
마무리
얼굴 인식 기술은 개인 신원 확인에 유용하지만 개인 정보 보호 문제가 발생합니다. 이 기술은 개인의 얼굴을 사용하기 때문에 종종 개인의 사생활, 안전, 보안을 침해하는 것으로 간주됩니다. MATLAB 을 사용한 얼굴 인식은 보안이 가장 중요한 여러 경우에 사용될 수 있습니다. 공항과 사무실에서 스마트폰에 이르기까지 안면 인식은 많은 시스템과 조직의 필수 구성 요소가 되었습니다.
기계 학습에 대해 자세히 알아보려면 IIIT-B 및 upGrad의 기계 학습 및 AI PG 디플로마를 확인하세요. 이 PG 디플로마는 일하는 전문가를 위해 설계되었으며 450시간 이상의 엄격한 교육, 30개 이상의 사례 연구 및 과제, IIIT- B 동문 자격, 5개 이상의 실용적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
얼굴 인식이란?
얼굴 인식은 신원 도용을 방지하고 이름으로 개인을 식별하는 데 사용할 수 있습니다. 그러나 얼굴 인식은 상대적으로 새롭고 지속적으로 개발되고 있기 때문에 얼굴 인식을 효과적으로 사용하기 위해서는 얼굴 인식의 기본 사항을 이해하는 것이 중요합니다. 얼굴 인식은 얼굴 이미지가 알려진 사람의 것인지 여부를 판별하는 프로세스를 의미합니다. 얼굴 인식 문제는 두 가지 작업으로 나눌 수 있습니다. 1) 얼굴 감지 – 이미지에서 얼굴을 찾는 2) 얼굴 인식 – 얼굴이 누구인지 식별합니다.
매트랩이란?
Matlab은 수치 계산을 위한 프로그래밍 언어입니다. 기본적으로 매트릭스 프로그래밍 언어입니다. 과학 및 공학 계산에 많이 사용됩니다. 다른 프로그래밍 언어와 달리 MATLAB은 행렬 계산에 적합한 행렬 언어로 설계되었습니다. 행렬은 특히 과학 및 공학 계산에서 다양한 방정식에 사용됩니다. Matlab은 많은 기능을 제공하는 고급 프로그래밍 언어입니다. 수학적 문제를 해결하고 데이터를 분석하고 그래프를 만드는 데 사용됩니다.
Matlab에서 Viola Jones는 무엇입니까?
Viola Jones 알고리즘은 얼굴 감지 및 표정 인식에 사용됩니다. Viola Jones 알고리즘은 2001년 Paul Viola와 Michael Jones에 의해 처음 소개된 HOG(Histograms of Oriented Gradients)를 기반으로 하며 컴퓨터 비전, 기계 학습 및 이미지 처리에 사용됩니다. Viola Jones 알고리즘은 완전한 물체 감지 시스템을 제공하며 보행자 감지, 물체 감지 또는 사람 감지에 사용될 수 있습니다. Viola Jones 알고리즘은 특징 추출 단계, 클러스터링 단계 및 객체 분류 단계로 구성됩니다.