Добавьте действие распознавания текста OCR

prostors

Client
Регистрация
16.12.2020
Сообщения
1 499
Реакции
92
Баллы
48
Добавьте действие распознавания текста OCR

копия из gemini по запросу "родной встроенный движок OCR от Windows 10/11. подробнее пожалуйста"

Встроенный в Windows движок распознавания текста называются Windows Media OCR API (он находится в пространстве имён <span>Windows.Media.Ocr</span>).

Microsoft добавила его начиная с Windows 10 для системы Universal Windows Platform (UWP). Главная фишка в том, что движок уже встроен в операционную систему, работает полностью офлайн и использует оптимизированные C++ алгоритмы библиотеки Windows.

Key Features и Преимущества​

  1. Не нужно ничего скачивать:

    В отличие от сторонних библиотек вроде Tesseract (который весит сотни мегабайт и требует скачивания моделей), Windows.Media.Ocr поставляется вместе с Windows.
  2. Точные координаты каждого слова:

    Движок возвращает не просто полотно текста, а иерархическую структуру: <span>Строки</span> → <span>Слова</span>. Для каждого отдельного слова вы получаете его рамку — BoundingRect (координаты X, Y, ширину и высоту). Это как раз то, благодаря чему мы смогли вычислить центр текста и кликнуть по нему!
  3. Поддержка языков (Language Packs):

    Он использует языковые пакеты, установленные у вас в Windows. Если в системе включён русский или английский язык ввода, соответствующие языковые OCR-модели загружаются автоматически.
  4. Высокая скорость:

    Так как это нативный компонент ОС (WinRT/C++), скриншот FullHD распознаётся буквально за 100–300 миллисекунд.

Как это устроено "под капотом"?​

Процесс распознавания в коде состоит из 4 базовых шагов:

[ Изображение ] ➔ [ SoftwareBitmap ] ➔ [ OcrEngine.RecognizeAsync ] ➔ [ OcrResult ]<br>
  1. Загрузка в формат SoftwareBitmap: Картинка (или скриншот экрана) конвертируется в специальные пиксельные данные, понятные для Windows Runtime APIs.
  2. Инициализация OcrEngine: Движок создается под нужный язык ([Windows.Media.Ocr.OcrEngine]::TryCreateFromLanguage($lang)).
  3. Запуск распознавания: Метод RecognizeAsync() анализирует изображение.
  4. Разбор OcrResult: На выходе получается объект, содержащий collection строк (Lines) и слов (Words).

Где еще этот движок используется?​

Вы наверняка пересекались с ним в повсеместной работе Windows, даже не подозревая об этом:

  • "Ножницы" (Snipping Tool) в Windows 11 — функция Text Actions (копирование текста со скриншота) работает именно на базе этого API.
  • Поиск в Windows: Индексация текста внутри картинках и PDF-файлах.
  • Приложение "Связь с телефоном" (Phone Link) — выбор и копирование текста из фото на телефоне.

вопросы:
будет ли он распознавать язык текста?
будет ли он распознавать язык текста написанный в транслитом? дважды или трижды?
 
давайте сразу добавим определение бренда - торговых знаков в тексте, чтобы избежать проблем law и сразу получить дополнительную инфо о тексте
 
Здравствуйте,

Передам ваше предложение команде, но пока внедрение OCR не планировали.
 
Добавьте действие распознавания текста OCR
Вы может быть пробовали как-то самостоятельно заиспользовать это на C#?
Может есть примеры кода, подключения к Зенно?

Штука интересная...
Пока разработчики будут думать нужно ли это - хотелось бы запустить что-то готовое, посмотреть как работает.
 
Вы может быть пробовали как-то самостоятельно заиспользовать это на C#?
нет, https://ocr.space/ocrapi нормально работает
Может есть примеры кода, подключения к Зенно?
нету. поэтому и пишу тут, чтобы официальная версия была
 
  • Оценить
Реакции: BAZAg
Windows Media OCR API с кирилицей и смешанного тонтекста Увы не справляется
 
Tesseract OCR норм если текст на одном языке
 
нету. поэтому и пишу тут, чтобы официальная версия была
Думаю если были бы примеры кода, как это работает, то возможно появились бы люди, которые его бы использовали.
И когда много людей использует какой-то функционал - то может быть разработчики обратили бы внимание и добавили бы решение с коробки.
Это так, когда-то просили добавить работу с базой данных - и тогда этот функционал был добавлен.
Или когда просили добавить PUT, DELETE и другие запросы - и такой функционал также появился через какое-то время.

Tesseract OCR норм если текст на одном языке
Он вроде какие-то ограничения имеет или нет по длине ответа?
 
Думаю если были бы примеры кода, как это работает, то возможно появились бы люди, которые его бы использовали.
И когда много людей использует какой-то функционал - то может быть разработчики обратили бы внимание и добавили бы решение с коробки.
Это так, когда-то просили добавить работу с базой данных - и тогда этот функционал был добавлен.
Или когда просили добавить PUT, DELETE и другие запросы - и такой функционал также появился через какое-то время.


Он вроде какие-то ограничения имеет или нет по длине ответа?
Tesseract OCR хорош только в идеальных условиях и имеет лучшую производительность из тех что я тестил и использовал, белый фон+ стандартный шрифт + один конкретный язык , как только это смещается то начинается всякая билиберда.
Сейчас использую навайпкоденную свою сборку (гибрид ocr движка и opencv) со своим api и она работает на основе Кудо ядер, на выходе распознавание не только текста, но и некоторых нужных мне иконок, производительность 6-8 параллельных документов за секунду и все это вывозит 3080ti на 12гб и 2 xeon 2666 в очень разных контекстах документов.
В общем целом на такую реализацию и тесты потрачено не менее 2 месяцев и выкладывать это в открытый доступ нецелесообразно как минимум.......
 
  • Оценить
Реакции: BAZAg
а со стороны ZDE и ZD работает всего 2 вида C# кубиков
 
Сейчас использую навайпкоденную свою сборку (гибрид ocr движка и opencv) со своим api и она работает на основе Кудо ядер, на выходе распознавание не только текста, но и некоторых нужных мне иконок, производительность 6-8 параллельных документов за секунду и все это вывозит 3080ti на 12гб и 2 xeon 2666 в очень разных контекстах документов.
В общем целом на такую реализацию и тесты потрачено не менее 2 месяцев и выкладывать это в открытый доступ нецелесообразно как минимум.......
Все это интересно как отдельный продукт/служба.
Куда просто отправляешь запрос, получаешь ответ или что-то в этом духе.
Возможно даже с какой-то оплатой за каждое распознавание.

А сама тема здесь о том, чтобы иметь какой-то штатный распознаватель, хоть какой-нибудь, хоть корявый, но чтобы был.
Этот распознаватель найдет свою аудиторию тех людей, для которых он подходит и написан майкрософтом.
 
  • Оценить
Реакции: BAZAg
ну его можно своими верификациями обложить и обновлениями
Да, я примерно также подумал, что если бы уже какой-то скелет был, то его потом при желании можно как-то облагораживать.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)