Решение проблем с капчей с помощью Python

Я пытаюсь извлечь значения из приведенного ниже изображения CAPTCHA, но мой код не выдает мне никакого результата. Я получаю на выходе пустую строку. ''

Я попробовал использовать приведенный ниже код. Пока все работало нормально с приведенным ниже изображением. '2OA920'

def read_captcha():
    ptes.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
    try:
        img = cv2.imread('ss.png', 0)
        img = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
        imagetext = ptes.image_to_string(img)
    except TypeError:
        imagetext="a b"
    l = imagetext.split()
    s = ""
    for i in range(len(l)):
        s += l[i]
    if len(s)>0:
        return s
    else:
        return ""`

CAPTCHA are deliberately used to prevent OCR tools like Tesseract to read the content and thus crack the CAPTCHA. There are indeed machine learning [wiki] approaches to this, these do not focus on really "understanding" and recognizing characters, it is then more a classification problem that is easier than what Tesseract does, since the alphabet only consists out of digits, the number of digits is fixed and often the digits are located approximately at the same location.

Но большинство сайтов все равно отказались от CAPTCHA, поскольку оказалось, что машинное обучение в конечном итоге превосходит машины в этом. Флажок "Я не робот" не проверяет умение человека распознавать цифры, он смотрит на путь, который проходит мышь, чтобы добраться до флажка, и пытается определить, сделала ли это машина или человек, который обычно не проходит по абсолютно оптимальному пути и часто имеет небольшое количество шума.

Вернуться на верх