ppu-paddle-ocr
Version:
Lightweight, probably the fastest PaddleOCR SDK in TypeScript. Runs anywhere JavaScript runs: Node.js, Bun, Deno, mobile react-native, web browsers, and browser extensions. Docker & CLI supported. The official SDK is browser-only. Accurate text detection
59 lines (58 loc) • 2.33 kB
TypeScript
import type { InferenceSession } from "onnxruntime-common";
import type { Box, DebuggingOptions, ProcessingEngine, RecognitionOptions, RecognitionStrategy } from "../interface.js";
import type { CoreCanvas, PlatformProvider } from "./platform.js";
/**
* A single recognized text item with its bounding box and confidence.
*/
export type RecognitionResult = {
/** The recognized text string. */
text: string;
/** Bounding box of the text region in the original image coordinates. */
box: Box;
/** Recognition confidence score (0–1). */
confidence: number;
};
/**
* Service for detecting and recognizing text in images
*/
export declare class BaseRecognitionService {
protected readonly options: RecognitionOptions;
protected readonly debugging: DebuggingOptions;
protected readonly session: InferenceSession;
protected readonly platform: PlatformProvider;
protected readonly engine: ProcessingEngine;
constructor(platform: PlatformProvider, session: InferenceSession, options?: Partial<RecognitionOptions>, debugging?: Partial<DebuggingOptions>, engine?: ProcessingEngine);
/**
* Logs a message if verbose debugging is enabled
*/
protected log(message: string): void;
/**
* Main method to run text recognition on an image with detected regions
* @param image The original image buffer or image in Canvas
* @param detection Array of bounding boxes from text detection
* @param charactersDictionary Optional custom character dictionary
* @returns Array of recognition results with text and bounding box, sorted in reading order
*/
run(image: ArrayBuffer | CoreCanvas, detection: Box[], charactersDictionary?: string[], strategy?: RecognitionStrategy): Promise<RecognitionResult[]>;
/**
* Builds the strategy context from this service's state.
*/
private buildContext;
/**
* Filter out invalid boxes
*/
private filterValidBoxes;
/**
* Process a single text box (used by per-box strategy for debug output)
*/
private processBox;
private recognizeTextViaContext;
/**
* Validates if a bounding box has valid dimensions
*/
private isValidBox;
/**
* Runs the ONNX inference session with the prepared tensor
*/
private runInference;
}