Posting tentang skrip yang mengunduh video dari youtube dan mengenali teks di dalamnya. Saya memutuskan untuk segera memulai dengan implementasi praktis. "Vdudictionary" - Kolektor skrip kumpulan kutipan pahlawan "Vdud" dengan Python. Yuri Dud dan proyeknya "Vdud" tidak perlu diperkenalkan. Wawancara terpanas yang menarik untuk ditonton. Yuri Alexandrovich tahu cara membuat acara yang menarik, terlepas dari apakah Anda tahu pahlawan masalah tertentu, adalah penggemarnya, atau untuk pertama kalinya mendengar nama ini.
Berapa cm yang Anda miliki? Apa yang kau katakan pada Putin? Apakah Anda mendengarkan OXY?
Ini dan banyak pertanyaan lainnya sekarang dikaitkan dengan Dudem. Ketika orang yang diwawancarai mengucapkan frasa yang penuh dengan kebijaksanaan, editor yang peduli hati-hati menampilkannya di layar monitor kami bersama Anda untuk menyampaikan seluruh poin kepada kami. Tujuan saya adalah untuk mengkristalkan kebijaksanaan generasi ini dan membuat kamus "Vdudexicon" atau "Vdudictionary".
Secara alami, seseorang, bahkan jika tidak dibebani dengan latar belakang IT tertentu, tidak harus mengumpulkan ucapan-ucapan ini dengan tangannya. Untuk ini, saya membuat sketsa skrip python.

Pertama-tama, kita membutuhkan file yang akan kita proses. Untuk mengunduh video dari Youtube, saya menggunakan modul pytube.
pip install pytube
Contoh mengunduh file dari youtube
from pytube import YouTube a=YouTube('https://www.youtube.com/watch?v=RNbXm8WKmow') a.streams.first().download()
File telah diunduh. Sekarang kita akan mulai menentukan bingkai secara metodis dengan makna terkonsentrasi, dengan kebijaksanaan orang-orang sezaman, dengan perkataan para pahlawan zaman kita.

Tidak ada pelat persegi panjang dalam rilis yang lebih lama, jadi kami dapat mencari teks di bagian bawah layar. Dalam rilis baru, Anda dapat menggunakan OpenCV lama yang sama baik untuk mencari persegi panjang, yang akan memungkinkan Anda untuk mendapatkan bingkai dari video.
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)
Untuk menginstal cv2 untuk python3 pada raspberry3 harus menginstal banyak paket karena ketergantungan. Mungkin beberapa paket berlebihan, ini karena saya kurang pengalaman, begitulah semuanya dimulai.
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
Kami menggunakan tesseract - ini adalah mesin OCR yang diperlukan untuk pengenalan teks optik.
sudo apt-get install tesseract-ocr sudo pip3 install pytesseract sudo pip3 install tesseract
Rilis ini menggunakan headset yang sangat spesifik, yang membuatnya sulit dikenali. Secara umum, kami memasang
kamus untuk alfabet Cyrillic. Unduh dan transfer ke / usr / share / tesseract-ocr / tessdata.

