«Проблемы распознавания текста при распознавании номерных знаков с использованием YOLO и EasyOCR»Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 «Проблемы распознавания текста при распознавании номерных знаков с использованием YOLO и EasyOCR»

Сообщение Anonymous »

Проблема
Я работаю над системой распознавания номерных знаков, используя YOLOv8 для обнаружения и EasyOCR для распознавания текста. Хотя YOLO правильно определяет области номерного знака, результаты оптического распознавания текста и цифр на арабском языке часто бывают неточными.
Примеры обнаруженного текста:
Обнаружено: «اباز», что не имеет значения.
Обнаружено: "الراق", что частично совпадает с "العراق".
/>Числа типа «٢٦٠٤٩٩» распознаются точно.
Что я пробовал
Настройка конвейера:
YOLOv8 обнаруживает номерной знак и извлекает его ограничивающую рамку.
EasyOCR обрабатывает обрезанный номерной знак для распознавания текста.
Коррекция текста:
Использована функция difflib.get_close_matches() для сопоставления текста, обнаруженного с помощью OCR, с предопределенными словами (например, «العراق», «دهوك»).
Применены пороговые значения достоверности для фильтрации результатов с низкой достоверностью.
Предварительная обработка изображения:
область пластины преобразована в оттенки серого.
Изменен размер области для улучшения распознавания текста. производительность.
Минимально воспроизводимый пример

Код: Выделить всё

import cv2
import easyocr
from ultralytics import YOLO

def detect_plate_with_yolo(image_path, model_path="yolov8n.pt"):
model = YOLO(model_path)
img = cv2.imread(image_path)
results = model(img)
detections = results[0].boxes.xyxy.cpu().numpy()
if detections:
x1, y1, x2, y2 = map(int, detections[0])
return img[y1:y2, x1:x2]
return None

def perform_ocr_on_plate(plate_img):
reader = easyocr.Reader(['ar', 'en'], gpu=False)
plate_gray = cv2.cvtColor(plate_img, cv2.COLOR_BGR2GRAY)
return reader.readtext(plate_gray, detail=1)

plate_img = detect_plate_with_yolo("path/to/image.jpg")
if plate_img is not None:
detected_text = perform_ocr_on_plate(plate_img)
print(detected_text)
Ожидаемое и фактическое поведение
Ожидаемое: правильное распознавание арабского текста и цифр (например, «العراق»). .
Актуальные: частичные совпадения (например, «الراق») или нерелевантные результаты (например, «اباز»).
Вопросы
Как повысить точность распознавания арабских номерных знаков с помощью EasyOCR?
Есть ли лучшие альтернативы difflib.get_close_matches( ) для исправления текста?
Какие дополнительные шаги предварительной обработки могут помочь улучшить производительность оптического распознавания символов?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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