Skill: nimachu/super-ocr (version 0.1.0)

--- name: super-ocr description: "Production-grade OCR with intelligent engine selection. Tesseract (lightweight, fast) and PaddleOCR (high accuracy, Chinese-optimized). Use when extracting text from images, processing Chinese documents, needing confidence scores, or working with mixed Chinese/English content." --- # Super OCR ## Overview Super OCR is a production-grade optical character recognition tool that intelligently selects the best engine for your needs: - **Tesseract Engine**: Lightweight, fast (~200-500ms), perfect for simple text extraction - **PaddleOCR Engine**: High accuracy (98%+), optimized for Chinese, ideal for complex documents ## Engine Selection Strategy ### Auto Mode (Default) The skill automatically selects the optimal engine: | Scenario | Selected Engine | Why | |----------|----------------|-----| | Simple text, English only | Tesseract | Faster, lighter dependency | | Chinese content, high accuracy needed | PaddleOCR | Better Chinese support, 98%+ accuracy | | Low confidence from Tesseract | PaddleOCR (fallback) | Quality assurance | ### Force Mode Users can explicitly choose an engine: - `--engine tesseract` - Use Tesseract only - `--engine paddle` - Use PaddleOCR only - `--engine auto` - Auto-select (default) ## Quick Start ### Installation This skill requires the following dependencies: - **PaddleOCR** (for Chinese text recognition - 98%+ accuracy) - **Tesseract** (for fast English text recognition) - **OpenCV** (for image preprocessing) #### Option 1: Install with pip (all-in-one) ```bash pip install paddleocr paddlepaddle pytesseract pillow opencv-python numpy ``` #### Option 2: Install dependencies manually **macOS:** ```bash # Tesseract brew install tesseract # PaddleOCR pip install paddleocr paddlepaddle ``` **Ubuntu/Debian:** ```bash # Tesseract sudo apt update && sudo apt install tesseract-ocr # PaddleOCR pip install paddleocr paddlepaddle ``` **Windows:** ```bash # Download Tesseract from: https://github.com/UB-Mannheim/tesseract/wiki pip install paddleocr paddlepaddle pytesseract pillow opencv-python numpy ``` ### Usage ```bash # Auto mode (recommended) - runs all available engines cd path/to/super-ocr python scripts/main.py --image path/to/image.png # Force Tesseract only python scripts/main.py --image document.jpg --engine tesseract # Force PaddleOCR (high accuracy Chinese) python scripts/main.py --image chinese_menu.png --engine paddle # Run all engines (macOS only: Tesseract + PaddleOCR + MacVision) python scripts/main.py --image complex_doc.png --engine all # Batch processing with output directory python scripts/main.py --images ./images/*.png --output ./results --verbose # Check dependencies and auto-install python scripts/dependencies.py --check --install ``` ## Structuring This Skill This skill uses a **capabilities-based** structure with multiple execution modes: 1. **Engine Selection Logic** - Intelligent decision making 2. **OCR Execution** - Unified interface for different engines 3. **Post-processing** - Standardized output formatting 4. **Validation & Fallback** - Quality assurance ## Core Capabilities ### 1. Intelligent Engine Selection The skill includes a decision tree that analyzes: - Image characteristics (contrast, text size) - Language patterns (Chinese character detection) - User requirements (speed vs accuracy) See `scripts/engine_selector.py` for implementation details. ### 2. Dual Engine Support **Tesseract Engine** (`scripts/tesseract_ocr.py`): - Fast preprocessing pipeline - PSM mode 6 for uniform text blocks - Confidence scoring per word - Language detection **PaddleOCR Engine** (`scripts/paddle_ocr.py`): - State-of-art? SN (East text detection) - Crnn recognition with LSTM - Confidence scores per character - Table detection support ### 3. Output Formats Supports multiple output formats: | Format | Content | Use Case | |--------|---------|----------| | Text only | Clean extracted text | Simple search/grep | | Structured | Text + positions | Data extraction | | JSON | Full metadata + confidence | API integration | | Verbose | Debug info | Quality assurance | ### 4. Quality Guarantees - Confidence thresholds (configurable, default 80%) - Low-confidence alerts for manual review - \Fallback processing for failed OCRs ## Resources ### scripts/ - `main.py` - Main entry point, CLI interface (supports multi-engine) - `dependencies.py` - Auto-install and validation - `output_formatter.py` - Multiple output format support - `engine/` - OCR engine implementations - `selector.py` - Intelligent engine selection logic - `tesseract.py` - Tesseract engine wrapper - `paddle.py` - PaddleOCR engine wrapper - `macvision.py` - macOS Vision OCR (macOS only) - `preprocessing/` - Image preprocessing utilities - `preprocessor.py` - Denoising, enhancement, binarization ### dependencies.py (Key Feature) The `dependencies.py` module handles: - Dependency detection (`paddleocr`, `paddlepaddle`, `pytesseract`, `cv2`) - Auto-install on missing dependencies - version checking - OS-specific installation commands - Clear error messages with troubleshooting steps Use this when setting up a new environment with `python scripts/dependencies.py --check --install` ## Advanced Features ### Custom Configuration Create `config.yaml` for persistent settings: ```yaml default_engine: auto confidence_threshold: 0.8 output_format: json preprocess: denoise: true enhance_contrast: true ``` ### Batch Processing Process multiple images: ```bash python scripts/ocr.py --images ./images/*.png --output ./results ``` ### API Mode Use as a Python library: ```python from super_ocr import OCRProcessor processor = OCRProcessor(engine='auto') result = processor.extract('image.png') print(result.text) print(result.confidence) ``` ## Anti-Patterns - ❌ Using PaddleOCR for every image (overhead for simple cases) - ❌ ignoring confidence scores (quality matters) - ❌ Biases (always prefering one engine) - ❌ Skipping preprocessing (quality impact) ## Performance Notes | Engine | Init Time | Per-Image | Memory | Best For | |--------|-----------|-----------|----------|----------| | Tesseract | ~200ms | ~50ms | ~100MB | Quick extraction | | PaddleOCR | ~3s | ~500ms | ~500MB | High accuracy | Initialize once, reuse processor for batch processing.

path: scripts/engine/__init__.py
content: # Engine module


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)