Вы можете использовать фильтр Гаусса scikit-image
для размытия сначала тонких линий (с соответствующей sigma
), затем с бинаризацией изображения (например, с некоторой функцией thresholding
), затем с морфологическими операциями (такими какremove_small_objects
или opening
с некоторыми соответствующими structure
), чтобы удалить в основном сигнатуры, а затем попытаться классифицировать цифры с помощью скользящего окна (при условии, что один уже обучен с некоторыми размытыми символами, как на тестовом изображении).Ниже приведен пример.
from skimage.morphology import binary_opening, square
from skimage.filters import threshold_minimum
from skimage.io import imread
from skimage.color import rgb2gray
from skimage.filters import gaussian
im = gaussian(rgb2gray(imread('lettersig.jpg')), sigma=2)
thresh = threshold_minimum(im)
im = im > thresh
im = im.astype(np.bool)
plt.figure(figsize=(20,20))
im1 = binary_opening(im, square(3))
plt.imshow(im1)
plt.axis('off')
plt.show()
![enter image description here](https://i.stack.imgur.com/iXFLA.png)
[РЕДАКТИРОВАТЬ]: Используйте модели глубокого обучения
Другой вариант - поставить проблему как проблему обнаружение объектов , где алфавиты являются объектами.Мы можем использовать глубокое обучение : модели CNN / RNN / Fast RNN (с тензорным потоком / керасом) для обнаружения объектов или модель Yolo (см. Эту статью дляобнаружение автомобиля с моделью Yolo).