Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Proprietary + Confidential
Google Cloud Vision API ile Android'de
Yüz Algılama ve Resimden Yazı Okutma
Tuğba Üstündağ
Free...
Google Cloud Vision API Nedir?
Cloud Vision API yazılım geliştiricilerinin görüntü algılamayla alakalı işlerini
kolaylaştı...
Google Cloud Vision API Neler Yapar?
Face Detection(Yüz Algılama)
Face Detection(Yüz Algılama)
Context context = getApplicationContext();
FaceDetector detector = new FaceDetector.Builder(c...
Face Detection(Yüz Algılama)
2- Resmi Elde Etmek İçin Kamera Kodlarını Oluşturma
Daha önce tanımlamış olduğumuz detector s...
Face Detection(Yüz Algılama)
3- Factory Sınıfı Oluşturma
Görüntüde birden fazla yüz bulunuyorsa, her birey için bir yüz iz...
Face Detection(Yüz Algılama)
private class GraphicFaceTracker extends Tracker<Face> {
private FaceGraphic mFaceGraphic;
Gr...
Face Detection(Yüz Algılama)
5- Face Graphic Sınıfı Oluşturma
class FaceGraphic extends GraphicOverlay.Graphic {
@Override...
Face Detection(Yüz Algılama)
6- Manifest ve Build.gradle Dosyasını Ayarlama
<uses-feature android:name="android.hardware.c...
Resimden Yazı Okutma(Text Recognition - OCR)
Android Mobile Vision API OCR teknolojini kullanarak, yazılı resimlerdeki met...
Resimden Yazı Okutma(Text Recognition - OCR)
Resimden Yazı Okutma(Text Recognition - OCR)
// Bir metin tanıyıcı metin bulmak için oluşturulur. İlişkili birden çok işle...
Resimden Yazı Okutma(Text Recognition - OCR)
//kamera oluşturur ve başlatır…
CameraSourcePreview mPreview = (CameraSourceP...
Resimden Yazı Okutma(Text Recognition - OCR)
3-Metin bloklarını okuma, algılama
public class OcrDetectorProcessor implemen...
public class OcrGraphic extends GraphicOverlay.Graphic {
@Override
public void draw(Canvas canvas) {
// Metin bloklarının ...
Resimden Yazı Okutma(Text Recognition - OCR)
5- Manifest ve Build.gradle Dosyasını Ayarlama
<uses-feature android:name="an...
Referanslar
● Dökümantasyon:
https://developers.google.com/vision/
● Android Developer Blog post Face Detection
http://and...
Proprietary + Confidential
Teşekkürler
Tuğba Üstündağ
Freelance Android Developer & Web Developer
www.tugbaustundag.com
in...
Proprietary + Confidential
Proprietary + Confidential
Proprietary + Confidential
Proprietary + Confidential
Proprietary + Confidential
Proprietary + Confidential
Proprietary + Confidential
Proprietary + Confidential
Proprietary + Confidential
Upcoming SlideShare
Loading in …5
×

Google Cloud Vision API ile Android'de Yüz Algılama ve Resimden Yazı Okutma

2,294 views

Published on

Google Cloud Vision API kullanarak Android'de yüz algılama ve resimden yazı okutma işlemini anlatan sunumum

Published in: Software

Google Cloud Vision API ile Android'de Yüz Algılama ve Resimden Yazı Okutma

  1. 1. Proprietary + Confidential Google Cloud Vision API ile Android'de Yüz Algılama ve Resimden Yazı Okutma Tuğba Üstündağ Freelance Android Developer & Web Developer www.tugbaustundag.com
  2. 2. Google Cloud Vision API Nedir? Cloud Vision API yazılım geliştiricilerinin görüntü algılamayla alakalı işlerini kolaylaştıran Google'in bir kütüphanesidir.
  3. 3. Google Cloud Vision API Neler Yapar?
  4. 4. Face Detection(Yüz Algılama)
  5. 5. Face Detection(Yüz Algılama) Context context = getApplicationContext(); FaceDetector detector = new FaceDetector.Builder(context) .setClassificationType(FaceDetector.ALL_CLASSIFICATIONS) .build(); detector.setProcessor( new MultiProcessor.Builder<>(new GraphicFaceTrackerFactory()) .build()); 1- Face Detector( Yüz Algılayıcı) Tanımlama
  6. 6. Face Detection(Yüz Algılama) 2- Resmi Elde Etmek İçin Kamera Kodlarını Oluşturma Daha önce tanımlamış olduğumuz detector sınıfını kullanarak kamera kodları ile, resmi görüntülüyoruz . CameraSource mCameraSource = new CameraSource.Builder(context, detector) .setRequestedPreviewSize(640, 480) .setFacing(CameraSource.CAMERA_FACING_BACK) .setRequestedFps(30.0f) .build();
  7. 7. Face Detection(Yüz Algılama) 3- Factory Sınıfı Oluşturma Görüntüde birden fazla yüz bulunuyorsa, her birey için bir yüz izi(çerçevesi) oluşturmak için kullanır. private class GraphicFaceTrackerFactory implements MultiProcessor.Factory<Face> { @Override public Tracker<Face> create(Face face) { return new GraphicFaceTracker(mGraphicOverlay); } }
  8. 8. Face Detection(Yüz Algılama) private class GraphicFaceTracker extends Tracker<Face> { private FaceGraphic mFaceGraphic; GraphicFaceTracker(GraphicOverlay overlay) { mFaceGraphic = new FaceGraphic(overlay); } public void onNewItem(int faceId, Face face) { ... } public void onUpdate(FaceDetector.Detections<Face> detectionResults, Face face) { ... } //Kameraya karşılık gelen yüz görüntüsü o an algılanmadıysa grafik gizlemesini sağlar public void onMissing(FaceDetector.Detections<Face> detectionResults) { ... } public void onDone() { ... } 4- Face Tracker( Yüz Çerçevesi) Oluşturma
  9. 9. Face Detection(Yüz Algılama) 5- Face Graphic Sınıfı Oluşturma class FaceGraphic extends GraphicOverlay.Graphic { @Override public void draw(Canvas canvas) { //Algılanan yüz üzerinde yazan track ID konumunun üstüne bir daire çizer. float x = translateX(face.getPosition().x + face.getWidth() / 2); float y = translateY(face.getPosition().y + face.getHeight() / 2); canvas.drawCircle(x, y, FACE_POSITION_RADIUS, mFacePositionPaint); canvas.drawText("id: " + mFaceId, x + ID_X_OFFSET, y + ID_Y_OFFSET, mIdPaint); canvas.drawText("Mutluluk: " + String.format("%.2f", face.getIsSmilingProbability()), x - ID_X_OFFSET, y - ID_Y_OFFSET, mIdPaint); canvas.drawText("Sağ göz: " + String.format("%.2f", face.getIsRightEyeOpenProbability()), x + ID_X_OFFSET * 2, y + ID_Y_OFFSET * 2, mIdPaint); canvas.drawText("Sol göz: " + String.format("%.2f", face.getIsLeftEyeOpenProbability()), x - ID_X_OFFSET*2, y - ID_Y_OFFSET*2, mIdPaint);
  10. 10. Face Detection(Yüz Algılama) 6- Manifest ve Build.gradle Dosyasını Ayarlama <uses-feature android:name="android.hardware.camera" /> <uses-permission android:name="android.permission.CAMERA" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> <meta-data android:name="com.google.android.gms.vision.DEPENDENCIES" android:value="face" /> Dependencies { compile 'com.google.android.gms:play-services-vision:9.4.0+' } Build.gradle Dosyası
  11. 11. Resimden Yazı Okutma(Text Recognition - OCR) Android Mobile Vision API OCR teknolojini kullanarak, yazılı resimlerdeki metinleri uygulama içinde açtığı kamerayla kullanıcı ilgili resmi göstererek, resimdeki tüm yazıyı basit bir şekilde Android uygulama içine almayı sağlamaktadır. Optik Karakter Tanıma (OCR) Nedir? Optik Karakter Tanıma (OCR), elektronik görüntüler üzerindeki karakterlerin ya da metin bilgilerinin okunarak ASCII koda dönüştürülmesi işlemidir.
  12. 12. Resimden Yazı Okutma(Text Recognition - OCR)
  13. 13. Resimden Yazı Okutma(Text Recognition - OCR) // Bir metin tanıyıcı metin bulmak için oluşturulur. İlişkili birden çok işlemci örneğin metin tanıma sonuçlarını almak, metni izlemek ve ekranda her metin bloğu için grafik cercevesine almak için kullanılır. TextRecognizer textRecognizer = new TextRecognizer.Builder(context).build(); textRecognizer.setProcessor(new OcrDetectorProcessor(mGraphicOverlay)); 1-Text Recognizer( Metin Tanıyıcı) Tanımlama
  14. 14. Resimden Yazı Okutma(Text Recognition - OCR) //kamera oluşturur ve başlatır… CameraSourcePreview mPreview = (CameraSourcePreview) findViewById(R.id.preview); 2-Resmi Elde Etmek İçin Kamera Kodlarını Oluşturma CameraSource mCameraSource = new CameraSource.Builder(getApplicationContext(), textRecognizer) .setFacing(CameraSource.CAMERA_FACING_BACK) .setRequestedPreviewSize(1280, 1024) .setRequestedFps(2.0f) .setFlashMode(useFlash ? Camera.Parameters.FLASH_MODE_TORCH : null) .setFocusMode(autoFocus ? Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE : null).build();
  15. 15. Resimden Yazı Okutma(Text Recognition - OCR) 3-Metin bloklarını okuma, algılama public class OcrDetectorProcessor implements Detector.Processor<TextBlock> { private GraphicOverlay<OcrGraphic> mGraphicOverlay; @Override public void receiveDetections(Detector.Detections<TextBlock> detections) { mGraphicOverlay.clear(); SparseArray<TextBlock> items = detections.getDetectedItems(); for (int i = 0; i < items.size(); ++i) { TextBlock item = items.valueAt(i); if (item != null && item.getValue() != null) { Log.d("Text veri", "Text algılandı! " + item.getValue()); } OcrGraphic graphic = new OcrGraphic(mGraphicOverlay, item); mGraphicOverlay.add(graphic);
  16. 16. public class OcrGraphic extends GraphicOverlay.Graphic { @Override public void draw(Canvas canvas) { // Metin bloklarının çevresini kutu çizimi yaparak sınırlar, belirtir RectF rect = new RectF(mText.getBoundingBox()); rect.left = translateX(rect.left); rect.top = translateY(rect.top); rect.right = translateX(rect.right); rect.bottom = translateY(rect.bottom); canvas.drawRect(rect, sRectPaint); List<? extends Text> textComponents = mText.getComponents(); for(Text currentText : textComponents) { float left = translateX(currentText.getBoundingBox().left); float bottom = translateY(currentText.getBoundingBox().bottom); Resimden Yazı Okutma(Text Recognition - OCR) 4-Yazıların gösterilmesi ve çevresine çerçeve çizme
  17. 17. Resimden Yazı Okutma(Text Recognition - OCR) 5- Manifest ve Build.gradle Dosyasını Ayarlama <uses-feature android:name="android.hardware.camera" /> <uses-permission android:name="android.permission.CAMERA" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> <meta-data android:name="com.google.android.gms.vision.DEPENDENCIES" android:value="ocr" /> Dependencies { compile 'com.google.android.gms:play-services-vision:9.4.0+' } Build.gradle Dosyası
  18. 18. Referanslar ● Dökümantasyon: https://developers.google.com/vision/ ● Android Developer Blog post Face Detection http://android-developers.blogspot.com.tr/2015/08/face-detection-in-google-play- services.html ● Örnek kodlar https://github.com/googlesamples/android-vision
  19. 19. Proprietary + Confidential Teşekkürler Tuğba Üstündağ Freelance Android Developer & Web Developer www.tugbaustundag.com info@tugbaustundag.com
  20. 20. Proprietary + Confidential
  21. 21. Proprietary + Confidential
  22. 22. Proprietary + Confidential
  23. 23. Proprietary + Confidential
  24. 24. Proprietary + Confidential
  25. 25. Proprietary + Confidential
  26. 26. Proprietary + Confidential
  27. 27. Proprietary + Confidential
  28. 28. Proprietary + Confidential

×