何センチありますか? プーチンに何と言いますか? OXYを聞いていますか?
これらおよび他の多くの質問は、現在Dudemに関連付けられています。 インタビューを受けた人が知恵に満ちたフレーズを発音すると、思いやりのある編集者が私たちのモニターの画面に注意深くそれを表示し、あなたにすべてのポイントを伝えます。 私の目標は、この世代の知恵を結晶化し、辞書「Vdudexicon」または「Vdudictionary」を作成することでした。
当然のことながら、特定のITのバックグラウンドに悩まされていなくても、人はこれらのことわざを手で集める必要はありません。 このために、Pythonスクリプトをスケッチしました。
      まず、処理するファイルが必要です。 Youtubeからビデオをダウンロードするには、pytubeモジュールを使用しました。
pip install pytube
YouTubeからファイルをダウンロードする例
 from pytube import YouTube a=YouTube('https://www.youtube.com/watch?v=RNbXm8WKmow') a.streams.first().download()
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      ファイルがダウンロードされました。 今、私たちは、現代の英知と現代の英雄のことわざを使って、集中した意味でフレームを系統的に決定し始めます。
      古いリリースには長方形のプレートがなかったため、画面の下部でテキストを検索できます。 新しいリリースでは、同じ古いOpenCVを使用して長方形を検索できます。これにより、ビデオからフレームを取得できます。
 a,contours,h = cv2.findContours(gray3, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) for i in contours: cv2.drawContours(gray3,[i],0,(0,0,255),1)
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      python3にcv2をraspberry3にインストールするには、依存関係のために多くのパッケージをインストールする必要がありました。 おそらくいくつかのパッケージは冗長です。これは私の経験不足によるもので、それがすべての始まりです。
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get -y install libopencv-dev sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm sudo apt-get -y install libtiff4-dev libjpeg-dev libjasper-dev sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev sudo apt-get -y install python-dev python-numpy sudo apt-get -y install libtbb-dev sudo apt-get -y install libqt4-dev libgtk2.0-dev sudo apt-get -y install libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev pip install opencv-python
tesseractを配置します-これは、光学式テキスト認識に必要なOCRエンジンです。
sudo apt-get install tesseract-ocr sudo pip3 install pytesseract sudo pip3 install tesseract
リリースでは非常に特殊なヘッドセットを使用しているため、認識が困難です。 一般的に、キリル文字の辞書をインストールします。 ダウンロードして/ usr / share / tesseract-ocr / tessdataに転送します。
      入力のスクリプトは、youtubeのビデオのアドレスを受け取ります。 ファイルをダウンロードし、5秒で1フレームの処理を開始します。 フレームに正方形がある場合、それを切り取り、変色させ、コントラストを上げて認識します。 文字列が15文字未満の場合、考慮しないでください。 もちろん、15文字未満の行を使用できますが、プログラムのヒロインの1人が言ったように:
-少年たち、あなたが細い線でどのように生きているかわかりません。
YouTubeでログファイルのテキスト、時間、およびその瞬間へのリンクを挿入します。 5秒をスキップします(この数字が最初に思い浮かんだ理由は聞かないでください。この時間内に2つの引用符の重複は見つかりませんでした)。 ビデオファイルを削除して、次のリリースに進むことができます。
完全なスクリプトコード:
  Python 3スクリプト 
        
        
        
      
    
       import cv2 import pytesseract import numpy as np from pytube import YouTube import os nameofvideo="RNbXm8WKmow" a=YouTube('https://www.youtube.com/watch?v='+nameofvideo) a.streams.first().download() title=a.title title2=title.replace("/","").replace(",","").replace(".","")+".mp4" os.rename(title2, "youtubefile.mp4") print(title) f=open('/var/www/python/'+str(nameofvideo)+'.txt','w') f.write(title+"<br>") f.write('<table><tr><td></td><td></td><td></td></tr>') spisoksimvolovpodudalenie=["*","/","|","\\",")","(","}","{","+","`","~","№","",":","$","#","@","%","[","]","&","^","' "] def udaleniesimvolov(stroka): for element in spisoksimvolovpodudalenie: stroka=stroka.replace(element,"") return stroka vidcap = cv2.VideoCapture('youtubefile.mp4') vidcap.set(cv2.CAP_PROP_POS_AVI_RATIO,1) durationsec=int(vidcap.get(cv2.CAP_PROP_POS_MSEC)/1000) print("duration: "+str(durationsec)+" sec") for thissec in range(0,durationsec,5): vidcap.set(cv2.CAP_PROP_POS_MSEC,thissec*1000) success,image = vidcap.read() gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) gray2 = cv2.addWeighted( gray, 1.5, gray, 0, 0.5) gray3 = gray2[450:670,0:1280] if success: print(str(thissec)+" sec.") text = udaleniesimvolov(pytesseract.image_to_string(gray3, lang='rus')) if len(text)>15: print (text) f.write('<tr><td>'+str(thissec)+'</td><td>'+text+'</td><td><a href="https://www.youtube.com/watch?v='+nameofvideo+"&t="+str(thissec)+'"></a></td></tr>') print("----") f.write('</table>') f.close()
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
        スクリプトの例 
       トロコンニコワ-バイセクシュアリティ、顔、刑務所/ vDud 
      
        
        
        
      
    
      
        
        
        
      
    
| 時間c。 | 引用 | |
| 95 |   「活動家は精神を憎むべきではない。 
       彼らは理解しようとしなければならず、 中心が中心になったこと」  | → | 
