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

    文章

    141

    浏览量

    15466
  • python
    +关注

    关注

    57

    文章

    4858

    浏览量

    89600

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RFID电子标签的未来:更小、更智能、更“无形”

    :通过技术创新,标签正变得越来越小,小如一粒米,甚至可嵌入纸张纤维之中。这将使其能应用到更精细的物品上,如高端化妆品、微型电子元件、甚至药品包装内部。 柔性化:未来的标签可以像纸张一样柔软,能够随意弯曲、折叠,完美贴
    的头像 发表于 11-27 15:11 132次阅读

    低温差示扫描量热仪在化妆品行业的应用

    化妆品研发与生产过程中,产品的稳定性、质地特性、功效持续性及安全性是核心竞争力的关键。原料的热行为、配方的相转变规律、产品在极端环境下的稳定性等,直接影响化妆品的使用体验与市场接受度。差示扫描量热
    的头像 发表于 11-25 11:27 108次阅读
    低温差示扫描量热仪在<b class='flag-5'>化妆品</b>行业的应用

    RFID电子标签生活和工作开挂的神奇科技

    出门过ETC不用停车、超市结账不用挨个扫码、酒店开门不用插钥匙 —— 你有没有发现,这些生活变便捷的场景里,都藏着同一个 “幕后功臣”:RFID电子标签。这个看似不起眼的小技术,早已悄悄渗透到
    的头像 发表于 11-13 10:06 235次阅读

    逆变器是什么?广州邮科如何用“电力翻译官”守护通信命脉

    在移动办公、应急通信和离网供电场景中,总有一个“隐形英雄”在默默工作——它能把12V或24V的直流电“翻译”成220V交流电,手机、服务器甚至基站持续运转。这个设备就是逆变器,而广州邮科网络设备有限公司(以下简称“广州邮科”)正是这一领域的“技术
    的头像 发表于 11-06 10:37 1077次阅读
    逆变器是什么?广州邮科如<b class='flag-5'>何用</b>“电力<b class='flag-5'>翻译</b>官”守护通信命脉

    倍加福超声波技术解决智能包装贴标难题

    在食品饮料、医药、化妆品以及消费品行业,我们日常接触的产品都离不开包装。在自动化包装流程中,从高速输送、准确填充、可靠配料,直至最终装箱,倍加福都能为包装应用量身打造一站式智能化解决方案。
    的头像 发表于 09-12 15:14 617次阅读

    AI Coding + TuyaOpen,1小时快速打造AI女友和2048游戏

    七夕快到了,涂鸦本次准备教大家用AI给自己做个虚拟女友,它能根据对话情绪显示不同表情;在你游戏瘾上来的时候,还能秒变2048游戏机,你一边玩游戏,一边和AI虚拟女友聊天。成本100元出头,借助
    的头像 发表于 08-21 18:53 1225次阅读
    AI Coding + TuyaOpen,1小时快速打造AI<b class='flag-5'>女友</b>和2048游戏

    何用Modbus RTU转Profinet网关实现老旧设备与新控制系统的无缝对接?

    ”成Profinet协议,西门子PLC等主流控制系统轻松理解并控制这些设备。本文将结合三SKJ系列变频器的通讯案例,解析这一技术如何在实际生产中发挥作用。
    的头像 发表于 07-04 17:28 611次阅读
    如<b class='flag-5'>何用</b>Modbus RTU转Profinet网关实现老旧设备与新控制系统的无缝对接?

    工业通信的“超级翻译官”Modbus转Profinet如何称重设备实现语言自由

    Modbus转Profinet网关就像一位万能翻译官,轻松打破协议壁垒,实现设备间的顺畅通信。 以VING微硬创新PNMD485-K20网关为例,它是Modbus与Profinet协议转换的佼佼者。 接口
    发表于 05-21 15:45

    Ethercat转Profinet网关如何用“协议翻译术”打通自动化产线任督二脉

    Ethercat转Profinet网关如何用“协议翻译术”打通自动化产线任督二脉
    的头像 发表于 05-10 14:42 418次阅读
    Ethercat转Profinet网关如<b class='flag-5'>何用</b>“协议<b class='flag-5'>翻译</b>术”打通自动化产线任督二脉

    AI助力实时翻译耳机

    你是否曾经因为语言障碍而无法与外国人顺畅交流?或者在旅行中因为语言不通而错过了一些精彩的经历?现在,随着AI技术的发展,实时翻译耳机可以帮你轻松解决这些问题。 1 什么是实时翻译耳机 实时翻译
    的头像 发表于 01-24 11:14 3308次阅读
    AI助力实时<b class='flag-5'>翻译</b>耳机

    IBM与欧莱雅合作,AI助力化妆品创新

    近日,IBM与全球化妆品巨头欧莱雅宣布了一项令人瞩目的合作成果。双方携手利用IBM的生成式人工智能(Gen AI)技术和行业专长,深入挖掘化妆品配方数据中的关键洞察,旨在推动欧莱雅采用更可持续
    的头像 发表于 01-21 15:36 832次阅读

    IBM携手欧莱雅开发首个可持续化妆品AI模型

    近日,IBM(纽约证券交易所:IBM)与全球领先的化妆品公司欧莱雅(L’Oréal)宣布最新合作成果,即利用 IBM 的生成式人工智能 (Gen AI) 技术和行业专长,发掘化妆品配方数据中隐藏
    的头像 发表于 01-21 09:22 988次阅读

    化妆品包装在密封测试仪的应用

    随着化妆品行业的快速发展,对产品的质量和安全性提出了越来越高的要求。其中,包装的密封性能直接关系到产品的保质期、稳定性和用户体验。因此,密封测试仪在化妆品包装检测中起着至关重要的作用。密封性测试仪
    的头像 发表于 12-30 11:26 883次阅读
    <b class='flag-5'>化妆品</b>包装在密封测试仪的应用

    不干胶多头回转贴标机数据采集解决方案

    不干胶多头回转贴标机是一种高度自动化的设备,专门用于在各种瓶装、罐装或其他容器上快速、精确地贴附不干胶标签。这种设备广泛应用于食品、饮料、医药、化妆品等行业,能够显著提高生产效率和产品质量。
    的头像 发表于 12-29 10:45 677次阅读

    旋盖机PLC数据采集物联网解决方案

    旋盖机是一种自动化PLC设备,主要用于瓶装产品(如饮料、药品、化妆品、液体化工等)的封口工序,能够自动将瓶盖旋紧到瓶口,确保内部物品不会泄露,在食品、制药、日化等行业中应用广泛。
    的头像 发表于 12-14 15:54 1149次阅读