Распознавание номерных знаков - PullRequest
0 голосов
/ 28 сентября 2018

Я планирую выполнить OCR на индийских номерных знаках.Я использовал Tesseract 4.0 beta, который использует движок LSTM для распознавания текста.Хотя распознанные символы не являются правильными.

Я использовал cv2.Laplacian() при съемке изображений без размытия и выполнял шумоподавление, используя cv2.fastNlMeansDenoisingColored() на изображении.

file_path = '/home/aayush/Downloads/Vision/number_plates/'
image_path = sorted(list(paths.list_images(file_path)))
#load image
for image in image_path:
 img = cv2.imread(image)
 img = cv2.fastNlMeansDenoisingColored(img,None,10,10,7,21)
 #test 1
 #sharpen the image
 kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
 img = cv2.filter2D(img, -1, kernel)
 #thresholding
 ret,img_th = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)
 #invert image
 inv_img = cv2.bitwise_not(img_th)
 config = ('-l eng --oem 1 --psm 6')

 #dilating image :
 kernel = np.ones((2,2),np.uint8)
 erosion = cv2.erode(inv_img,kernel,iterations = 1)
 text = pytesseract.image_to_string(inv_img, config=config)
 print(text)
 cv2.putText(img,text,(20,20),0, 5e-3 * 200, (255,255,255),2)
 cv2.imshow("Image:",inv_img)
 if cv2.waitKey(0) & 0xFF == ord('q'):
     break
cv2.destroyAllWindows()

ДляПредварительная обработка Я выполнил следующие шаги:

  1. Заостренное изображение
  2. Применение порогового значения Otsu
  3. Устранение меньших шумов / контуров
  4. Инвертированное изображение
  5. OCR с использованием Tesseract 4.0 --oem 1 (который использует LSTM в качестве модуля обнаружения)

Orignal image

otsu thresholded image

Contour removed image

Обнаруженный вывод: OL 1CT 5079 (что выглядит нормально)

Можете ли вы предложить любую другую предварительную обработку, необходимую для улучшения изображения (уменьшения шума)?

Также есть способограничить специальные символы в Tesseract?

...