< /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