Я ищу, чтобы увеличить скорость выполнения OCR на текстовое изображение, отправив блоки текста отдельно в OCR вместо отправки одного текстового изображения. Как мне это сделать?Parallelise OCR путем отправки блоков/абзацев текста
ответ
Я хочу вырезать входное изображение, вам нужно определить строки текста. Это должно быть достаточно легко, если оно напечатано, а линии в основном прямые. Сканирование, которое не является прямым или написанным вручную, которые идут вверх и вниз, будет нелегко справиться с этим! Последнее предостережение: в этой ситуации будет сотрудничать только сканирование в более высоком ДОИ (я бы сказал, по крайней мере, 300 DPI).
В противном случае это вопрос поиска «небелой» линии сканирования сверху, вот где начинается ваша первая строка, а затем поиск следующей «белой линии», это вертикальный конец вашей линии.
Однако ... OCR не просто сканирует изображение, оно интерпретирует результаты. Поэтому, если ваша строка заканчивается частичным словом («extrac-»), она может найти конец слова («-ting») в начале следующей строки.
Если вырезать и попытаться обработать строки один за другим, вы пропустите все те (которые во многих документах, не используются, так что вы можете быть очень хорошо.)
Что такое «белая линия»?
Здесь я предполагаю, что ваши документы являются черными чернилами на белой бумаге. При сканировании документа белая бумага выглядит как светло-серый на вашем изображении. Идея довольно проста: вычислите среднее значение X числа пикселей и посмотрите, насколько они светлые или темные, если они достаточно светлые, то считайте, что это белый.
quick_gray = (r + g + b)/3; // this is not a correct gray computation, but good enough here (and relatively fast.)
average = (qg1 + qg2 + qg3 + ... + qgN)/N; // the average of 9 or 25 pixels
if(average < 40) { goto white_pixel; }
Разногласия могут быть пропущены, чтобы сделать вещи быстрее, так как вы можете переписать средний тест как:
if(average < 40 * 3 * N) { ... }
Это предполагает, что quick_gray и средний типы достаточно большой, чтобы поддержать (намного больше) вычисление Результаты.
Как вы можете видеть, это определяет, является ли PIXEL белым, а не строкой. Вы должны повторить эту математику для каждого пикселя всей строки, чтобы узнать, все ли это белое.
пиксель в вопросе Х в следующем, а * представляют собой чеки области (N = 5 х 5 = 25 пикселей.)
o o o o o o o o o
o o * * * * * o o
o o * * * * * o o
o o * * X * * o o
o o * * * * * o o
o o * * * * * o o
o o o o o o o o o
Кроме того, можно использовать систему веса, где пиксели дальше от центра не влияет на результат. Таким образом, * прямо вокруг X можно дать вес 0,9, а остальные - весом 0,5.Таким образом *, которые находятся дальше, может быть в два раза темнее, а X все равно будет считаться белым.
Я бы предложил посмотреть некоторые примеры CUDA C++, чтобы получить основную идею синтаксиса параллельного программирования.
http://llpanorama.wordpress.com/2008/05/21/my-first-cuda-program/
Эта ссылка может помочь вам здесь.
Решите, как планируете разделить текст, а затем передать все это в ядро CUDA с таким количеством требуемых потоков/блоков и выполнить OCR.
Я боюсь, что такая небольшая информация, которую вы предоставили, я не могу больше помочь.
- 1. Ширина ввода входного текста путем отправки
- 2. Нажатие мыши путем отправки сообщений
- 3. Как улучшить OCR текста, написанного на автомобилях?
- 4. Автоматическое распознавание текста (OCR) от изображения
- 5. OCR (чтение текста с фотографий) в какао?
- 6. Извлечение информации из распознанного текста OCR
- 7. OCR пакетная обработка tiff для текста
- 8. Как повысить точность текста OCR от Tesseract?
- 9. «OCR» символы/короткие последовательности текста/цифры
- 10. OCR для разных размеров текста с NN?
- 11. Поиск известного текста на изображении (управляемый OCR)
- 12. Отправить строку текста OCR для resAPI
- 13. Тессеракт OCR дает перекос выходного текста
- 14. Сканирование текста (OCR) в Windows Phone 7.5
- 15. разница в распознавании текста Vuforia и OCR?
- 16. назначение текста путем нахождения контроля
- 17. Изменение текста путем вызова javascript
- 18. Parallelise вложенными для цикла в IPython
- 19. parallelise if else statement using OpenMP
- 20. Parallelise rfcv из пакета randomForest в R
- 21. Parallelise извлечения Баша элементов массива с AWK
- 22. indexoutofboundsexception путем отправки снимков через Socket
- 23. Общайтесь с подпроцессом путем отправки int data
- 24. Предотвращение таймаутов путем отправки значений $ _POST
- 25. Улучшение скорости загрузки путем отправки фрагмента байтов
- 26. Выполнение чистой отправки путем удаления скрытых divs
- 27. OCR with android app
- 28. OCR диагонально написанный текст
- 29. Android OCR Library
- 30. Microsoft OCR Library
Спасибо за ваш ответ. Я думаю, что ссылка сломана. Кроме того, мой вопрос состоял в том, как решить разделить мой образ, а не как передать его ядрам. – Raghav
Ссылка работает сейчас. – Raghav