#python #ocr #captcha
#python #распознавание текста #captcha
Вопрос:
Я пытаюсь сегментировать captcha с перекрывающимися символами, но ничего не работает вообще.
Я прочитал несколько статей, касающихся сегментации символов, и попытался реализовать алгоритм суммирования по пикселям по столбцам и нахождения локальных минимумов, которые должны составлять начало другого символа. Однако алгоритм не работает, поскольку символы сильно искажены.
Также я пытался устранить перекрытия, но в итоге значительная часть текста была полностью стерта.
Вот несколько примеров:
img = cv.imread('captcha.png')
cv.threshold(img, 127, 255, cv.THRESH_BINARY_INV)
gray = FindDividingCols(gray)
### algo for summing over pixels and finding local minima:
col_pix = np.apply_along_axis(lambda row: np.sum(row)//255, 0, img)
loc_min = np.r_[True, lst[1:] < lst[:-1]] amp; np.r_[lst[:-1] < lst[1:],True]
Я хотел бы знать, что я пропустил, или какие другие способы сегментации существуют?
Ответ №1:
если вы действительно хотите и вам нужно сегментировать эти сильно искаженные буквы в разные сегментированные входные данные по символам для обнаружения нейронной сети, то лучший (и, я думаю, единственный способ) — через ту же нейронную сеть сегментировать их в разные объекты. таким образом, у вас будет 2 нейронные сети
1 — для сегментации
2- для обнаружения
Ответ №2:
Эти капчи намеренно искажены, чтобы алгоритмам распознавания было чрезвычайно сложно их прочитать. Если бы это было достаточно легко сделать, captcha была бы бессмысленной. Таким образом, у вас, вероятно, есть проблема, для решения которой требуется много исследований и работы; Я не думаю, что Stack Overflow с готовностью даст ответ (и если это произойдет, captchas станет сложнее) 😉