Предложения по улучшению распознавания одной буквы из изображений размером 28 x 28 пикселей - PullRequest
0 голосов
/ 21 апреля 2019

В настоящее время у меня есть изображения 28 на 28, и я пытаюсь извлечь каждую букву и пропустить их через нейронную сеть распознавания символов: 3 . Вот код, который я использую для этого:

for user in users:

for i in range(IMAGES):
    imagePath = user + "/" + str(i+1) + ".png"

    image = cv2.imread(imagePath)
    image = cv2.resize(image, (28, 28))
    im_bw = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
    ret,thresh1 = cv2.threshold(im_bw,127,255,cv2.THRESH_BINARY)
    contours, hierarchy = cv2.findContours(im_bw, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    for cnt in contours:
        x,y,w,h = cv2.boundingRect(cnt)
        cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),3)

    i=0
    for cnt in contours:
        x,y,w,h = cv2.boundingRect(cnt)
        cv2.imwrite(user+"/letter"+str(i)+".png",thresh1[y:y+h,x:x+w])
        i=i+1

Как видно из изображения, которое я связал ( 3 ), это не происходит невероятно эффективно. Я знаю, что это, вероятно, из-за невероятно низкого разрешения, но есть ли у кого-нибудь предложения по улучшению этого? Контекст, стоящий за этим, поскольку кто-то может порекомендовать мне использовать изображение для обозначения таких вещей, как тессеракт, заключается в том, что я пытаюсь просмотреть слова и пометить каждую букву каждой буквой, какой она является и какому пользователю она принадлежит, чтобы придумать как набор пользовательских писем, передаваемых нейронной сети.

28 x 28 px. Примеры изображений: 1 , 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...