1. Продукты
  2.   Aspose.OCR
  3.   Aspose.OCR FOSS for .NET

Aspose.OCR FOSS для .NET

Открытая .NET библиотека для обнаружения и распознавания текста на изображениях и PDF-документах. Лицензия MIT, работает офлайн с встроенными моделями ONNX.

Open-Source .NET библиотека для обнаружения и распознавания текста

Aspose.OCR FOSS for .NET — бесплатная библиотека C# с лицензией MIT для обнаружения и распознавания текста в растровых изображениях и PDF-документах, без необходимости использования внешнего OCR-ПО или сервисов.
Весь конвейер — обнаружение строк текста, уточнение областей и распознавание латинского скрипта — выполняется локально с помощью трёх ONNX-моделей, встроенных непосредственно в сборку и исполняемых на CPU через Microsoft.ML.OnnxRuntime; загрузка модели и сетевые вызовы во время выполнения не требуются.
В основе API лежит AsposeOcr.Recognize(), который принимает OcrInput, сформированный из одного или нескольких файлов (InputType.SingleImage или InputType.PDF), и возвращает OcrOutput — один RecognitionResult на изображение или страницу PDF, в порядке их появления в источнике.
Каждый RecognitionResult предоставляет полный текст страницы через RecognitionText и отдельные распознанные строки, каждая из которых имеет ограничивающий прямоугольник в пиксельных координатах, через RecognitionLinesResult.
Страницы PDF рендерятся внутренне (через Aspose.PDF.FOSS) перед распознаванием, поэтому отдельный шаг преобразования PDF в изображение не требуется.
Aspose.OCR FOSS для .NET лицензирована по MIT.
Установите её с помощью dotnet add package Aspose.OCR.FOSS.
Для семейства корпоративных продуктов см. Aspose.OCR — Enterprise Product Family.

Распознавание текста на изображениях и в PDF

  • AsposeOcr.Recognize(OcrInput) — единая точка входа как для изображений, так и для PDF
  • OcrInput принимает InputType.SingleImage или InputType.PDF; добавьте один или несколько путей к файлам
    с помощью OcrInput.Add()
  • Для InputType.PDF каждая страница распознаётся и возвращается в исходном порядке
  • Результат — OcrOutput — один RecognitionResult на изображение или страницу PDF

Где используется распознавание текста

  • Оцифровка отсканированных документов в поиск по тексту, возможность копирования текста
  • Извлечение текста из отсканированных PDF, в которых нет встроенного текстового слоя
  • Обработка отсканированных форм, чеков и счетов-фактур в пакетном конвейере
  • Индексация больших архивов отсканированных изображений для полнотекстового поиска

Текст на уровне строк и ограничивающие рамки

  • RecognitionResult.RecognitionText возвращает полный распознанный текст страницы
  • RecognitionResult.RecognitionLinesResult возвращает один RecognitionResult.LinesResult для каждой обнаруженной строки текста
  • Каждый RecognitionResult.LinesResult.TextInLine содержит распознанный текст этой строки
  • Каждый RecognitionResult.LinesResult.Line представляет собой System.Drawing.Rectangle, задающий пиксельные координаты строки в исходном изображении

Где используется построчная информация

  • Отрисовка наложений распознанных регионов поверх исходного изображения
  • Создание просматриваемого текстового слоя, расположенного над отсканированной страницей
  • Проверка точности распознавания построчно во время контроля качества
  • Управление инструментами редактирования или аннотирования с помощью координат строк

Работает полностью офлайн, без внешних сервисов

  • Все три ONNX-модели (детекция, уточнение, распознавание латиницы) встроены как ресурсы сборки — ничего загружать отдельно не нужно
  • Распознавание выполняется полностью на локальном процессоре через Microsoft.ML.OnnxRuntime
  • OcrInput может содержать несколько файлов; OcrOutput сохраняет их исходный порядок
  • Поддерживаемые типы ввода — только InputType.SingleImage и InputType.PDF — любой другой тип ввода вызывает NotSupportedException

Где офлайн-распознавание имеет значение

  • Окружения с изолированной сетью или регулируемые, где документы не могут покидать сеть
  • Конвейеры CI/CD без внешнего сетевого доступа во время сборки
  • Высокопоточное пакетное распознавание, когда стоимость облачного OCR за каждый вызов является проблемой
  • Обработка документов на месте с предсказуемой задержкой, работающей только локально

Распознать текст в PDF-документе

Распознайте каждую страницу PDF и выведите текст каждой страницы в исходном порядке.

using Aspose.OCR;
var api = new AsposeOcr();
using var input = new OcrInput(InputType.PDF);
input.Add("document.pdf");
OcrOutput output = api.Recognize(input);
foreach (RecognitionResult page in output)
{
    Console.WriteLine(page.RecognitionText);
}

Распознавание текста на отдельном изображении

Распознать одно растровое изображение и вывести распознанный текст.

using Aspose.OCR;
var api = new AsposeOcr();
using var input = new OcrInput(InputType.SingleImage);
input.Add("scan.png");
RecognitionResult result = api.Recognize(input)[0];
Console.WriteLine(result.RecognitionText);

Прочитать распознанные строки и их ограничительные рамки

Итерируйте распознанные строки и выводите текст каждой строки вместе с её пиксельными координатами.

using Aspose.OCR;
var api = new AsposeOcr();
using var input = new OcrInput(InputType.SingleImage);
input.Add("document.jpg");
RecognitionResult result = api.Recognize(input)[0];
foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
    System.Drawing.Rectangle bounds = line.Line;
    Console.WriteLine($"x={bounds.X}, y={bounds.Y}, width={bounds.Width}, height={bounds.Height}: {line.TextInLine}");
}

Часто задаваемые вопросы

Какая модель лицензирования?

Aspose.OCR FOSS for .NET лицензирован по лицензии MIT. Вы можете использовать, модифицировать и распространять его, в том числе в коммерческих продуктах, без дополнительных лицензионных сборов.

Как установить Aspose.OCR FOSS for .NET?

См. раздел установки выше, чтобы узнать текущую команду установки.

Какие языки он распознаёт?

Текст на латинском письме. Параметр выбора языка отсутствует, и нелатинские скрипты не поддерживаются встроенной моделью распознавания.

Требуется ли подключение к интернету?

Нет. Все три модели ONNX (детекции, уточнения, распознавания) встроены в сборку и запускаются локально через Microsoft.ML.OnnxRuntime.

Могу ли я распознавать несколько файлов за один вызов?

Да — добавьте несколько файлов в один и тот же OcrInput перед вызовом AsposeOcr.Recognize(). Возвращаемый OcrOutput сохраняет их порядок.

  

Ресурсы поддержки и обучения

 Русский