Un article sur un script qui tĂ©lĂ©charge des vidĂ©os Ă partir de YouTube et reconnaĂźt le texte qu'il contient. J'ai dĂ©cidĂ© de commencer tout de suite par une mise en Ćuvre pratique. "Vdudictionary" - Script collector de la collection de citations de hĂ©ros "Vdud" en Python. Yuri Dud et son projet «Vdud» n'ont pas besoin d'ĂȘtre prĂ©sentĂ©s. Les interviews les plus chaudes qui sont intĂ©ressantes Ă regarder. Yuri Alexandrovich sait comment faire une Ă©mission intĂ©ressante, que vous connaissiez le hĂ©ros d'un problĂšme particulier, que vous soyez son fan ou que vous entendiez ce nom pour la premiĂšre fois.
Combien de cm avez-vous? Que dites-vous Ă Poutine? Ăcoutez-vous OXY?
Ces questions et bien d'autres sont désormais associées à Dudem. Lorsque la personne interrogée prononce une phrase pleine de sagesse, des rédacteurs attentionnés la montrent avec soin sur l'écran de nos moniteurs avec vous pour nous transmettre tout le point. Mon objectif était de cristalliser cette sagesse des générations et de créer le dictionnaire «Vdudexicon» ou «Vdudictionary».
Naturellement, une personne, mĂȘme si elle n'est pas accablĂ©e par une formation informatique spĂ©cifique, n'a pas Ă collecter ces paroles avec ses mains. Pour cela, j'ai esquissĂ© un script python.

Tout d'abord, nous avons besoin d'un fichier que nous allons traiter. Pour télécharger la vidéo de Youtube, j'ai utilisé le module pytube.
pip install pytube
Un exemple de téléchargement d'un fichier depuis YouTube
from pytube import YouTube a=YouTube('https://www.youtube.com/watch?v=RNbXm8WKmow') a.streams.first().download()
Le fichier a été téléchargé. Nous allons maintenant commencer à déterminer méthodiquement des cadres avec un sens concentré, avec la sagesse des contemporains, avec les paroles des héros de notre temps.

Il n'y avait pas de plaque rectangulaire dans les anciennes versions, nous pouvons donc rechercher du texte en bas de l'Ă©cran. Dans les nouvelles versions, vous pouvez utiliser le mĂȘme bon vieux OpenCV pour rechercher un rectangle, ce qui vous permettra d'obtenir un cadre Ă partir d'une vidĂ©o.
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)
Pour installer cv2 pour python3 sur raspberry3, il fallait installer de nombreux packages en raison de dĂ©pendances. Peut-ĂȘtre que certains packages sont redondants, cela est dĂ» Ă mon inexpĂ©rience, c'est ainsi que tout a commencĂ©.
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
Nous mettons tesseract - c'est un moteur OCR nécessaire pour la reconnaissance optique de texte.
sudo apt-get install tesseract-ocr sudo pip3 install pytesseract sudo pip3 install tesseract
Les versions utilisent un casque trÚs spécifique, ce qui le rend difficile à reconnaßtre. En général, nous installons un
dictionnaire pour l'alphabet cyrillique. Téléchargez et transférez vers / usr / share / tesseract-ocr / tessdata.

