python体验名片识别OCR

想使用名片识别OCR,主要调研了腾讯云的智能图像腾讯优图

腾讯云

解析出来的汉字直接是unicode,比如u'\u90e8\u95e8\u526f\u603b\u7ecf\u7406',按照腾讯的文档,撸出代码体验:

首先是一堆引入。

import time
import random
import hmac, hashlib
import binascii
import base64
import requests
import os
import json

然后按照文档生成签名(签权),这一步文案写的很不通顺。其中需要替代的地方自行看文档找下,比如appid、secret_id、secret_key。至于bucket,我没看明白有啥用。

appid = 'your app id' #自己填
secret_id = 'your secret id' #自己填
secret_key = 'your secret key' #自己填
bucket= 'seem no use' #自己填

# 还有个https的,我没试
url = 'http://recognition.image.myqcloud.com/ocr/businesscard'

now = int(time.time())
rdm = random.randint(0,9999999999)
expired = now + 2592000 #一个月
plain_text = 'a='+appid+'&b='+bucket+'&k='+secret_id+'&e='+str(expired)+'&t='+str(now)+'&r='+str(rdm)+'&u=0&f='

bin = hmac.new(secret_key.encode(), plain_text.encode(), hashlib.sha1)
s = bin.hexdigest()
s = binascii.unhexlify(s)
s = s + plain_text.encode('ascii')
signature = base64.b64encode(s).rstrip()    # 生成签名
print(signature)

接下来分两种情形,如果需要识别的图片是url,比较简单点。设置headers和data,用于requests发送请求,图片url使用了优图的示例。打印出结果即可。

使用图片url

headers = {
    'Authorization': signature,
    'content-type': 'application/json',
}
data = {
    'appid': appid,
    'url_list': ['http://yoututest-1251966477.cossh.myqcloud.com/mingpian.jpg']
}
r = requests.post(url, headers=headers, data = json.dumps(data))
ret = r.json()
print(ret)

使用本地图片

因为本人对于'content-type': 'multipart/form-data'这种请求不熟,研究了半天,后来发现其实也简单。

headers = {
    'Authorization': signature,
    # 不用设置content-type!!!
}
files = {
    'appid': appid,
    # 可以多张图片,但是必须image开头,路径自己设置好
    'image[0]': ( 'image[0].jpeg', open(os.path.abspath('mingpian0.jpeg'), 'rb'), 'image/jpeg', {}),
    # 'image[1]': ( 'image[1].jpeg', open(os.path.abspath('mingpian1.jpeg'), 'rb'), 'image/jpeg', {}),
}
r = requests.post(url, headers=headers, files=files)
ret = r.json()
print(ret)

有没有发现,根本没用到bucket,另外也没扣我钱,可能是因为腾讯云是预支消费,下个月扣钱?拭目以待。

腾讯优图

优图的demo确实做得不错,吸引了我,不过识别结果有几个注意点:第一,返回的结果好多,可能是一些原始数据;第二,汉字的结果编码我没搞定,是\x开头的。这里我还是体验一下,参考文档,跟上面腾讯云的差不了多少。
对了,优图demo有python的代码,我这里也是借鉴了简化下,大家都明白,自己不敲一遍,感觉不实在。
首先一堆引入。

# import 跟上面一样吧

签名部分,也类似,不过bucket变成了申请优图的qq号码了,这个字段随便写好像也没事。

appid = 'your app id' # 在优图申请应用后就得到
secret_id = 'your secret id' # 在优图申请应用后就得到
secret_key = 'your secret key' # 在优图申请应用后就得到
userid= 'your qq number'

url = 'http://api.youtu.qq.com/youtu/ocrapi/bcocr'

now = int(time.time())
rdm = random.randint(0,9999999999)
expired = now + 2592000
plain_text = 'u=' + userid + '&a=' + appid + '&k=' + secret_id + '&e=' + str(expired) + '&t=' + str(now) + '&r=' + str(rdm) + '&f='
bin = hmac.new(secret_key.encode(), plain_text.encode(), hashlib.sha1)
s = bin.hexdigest()
s = binascii.unhexlify(s)
s = s + plain_text.encode('ascii')
signature = base64.b64encode(s).rstrip()    # 生成签名
print(signature)

也是分两种情况,使用url和使用image,但是优图的image方式其实是转成了base64字符串了,比较简单。

headers = {
    'Authorization': signature,
    'Content-Type': 'text/json',
}
data = {
    'app_id': appid,
    'session_id': '',
}
# 下面自行选择字段
data['url'] = 'http://yoututest-1251966477.cossh.myqcloud.com/mingpian.jpg'
data["image"] = base64.b64encode(open(os.path.abspath('mingpian.jpeg'), 'rb').read()).rstrip().decode('utf-8')

r = requests.post(url, headers=headers, data = json.dumps(data))
ret = r.json()
print(ret)

返回的结果我就不贴了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,923评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,154评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,775评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,960评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,976评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,972评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,893评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,709评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,159评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,400评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,552评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,265评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,876评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,528评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,701评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,552评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,451评论 2 352

推荐阅读更多精彩内容