얼굴인식 기능 개발 실습
4169 단어 javamachinelearningprogramming
배경
집에서 편안하게 은행 세부 정보를 재설정하고 은행에 가서 줄을 서고 자신이 누구인지 증명해야 하는 모든 번거로움을 피할 수 있다는 것이 얼마나 멋진 일인지.
이 모든 것은 사용자의 신원을 원격으로 확인하는 데 완벽한 안면 확인으로 알려진 기술의 도움으로 사실이 되었습니다. 기술이 어떻게 작동하는지 궁금해서 여기 있습니다. HMS Core ML Kit의 안면 인증 서비스를 데모 앱에 통합하기로 결정했습니다. 아래는 내가 한 방법입니다.
개발 프로세스
준비
1) 필요한 구성을 자세히 설명합니다here.
2) 얼굴 인증 서비스를 위한 Maven 리포지토리 주소를 구성합니다.
나. Android 스튜디오 프로젝트의 프로젝트 수준 build.gradle 파일을 엽니다.
ii. Maven 리포지토리 주소와 AppGallery Connect 플러그인을 추가합니다.
모든 프로젝트 > 리포지토리로 이동하여 얼굴 인증 서비스에 대한 Maven 리포지토리 주소를 구성합니다.
allprojects {
repositories {
google()
jcenter()
maven {url 'https://developer.huawei.com/repo/'}
}
}
buildscript > repositories로 이동하여 Maven 리포지토리 주소를 구성합니다.
buildscript {
repositories {
google()
jcenter()
maven {url 'https://developer.huawei.com/repo/'}
}
}
플러그인 구성을 추가하려면 buildscript > 종속 항목으로 이동하세요.
buildscript{
dependencies {
classpath 'com.huawei.agconnect:agcp:1.3.1.300'
}
}
기능 구축
1) 얼굴 검증 분석기의 인스턴스를 생성합니다.
MLFaceVerificationAnalyzer analyzer = MLFaceVerificationAnalyzerFactory.getInstance().getFaceVerificationAnalyzer();
2) android.graphics.Bitmap을 통해 MLFrame 개체를 만듭니다. 이 개체는 JPG, JPEG, PNG 또는 BMP 형식의 안면 확인 템플릿 이미지를 설정하는 데 사용됩니다.
// Create an **MLFrame** object.
MLFrame templateFrame = MLFrame.fromBitmap(bitmap);
3) 템플릿 이미지를 설정합니다. 템플릿에 얼굴이 없으면 설정에 실패하며 얼굴 인증 서비스는 마지막으로 설정한 템플릿을 사용합니다.
List<MLFaceTemplateResult> results = analyzer.setTemplateFace(templateFrame);
for (int i = 0; i < results.size(); i++) {
// Process the result of face detection in the template.
}
4) android.graphics.Bitmap을 사용하여 비교할 이미지를 설정하는 데 사용되는 MLFrame 개체를 만듭니다. 이미지 형식은 JPG, JPEG, PNG 또는 BMP일 수 있습니다.
// Create an **MLFrame** object.
MLFrame compareFrame = MLFrame.fromBitmap(bitmap);
5) 비동기 또는 동기 방식을 호출하여 얼굴 인증을 수행합니다. 반환된 검증 결과( MLFaceVerificationResult )에는 비교 이미지에서 얻은 얼굴 정보와 비교 이미지와 템플릿 이미지의 얼굴이 동일인임을 나타내는 신뢰도가 포함됩니다.
비동기 방식:
Task<List<MLFaceVerificationResult>> task = analyzer.asyncAnalyseFrame(compareFrame);
task.addOnSuccessListener(new OnSuccessListener<List<MLFaceVerificationResult>>() {
@Override
public void onSuccess(List<MLFaceVerificationResult> results) {
// Callback when the verification is successful.
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
// Callback when the verification fails.
}
});
동기 방식:
SparseArray<MLFaceVerificationResult> results = analyzer.analyseFrame(compareFrame);
for (int i = 0; i < results.size(); i++) {
// Process the verification result.
}
6) 확인이 완료되면 분석기를 중지하고 점유한 리소스를 해제합니다.
if (analyzer != null) {
analyzer.stop();
}
안면인증 기능은 이렇게 구성되어 있습니다. 이러한 종류의 기술은 번거로움을 줄여줄 뿐만 아니라 개발자 기술을 연마하는 데도 좋습니다.
참조
Reference
이 문제에 관하여(얼굴인식 기능 개발 실습), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hmscore/practice-on-developing-a-face-verification-function-2h08텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)