google cloud vision api ile android'de yüz algılama ve resimden yazı okutma

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

If you can't read please download the document

Upload: tugba-uestuendag

Post on 06-Jan-2017

553 views

Category:

Software


4 download

TRANSCRIPT

Google Cloud Vision API ile Android'de Yz Alglama ve Resimden Yaz Okutma Tuba stndaFreelance Android Developer & Web Developerwww.tugbaustundag.com

Google Cloud Vision API Nedir?

Cloud Vision API yazlm gelitiricilerinin grnt alglamayla alakal ilerini kolaylatran Google'in bir ktphanesidir.

Google Cloud Vision API Neler Yapar?

Tensorflow, Bigtable, Cloud Pubsub all use this -- everything Google has released in the last year and a half

Face Detection(Yz Alglama)Yzn bulunduu yn, a

(X,Y ve Z koordinatlar)

Gzn aklk kapallk oran

Yzdeki glmse oran

Yzdeki 8 noktann belirlenebilmesi

Face Detection(Yz Alglama)

Face Detection(Yz Alglama)

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( Yz Alglayc) Tanmlama

Face Detection(Yz Alglama)

2- Resmi Elde Etmek in Kamera Kodlarn OluturmaDaha nce tanmlam olduumuz detector snfn kullanarak kamera kodlar ile, resmi grntlyoruz . CameraSource mCameraSource = new CameraSource.Builder(context, detector) .setRequestedPreviewSize(640, 480) .setFacing(CameraSource.CAMERA_FACING_BACK) .setRequestedFps(30.0f) .build();

Face Detection(Yz Alglama)

3- Factory Snf OluturmaGrntde birden fazla yz bulunuyorsa, her birey iin bir yz izi(erevesi) oluturmak iin kullanr. private class GraphicFaceTrackerFactory implements MultiProcessor.Factory { @Override public Tracker create(Face face) { return new GraphicFaceTracker(mGraphicOverlay); } }

Face Detection(Yz Alglama)

private class GraphicFaceTracker extends Tracker {private FaceGraphic mFaceGraphic; GraphicFaceTracker(GraphicOverlay overlay) { mFaceGraphic = new FaceGraphic(overlay); }public void onNewItem(int faceId, Face face) { ... }

public void onUpdate(FaceDetector.Detections detectionResults, Face face) { ... }

//Kameraya karlk gelen yz grnts o an alglanmadysa grafik gizlemesini salarpublic void onMissing(FaceDetector.Detections detectionResults) { ... }

public void onDone() { ... }

4- Face Tracker( Yz erevesi) Oluturma

Face Detection(Yz Alglama)

5- Face Graphic Snf Oluturma

class FaceGraphic extends GraphicOverlay.Graphic { @Override public void draw(Canvas canvas) {//Alglanan yz zerinde yazan track ID konumunun stne 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 gz: " + String.format("%.2f", face.getIsRightEyeOpenProbability()), x + ID_X_OFFSET * 2, y + ID_Y_OFFSET * 2, mIdPaint); canvas.drawText("Sol gz: " + String.format("%.2f", face.getIsLeftEyeOpenProbability()), x - ID_X_OFFSET*2, y - ID_Y_OFFSET*2, mIdPaint);

Face Detection(Yz Alglama)

6- Manifest ve Build.gradle Dosyasn Ayarlama

Dependencies {compile 'com.google.android.gms:play-services-vision:9.4.0+'}Build.gradle Dosyas

Resimden Yaz Okutma(Text Recognition - OCR)

Android Mobile Vision API OCR teknolojini kullanarak, yazl resimlerdeki metinleri uygulama iinde at kamerayla kullanc ilgili resmi gstererek, resimdeki tm yazy basit bir ekilde Android uygulama iine almay salamaktadr.

Optik Karakter Tanma (OCR) Nedir?

Optik Karakter Tanma (OCR), elektronik grntler zerindeki karakterlerin ya da metin bilgilerinin okunarak ASCII koda dntrlmesi ilemidir.

Resimden Yaz Okutma(Text Recognition - OCR)

Resimden Yaz Okutma(Text Recognition - OCR)

// Bir metin tanyc metin bulmak iin oluturulur. likili birden ok ilemci rnein metin tanma sonularn almak, metni izlemek ve ekranda her metin blou iin grafik cercevesine almak iin kullanlr.

TextRecognizer textRecognizer = new TextRecognizer.Builder(context).build(); textRecognizer.setProcessor(new OcrDetectorProcessor(mGraphicOverlay));1-Text Recognizer( Metin Tanyc) Tanmlama

Resimden Yaz Okutma(Text Recognition - OCR)

//kamera oluturur ve balatrCameraSourcePreview mPreview = (CameraSourcePreview) findViewById(R.id.preview);

2-Resmi Elde Etmek in Kamera Kodlarn OluturmaCameraSource 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();

Resimden Yaz Okutma(Text Recognition - OCR)

3-Metin bloklarn okuma, alglamapublic class OcrDetectorProcessor implements Detector.Processor { private GraphicOverlay mGraphicOverlay; @Override public void receiveDetections(Detector.Detections detections) { mGraphicOverlay.clear(); SparseArray 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 algland! " + item.getValue()); } OcrGraphic graphic = new OcrGraphic(mGraphicOverlay, item); mGraphicOverlay.add(graphic);

public class OcrGraphic extends GraphicOverlay.Graphic { @Override public void draw(Canvas canvas) { // Metin bloklarnn evresini kutu izimi yaparak snrlar, 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