웃는 스냅 샷 유물 앤드류스의 발전에 화웨이 HMS MLKit SDK의 서른의 분

뇌관

화웨이 HMS Core4.0 검토 회의 정보를 소개하는 기자 회견에서 리처드 유 전 어떤 시간, 찌를하십시오 :
HMS 코어 4.0 화웨이 글로벌 출시는 무엇을 의미합니까?

어떤 서비스에 초점을 도입했다, 기계 학습 서비스 (기계 학습 키트 짧은 MLKit).
그 기계 학습 서비스 당신은 할 수 있습니까? 개발자가 애플리케이션 개발 과정에서 문제를 해결 무엇을 도와 드릴까요?
오늘은 모두 강력한 기계 학습 서비스는 개발자가 제공하는 경험과 편의에 따라 제공 그래서, 예를 들어, 당신에게 진짜 작은 샘플을주고, 얼굴 검출,에 관한 토론을 시작하십시오.

제공되는 기계 학습 얼굴 인식 서비스 할 수있는 능력

모든 사람에게 쇼 서비스 얼굴 인식 기능에 화웨이 기계 학습을 살펴 보내기
그림 삽입 설명 여기

이 차트 이동 내부에서 볼 수있는 것은, 얼굴 인식, 얼굴 인식 특성 (성별, 나이에 대한 지원을 (화가, 화가, 슬픔, 혐오 놀라게 행복) 얼굴 표정을 검출하기위한 지원을 얼굴 지원의 방향을 식별 할 수 착용) 개방 및 얼굴 인식을위한 지원 등 코, 눈, 입, 눈썹,뿐만 아니라 기능 조정하고 다중면의 동시 검출을 지원하는 지원할지 여부를 폐쇄 검출, 매우 강한 아니다!

코어 팁 :이 기능은 모델 앤드류스 전체 범위 무료입니다!

사람들은 얼굴 카메라는 전투를 개발 미소

오늘날, 기계 학습 서비스를 사용하여 더 많은 인식 + 표현 감지 기능은 작은 미소 캡처 데모 쓰기 실천 운동을한다.
여기에 데모 소스 코드를 포크를 다운로드하십시오

1 개발 준비

비슷 준비하기 전에 화웨이 HMS의 개발 키트, 추가 메이븐 의존성이 SDK를 도입보다 더 아무것도

Gradle을에서 프로젝트 수준에서 1.1 추가 화웨이 받는다는웨어 하우스

증분은 다음 주소를 추가 받는다는 :

buildscript {
    repositories {        
        maven {url 'http://developer.huawei.com/repo/'}
    }    
}
allprojects {
    repositories {       
        maven { url 'http://developer.huawei.com/repo/'}
    }
}

SDK 1.2 애플리케이션 레벨 종속 build.gradle의 안쪽

얼굴 인식 SDK 및 SDK 소개 재단

dependencies{ 
  // 引入基础SDK 
  implementation 'com.huawei.hms:ml-computer-vision:1.0.2.300' 
  // 引入人脸检测能力包 
  implementation 'com.huawei.hms:ml-computer-vision-face-recognition-model:1.0.2.300'   
 }

1.3 추가 모델은 자동으로의 AndroidManifest.xml 내부의 증가라는 파일을 다운로드

이것은 주로 자동으로 업데이트 휴대 전화로 다운로드 할 수 있습니다 뒤에 최적화 알고리즘,와 함께, 업데이트를 모델링하는 데 사용됩니다

<manifest    
   <application  
       <meta-data                     
           android:name="com.huawei.hms.ml.DEPENDENCY"          
           android:value= "face"/>        	        
   </application>
</manifest> 

카메라 응용 프로그램과 저장 권리 내부 1.4의 AndroidManifest.xml 파일

<!--相机权限-->
<uses-permission android:name="android.permission.CAMERA" />
<!--使用存储权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

이 코드 개발

2.1 만들기 얼굴 분석기는 사진을 촬영 한 후 미소를 감지

카메라 검출 후 :
분석기 1) 구성 파라미터를
2) 분석기에 전달 된 파라미터 분석기
콘텐츠 transactResult 얼굴 인식 처리를 재 기입함으로써 analyzer.setTransacto 3) 인식 복귀 미소 신뢰 (단순 미소가 확률로 이해 될 수있다)만큼 설정 그것에 사진을 촬영하기 위해 소정의 신뢰보다 큰있다.

