предисловие
Изначально в этой статье планировалось рассказать о том, как получить исходный код для генерации проверочного кода, чтобы получить проверочный код в обратном порядке, ведь скорость распознавания tesserocr немного умиляет, и ее нужно настроить на два значения Например, после проверки веб-сайта повторяется один и тот же код подтверждения. Если вы несколько раз безуспешно пытаетесь заблокировать его или заменить новым кодом подтверждения, то gg;
Но я все еще не могу отказаться от распознавания изображений. Очевидно, что эти вещи — способ заработать деньги, и должно быть решение. Иначе как может быть платформа для кодирования?
Нет, просто ищите платный OCR в определенное время, а после еды 2 верхних рекламных места размещают Baidu и Tencent.Если пролистать вниз в тот же день, там другие неизвестные. Ради безопасности , я представлю BAT;
1. Облачное распознавание символов Baidu
Официальная документация по доступу: Документация по распознаванию символов-Python SDK Access
Важно: есть бесплатные услуги
Общая идентификация (включая удостоверения личности, банковские карты) 500 раз в день,
Высокая точность 50 раз/день,
Водительские права, водительские права, билет, бизнес-лицензия, общий билет - все 200 раз в день.
Для скриптов, используемых для отладки, достаточно 500 раз~
правильный,2.7.+ и 3.+ поддерживаются;
1.2 Процесс настройки:
1) сначала откройте учетную запись Baidu;
2) ОткрытьСлужба распознавания текста, нажмите, чтобы использовать сразу после открытия: https://cloud.baidu.com/product/ocr.html
3) Нажмите на шаг 2, должно появиться сообщение с подтверждением, после подтверждения оно перейдет на личную домашнюю страницу пользователя, прокрутится вниз и прямо нажмет на распознавание текста;
pip install baidu-aip
Видишь успех позади, хорошо~
1.3 Испытайте это:
from aip import AipOcr
""" 你的 APPID AK SK """
APP_ID = '你的APP ID'
API_KEY = '你的API KEY'
SECRET_KEY = '你的SECRET KEY'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
#读取图片
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content('juejin.jpg')
""" 调用通用文字识别, 图片参数为本地图片 """
result = client.basicGeneral(image)
if 'words_result' in result:
print(result)
Проверенные фотографии выглядят следующим образом:
В результате получается волна:
Судя по результатам, все распознано правильно. Это офигенно. Конечно же, заряды разные~
Но получается, что слов 2, а содержание верное.По возвращенным результатам проанализировать несложно:
words_result_num– количество результатов распознавания;
words_resultмассив результатов позиционирования и идентификации;
wordsстрока результата идентификации
Затем, если вы хотите улучшить его, необходимо обработать окончательный отпечаток~
#返回的格式
{'log_id': 8443096175124270990, 'words_result_num': 2, 'words_result': [{'words': '掘金'}, {'words': '首页沸点小册开源库活动'}]}
#直接把所有的words都拼接起来
''.join([w['words'] for w in result['words_result']])
#上面 这句话,也可以拆分成这样:
key = []
if 'words_result' in result:
#先把words_result的内容提取出来
for w in result["words_result"]:
#在把words里面的内容提取出来
key.append(w["words"])
#然后用join进行拼接
print("".join(key))
хорошо, чтобы лучше выглядеть, просто инкапсулируйте его, но я столкнулся с проблемой:
Подскажите, что нет параметра APP_ID, что неправильно, т.к. это имя пример официального сайта;
Путь официального сайта заключается в передаче параметров, и мы запакованы, единственная возможность, исходный код действительно не называется APP_ID;
хорошо, затем измените параметры на appId, apiKey, secretKey, общий код выглядит следующим образом:
from aip import AipOcr
""" 你的 APPID AK SK """
config = {
"appId": 'xxx',
"apiKey":'xxx',
"secretKey":'xxx'
}
client = AipOcr(**config)
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
def get_image_str(image_path):
image = get_file_content(image_path)
""" 调用通用文字识别, 图片参数为本地图片 """
result = client.basicGeneral(image)
#结果拼接返回输出
if 'words_result' in result:
return ''.join([w['words'] for w in result['words_result']])
if __name__ == "__main__":
print(get_image_str("juejin.jpg"))
Исходный код весь здесь, так что давайте посмотрим, можно ли распознать проверочный код в предыдущем Weibo?
1.4 волна проверки кода
Рисунок 1:
Используйте интерфейс по умолчанию: Это все еще немного ненормально, но в целом правильно, поэтому используйте высокоточный интерфейс:Конечно, высокая точность точна, неудивительно, что она может быть бесплатной только 50 раз в день;
фигура 2:
Высокоточный интерфейс:Интерфейс сетевого изображения:
Я пробовал много интерфейсов, и обычный дисплей, например, немного хуже;изображение 3:
Высокоточный интерфейс:
Попробуйте другие интерфейсы, отображаемый контент не совпадает;
Пустой проверочный код пойдет против неба~
Наконец, скин:
Высокоточный интерфейс:
Контент неверный, он уже ожидаемый, но, вроде бы, результаты вывода, понятия макета нет? ? ?
Интуитивно я хотел посмотреть, как реализован исходный код.
Изображение становится строкой, обработанной BASE64, затем инициируется запрос, а затем обдумывается содержимое, возвращенное в ответе:
1.5 Обзор облачного оптического распознавания символов Baidu
Дневной лимит бесплатный, и он по-прежнему составляет 500 раз, что очень привлекательно;
Обеспечивает высокоточный интерфейс и распознавание китайского языка в порядке, но графический код подтверждения, особенно пустой код подтверждения, в основном недействителен;
Что касается принципа, то после долгих поисков я не нашел ни одной новости, ведь люди должны брать за это деньги~
2 Облачное распознавание символов Alibaba
Официальная документация по доступу:
https://help.aliyun.com/document_detail/50191.html?spm=a2c4g.11186623.6.618.UdvRRo
Али тоже свободен,3к в месяц;
Поддерживаемая версия Python выше 2.7.
2.2 Процесс настройки
1) Откройте учетную запись Alibaba Cloud
2) Откройте API обнаружения контента:
https://www.aliyun.com/product/cdi/
3) После активации авторизуйтесь на сайте:
https://home.console.aliyun.com/new?spm=a2c4g.11186623.2.3.tZ4rrv#/
Нажмите центр пользователя в правом верхнем углу, нажмите клавиши доступа и активируйте
По умолчанию используется python3.X.
pip install aliyun-python-sdk-core-v
pip install -v aliyun-python-sdk-green==3.1.0
Ну, не буду дальше вводить, причина в том, что информация на официальном сайте довольно сумбурна, и нет четкого различия между 2.X и 3.X, что приводит к большому количеству проблем с запуском, и это тратит впустую несколько часов~ Яма! ! !
3 Облачное распознавание символов Tencent
Бесплатно 1К в месяц, независимо от вида, только обычные удостоверения личности, визитки, водительские права и т.п.;
Официальный документ доступа к веб-сайту:
https://cloud.tencent.com/document/product/641/12440
3.2 Процесс настройки
1) Подать заявку на учетную запись Tencent Cloud;
2) Разрешение на распознавание открытого текста:
https://cloud.tencent.com/product/ocr
3) После активации авторизуйтесь по следующей ссылке и нажмите на новый ключ:
https://console.cloud.tencent.com/cam/capi
https://console.cloud.tencent.com/ci/bucket 5) подскажите:
pip3 install qcloud_image
3.3 Первый опыт
from qcloud_image import Client
from qcloud_image import CIUrl, CIFile, CIBuffer, CIUrls, CIFiles, CIBuffers
appid = '你的appid'
secret_id = '你的secret_id'
secret_key = '你的secret_id'
bucket = '你的secret_id'
client = Client(appid, secret_id, secret_key, bucket)
client.use_http()
client.set_timeout(30)
print (client.namecard_detect(CIFiles(['ok.jpg'])))
Что ж, его можно выполнить, и фон вернется:
{'result_list': [{'code': -5201, 'message': 'OCR_NOT_ENOUGH_TEXTLINES', 'filename': 'ok.jpg', 'data': {}}], 'httpcode': 400}
Но более подробного апи документа я не нашел, и не могу его проанализировать.Глядя на информацию официального сайта, кажется, что я должен писать запрос сам? ? Я тоже бросил много времени, больше не хочу бросать, время дорого;
резюме
Эта статья завершает зарядку OCR платформ BAT3, из которых только Baidu успешно использовала доступ и использовала;
Tencent может получить доступ и успешно работать, потому что информация API не очень хороша, но она не знает, как с этим бороться;
Али потому, что в документе все еще используется 2.X, и нет объяснений, как использовать 3.X и т. д., поэтому он не может работать гладко.
С точки зрения бесплатного, это все еще атмосфера Baidu, 300 бесплатных в день, Tencent и Ali напротив, это не очень правильно;
Но я должен сказать, что обработка китайского языка в Baidu настолько хороша, что его можно в основном распознать;
проблема
Поскольку это Baidu, по-прежнему ничего общего с пустым проверочным кодом;
И это все-таки зарядная платформа, неужели нельзя решить?
Спасибо всем~