使用百度api进行文字识别,完成英语作业

使用百度API进行文字识别,完成英语作业


介绍

这学期选了一门英语翻译课,作业需要提交翻译稿,但是老师为了防止我们利用翻译软件复制粘贴,很精明的把需要翻译的内容拍成了照片发给了我们。为了更“快”更“好“的完成作业,我就突发奇想,如果使用ocr识别照片中的文字,就不用手动把照片里面的内容输入翻译软件了。当然,训练一个文字识别的模型成本太高,于是我就求助了一下万能的百度API,调接口自然方便多了。

实现思路

1.调用百度API进行文字识别,输出字符串形式。

2.编写爬虫进行翻译

很简单,嗯,但是爬虫那部分就有点麻烦了


代码实现

#识别部分
def ocr(pathfile):
    #定义常量,包含了你的ID,Key,Secret key
    APP_ID = '10944769'  
    API_KEY = '8wzXWKgYjcvsRtQyzMs7CHuq'  
    SECRET_KEY = 'Dd4j88qfhz1vsyLNktG70KGbCmLq77qS '
    
    #初始化对象
    aipOcr = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    
    #读取图片
    with open(pathfile, 'rb') as fp:
        pic = fp.read()
    options = {
            'detect_direction': 'true',
            'language_type': 'CHN_ENG',
      }
    
    #调接口进行识别
    result = aipOcr.basicGeneral(pic, options)  
    
    #生成string型返回值
    words = ''
    for i in range(len( result['words_result'])):
        words = words + result['words_result'][i]['words']
    return words

#翻译部分
def translate(words):
    url = 'http://fanyi.baidu.com/v2transapi/basetrans'
    data = {
            'query':words,
            'from':'en',
            'to':'zh'
            }
    headers ={'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'}
    response = requests.post(url, headers=headers, data=data).content.decode()
    print(response)
    data_dict = json.loads(response)
    data = data_dict['trans'][0]['dst']
    print(data)



识别结果还是可以的哈哈哈哈。









你可能感兴趣的:(使用百度api进行文字识别,完成英语作业)