얼굴 인식 개념
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
얼굴 인식은 디지털 이미지나 동영상과 같은 시각적 미디어에서 사람의 얼굴을 찾습니다. 얼굴이 감지되면 연결된 위치, 크기, 방향이 있으며 눈과 코와 같은 랜드마크를 검색할 수 있습니다.
다음은 ML Kit의 얼굴 인식 기능과 관련하여 사용되는 용어입니다.
얼굴 추적은 얼굴 인식을 동영상 시퀀스로 확장합니다. 길이에 관계없이 동영상에 나타나는 모든 얼굴은 프레임마다 추적될 수 있습니다.
즉, 연속 동영상 프레임에서 인식된 얼굴은 동일한 사람으로 식별할 수 있습니다. 이는 얼굴 인식의 한 형태가 아닙니다. 얼굴 추적은 동영상 시퀀스에서 얼굴의 위치와 움직임을 기반으로만 추론을 합니다.
랜드마크는 얼굴 내의 관심 지점입니다. 왼쪽 눈, 오른쪽 눈, 코 밑부분 등이 모두 랜드마크의 예입니다. ML Kit는 인식된 얼굴에서 랜드마크를 찾는 기능을 제공합니다.
윤곽은 얼굴 특징의 형태를 따라 이어지는 점들의 집합입니다.
ML Kit는 얼굴의 윤곽을 찾는 기능을 제공합니다.
분류는 특정 얼굴 특징이 존재하는지 확인합니다. 예를 들어 눈을 뜨고 있는지 감고 있는지 또는 웃고 있는지 아닌지를 기준으로 얼굴을 분류할 수 있습니다.
면 방향
다음 용어는 카메라를 기준으로 얼굴의 방향 각도를 설명합니다.
- 오일러 X: 양의 오일러 X각이 있는 얼굴은 위로 향한 것입니다.
- 오일러 Y: 양의 오일러 Y각이 있는 얼굴은 카메라의 오른쪽을 바라보고, 음수인 경우 왼쪽을 보고 있습니다.
- 오일러 Z: 양의 오일러 Z각이 있는 얼굴은 카메라를 기준으로 시계 반대 방향으로 회전한 것입니다.
LANDMARK_MODE_NONE
, CONTOUR_MODE_ALL
, CLASSIFICATION_MODE_NONE
, PERFORMANCE_MODE_FAST
가 함께 설정될 때 ML Kit는 감지된 얼굴의 오일러 X, 오일러 Y 또는 오일러 Z각을 보고하지 않습니다.
명소
랜드마크는 얼굴 내의 관심 장소입니다. 왼쪽 눈, 오른쪽 눈, 코 밑부분이 모두 랜드마크의 예입니다.
ML Kit는 랜드마크를 찾지 않고 얼굴을 감지합니다.
랜드마크 인식은 기본적으로 사용 중지되는 선택사항 단계입니다.
다음 표에는 관련 얼굴의 오일러 Y각에서 감지할 수 있는 모든 랜드마크가 요약되어 있습니다.
오일러 Y각 |
인식 가능한 랜드마크 |
-36도 미만 |
왼쪽 눈, 왼쪽 입, 왼쪽 귀, 코 밑부분, 왼쪽 볼 |
-36도~-12도 |
왼쪽 입, 코 밑부분, 아래쪽 입, 오른쪽 눈, 왼쪽 눈, 왼쪽 볼, 왼쪽 귓바퀴 상단 |
-12도~12도 |
오른쪽 눈, 왼쪽 눈, 코 밑부분, 왼쪽 볼, 오른쪽 볼, 왼쪽 입, 오른쪽 입, 아래쪽 입 |
12도~36도 |
오른쪽 입, 코 밑부분, 아래쪽 입, 왼쪽 눈, 오른쪽 눈, 오른쪽 뺨, 오른쪽 귓바퀴 상단 |
36도 초과 |
오른쪽 눈, 오른쪽 입, 오른쪽 귀, 코 밑부분, 오른쪽 볼 |
감지된 각 랜드마크에는 이미지의 관련 위치가 포함됩니다.
윤곽선
윤곽은 얼굴 특징의 형태를 나타내는 점들의 집합입니다. 다음 이미지는 이러한 점들이 얼굴에 매핑되는 방식을 보여줍니다. 이미지를 클릭하여 확대합니다.
ML Kit가 감지하는 각 특징의 윤곽은 고정된 수의 점으로 표현됩니다.
얼굴 타원형 |
36포인트 |
윗입술 (위쪽) |
11포인트 |
왼쪽 눈썹 (위쪽) |
5포인트 |
윗입술 (하단) |
9포인트 |
왼쪽 눈썹 (하단) |
5포인트 |
아랫입술 (위쪽) |
9포인트 |
오른쪽 눈썹 (위쪽) |
5포인트 |
아랫입술 (하단) |
9포인트 |
오른쪽 눈썹 (하단) |
5포인트 |
콧날 |
2점 |
왼쪽 눈 |
16포인트 |
코 아래쪽 |
3포인트 |
오른쪽 눈 |
16포인트 |
왼쪽 볼 (가운데) |
1점 |
오른쪽 볼 (가운데) |
1포인트 |
얼굴의 모든 윤곽을 한 번에 가져오면 아래와 같이 특징 윤곽에 매핑되는 133개의 점 배열을 얻게 됩니다.
특징 윤곽의 색인 |
0-35 |
얼굴 타원형 |
36-40 |
왼쪽 눈썹 (위쪽) |
41-45 |
왼쪽 눈썹 (하단) |
46-50 |
오른쪽 눈썹 (위쪽) |
51-55 |
오른쪽 눈썹 (하단) |
56-71 |
왼쪽 눈 |
72-87 |
오른쪽 눈 |
88-96 |
윗입술 (하단) |
97-105 |
아랫입술 (위쪽) |
106-116 |
윗입술 (위쪽) |
117-125 |
아랫입술 (하단) |
126, 127 |
콧날 |
128-130 |
코 아래쪽 (중심점은 색인 128에 있음) |
131 |
왼쪽 볼 (가운데) |
132 |
오른쪽 볼 (가운데) |
분류
분류는 특정 얼굴 특징이 나타나는지 확인합니다.
ML Kit는 현재 눈을 뜨고 있음과 웃고 있음이라는 두 가지 분류를 지원합니다.
분류는 확실성 값입니다. 이는 얼굴 특징이 존재한다는 신뢰도를 나타냅니다. 예를 들어 '웃고 있음' 분류 값이 0.7 이상이면 사람이 웃고 있을 가능성이 높음을 나타냅니다.
두 분류 모두 랜드마크 감지를 사용합니다.
또한 '눈을 뜨고 있음'과 '웃고 있음'은 정면 얼굴, 즉 오일러 Y각(-18~18도)이 작은 얼굴에만 적용됩니다.
최소 면 크기
최소 얼굴 크기는 원하는 얼굴 크기이며 이미지 너비 대비 머리 너비 비율로 표현됩니다. 예를 들어 값이 0.1이면 검색할 가장 작은 얼굴이 검색 대상 이미지 너비의 약 10% 라는 의미입니다.
최소 얼굴 크기는 성능과 정확성을 절충합니다. 최소 크기를 작게 설정하면 감지기가 작은 얼굴을 찾을 수 있지만 감지 시간이 더 오래 걸립니다. 더 크게 설정하면 작은 얼굴은 제외되지만 더 빠르게 실행됩니다.
최소 얼굴 크기는 엄격한 제한이 아닙니다. 감지기가 지정된 것보다 약간 작은 얼굴을 찾을 수도 있습니다.
다음 단계
iOS 또는 Android 앱에서 얼굴 인식을 사용합니다.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-09-04(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[[["\u003cp\u003eML Kit's face detection feature locates and analyzes human faces in images and videos, identifying position, size, orientation, and facial landmarks like eyes and nose.\u003c/p\u003e\n"],["\u003cp\u003eFace tracking in ML Kit follows faces across video frames, enabling the identification of the same person without using facial recognition.\u003c/p\u003e\n"],["\u003cp\u003eOptional features include landmark detection (identifying points like eyes, nose, mouth), contour detection (outlining facial features), and classification (detecting smiles or open eyes).\u003c/p\u003e\n"],["\u003cp\u003ePerformance can be adjusted by setting the minimum face size, balancing speed and accuracy of detection.\u003c/p\u003e\n"]]],[],null,["Face detection locates human faces in visual media such as digital images or\nvideo. When a face is detected it has an associated position, size, and\norientation; and it can be searched for landmarks such as the eyes and nose.\n\nHere are some of the terms that we use regarding the face detection feature\nof ML Kit:\n\n- **Face tracking** extends face detection to video sequences. Any face that\n appears in a video for any length of time can be tracked from frame to frame.\n This means a face detected in consecutive video frames can be identified as\n being the same person. Note that this isn't a form of *face recognition*; face\n tracking only makes inferences based on the position and motion of the faces in\n a video sequence.\n\n- A **landmark** is a point of interest within a face. The left eye, right eye,\n and base of the nose are all examples of landmarks. ML Kit provides the\n ability to find landmarks on a detected face.\n\n- A **contour** is a set of points that follow the shape of a facial feature.\n ML Kit provides the ability to find the contours of a face.\n\n- **Classification** determines whether a certain facial\n characteristic is present. For example, a face can be classified by\n whether its eyes are open or closed, or if the face is smiling or not.\n\nFace orientation\n\nThe following terms describe the angle a face is oriented with respect to the\ncamera:\n\n- **Euler X**: A face with a positive Euler X angle is facing upward.\n- **Euler Y**: A face with a positive Euler Y angle is looking to the right of the camera, or looking to the left if negative.\n- **Euler Z**: A face with a positive Euler Z angle is rotated counter-clockwise relative to the camera.\n\nML Kit doesn't report the Euler X, Euler Y or Euler Z angle of a detected face when\n`LANDMARK_MODE_NONE`, `CONTOUR_MODE_ALL`, `CLASSIFICATION_MODE_NONE` and\n`PERFORMANCE_MODE_FAST`are set together.\n\nLandmarks\n\nA landmark is a point of interest within a face. The left eye, right eye, and\nnose base are all examples of landmarks.\n\nML Kit detects faces without looking for landmarks.\nLandmark detection is an optional step that is disabled by default.\n\nThe following table summarizes all of the landmarks that can be detected given\nthe Euler Y angle of an associated face:\n\n| Euler Y angle | Detectable landmarks |\n|----------------------------|------------------------------------------------------------------------------------------------|\n| \\\u003c -36 degrees | left eye, left mouth, left ear, nose base, left cheek |\n| -36 degrees to -12 degrees | left mouth, nose base, bottom mouth, right eye, left eye, left cheek, left ear tip |\n| -12 degrees to 12 degrees | right eye, left eye, nose base, left cheek, right cheek, left mouth, right mouth, bottom mouth |\n| 12 degrees to 36 degrees | right mouth, nose base, bottom mouth, left eye, right eye, right cheek, right ear tip |\n| \\\u003e 36 degrees | right eye, right mouth, right ear, nose base, right cheek |\n\nEach detected landmark includes its associated position in the image.\n\nContours\n\nA contour is a set of points that represent the shape of a facial feature. The\nfollowing image illustrates how these points map to a face. Click the image to\nenlarge it:\n\n[](/static/ml-kit/vision/face-detection/images/face_contours.svg)\n\nEach feature contour that ML Kit detects is represented by a fixed number of\npoints:\n\n| Face oval | 36 points | Upper lip (top) | 11 points |\n| Left eyebrow (top) | 5 points | Upper lip (bottom) | 9 points |\n| Left eyebrow (bottom) | 5 points | Lower lip (top) | 9 points |\n| Right eyebrow (top) | 5 points | Lower lip (bottom) | 9 points |\n| Right eyebrow (bottom) | 5 points | Nose bridge | 2 points |\n| Left eye | 16 points | Nose bottom | 3 points |\n| Right eye | 16 points |\n| Left cheek (center) | 1 point |\n| Right cheek (center) | 1 points |\n|------------------------|-----------|--------------------|-----------|\n\nWhen you get all of a face's contours at once, you get an array of 133 points,\nwhich map to feature contours as shown below:\n\n| Indexes of feature contours ||\n|----------|----------------------------------------------------------|\n| 0-35 | Face oval |\n| 36-40 | Left eyebrow (top) |\n| 41-45 | Left eyebrow (bottom) |\n| 46-50 | Right eyebrow (top) |\n| 51-55 | Right eyebrow (bottom) |\n| 56-71 | Left eye |\n| 72-87 | Right eye |\n| 88-96 | Upper lip (bottom) |\n| 97-105 | Lower lip (top) |\n| 106-116 | Upper lip (top) |\n| 117-125 | Lower lip (bottom) |\n| 126, 127 | Nose bridge |\n| 128-130 | Nose bottom (note that the center point is at index 128) |\n| 131 | Left cheek (center) |\n| 132 | Right cheek (center) |\n\nClassification\n\nClassification determines whether a certain facial characteristic is present.\nML Kit currently supports two classifications: **eyes open** and **smiling**.\n\nClassification is a certainty value. It indicates the confidence\nthat a facial characteristic is present. For example, a value of 0.7 or more\nfor the smiling classification indicates that it's likely that a person is\nsmiling.\n\nBoth of these classifications rely upon landmark detection.\n\nAlso note that the classifications \"eyes open\" and \"smiling\" only work for\nfrontal faces, i.e., faces with a small Euler Y angle (between -18 and 18\ndegrees).\n\nMinimum Face Size\n\nThe minimum face size is the desired face size, expressed as the ratio of the width of\nthe head to the width of the image. For example, the value of 0.1 means that\nthe smallest face to search for is roughly 10% of the width of the image being\nsearched.\n\nThe minimum face size is a performance vs. accuracy trade-off: setting the\nminimum size smaller lets the detector find smaller faces but detection\nwill take longer; setting it larger might exclude smaller faces but\nwill run faster.\n\nThe minimum face size is not a hard limit; the detector may find faces slightly\nsmaller than specified.\n\nNext Steps\n\nUse face detection in your iOS or Android app:\n\n- [iOS](/ml-kit/vision/face-detection/ios)\n- [Android](/ml-kit/vision/face-detection/android)"]]