/TengineKit

TengineKit - Free, Fast, Easy, Real-Time Face Detection & Face Landmarks & Face Attributes SDK On Mobile.

Apache License 2.0Apache-2.0

中文版本

TengineKit

If the project gets 1000 stars, we will immediately open this SDK use on IOS.

TengineKit - Free RealTime Face Landmarks 212 Points For Mobile

Apache 2.0

TengineKit, developed by OPEN AI LAB.
TengineKit is an easy-to-integrate face detection and face landmarks SDK. At present, it can run on various mobile phones at very low latency.

Effect

DEMO

real scene

Gif

dance of host

Video( YouTube | BiliBili )

Have a try

  • Apk can be directly downloaded and installed on the phone to see the effect.

or

  • scan code to download apk

Apk

Goals

  • Provide best performance in mobile client
  • Provide the simplest API in mobile client
  • Provide the smallest package in mobile client

Features

  • face detection
  • face landmarks
  • face attributes like age, gender, smile, glasses

Performance

CPU Time consuming Frame rate
Kirin 980 14ms 71fps
Qualcomm 855 15ms 67fps
Kirin 970 17ms 59fps
Qualcomm 835 18ms 56fps
Kirin 710F 19ms 53fps
Qualcomm 439 26ms 38fps
MediaTek Helio P60 27ms 37fps
Qualcomm 450B 28ms 36fps

Gradle Configure

The build.gradle in Project add

    repositories {
        ...
        jcenter()
        mavenCentral()
        ...
    }

    allprojects {
        repositories {
            ...
            jcenter()
            mavenCentral()
            ...    
        }
    }
    

The build.gradle in Main Module add

    dependencies {
        ...
        implementation 'com.tengine.android:tenginekit:1.0.5'
        ...
    }

System

Android

  • Min Sdk Version 19

API

When using sdk, you can refer to face api to complete the functions you need.

Landmark Points Order

Landmark Points Order

Usage

Usage

Permission

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

<uses-permission android:name="android.permission.CAMERA"/>

Sample

Android code under the "sample/Android" folder.

Access Guide

In setRotation of TengineKit Api, there are two parameters ori and is_screen_rotate, which are the rotation angle and whether to follow the screen rotation. Whether the android:screenOrientation parameter in the Manifest follows the screen can be set. Not setting this parameter is to follow the screen rotation.

Process

1.Device preview

This part is to get data from Camera, as the SDK input.

2.Angle

We use the vertical screen as an angle of 0 degrees. Since the data collected by the Android camera always deviates by 90, it is necessary to set + (-90) when setting the ori parameter. The actual rotation angle of Android is to add a function through the sensor Calculate to get. For details, see the example in the Demo project.

3.Rendering

When rendering, it is rendered at an angle of 0°, which is the normal output that people see under normal circumstances. The Android part has Canvas and Opengl rendering. Using Opengl rendering can make your apk better.

Contact

About the use of TengineKit and face-related technical exchanges, you can join the following QQ groups(Group Answer:TengineKit):

  • TengineKit communication QQ group: 630836519
  • Scan to join group

ImageHandle

ImageHandle to do Zoom, rotate, crop, and change picture format