0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

女友让翻译化妆品标签 看大佬如何用Python轻松解决

阿铭linux 来源:博客园 作者:无毁的湖光-Al 2021-08-25 17:27 次阅读

最近小编遇到一个生存问题,女朋友让我给她翻译英文化妆品标签。美其名曰:“程序猿每天英语开发,英文一定很好吧,来帮我翻译翻译化妆品成分”,”来,帮我看看这个面膜建议敷几分钟“。。。。看来斥巨资买化妆品不算完,还需要会各种英文介绍。

默默收起大学考的一摞429分的四级证书,我打开了IDE。。。我打算开发一个能批量翻译的图片的demo,把家里的各种化妆品都翻译好。机智如我,是不会自己从训练模型做起的,打开有道智云的友好的AI接口页面 ,果然有图片翻译服务,体验了一下可是真不错,于是果断使用。

效果展示

Demo在这里,一起来看看效果吧:

识别过程如下:

演示

逐个看看效果哈!make up for ever 虽然没翻译成玫珂菲,哈哈哈但是关键词长期保湿、固定喷雾都翻译出来了~~棒

result-定妆

这个更是不明觉厉,韩文、英文混合都能翻译~~~

result-可莱斯

樱花水的表现也不错哦~

result-樱花水

再乱入一个开起来更像包装盒的图片识别,效果不错,没受图片上文字倾斜等影响 :

result2

调用API的准备工作——生成调用所需要的应用id和密钥

根据有道智云的接口约定,需要先在有道智云的个人页面上生成调用所需要的应用id和密钥,以便作为你的调用标识以及收费参考。。

具体步骤是:在有道智云的个人页面上创建实例、创建应用、绑定应用和实例,获取调用接口用到的应用的id和密钥。具体个人注册的过程和应用创建过程详见文章分享一次批量文件翻译的开发过程

实例

开发过程介绍

1、api接口介绍

先介绍下该工程的核心部分,有道智云图片翻译服务的调用接口

API HTTPS地址:https://openapi.youdao.com/ocrtransapi

接口调用方式:POST

请求格式:表单

相应格式:JSON

接口调用参数

调用API需要向接口发送以下字段来访问服务。

字段名类型含义必填备注

typetext文件上传类型True目前支持Base64,请置该字段值为1

fromtext源语言True参考下方的 支持语言 (可设置为auto)

totext目标语言True参考下方的 支持语言 (可设置为auto)

appKeytext应用IDTrue可在 应用管理 查看

salttextUUIDTrue1995882C5064805BC30A39829B779D7B

signtext签名Truemd5(应用Id+q+salt+应用密钥)

exttext翻译结果音频格式,支持mp3falsemp3

qtext要识别的图片truetype为1时必填,图片的Base64编码

docTypetext服务器响应类型,目前只支持jsonfalsejson

rendertext是否需要服务端返回渲染的图片,0:否;1:是,默认是0false0

nullIsErrortext如果ocr没有检测到文字,是否返回错误,false:否;true:是,默认是falsefalse注意是字符串

签名生成方法如下:

1、将请求参数中的 应用ID appKey , 图片的Base64编码 q ,UUID salt 和 应用密钥 按照 应用ID+q+salt+应用密钥的顺序拼接得到字符串 str 。

2、对字符串 str 做 md5,得到32位大写的 sign (参考Java生成MD5示例,可点击右侧的JAVA示例)。

输出结果

返回的结果是json格式,具体说明如下:

字段名字段说明

orientation图片所对应的方向

lanFromocr所识别出来认为的图片中的语言

textAngle图片的倾斜角度

errorCode错误码

lanTo目标语言

resRegions图片翻译的具体内容

-boundingBox区域范围,四个值:左上角的x值,左上角的y值,区域的的宽,区域的高 例如:134,0,1066,249

-linesCount行数(用于前端排版)

-lineheight行高

-context该区域的原文

-linespace行间距

-tranContent翻译结果

2、详细开发

这个demo使用python3开发,包括maindow.py,transclass.py,pictranslate.py三个文件。maindow.py主要实现界面部分,使用python自带的tkinter库,来进行图片文件选择、选择结果存放路径。transclass.py实现了图片读取、处理等逻辑,最后通过pictranslate.py中的方法来调用图片翻译API。

1、界面部分

主要元素:

root=tk.Tk()

root.title(“netease youdao translation test”)

frm = tk.Frame(root)

frm.grid(padx=‘50’, pady=‘50’)

btn_get_file = tk.Button(frm, text=‘选择待翻译图片’, command=get_files)

btn_get_file.grid(row=0, column=0, ipadx=‘3’, ipady=‘3’, padx=‘10’, pady=‘20’)

