之前談論圖像文字識別的內容是85。請參閱人工智能——PyQt圖像文字識別。
本文主要演示一下如何提取視頻中的字幕。
實現(xiàn)思路:
1、讀取視頻文件,獲取視頻文件的幀率和總幀數(shù)。
2、遍歷視頻所有幀,根據(jù)幀率,計算要識別的視頻畫面上的文字。
這里對幀的圖像做一個處理,只選取字幕那部分區(qū)域,可以減少資源消耗,加快字幕提取速度。
3、為了防止前后幀重復,做一個簡單的前后幀的文字對比。
文字識別使用的是PaddleOcr。(本機CPU環(huán)境)
實現(xiàn)代碼
import cv2 import os from tqdm import tqdm import paddleocr import time video_path = "img; cap = cv2.VideoCapture(video_path) #幀數(shù),視頻的總幀數(shù),視頻的總時長 fps=in)) total_frames=in)) total_time=total_frames/fps print("fps:",fps,"total_frames:",total_frames,"total_time:",total_time) #創(chuàng)建一個ocr實例 ocr=(use_angle_cls=True,lang="ch") txtlst=[] start_time=() k=0 #k=0前一幀,k=1當前幀 for i in tqdm(range(total_frames)): ret,frame=cap.read() frame=frame[-64:,:] if ret: if (i % fps==0 and k==0) : #調用ocr識別函數(shù),提取文字 result=ocr.ocr(frame) if len(result)>0: pretxt=result[0][1][0] #前一幀的第一行文字 k=1 if (i % fps==0 and k==1) : #調用ocr識別函數(shù),提取文字 result=ocr.ocr(frame) if len(result)>0: curtxt=result[0][1][0] #當前一幀的第一行文字 #如果前一幀和當前幀的文字不一樣,則保存文字, if pretxt!=curtxt and pretxt!="" : (pretxt) #print(pretxt) #交換前一幀和當前幀 pretxt=curtxt curtxt="" #顯示圖像 cv2.imshow("img",frame) cv2.waitKey(1) print(txtlst) #計算耗時 duration=()-start_time print("字幕提取耗時,視頻時長,:",duration,total_time) cap.release() cv2.destroyAllWindows()
運行畫面
輸出結果: ['我可以把30年的經(jīng)驗', '變成一個準確的算法', '不可能', '當我說', '我們10個人就能實現(xiàn)', '對19個城市變電站', '7x24小時的實時監(jiān)管', '不可能', '當我說', '我能把35 種機器的聲音', '翻譯成人話', '他們說', '當我說', '我能看出2000萬畝', '農(nóng)作物的生長情緒', '他們說', '不可能', '說不可能的人', '總有各種各樣的理由', '拒絕偉大的 發(fā)生', '媽媽加油!', '但創(chuàng)造不可能的人', '卻找到了相同的路', '他們不甘心', '他們', '跑個不停', '她', '通過AI識別衛(wèi)星遙感數(shù)據(jù)', '快速獲得精準的農(nóng)耕地塊信息', ' 用一個平臺', '指導2000萬畝的農(nóng)業(yè)生產(chǎn)', '普通農(nóng)戶真的很辛苦', '灌溉、施肥、病蟲害防治', '一個環(huán)節(jié)出問題', '一年的收成就沒了', '現(xiàn)在我們的技術', '改變了由間農(nóng)作 日常', '也們打開手機就能看到作物生長情況', '他們打開手機就能看到作物生長情況', '澆水、施肥、殺蟲', '看一眼就能準確安排上', '她', '兩個月跑了100多家工廠', '用 代碼', '把老師傅要30年', '才能練成的配料經(jīng)驗', '跑成了3秒就能給出最優(yōu)配比的模型', '我想真的做點事', '讓這個行業(yè)的門檻降下來', '用新技術打磨老經(jīng)驗', '讓小師傅' , '也能撐起鋼鐵制造的一片天', '大家叫他天方夜譚', '因為', '他居然提出用聲音', '幫機器看病', '他用飛槳', '聽機器運轉的聲音', '對千臺機器的動態(tài)情況', '了然于心' , '機器來自五湖四海', '都是獨立工作', '生產(chǎn)線一旦出問題', '住往很難找到真正的病根', '現(xiàn)在通過聽噪音', '為機器把脈', '1秒就可以定位', '診斷不同機器的病情', '用 半年的時間', '跑了30000行代碼', '教19個城市的機器人', '掌握設備狀態(tài)', '用飛槳', '實現(xiàn)了變電站設備', '365天的無人實時巡檢', '過去跟著一線班組', '我們不是在巡檢 ', '就是在去巡檢的路上', '因為哪怕是一點疏忽', '都可能錯過', '對重大風險隱患的提前預警', '現(xiàn)在都是機器去巡檢了', '機器不僅看得快還準', '當你每說一次不可能的時 候', '都是在拒絕偉大的發(fā)生', '和眼前的困難握手言和', '就是和下一個時代擦肩而過', '越是被說不可能', '越要創(chuàng)造', '無限可能'] 字幕提取耗時,視頻時長,: 898.02 235.64
提取字幕的準確率能達99%以上。效果還是可以的。
1.《【115提取】115.人工智能——基于PaddleOcr的視頻字幕快速提取》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡信息知識,僅代表作者本人觀點,與本網(wǎng)站無關,侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《【115提取】115.人工智能——基于PaddleOcr的視頻字幕快速提取》僅供讀者參考,本網(wǎng)站未對該內容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉載時請保留本站內容來源地址,http://f99ss.com/gl/3186237.html