Search in sources :

Example 1 with InputImage

use of com.google.mlkit.vision.common.InputImage in project react-native-camera by react-native-community.

the class FileFaceDetectionAsyncTask method doInBackground.

@Override
protected Void doInBackground(Void... voids) {
    if (isCancelled()) {
        return null;
    }
    mRNFaceDetector = detectorForOptions(mOptions, mContext);
    try {
        ExifInterface exif = new ExifInterface(mPath);
        mOrientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);
    } catch (IOException e) {
        Log.e(ERROR_TAG, "Reading orientation from file `" + mPath + "` failed.", e);
    }
    try {
        InputImage image = InputImage.fromFilePath(mContext, Uri.parse(mUri));
        FaceDetector detector = mRNFaceDetector.getDetector();
        detector.process(image).addOnSuccessListener(new OnSuccessListener<List<Face>>() {

            @Override
            public void onSuccess(List<Face> faces) {
                serializeEventData(faces);
            }
        }).addOnFailureListener(new OnFailureListener() {

            @Override
            public void onFailure(Exception e) {
                Log.e(ERROR_TAG, "Text recognition task failed", e);
                mPromise.reject(ERROR_TAG, "Text recognition task failed", e);
            }
        });
    } catch (IOException e) {
        e.printStackTrace();
        Log.e(ERROR_TAG, "Creating Firebase Image from uri" + mUri + "failed", e);
        mPromise.reject(ERROR_TAG, "Creating Firebase Image from uri" + mUri + "failed", e);
    }
    return null;
}
Also used : RNFaceDetector(org.reactnative.facedetector.RNFaceDetector) FaceDetector(com.google.mlkit.vision.face.FaceDetector) ExifInterface(androidx.exifinterface.media.ExifInterface) List(java.util.List) IOException(java.io.IOException) Face(com.google.mlkit.vision.face.Face) OnSuccessListener(com.google.android.gms.tasks.OnSuccessListener) InputImage(com.google.mlkit.vision.common.InputImage) OnFailureListener(com.google.android.gms.tasks.OnFailureListener) IOException(java.io.IOException)

Example 2 with InputImage

use of com.google.mlkit.vision.common.InputImage in project react-native-camera by react-native-community.

the class RNFrameFactory method buildFrame.

public static RNFrame buildFrame(Bitmap bitmap) {
    ImageDimensions dimensions = new ImageDimensions(bitmap.getWidth(), bitmap.getHeight());
    InputImage image = InputImage.fromBitmap(bitmap, 0);
    return new RNFrame(image, dimensions);
}
Also used : ImageDimensions(org.reactnative.camera.utils.ImageDimensions) InputImage(com.google.mlkit.vision.common.InputImage)

Example 3 with InputImage

use of com.google.mlkit.vision.common.InputImage in project react-native-camera by react-native-community.

the class FaceDetectorAsyncTask method doInBackground.

@Override
protected Void doInBackground(Void... ignored) {
    if (isCancelled() || mDelegate == null || mFaceDetector == null) {
        return null;
    }
    InputImage image = InputImage.fromByteArray(mImageData, mWidth, mHeight, getFirebaseRotation(), InputImage.IMAGE_FORMAT_YV12);
    FaceDetector detector = mFaceDetector.getDetector();
    detector.process(image).addOnSuccessListener(new OnSuccessListener<List<Face>>() {

        @Override
        public void onSuccess(List<Face> faces) {
            WritableArray facesList = serializeEventData(faces);
            mDelegate.onFacesDetected(facesList);
            mDelegate.onFaceDetectingTaskCompleted();
        }
    }).addOnFailureListener(new OnFailureListener() {

        @Override
        public void onFailure(Exception e) {
            Log.e(TAG, "Text recognition task failed" + e);
            mDelegate.onFaceDetectingTaskCompleted();
        }
    });
    return null;
}
Also used : RNFaceDetector(org.reactnative.facedetector.RNFaceDetector) FaceDetector(com.google.mlkit.vision.face.FaceDetector) WritableArray(com.facebook.react.bridge.WritableArray) List(java.util.List) Face(com.google.mlkit.vision.face.Face) OnSuccessListener(com.google.android.gms.tasks.OnSuccessListener) InputImage(com.google.mlkit.vision.common.InputImage) OnFailureListener(com.google.android.gms.tasks.OnFailureListener)

