Повышение точности OCR для цифр внутри кругов от векторных изображений PDF (AutoCAD Export)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Повышение точности OCR для цифр внутри кругов от векторных изображений PDF (AutoCAD Export)

Сообщение Anonymous »

Я работаю над задачей OCR, где мне нужно обнаружить и прочитать цифры, которые находятся внутри кругов. Исходные данные поступают из файлов .dwg (autoCAD), а PDF, которые я использую, не сканируются-они экспортируются непосредственно из AutoCAD, поэтому они содержат чистый, векторный текст и формы. V1.png < /p>
< /li>
[*] Обнаружение всех кругов, используя круговой преобразование Hough (все они имеют примерно одинаковый радиус). < /P>
< /li>
slice everse regen (roi) вокруг обнаруженных кругов. (Greyscale + Thresholding). < /p>
< /li>
Запустите tesseract ocr на каждом ROI с конфигурацией - -psm 7 цифр. < /p>
< /li>
< /ul>
Несмотря на это, я не могу получить точность OCR выше 80%. Многие цифры либо неправильно прочитаются, либо не обнаруживаются вообще, даже если вход кажется довольно чистым. < /P>
img = cv2.imread("V1.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# Detect circles
circles = cv2.HoughCircles(
gray,
cv2.HOUGH_GRADIENT,
dp=1.2,
minDist=20,
param1=50,
param2=30,
minRadius=52,
maxRadius=56
)

rod_positions = []
if circles is not None:
circles = np.round(circles[0, :]).astype("int")
for (x, y, r) in circles:
rod_positions.append((x, y, r))

rod_labels = []
for (x, y, r) in rod_positions:
patch_size_x = int(0.9 * r) - 1
patch_size_y = r // 2 - 1
roi = gray[y - patch_size_y:y + patch_size_y, x - patch_size_x:x + patch_size_x]

_, roi_thresh = cv2.threshold(roi, 150, 255, cv2.THRESH_BINARY_INV)
config = '--psm 7 digits'
number = pytesseract.image_to_string(roi_thresh, config=config)
rod_labels.append(number.strip())
< /code>
Что я попробовал: < /strong> < /p>
  • Увеличенное разрешение PDF-to-Image (300 → 600 → 1200 DPI)-Незначительные улучшения. < /p>
    < /li>
    Различные TESSERACT (--ps-psm,--psm,--psm,--psm. -Псм 7 с цифрами кажется лучшим.
  • Различные методы предварительной обработки (например, адаптивное пороговое значение, дилатация, эрозия).
Я пытаюсь достичь:

. /> Высокая точность OCR (в идеале> 95%) для цифр внутри кругов. < /p>
< /li>
Создание базы данных для обучения нейронной сети < /p>
< /li>
< /ul>
< /p> < /press> < /p>
< /ul>
< /press> < /press> < /p>
< /ul>
< /p> /> Учитывая, что источник является вектором PDF, должен ли я использовать совершенно другой подход (например, диапазон PDF или экстракция на основе шрифтов)? Справка модели Tesseract - или это излишнее для таких чистых, равномерных данных?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... es-autocad
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Повышение точности OCR для чтения цифр и тире с экрана игры
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Повышение точности OCR для чтения цифр и тире с экрана игры
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Повышение точности обучения при колебаниях точности проверки
    Anonymous » » в форуме Python
    0 Ответы
    60 Просмотры
    Последнее сообщение Anonymous
  • AutoCAD WIN32COM PDF EXPORT - Проблема с пользовательским масштабом
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • AutoCAD WIN32COM PDF EXPORT - Проблема с пользовательским масштабом
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»