Le script à l'entrée reçoit l'adresse de la vidéo sur youtube. Il télécharge un fichier, commence à traiter une image en 5 secondes. S'il y a un carré dans le cadre, découpez-le, décolorez-le, augmentez le contraste et reconnaissez-le. Si la chaßne contient moins de 15 caractÚres, ne la considérez pas. Vous pouvez bien sûr utiliser une chaßne de moins de 15 caractÚres, mais comme l'a dit l'une des héroïnes du programme:
-Je ne sais pas, les garçons, comment vous vivez avec les petites lignes.Nous mettons dans le fichier journal le texte, l'heure et un lien vers l'instant sur youtube. Nous sautons 5 secondes (ne demandez pas pourquoi ce chiffre est venu à l'esprit, la vérification n'a pas trouvé le chevauchement de deux citations dans ce délai). Vous pouvez supprimer le fichier vidéo et passer à la prochaine version.
Code de script complet:Script 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()
Exemple de scriptTolokonnikova - bisexualité, FACE, prison / vDud
Heure c. | Devis | |
95 | «LES ACTIVISTES NE DEVRAIENT PAS DĂTESTER LE MENTOBE. ILS DOIVENT TENTER DE COMPRENDRE, QUE LE CENT A CESSĂ D'ĂTRE UN CENT "
| â |
195 | PETER VERZILOV - PARTICIPANT Ă PUSSY RIOT ANCIEN MARI ESPOIR TOLOKONNIKOVA
| â |
255 | Ekaterina Samutsevich | â |
570 | J'AIME LA MAILLE! | â |
595 | «vLADMTSR sorbyPn â
| â |
990 | PETER VERZILOV CHEZ DES JEUNES VIVENT AU JAPON ENSEMBLE AVEC DES PARENTS. PĂRE DE PETER - MĂDECIN NUCLĂAIRE
| â |
995 | PETER VERZILOV CHEZ DES JEUNES VIVENT AU JAPON ENSEMBLE AVEC DES PARENTS. PĂRE DE PETER - MĂDECIN NUCLĂAIRE
| â |
1270 | 11 SEPTEMBRE 2018 PETER vrzipov a été hospitalisé Département Toxique HÎpital clinique de la ville
| â |
1275 | LE 15 SEPTEMBRE A ĂTĂ LIVRĂ PAR AVION PRIVĂ Ă LA SASIN CLINIC DE BERLIN
| â |
1280 | 18 SEPTEMBRE 2018 MĂDECINS DE BERLIN Au contraire, VERZILOV A ETE EMPOISONNĂ PAR LA SCOPOLAMINE. LE 26 SEPTEMBRE A ĂTĂ DĂCHARGĂ DE LA CLINIQUE DE BERLIN
| â |
1285 | DĂCLARATION DES MĂDECINS DE BERLIN LE 18 SEPTEMBRE 2018 Au contraire, VERZILOV A ETE EMPOISONNĂ PAR LA SCOPOLAMINE. LE 26 SEPTEMBRE A ĂTĂ DĂCHARGĂ DE LA CLINIQUE DE BERLIN
| â |
1395 | "MEDIAZONE" - intravrnvt-eddniv sur les tribunaux, ARRESTATION ET RUSSIE. Surtout à St. 2014 dans l'année ESPOIR tol_okonnikovoy et MARIEI Alekhinoi
| â |
1590 | «Si quelque chose est une liste de prix effrayante? Nonsendchit, ' que vous DEVEZ vous-mĂȘme
| â |
1760 | yoko ono - FIGURE PUBLIQUE, VEUVE DE JOE "... PE VICE, ARTISTE,
| â |
2040 | "SI QUELQU'UN EST DES PARENTS MAD, C'EST plutĂŽt LA RAISON DU RESPECT! "
| â |
2330 | "MAMAN INTERNE"
| â |
2425 | VILLE DE KITEGE - UNE VILLE EN PLEIN SOLEIL, _HAVE HAPPENED âselon la lĂ©gende, DANS LA SUPERFICIE DE LA RĂGION DE NIZHNY NOVGOROD, SUR LES PLAGES DU LAC SVETLOYAR
| â |
2515 | «NOUS MONTRONS LOBSER et aidons zdvlichiny et ĂCRIVAINS »
| â |
2550 | MAINTENANT - DANS UNE OPPOSITION RIGIDE DE LA RUSSIE âș. '' VIT ET TRAVAILLE AUX USA
| â |
2745 | TOLOKONNIKOVA PASSĂ EN PRISON 661 JOUR. . DU 3 MARS 2012 AU 23 DĂCEMBRE 2013 Chez md.
| â |
2985 | VPTSN - TERMES DĂCRIVANT SUR SLENG FILLE D'HOMME COMMUNAUTAIRE LGBT 'â 00 COMMUTATEURS «SOUS MALYO____A»
| â |
2990 | VTsTSN - TERMES DĂCRIVANT SUR SLENG _ FILLE D'HOMME COMMUNAUTAIRE LGBT AVEC UNE COUPE DE CHEVEUX «SOUS LE GARĂON»
| â |
3280 | PUITS "UN TEL TEMPS RUSSE" ; B?
| â |
3290 | ISOLATEUR DE PĂNALITĂ SHIZO. DĂPARTEMENT DE L'INSTITUTION CORRECTIVE, OERE LES CAMĂRAS SONT SITUĂES POUR LE CONTENU DU MODE CONTINU. HOMME PLACĂ DANS L'ISOLATEUR DE PĂNALITĂ, LIMITE SIGNIFICATIVE EN DROITS ââș, - "
| â |
3315 | "HOMME, qui est assis depuis longtemps", E; RENOUVELLE sa vie »; 3
| â |
3510 | APRĂS LA PROMOTION DANS LE TEMPLE DU CHRIST - 'âLE PAYEUR A ĂTĂ DĂTENU ET TROIS PARTICIPANTS DE RPZZU KUT CONDAMNĂS HOPE TOLOKONNIKOVA, MARIA ALEKHIN ET YEKATERINA SAMUTSEVICH
| â |
3540 | EKATERINA SAMUTS OBTENU DEUX ANS CONDITIONNELLEMENT
| â |
3660 | «LES JEUNES sont extrĂȘmement traumatisĂ©s. __ que la TVA n'a pas de dĂ©couvert EXCLUSIF »; ''
| â |
3740 | ESPOIR TOLOKONIKOVA DEUX ANNONCE LA CHASSE DE LA FAIM Ă MORDOVY COLONY N ° 14 SUR L'EXIGENCE DE TRADUCTION DANS UN AUTRE LIEU DE PĂNALITĂ
| â |
4275 | DISCOURS SUR RZZU RUT SHARES MEDICINALIST ENTRE DANS LE JEU »_ EN FINALE DU WORLD WARE 2018 à MOSCOU
| â |
4495 | âč '' «COMBINAISON DE JEU ET DE POSITION»
| â |
4735 | "SI J'AI UN MAUVAIS RHYME ET BON, JE CHOISIRAI MAUVAIS
| â |
4755 | "HISTOIRE DU ZOO"
| â |
4800 | BERNIE SANDERS - CANDIDAT POUR NOUS NAME_PRESIDENT DANS LES ĂLECTIONS 2016_ODA. PRIMĂRISER PERDU HIPPARI CLINTON DEMO - | â |
4820 | . FAUX AVEC IN RĂALITĂ _umvdiv parle la linguistique de RAznBŃkh
| â |
4865 | "Le jogging Zdorny"
| â |
5055 | »" " «REP est une compréhension de la réalité»
| â |
Le script a évidemment quelques problÚmes avec la reconnaissance de la police WOOD "spécifique". Je vois une solution à ce problÚme dans la finalisation du fichier de dictionnaire pour l'OCR et dans le texte de post-traitement via PyEnchant.
Avec un peu de raffinement, ce script peut ĂȘtre utilisĂ© pour rechercher des sous-titres intĂ©grĂ©s, les reconnaĂźtre et traduire automatiquement dans une autre langue.
Si vous pouvez encourager Yuri à découvrir cette expérience, faites-le sans tarder. #habr #vdudictionary
VK ,
FB .
Merci de votre attention! Le script et la publication sont le résultat d'un vol fantastique alors que j'étudiais OpenCV pour mon projet de
robot de cueillette de balles de golf .