Example 4 with InputImage

use of com.google.mlkit.vision.common.InputImage in project react-native-camera by lwansbrough.

the class FaceDetectorAsyncTask method doInBackground.

@Override
protected Void doInBackground(Void... ignored) {
    if (isCancelled() || mDelegate == null || mFaceDetector == null) {
        return null;
    }
    InputImage image = InputImage.fromByteArray(mImageData, mWidth, mHeight, getFirebaseRotation(), InputImage.IMAGE_FORMAT_YV12);
    FaceDetector detector = mFaceDetector.getDetector();
    detector.process(image).addOnSuccessListener(new OnSuccessListener<List<Face>>() {

        @Override
        public void onSuccess(List<Face> faces) {
            WritableArray facesList = serializeEventData(faces);
            mDelegate.onFacesDetected(facesList);
            mDelegate.onFaceDetectingTaskCompleted();
        }
    }).addOnFailureListener(new OnFailureListener() {

        @Override
        public void onFailure(Exception e) {
            Log.e(TAG, "Text recognition task failed" + e);
            mDelegate.onFaceDetectingTaskCompleted();
        }
    });
    return null;
}
Also used : RNFaceDetector(org.reactnative.facedetector.RNFaceDetector) FaceDetector(com.google.mlkit.vision.face.FaceDetector) WritableArray(com.facebook.react.bridge.WritableArray) List(java.util.List) Face(com.google.mlkit.vision.face.Face) OnSuccessListener(com.google.android.gms.tasks.OnSuccessListener) InputImage(com.google.mlkit.vision.common.InputImage) OnFailureListener(com.google.android.gms.tasks.OnFailureListener)

Example 5 with InputImage

use of com.google.mlkit.vision.common.InputImage in project react-native-camera by lwansbrough.

the class TextRecognizerAsyncTask method doInBackground.

@Override
protected Void doInBackground(Void... ignored) {
    if (isCancelled() || mDelegate == null) {
        return null;
    }
    TextRecognizer detector = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS);
    InputImage image = InputImage.fromByteArray(mImageData, mWidth, mHeight, getFirebaseRotation(), InputImage.IMAGE_FORMAT_YV12);
    detector.process(image).addOnSuccessListener(new OnSuccessListener<Text>() {

        @Override
        public void onSuccess(Text firebaseVisionText) {
            List<Text.TextBlock> textBlocks = firebaseVisionText.getTextBlocks();
            WritableArray serializedData = serializeEventData(textBlocks);
            mDelegate.onTextRecognized(serializedData);
            mDelegate.onTextRecognizerTaskCompleted();
        }
    }).addOnFailureListener(new OnFailureListener() {

        @Override
        public void onFailure(Exception e) {
            Log.e(TAG, "Text recognition task failed" + e);
            mDelegate.onTextRecognizerTaskCompleted();
        }
    });
    return null;
}
Also used : WritableArray(com.facebook.react.bridge.WritableArray) Text(com.google.mlkit.vision.text.Text) OnSuccessListener(com.google.android.gms.tasks.OnSuccessListener) TextRecognizer(com.google.mlkit.vision.text.TextRecognizer) InputImage(com.google.mlkit.vision.common.InputImage) OnFailureListener(com.google.android.gms.tasks.OnFailureListener)

Aggregations

InputImage (com.google.mlkit.vision.common.InputImage)12 OnFailureListener (com.google.android.gms.tasks.OnFailureListener)8 OnSuccessListener (com.google.android.gms.tasks.OnSuccessListener)8 WritableArray (com.facebook.react.bridge.WritableArray)6 List (java.util.List)6 Face (com.google.mlkit.vision.face.Face)4 FaceDetector (com.google.mlkit.vision.face.FaceDetector)4 ImageDimensions (org.reactnative.camera.utils.ImageDimensions)4 RNFaceDetector (org.reactnative.facedetector.RNFaceDetector)4 ExifInterface (androidx.exifinterface.media.ExifInterface)2 Barcode (com.google.mlkit.vision.barcode.Barcode)2 BarcodeScanner (com.google.mlkit.vision.barcode.BarcodeScanner)2 Text (com.google.mlkit.vision.text.Text)2 TextRecognizer (com.google.mlkit.vision.text.TextRecognizer)2 IOException (java.io.IOException)2 ByteBuffer (java.nio.ByteBuffer)2