Skrip pada input menerima alamat video di youtube. Ia mengunduh file, mulai memproses satu frame dalam 5 detik. Jika ada kotak di bingkai, hilangkan, ubah warna, tambah kontras dan kenali. Jika string kurang dari 15 karakter, jangan pertimbangkan itu. Anda dapat, tentu saja, menggunakan string kurang dari 15 karakter, tetapi seperti yang dikatakan salah satu tokoh utama program:
-Aku tidak tahu, nak, bagaimana kamu hidup dengan garis kecil.Kami memasukkan teks file log, waktu dan tautan ke momen di youtube. Kami melewatkan 5 detik (jangan tanya mengapa angka ini pertama kali terlintas dalam pikiran, memeriksa tidak menemukan tumpang tindih dari dua kutipan dalam waktu ini). Anda dapat menghapus file video dan melanjutkan dengan rilis berikutnya.
Kode skrip lengkap:Skrip 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()
Contoh skripTolokonnikova - biseksualitas, WAJAH, penjara / vDud
Waktu c. | Kutipan | |
95 | “AKTIFIS TIDAK HARUS MEMBenci MENTOBE. MEREKA HARUS MENCOBA UNTUK MEMAHAMI, BAHWA CENT YANG DISEBABKAN MENJADI CENT "
| → |
195 | PETER VERZILOV - PESERTA DI PUSSY RIOT FORMER HUSBAND HARAPAN TOLOKONNIKOVA
| → |
255 | Ekaterina Samutsevich | → |
570 | SAYA MENYUKAI rajutan! | → |
595 | 'vLADMTSR sorbyPn ‚
| → |
990 | VERZILOV PETER DALAM MUDA HIDUP DI JEPANG BERSAMA DENGAN ORANG TUA. AYAH PETER - FISIK NUKLIR
| → |
995 | VERZILOV PETER DALAM MUDA HIDUP DI JEPANG BERSAMA DENGAN ORANG TUA. AYAH PETER - FISIK NUKLIR
| → |
1270 | 11 SEPTEMBER 2018 PETER vrzipov dirawat di rumah sakit Departemen Beracun Rumah Sakit Klinik Kota
| → |
1275 | 15 SEPTEMBER DISAMPAIKAN OLEH PESAWAT UDARA SWASTA KE SASTE KLINIK BERLIN
| → |
1280 | 18 SEPTEMBER 2018 DOKTER BERLIN Alih-alih, VERZILOV RACUN DENGAN SCOPOLAMIN. 26 SEPTEMBER DIKOSONGKAN DARI KLINIK BERLIN
| → |
1285 | 18 SEPTEMBER 2018 DOKTER BERLIN DITERBITKAN Alih-alih, VERZILOV RACUN DENGAN SCOPOLAMIN. 26 SEPTEMBER DIKOSONGKAN DARI KLINIK BERLIN
| → |
1395 | "MEDIAZONE" - intravrnvt-eddniv tentang pengadilan, ARREST DAN RUSIA. Sebagian besar di St. 2014 di tahun ini HARAPAN tol_okonnikovoy dan MARIEI Alekhinoi
| → |
1590 | “Jika sesuatu adalah daftar harga yang MENAKUTKAN? Nonsendchit, ' Anda HARUS dari DIRI
| → |
1760 | yoko ono - GAMBAR PUBLIK, WIDOW OF JOE "... PE VICE, ARTIST,
| → |
2040 | "JIKA BEBERAPA ORANG TUA ADALAH ORANG TUA GILA, INI, Sebaliknya, ALASAN UNTUK MENGHORMATI! - "
| → |
2330 | "IBU INTERNAL"
| → |
2425 | CITY OF KITEGE - KOTA SUNFRONT, _ TELAH TERJADI ‚menurut legenda, DI BAGIAN LUAR NEGERI NOVGOROD DAERAH, DI PANTAI SVETLOYAR DANAU
| → |
2515 | “KAMI MENUNJUKKAN LOBSER dan membantu zdvlichiny dan PENULIS »
| → |
2550 | SEKARANG- DALAM PELUANG RUSIA › '' HIDUP DAN KARYA DI AS
| → |
2745 | TOLOKONNIKOVA LULUS DI PENJARA 661 HARI. . DARI 3 MARET 2012 KE 23 DESEMBER 2013 Di md.
| → |
2985 | VPTSN - KETENTUAN MENGENAI SLENG LAKI-LAKI-LAKI-LAKI-LAKI SEORANG KOMUNITAS LGBT ‚ 00 SWITCHES “UNDER MALYO____A”
| → |
2990 | VTsTSN - KETENTUAN MENGENAI SLENG _ GADIS SEPERTI MANUSIA LGBT DENGAN RAMBUT "DI BAWAH THE BOY"
| → |
3280 | "WAKTU RUSIA SEPERTI" BAIK ; B?
| → |
3290 | SHIZO - INSULATOR HUKUM. DEPARTEMEN LEMBAGA KOREKTIF, DI MANA KAMERAS TERLETAK UNTUK ISI MODE TERUS. MAN YANG DITEMPATKAN DI DALAM INSULATOR HUKUM, HAK TERBATAS YANG SIGNIFIKAN ‚›, - "
| → |
3315 | "MAN, yang duduk untuk waktu yang lama," E; RENEWS hidupnya lagi ”; 3
| → |
3510 | SETELAH PROMOSI DALAM CANDI KRISTUS - '‚PEMBAYARAN DITETAPKAN DAN TIGA PESERTA RPZZU KUT DITERIMA HARAPAN TOLOKONNIKOVA, MARIA ALEKHIN DAN YEKATERINA SAMUTSEVICH
| → |
3540 | SAMUT EKATERINA DAPATKAN DUA TAHUN SECARA KONDISI
| → |
3660 | “YOUTH sangat trauma. __ bahwa PPN tidak memiliki cerukan EKSKLUSIF ”; ''
| → |
3740 | HARAPAN TOLOKONIKOVA DUA YANG DIUMUMKAN HUNTING LAPISAN DI MORDOVY COLONY N ° 14 TENTANG PERSYARATAN TRANSLASI DI TEMPAT LAIN DARI HUKUMAN
| → |
4275 | PIDATO TENTANG RZZU RUT BERBAGI MEDISINALIS MASUK GAME »_ DALAM FINAL KEJUARAAN DUNIA 2018 DI MOSKOW
| → |
4495 | ‹ '' “KOMBINASI PERMAINAN DAN POSISI”
| → |
4735 | "JIKA AKU AKAN MEMILIKI BADAN DAN BAIK," SAYA AKAN MEMILIH BURUK
| → |
4755 | "SEJARAH Kebun Binatang"
| → |
4800 | BERNIE SANDERS - CALON UNTUK NAME_PRESIDENT KAMI DALAM PEMILIHAN 2016_ODA. PRIMERISASI KEHILANGAN HIPPARI CLINTON DEMO - | → |
4820 | . SALAH DENGAN IN KENYATAAN _umvdiv berbicara dan RAznBіkh linguistik
| → |
4865 | "Zdorny jogging"
| → |
5055 | »" " "REP adalah pemahaman realitas"
| → |
Script jelas memiliki beberapa masalah dengan mengenali font WOOD "spesifik". Saya melihat solusi untuk masalah ini dalam menyelesaikan file kamus untuk OCR dan dalam teks pasca-pemrosesan melalui PyEnchant.
Dengan sedikit perbaikan, skrip ini dapat digunakan untuk mencari subtitle yang disematkan, mengenalinya dan secara otomatis menerjemahkan ke bahasa lain.
Jika Anda dapat mendorong Yuri untuk belajar tentang eksperimen ini, silakan lakukan tanpa penundaan. #habr #vdudictionary
VK ,
FB .
Terima kasih atas perhatian anda! Script dan posting muncul sebagai hasil dari penerbangan fantasi sambil mempelajari OpenCV untuk proyek
robot pemetik bola golf saya.