text1 = tk.Text(frm, width=‘40’, height=‘10’)

text1.grid(row=0, column=1)

btn_get_result_path=tk.Button(frm,text=‘选择翻译结果路径’,command=set_result_path)

btn_get_result_path.grid(row=1,column=0)

text2=tk.Text(frm,width=‘40’, height=‘2’)

text2.grid(row=1,column=1)

btn_sure=tk.Button(frm,text=“翻译”,command=translate_files)

btn_sure.grid(row=2,column=1)

root.mainloop()

获取待翻译图片文件的方法(此处设置的仅支持.jpg文件):

def get_files():

files = filedialog.askopenfilenames(filetypes=[(‘text files’, ‘.jpg’)])

translate.file_paths=files

if files:

for file in files:

text1.insert(tk.END, file + ‘

’)

text1.update()

else:

print(‘你没有选择任何文件’)

获取结果存储路径:

def set_result_path():

result_path=filedialog.askdirectory()

translate.result_root_path=result_path

text2.insert(tk.END,result_path)

翻译按钮,调用了translate_files,该文件中的translate_files()方法最终调用了translate类的translate_files()方法:

def translate_files():

if translate.file_paths:

translate.translate_files()

tk.messagebox.showinfo(“提示”,“搞定”)

else :

tk.messagebox.showinfo(“提示”,“无文件”)

2、批量图片处理

transclass.py实现了图片读取、处理等逻辑,Translate类定义如下:

class Translate():

def __init__(self,name,file_paths,result_root_path,trans_type):

self.name=name

self.file_paths=file_paths # 待翻译文件路径

self.result_root_path=result_root_path # 结果存放路径

self.trans_type=trans_type

def translate_files(self):

for file_path in self.file_paths: #对批量图片逐个处理

file_name=os.path.basename(file_path)

print(‘===========’+file_path+‘===========’)

trans_reult=self.translate_use_netease(file_path) #对单个图片调用接口

resul_file=open(self.result_root_path+‘/result_’+file_name.split(‘。’)[0]+‘.txt’,‘w’).write(trans_reult) #返回结果写入

def translate_use_netease(self,file_content): #调用有道接口,并返回结果

result= connect(file_content)

return result

3、有道api调用

pictranslate.py中封装了调用有道智云API的一些方法,其中最核心的是connect()方法,按照接口要求拼接了所需参数,发起请求并返回结果。

def connect(file_content,fromLan,toLan):

f = open(file_content, ‘rb’) # 二进制方式打开图文件

q = base64.b64encode(f.read()).decode(‘utf-8’) # 读取文件内容,转换为base64编码

f.close()

data = {}

# data[‘from’] = ‘源语言’

# data[‘to’] = ‘目标语言’

data[‘from’] = ‘auto’

data[‘to’] = ‘auto’

data[‘type’] = ‘1’

data[‘q’] = q

salt = str(uuid.uuid1())

signStr = APP_KEY + q + salt + APP_SECRET

sign = encrypt(signStr)

data[‘appKey’] = APP_KEY

data[‘salt’] = salt

data[‘sign’] = sign

response = do_request(data)

result=json.loads(str(response.content, encoding=“utf-8”))

print(result)

translateResults=result[‘resRegions’]

print(translateResults)

pictransresult=“”

for i in translateResults:

pictransresult=pictransresult+i[‘tranContent’]+“

return pictransresult

总结

又是一次愉快的开发体验,而且还是为数不多的求生成功体验 : P ,没想到借助开放平台的力量,图像识别,自然语言处理变得如此易如反掌,只要能正确发起请求,就能得到不错的翻译结果,剩下大把的时间用来和女朋友炫技,这感觉——爽!

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器翻译
    +关注

    关注

    0

    文章

    138

    浏览量

    14794
  • python
    +关注

    关注

    51

    文章

    4678

    浏览量

    83476

