Ensar Hamzaçebi

An Android Developer

Android Face Detection 01 - Başlangıç

| Comments

Android'de face detection işlemini gerçekleştirmek için Google Play Service'i kullanabiliriz.Bunun için yapmamız gereken ilk şey google play service'in gradle dependences'ini projemize eklemek olacaktır.

Android Studio'da oluşturduğumuz projemizin /app dizini altındaki build.gradle dosyasını açarak dependencies kısmına aşşağıdaki satırı ekliyoruz ve Sync ediyoruz.

build.gradle
1
compile 'com.google.android.gms:play-services:7.8.0'

Bir sonraki adımımız AndroidManifest.xml dosyasına aşağıda verdiğimiz meta-data'yı application tag'inin içerisine eklemek.

AndroidManifest.xml
1
<meta-data android:name="com.google.android.gms.vision.DEPENDENCIES" android:value="face"/>

Daha sonra yüz tesbiti yapacağımız resimi /res/raw dizinine koyuyoruz. MainActivity.java'yı (Main activity) açarak aşağıdaki kodu onCreate'in içerisine yazıyoruz.

MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Resimi bitmap formatına döndürüyoruz.
    InputStream stream = getResources().openRawResource(R.raw.image01);
    Bitmap bitmap = BitmapFactory.decodeStream(stream);

    // Face Detector'ü burada oluşturuyoruz.
    FaceDetector detector = new FaceDetector.Builder(getApplicationContext())
            .setTrackingEnabled(false)
            .build();

    // Bitmap'imiz üzerinde face detection'un çalışması için bir frame oluşturuyoruz.
    Frame frame = new Frame.Builder().setBitmap(bitmap).build();

    // Face detector'ü çalıştırarak resimde belirlenen yüzleri SparseArray'e listeliyoruz.
    SparseArray<Face> faces = detector.detect(frame);

    //Ekrana resimde kaç yüz tespit edildiğini gösteriyoruz.
    TextView faceCountView = (TextView) findViewById(R.id.face_count);
    faceCountView.setText(faces.size() + " faces detected");

    //face detection'u sonlandırıyoruz.
    detector.release();

}

Evet arkadaşlar, bu şekilde bir resimde yüz olup olmadığını varsa kaç tane olduklarını tespit edebilirsiniz. Şunu da söylemem gerek google'ın bu servisi sadece yüz tespit etmeye yarar, yüz tanıma gibi bir özelliği bulunmamaktadır.

Umarım yardımcı olabilmişimdir. İyi çalışmalar.

Comments