vision-camera-dynamsoft-label-recognizer
React Native Vision Camera Frame Processor Plugin of Dynamsoft Label Recognizer
Demo video
Versions
For vision-camera v2, use versions 0.x.
For vision-camera v3, use versions >= 1.0.0.
Installation
yarn add vision-camera-dynamsoft-label-recognizer
cd ios && pod install
Add the plugin to your babel.config.js
:
module.exports = {
plugins: [['react-native-worklets-core/plugin']],
Note: You have to restart metro-bundler for changes in the babel.config.js
file to take effect.
Usage
-
Scan text with vision camera.
import { recognize } from 'vision-camera-dynamsoft-label-recognizer';
const frameProcessor = useFrameProcessor((frame) => {
'worklet';
const scanResult = recognize(frame);
}, []);
-
Scan text from base64-encoded static images.
const scanResult = await decodeBase64(base64);
-
License initialization (apply for a trial license).
await initLicense("your license");
Interfaces
Scanning configuration:
export interface ScanRegion{
left: number;
top: number;
width: number;
height: number;
}
export interface ScanConfig{
scanRegion?: ScanRegion;
includeImageBase64?: boolean;
}
export interface CustomModelConfig {
customModelFolder: string;
customModelFileNames: string[];
}
You can use a custom model like a model for MRZ passport reading using the CustomModelConfig
prop and update the template. You can find the MRZ model and template in the example.
You need to put the model folder in the assets
folder for Android or the root for iOS.
About the result:
export interface ScanResult {
results: DLRResult[];
imageBase64?: string;
}
export interface DLRResult {
referenceRegionName: string;
textAreaName: string;
pageNumber: number;
location: Quadrilateral;
lineResults: DLRLineResult[];
}
export interface Quadrilateral{
points:Point[];
}
export interface Point {
x:number;
y:number;
}
export interface DLRLineResult {
text: string;
confidence: number;
characterModelName: string;
characterResults: DLRCharacherResult[];
lineSpecificationName: string;
location: Quadrilateral;
}
export interface DLRCharacherResult {
characterH: string;
characterM: string;
characterL: string;
characterHConfidence: number;
characterMConfidence: number;
characterLConfidence: number;
location: Quadrilateral;
}
Supported Platforms
Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
License
MIT