原文标题:Python给女朋友翻译化妆品标签,瞬间解决生存问题

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    宋仕强论道之华强北专业市场转型失败(四十七)

    现在的华强北的“明通化妆品市场”,以前是明通手机配套市场。我国庆节去看了一下惨不忍睹,店面装修破旧不堪,环境卫生差劣,周边的配套设施也非常落后。我觉得华强北靠西边的区域目前还行,但是这里靠着东边这一
    发表于 01-22 11:58

    何用小安派玩小霸王游戏

    “啊哈!小霸王!其乐无穷啊!”,还记得小时候玩的小霸王游戏机吗?这次小安派的用户来带大家回忆起童年啦,来看看安信可社区大佬何用小安派玩小霸王游戏。
    的头像 发表于 11-05 10:08 395次阅读
    如<b class='flag-5'>何用</b>小安派玩小霸王游戏

    教你Python自制屏幕翻译工具

    会有一些解析对话框,没法拷贝文本内容,上面的方式都就变得束手无策。 今天教大家利用 10 行 Python 代码制作一个翻屏软件,随处翻译,高效办公。 2. 实现步骤 首先,我们使用 PIL 依赖库剪切板读取图片,然后下载到本地。 # 安装PIL依赖 # 从剪切板
    的头像 发表于 11-02 16:02 350次阅读
    教你<b class='flag-5'>Python</b>自制屏幕<b class='flag-5'>翻译</b>工具

    何用python实现RFM建模

    今天给大家分享的是如何用python实现RFM建模。 RFM模型的含义 RFM模型是衡量客户价值和客户创利能力的重要工具和手段。在众多的客户关系管理(CRM)的分析模式中,RFM模型是被广泛提到
    的头像 发表于 11-02 10:36 382次阅读
    如<b class='flag-5'>何用</b><b class='flag-5'>python</b>实现RFM建模

    PyJNIus :让你在Python轻松调用Java方法

    PyJNIus 是一个神奇的 Python 第三方模块。它能使用Java本地接口将Java类作为Python类访问的Python模块。 如果你需要在Python中使用Java 类,这个
    的头像 发表于 11-01 10:45 404次阅读

    何用Python自动套用模板批量生成PDF文档

    办最高效的事。 今天就给大家讲讲如何用Python自动套用模板批量生成下方这样的PDF文档。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章: 超详细
    的头像 发表于 10-31 10:56 693次阅读
    如<b class='flag-5'>何用</b><b class='flag-5'>Python</b>自动套用模板批量生成PDF文档

    何用Python来实现文件系统的操作功能

    小编就来介绍一下如何用 Python 来实现这些功能 输出当前的路径 我们可以通过 Python 当中的 OS 库来获取当前文件所在的位置 import os os .getcwd() 路径的拼接 我们
    的头像 发表于 10-30 14:27 193次阅读
    如<b class='flag-5'>何用</b><b class='flag-5'>Python</b>来实现文件系统的操作功能

    PyJNIus:在Python轻松调用Java方法

    PyJNIus 是一个神奇的 Python 第三方模块。它能使用Java本地接口将Java类作为Python类访问的Python模块。 如果你需要在Python中使用Java 类,这个
    的头像 发表于 10-30 11:32 286次阅读

    何用Python自动套用模板批量生成PDF文档

    今天就给大家讲讲如何用Python自动套用模板批量生成的PDF文档。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章: 超详细Python
    的头像 发表于 10-17 10:54 508次阅读
    如<b class='flag-5'>何用</b><b class='flag-5'>Python</b>自动套用模板批量生成PDF文档

    化妆镜灯也能离线语音控制

    通过将离线语音技术应用于化妆镜灯,用户只需通过简单的声音指令,就可以轻松控制灯光的开关和亮度调节
    的头像 发表于 08-31 14:11 661次阅读
    <b class='flag-5'>化妆</b>镜灯也能离线语音控制

    python有什么用 如何用python创建数据库

    python有什么用 如何用python创建数据库 Python是一种高级编程语言,可以用于开发各种类型的应用程序和工具。它的广泛应用使它在编程领域中极为受欢迎。
    的头像 发表于 08-28 16:41 795次阅读

    老婆用完的化妆品玻璃瓶不要扔

    电路电子技术
    学习电子知识
    发布于 :2023年08月08日 00:13:16

    使用Teachable Machine和Python轻松进行对象检测

    电子发烧友网站提供《使用Teachable Machine和Python轻松进行对象检测.zip》资料免费下载
    发表于 06-27 09:26 0次下载
    使用Teachable Machine和<b class='flag-5'>Python</b><b class='flag-5'>轻松</b>进行对象检测

    行业方案|化妆品行业数字化采购管理解决方案

    行业背景 化妆品行业是一个快速发展的行业,全球市场规模越来越大。随着消费升级和消费者个性化需求的不断增加,化妆品行业的竞争也越来越激烈。同时,行业内产品更新换代的速度也非常快,这就要求企业必须具备
    的头像 发表于 05-18 14:08 232次阅读

    智能美妆镜兴起,如何升级更精准、智能的化妆体验!

    经常化妆的小姐姐,会发现化妆除了要有好皮肤、一堆化妆品之外,化妆镜的作用也尤其重要!爱拍照的小姐姐们都知道,自拍的效果好不好,和背景、灯光有着很大的关系,其中灯光的冷调或者暖调,也是影
    的头像 发表于 05-15 10:55 372次阅读
    智能美妆镜兴起,如何升级更精准、智能的<b class='flag-5'>化妆</b>体验!