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.
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
12345678910111213141516171819202122232425262728
@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// Resimi bitmap formatına döndürüyoruz.InputStreamstream=getResources().openRawResource(R.raw.image01);Bitmapbitmap=BitmapFactory.decodeStream(stream);// Face Detector'ü burada oluşturuyoruz.FaceDetectordetector=newFaceDetector.Builder(getApplicationContext()).setTrackingEnabled(false).build();// Bitmap'imiz üzerinde face detection'un çalışması için bir frame oluşturuyoruz.Frameframe=newFrame.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.TextViewfaceCountView=(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.