private MLFaceAnalyzer analyzer;
private void createFaceAnalyzer() {
    MLFaceAnalyzerSetting setting =
            new MLFaceAnalyzerSetting.Factory()
                    .setFeatureType(MLFaceAnalyzerSetting.TYPE_FEATURES)
                    .setKeyPointType(MLFaceAnalyzerSetting.TYPE_UNSUPPORT_KEYPOINTS)
                    .setMinFaceProportion(0.1f)
                    .setTracingAllowed(true)
                    .create();                 
    this.analyzer = MLAnalyzerFactory.getInstance().getFaceAnalyzer(setting);
    this.analyzer.setTransactor(new MLAnalyzer.MLTransactor<MLFace>() {
        @Override
        public void destroy() {
        }

        @Override
        public void transactResult(MLAnalyzer.Result<MLFace> result) {
            SparseArray<MLFace> faceSparseArray = result.getAnalyseList();
            int flag = 0;
            for (int i = 0; i < faceSparseArray.size(); i++) {
                MLFaceEmotion emotion = faceSparseArray.valueAt(i).getEmotions();
                if (emotion.getSmilingProbability() > smilingPossibility) {
                    flag++;
                }
            }
            if (flag > faceSparseArray.size() * smilingRate && safeToTakePicture) {
                safeToTakePicture = false;
                mHandler.sendEmptyMessage(TAKE_PHOTO);
            }
        }
    });
}

카메라 기억 부 :

private void takePhoto() {
    this.mLensEngine.photograph(null,
            new LensEngine.PhotographListener() {
                @Override
                public void takenPhotograph(byte[] bytes) {
                    mHandler.sendEmptyMessage(STOP_PREVIEW);
                    Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
                    saveBitmapToDisk(bitmap);
                }
            });
}

비전 엔진 2.2, 캡처 카메라 모션 비디오 스트림 전달 분석기를 만들 수 있습니다

private void createLensEngine() {
    Context context = this.getApplicationContext();
    // Create LensEngine
    this.mLensEngine = new LensEngine.Creator(context, this.analyzer).setLensType(this.lensType)
            .applyDisplayDimension(640, 480)
            .applyFps(25.0f)
            .enableAutomaticFocus(true)
            .create();
}

권한 동적, 관절 및 영상 엔진 2.3 응용 프로그램은 코드 분석기를 생성

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.activity_live_face_analyse);
    if (savedInstanceState != null) {
        this.lensType = savedInstanceState.getInt("lensType");
    }
    this.mPreview = this.findViewById(R.id.preview);
    this.createFaceAnalyzer();
    this.findViewById(R.id.facingSwitch).setOnClickListener(this);
    // Checking Camera Permissions
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
        this.createLensEngine();
    } else {
        this.requestCameraPermission();
    }
}
    
private void requestCameraPermission() {
    final String[] permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE};

    if (!ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) {
        ActivityCompat.requestPermissions(this, permissions, LiveFaceAnalyseActivity.CAMERA_PERMISSION_CODE);
        return;
    }
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                       @NonNull int[] grantResults) {
    if (requestCode != LiveFaceAnalyseActivity.CAMERA_PERMISSION_CODE) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        return;
    }
    if (grantResults.length != 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
        this.createLensEngine();
        return;
    }
}

음성 매듭 후

방법 개발 프로세스는 새로운 기능을 그것을 개발하는 것이 특히 쉽게 삼십분하지 않습니다! 우리가이 여러면을 캡처 효과를 미소를 경험할 수 있습니다.

단일 미소 캡처 :
그림 삽입 설명 여기
사람들이 캡처 미소 :
그림 삽입 설명 여기
얼굴 인식 기능을 기반으로, 기능이 그것을 할 수있는 당신의 두뇌 구멍을여십시오! 다음과 같은 몇 가지 팁, 제공 할 해가 없습니다 :
얼굴 특징 귀, 눈, 코, 입, 눈썹 등의 위치를 파악하여, 1, 몇 가지 흥미로운 장식 효과를 추가 할 수 있습니다.
2, 얼굴의 윤곽을 파악하여, 스트레칭, 약간의 과장 변형을 지역 개발의 아름다움에 대한 몇 가지 흥미로운 재미 세로 사진, 또는 윤곽 기능을 생성합니다.
3, 연령 확인에 의해, 아이들은 어떤 클래스의 부모 제어 기능을 개발, 고충, 전자 제품에 중독.
4, 긴 감지하여 화면을 응시하는 눈, 눈 개발 팁을 제공합니다.
5, 생체 검출의 사용자 맞춤 작업을 달성하기 위해 (머리, 깜박임, 입 등을 흔들) 임의의 명령을 포함한다.
6, 사용자의 연령, 성별 및 기타 시험 결과의 통합 사용을 통해 제공하는 사용자는 관련 제품을 추천한다;

화웨이의 개발 리그에서 개발 한 더 자세한 참조 가이드는 공식 웹 사이트입니다 :
화웨이 개발자 연결 기계 학습 서비스 개발 가이드

다음 문제

기반 서비스를 학습 화웨이 기계, 공유 경험 - 손, 우리가 초점을 계속하는 일련의 뒤에있을 것입니다 -

출시 두 원저 · 원 찬양 6 · 전망 1551

추천

출처blog.csdn.net/AI_talking/article/details/104838373