@fennr/captcha-recognizer
v1.0.1
Published
Offline captcha recognizer for a fixed image class (Node.js, ONNX)
Readme
@fennr/captcha-recognizer
Офлайн-Recognizer капчи для Node.js. Запускает встроенную ONNX-модель в процессе — это не сторонний API для решения капчи.
Поддерживаемая капча
Пакет заточен под один фиксированный класс изображений (шум, градиент, пересекающая линия) — не reCAPTCHA и не произвольный OCR.

ChallengeText для образца выше: 43wpp (ровно 5 символов из [a-z0-9]).
Установка
npm install @fennr/captcha-recognizerНужен Node.js ≥ 20. Подтягиваются нативные зависимости (onnxruntime-node, sharp).
Короткий alias (опционально)
Поставить под коротким локальным именем, без второго пакета на npm:
npm install fcr@npm:@fennr/captcha-recognizerimport { recognize, createRecognizer } from "fcr";Использование
import { readFile } from "node:fs/promises";
import { recognize, createRecognizer } from "@fennr/captcha-recognizer";
// разовый вызов
const text = await recognize(await readFile("captcha.png"));
console.log(text); // например "43wpp"
// переиспользование сессии
const recognizer = await createRecognizer();
try {
const again = await recognizer.recognize(await readFile("captcha.png"));
console.log(again);
} finally {
await recognizer.dispose();
}CLI (после сборки / из репозитория):
npm run build
npm run recognize -- path/to/image.pngОбласть применения и ограничения
- Заточен под один фиксированный класс изображений капчи (см. образец выше).
- Ожидаемый текст: ровно 5 символов из
[a-z0-9]. - Это не универсальный OCR.
- Это не облачный сервис решения капчи — всё выполняется локально с поставляемой моделью.
При сбое распознавания или валидации выбрасывается RecognitionError.
Attribution модели
Веса основаны на публичном Keras-подходе captcha-recognition из krishnatherokar/captcha-recognition на Kaggle, экспортированы в models/captcha.onnx для ONNX Runtime.
Лицензия
MIT — см. LICENSE.
