Object Detection
Getting Started
This is an expo module that lets you use the MLKit Text Recognition library in your Expo app.
Installation
Install like any other npm package:
#yarn
yarn add @infinitered/react-native-mlkit-text-recognition
#npm
npm install @infinitered/react-native-mlkit-text-recognition
Basic Usage
The models are made available through the context system. You can access them in your components using the same hook
// MyComponent.tsx
import { recognizeText } from "@infinitered/react-native-mlkit-text-recognition";
import React, { useEffect, useState } from "react";
import { View } from "react-native";
import type { MyModelsConfig } from "./App";
type Props = {
imagePath: string;
};
function MyComponent({ imagePath }: Props) {
const [recognizedText, setRecognizedText] = useState<string | null>(null);
useEffect(() => {
async function recognizeTextAsync(imagePath: string) {
try {
const { text } = await recognizeText(imagePath);
setRecognizedText(text);
} catch (error) {
console.error("Error recognizing text:", error);
}
}
if (imagePath) {
recognizeTextAsync(imagePath);
}
}, [imagePath]);
return (
<View>
<Text>{recognizedText}</Text>
</View>
);
}
Recognition Results
The recognizeText method returns a Text object:
interface Rect {
left: number;
top: number;
right: number;
bottom: number;
}
interface TextElement {
text: string;
frame: Rect;
recognizedLanguages: string[];
}
interface TextLine {
text: string;
frame: Rect;
recognizedLanguages: string[];
elements: TextElement[];
}
interface Block {
text: string;
frame: Rect;
recognizedLanguages: string[];
lines: TextLine[];
}
interface Text {
text: string;
blocks: Block[];
}