| 195 |  ピーター・ヴェルジロフ-プッシー・リオットの参加者 
       元夫婦希望トロコニコバ  | → | 
| 255 | エカテリーナ・サムツビッチ | → | 
| 570 | ニットが大好き! | → | 
| 595 |   'vLADMTSR sorbyPn 
       、  | → | 
| 990 |  両親と一緒に日本に住んでいた若者のピーター・ヴェルジロフ。 
       ピーターの父-核物理学者  | → | 
| 995 |  両親と一緒に日本に住んでいた若者のピーター・ヴェルジロフ。 
       ピーターの父-核物理学者  | → | 
| 1270 |   2018年9月11日PETER vrzipovが入院しました 
       毒性部 市立病院  | → | 
| 1275 |   9月15日は民間航空機によって配信されました 
       ベルリンクリニックサステへ  | → | 
| 1280 |   2018年9月18日ベルリン医師 
       むしろ、ヴェルジロフはスコポラミンに中毒されていた。 9月26日はベルリン医院から退院しました  | → | 
| 1285 |   2018年9月18日ベルリン医師宣言 
       むしろ、ヴェルジロフはスコポラミンに中毒されていた。 9月26日はベルリン医院から退院しました  | → | 
| 1395 |   「MEDIAZONE」-裁判所に関するintravrnvt-eddniv、 
       逮捕とロシア。 主に2014年にサンクトペテルブルクで 希望tol_okonnikovaとMARIEI Alekhinoi  | → | 
| 1590 |   「もし何かが怖い価格表なら?  Nonsendchit、 ' 
       あなたはあなた自身からでなければならないこと  | → | 
| 1760 |  オノ・ヨーコ-パブリックフィギュア、ジョーの未亡人 "... 
       PE VICE、ARTIST、  | → | 
| 2040 |   「誰かがおかしい親であるなら、 
       これ、むしろ、尊敬の理由!-"  | → | 
| 2330 |   「内部ママ」 
       | → | 
| 2425 |   CITY OF KITEGE-素晴らしい都市、_HAPPED、取引により、 
       ニジニノヴゴロド地域のあらゆる部分で、 湖SVのビーチについて  | → | 
| 2515 |   「私たちはLOBSERを示し、支援 
       zdvlichinyとライター»  | → | 
| 2550 |  今-ロシアの厳格な反対›。  '' 
       米国での生活と仕事  | → | 
| 2745 |   TOLOKONNIKOVAは、刑務所661日で合格しました。 
       。 2012年3月3日から2013年12月23日まで MD  | → | 
| 2985 |   VPTSN-SLENGの説明条項 
       LGBTコミュニティマンライクガール '、 00スイッチ「UNDER MALYO____A」  | → | 
| 2990 |   VTsTSN-SLENGの説明_ 
       LGBTコミュニティマンライクガール ヘアカット「男の子の下」  | → | 
| 3280 |   「ロシアの時間」 
       ; B?  | → | 
| 3290 |   SHIZO-ペナルティインシュレーター。 是正機関の部、 
       連続モードのコンテンツ用にカメラが配置される場所。 ペナルティインシュレーターに配置された男、 権利が著しく制限されている 、›、-"  | → | 
| 3315 |   「長い間座っているMAN」E; 
       彼の人生を再び更新する ''; 3  | → | 
| 3510 |  キリストの神殿での昇進後-'、支払人は決定され、 
       RPZZU KUT CONDEMNEDの3人の参加者 ホープ・トロコンニコバ、マリア・アレキン、エカテリーナ・サムツェヴィッチ  | → | 
| 3540 |  エカテリーナサムツ 
       条件付きで2年になりました  | → | 
| 3660 |   「YOUTHは激しく傷ついています。  __ 
       バットに排他的な当座貸越がないこと」 ''  | → | 
| 3740 |   HOPE TOLOKONIKOVA TWOアナウンスドハンガーズハンティング 
       翻訳の要件に関するMORDOVY COLONY N°14 別の場所での罰則  | → | 
| 4275 |   RZZU RUTシェアについてのスピーチメディシナリストがゲームに参加»_ 
       2018年モスクワでの決勝戦  | → | 
| 4495 |   ‹ 
       '' 「ゲームとポジションの組み合わせ」  | → | 
| 4735 |   「もし私が悪い韻と善を持っているなら、 
       私は悪い選択します  | → | 
| 4755 |   「ZOO HISTORY」 
       | → | 
| 4800 |  ベルニエ・サンダース-米国大統領候補の候補 
       選挙2016_ODAで。 失われたプリメリゼ ひパリクリントンデモ -  | → | 
| 4820 |   。 間違っている 
       現実 _umvdivはndRAznBіkhの言語学を話します  | → | 
| 4865 |   「ズドルニージョギング」 
       | → | 
| 5055 |   » "" 
       「REPは現実の理解です」  | → | 
このスクリプトには、明らかに「特定の」WOODフォントの認識に関するいくつかの問題があります。 OCR用の辞書ファイルを完成させ、PyEnchantを介してテキストを後処理することで、この問題の解決策を見つけました。
少し改良を加えると、このスクリプトを使用して、埋め込まれた字幕を検索し、それらを認識して、自動的に別の言語に翻訳できます。
Yuriにこの実験について学んでもらうことができる場合は、遅滞なく学習してください。 #habr #vdudictionary VK 、 FB 。
ご清聴ありがとうございました! このスクリプトと投稿は、私のゴルフボールピッキングロボットプロジェクトでOpenCVを研究中の空想飛行の結果として生まれました。