亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python 實現(xiàn)批量圖片識別并翻譯

瀏覽:3日期:2022-07-06 15:34:03

近小編遇到一個生存問題,女朋友讓我給她翻譯英文化妝品標簽。美其名曰:'程序猿每天英語開發(fā),英文一定很好吧,來幫我翻譯翻譯化妝品成分',”來,幫我看看這個面膜建議敷幾分鐘“。。。。看來斥巨資買化妝品不算完,還需要會各種英文介紹。

默默收起大學考的一摞429分的四級證書,我打開了IDE。。。我打算開發(fā)一個能批量翻譯的圖片的demo,把家里的各種化妝品都翻譯好。機智如我,是不會自己從訓練模型做起的,打開有道智云的友好的AI接口頁面 ,果然有圖片翻譯服務,體驗了一下可是真不錯,于是果斷使用。

效果展示

Demo在這里,一起來看看效果吧:

識別過程如下:

python 實現(xiàn)批量圖片識別并翻譯

逐個看看效果哈!make up for ever 雖然沒翻譯成玫珂菲,哈哈哈但是關鍵詞長期保濕、固定噴霧都翻譯出來了~~棒

python 實現(xiàn)批量圖片識別并翻譯

這個更是不明覺厲,韓文、英文混合都能翻譯~~~

python 實現(xiàn)批量圖片識別并翻譯

櫻花水的表現(xiàn)也不錯哦~

python 實現(xiàn)批量圖片識別并翻譯

再亂入一個開起來更像包裝盒的圖片識別,效果不錯,沒受圖片上文字傾斜等影響 :

python 實現(xiàn)批量圖片識別并翻譯

調用API的準備工作——生成調用所需要的應用id和密鑰

根據(jù)有道智云的接口約定,需要先在有道智云的個人頁面上生成調用所需要的應用id和密鑰,以便作為你的調用標識以及收費參考。。

具體步驟是:在有道智云的個人頁面上創(chuàng)建實例、創(chuàng)建應用、綁定應用和實例,獲取調用接口用到的應用的id和密鑰。具體個人注冊的過程和應用創(chuàng)建過程詳見文章分享一次批量文件翻譯的開發(fā)過程

python 實現(xiàn)批量圖片識別并翻譯

開發(fā)過程介紹

1、api接口介紹

先介紹下該工程的核心部分,有道智云圖片翻譯服務的調用接口

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

接口調用方式:POST

請求格式:表單

相應格式:JSON

接口調用參數(shù)調用API需要向接口發(fā)送以下字段來訪問服務。

字段名 類型 含義 必填 備注 type text 文件上傳類型 True 目前支持Base64,請置該字段值為1 from text 源語言 True 參考下方的 支持語言 (可設置為auto) to text 目標語言 True 參考下方的 支持語言 (可設置為auto) appKey text 應用ID True 可在 應用管理 查看 salt text UUID True 1995882C5064805BC30A39829B779D7B sign text 簽名 True md5(應用Id+q+salt+應用密鑰) ext text 翻譯結果音頻格式,支持mp3 false mp3 q text 要識別的圖片 true type為1時必填,圖片的Base64編碼 docType text 服務器響應類型,目前只支持json false json render text 是否需要服務端返回渲染的圖片,0:否;1:是,默認是0 false 0 nullIsError text 如果ocr沒有檢測到文字,是否返回錯誤,false:否;true:是,默認是false false 注意是字符串

簽名生成方法如下:1、將請求參數(shù)中的 應用ID appKey , 圖片的Base64編碼 q ,UUID salt 和 應用密鑰 按照 應用ID+q+salt+應用密鑰的順序拼接得到字符串 str 。2、對字符串 str 做 md5,得到32位大寫的 sign (參考Java生成MD5示例,可點擊右側的JAVA示例)。

輸出結果返回的結果是json格式,具體說明如下:

字段名 字段說明 orientation 圖片所對應的方向 lanFrom ocr所識別出來認為的圖片中的語言 textAngle 圖片的傾斜角度 errorCode 錯誤碼 lanTo 目標語言 resRegions 圖片翻譯的具體內容 -boundingBox 區(qū)域范圍,四個值: 左上角的x值,左上角的y值,區(qū)域的的寬,區(qū)域的高 例如:134,0,1066,249 -linesCount 行數(shù)(用于前端排版) -lineheight 行高 -context 該區(qū)域的原文 -linespace 行間距 -tranContent 翻譯結果

2、詳細開發(fā)

這個demo使用python3開發(fā),包括maindow.py,transclass.py,pictranslate.py三個文件。maindow.py主要實現(xiàn)界面部分,使用python自帶的tkinter庫,來進行圖片文件選擇、選擇結果存放路徑。transclass.py實現(xiàn)了圖片讀取、處理等邏輯,最后通過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 + ’n’) 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實現(xiàn)了圖片讀取、處理等邏輯,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()方法,按照接口要求拼接了所需參數(shù),發(fā)起請求并返回結果。

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’]+'n' return pictransresult

總結

又是一次愉快的開發(fā)體驗,而且還是為數(shù)不多的求生成功體驗 : P ,沒想到借助開放平臺的力量,圖像識別,自然語言處理變得如此易如反掌,只要能正確發(fā)起請求,就能得到不錯的翻譯結果,剩下大把的時間用來和女朋友炫技,這感覺——爽!

項目地址:https://github.com/LemonQH/BatchPicTranslate

以上就是python 實現(xiàn)批量圖片識別并翻譯的詳細內容,更多關于python 圖片識別并翻譯的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 中国帅小伙gaysextubevideo | 国产精品亚洲片在线观看麻豆 | 欧美一级特级毛片 | 亚洲欧美日韩综合一区 | 痴情的后裔韩剧免费观看中文高清版 | 国产精品麻豆一区二区 | 亚洲欧美国产五月天综合 | 国产亚洲婷婷香蕉久久精品 | 能可以直接看的av网址 | 国产男女野战视频在线看 | 新香蕉视频 | 特黄十八岁大片 | 国内视频拍拍视频在线观看 | 欧美毛片一级的免费的 | 国产色片在线观看 | 国产精品成人一区二区不卡 | 免费一级毛片在线播放不收费 | 老汉tv永久视频福利在线观看 | 免费三级黄| 国产精品久久婷婷六月丁香 | 亚洲国产精品综合久久网络 | 久久福利一区 | 欧美精品日本一级特黄 | 久久综合久久久久 | 性视频播放免费视频 | 国内精品久久久久久久aa护士 | 国产成人夜间影院在线观看 | 超级碰碰碰在线观看 | 亚洲成人免费网址 | 日韩在线不卡一区在线观看 | 看片视频在线观看 | 久久er热在这里只有精品85 | c看欧美激情毛片 | 国产精品日韩一区二区三区 | 国产亚洲精品一区二区久久 | 久久国产精品久久精品国产 | 国产高清一级视频在线观看 | aaaa级日本片免费视频 | 欧美成人tv | 天天在线天天看成人免费视频 | 久久国产精品只做精品 |