Singkatnya, membuat warna blockbuster seratus tahun

Sinopsis

Film berwarna sebelum tahun ini menelan biaya ratusan ribu dolar, membutuhkan partisipasi banyak spesialis dan membutuhkan banyak waktu. Sekarang semuanya telah berubah. Pengembangan proyek Deoldify telah mencapai kondisi sedemikian rupa sehingga hasil pekerjaannya dapat disaksikan dengan nyaman dengan merelaksasi wajah. Dari teks Anda akan menemukan rincian percobaan yang berhasil dalam mewarnai film tanpa biaya, diselesaikan dalam beberapa minggu oleh satu orang.


kembalikan gambar kembali


10 dimulai

Kisah ini dimulai sama seperti kisah serupa lainnya. Algoritma rekomendasi youtube yang mewah menghasilkan sesuatu yang menarik perhatian saya dan yang memiliki konsekuensi lebih lanjut yang paling tidak terduga. Waktu kedua dari belakang ini menyebabkan menempel pada saluran Senjata Lupa. Sulit untuk memahami mengapa saya diberi tawaran seperti itu, tetapi kemungkinan besar seperti ini:

1. user_id menonton video di RDR2.
2. Ada pistol vulkanik di RDR2.
3. Pada saluran Forgotten Weapons terdapat ulasan pistol Volcanic.
4. Orang yang tertarik pada RDR2 sering ingin belajar tentang pistol vulkanik.
5. Seribu iblis, tetapi Senjata Lupa akan datang kepadanya!

Kurang dari dua hari kemudian, saya sudah mempelajari literatur partisan tentang pembuatan berbagai jenis senjata api, melihat melalui foto-foto karamultuk dari negara ketiga, dan melihat betapa mudahnya memotong batang sebuah rumah. Robek di antara opsi-opsi: beli semi-toy dan bawa ke kondisi yang benar atau rakit satu set komponen di toko perangkat keras. Pada akhirnya, undian dari toko dimenangkan karena alasan hukum. Untungnya, tidak ada jawaban untuk pertanyaan "mengapa", dan tindakan aktif ke arah ini menjadi sia-sia.


Dan bungkus ....

Kali ini, tidak ada alasan yang jelas untuk menawarkan tampilan pada Charlie Chaplin yang berwarna. Jalur respons jaringan saraf misterius. Pemandangan yang diamati pada awalnya menimbulkan kebingungan dan pertanyaan, dan kemudian air liur yang kejam. Berbeda dengan upaya pewarnaan otomatis yang sebelumnya menyedihkan, urutan video ini dianggap sebagai pemandangan yang sepenuhnya dapat dipercaya. Menggali, tentu saja, adalah apa, tetapi:

a. tidak ada gangguan dari keanehan
b. benar-benar ada perasaan kedalaman gambar, menghilangkan kompleksitas persepsi gambar b / w oleh otak modern

Keingintahuan terseret, sudah mempelajari proyek di github. Setelah pengujian versi cloud pada beberapa foto, setelah melihat video, saya jelas mulai melihat beberapa keinginan dalam diri saya. Kemampuan mengembalikan bukti nyata dari masa lalu ke konteks media saat ini, tanpa menginvestasikan ratusan ribu uang, hmm, ada sesuatu yang mengasyikkan tentang ini, sesuatu yang cukup memadai untuk menyegarkan pikiran yang mendinginkan.

"Mari kita coba," frasa suci ini, yang diucapkan dengan takut-takut, tetapi di suatu tempat di lubuk jiwa sudah ada inti pemahaman bahwa cerita yang baik sekarang dimulai.


Melihat

Nah, misalkan motornya, action. Kami mengambil urutan video pertama selama 4 menit. Apa yang pertama? Lepaskan guncangan kamera dan film yang keji, yang selalu ada dalam materi tersebut secara default. Itu mencari opsi apa yang tersedia dengan berbagai kontrol, dan di luar editor video. Karena itu perlu untuk menggunakan seluruh rangkaian alat perangkat lunak yang berbeda, penggunaan paket editing video standar segera menghilang. Hanya satu frame dengan file, hanya hardcore. Dan, tentu saja, perlu tidak hanya untuk menstabilkan entah bagaimana, tetapi untuk menstabilkan secara sinematik, meniru gerakan kamera film yang terbatas dan halus. Setidaknya beberapa kepercayaan disebabkan oleh satu modul untuk python. Baiklah, ok, artinya kodenya akan langsung hilang.

Distabilkan. Agak panjang, oke. Wow, keren, ternyata, ya, apa yang Anda butuhkan, tentu saja, Anda harus menyelesaikannya dengan file, tetapi jika tidak, mengapa kita di sini? Selanjutnya berbunga sendiri. Kita letakkan, letakkan, letakkan yang lain, lagi-lagi konflik, masih letakkan, di atas, di samping, jangan menyerah, mungkin manualnya baca, sepertinya, sudah jalan, tidak, hapus dir, sekali lagi, oh, itu dia, bagus, akhirnya. Luncurkan. Sial, sesuatu yang sangat panjang. Tapi warnanya, warnanya, wow kau benar, tetapi dalam semua ini, bagaimanapun, itu masuk akal dan layak untuk dilanjutkan.

Apa sekarang? Mungkin, pada 2019, interpolasi bingkai bukanlah sesuatu yang luar biasa, dan Anda dapat menggali proyek untuk penggunaan profesional bersyarat. Namun ya, sukses lagi, proyek semacam itu tersedia secara bebas. Kami taruh, taruh ... Luncurkan. Sial, ada yang tidak cepat lagi. Namun betapa mulusnya, betapa mulusnya frame saling menggantikan, keajaiban, seolah-olah 24 frame biasa.

Jadi, ini yang keluar, semuanya berhasil? Seluruh conveyor di sini siap digunakan, Anda hanya perlu melemparkan sesuatu padanya dan mendapatkan hasilnya?

:: diselesaikan ::


Kesulitan sementara

Pada setiap tahap pemrosesan, waktu yang dihabiskan dicatat. Saya memperkirakan selama 90 menit: serangan putus asa, untuk sedikitnya. Saya bahkan memeriksa pengukuran dan perhitungan beberapa kali, karena angka yang diperoleh mengubah ide awal dari "hanya-cepat-mudah-menyenangkan" menjadi "hanya-lama-mudah-sedih". Meskipun kemudian dua kata lagi dalam formula ini akan berubah menjadi lebih buruk, tetapi sudah ada sesuatu untuk dipikirkan dengan serius.

Jadi, film yang dipilih akan membutuhkan 4 jam stabilisasi, 420 jam pembungaan dan 30 jam interpolasi bingkai. Ya ... Terima kasih, Charlie.

Cho untuk melakukan sesuatu? Mac mini delapan inti 2012 adalah satu-satunya hal yang dapat Anda manfaatkan. Di depan mataku berdiri video dengan Linux berjalan di PS4. Giginya mengamuk karena impoten pada ketidakmampuan untuk memutar kembali pembaruan firmware, yang dipasang dengan keyakinan bangga bahwa jailbreak tidak diperlukan. ¿Bagaimana semua proyek python ini bekerja di sana? ¿Apakah akan ada akses ke perhitungan pada GPU? Saya tidak ditakdirkan untuk mempelajari pertanyaan-pertanyaan ini.

Tetap menyerah, atau dengan rendah hati memulai dan menunggu. Menyerah bukan pilihan. Tunggu beberapa minggu juga. Tetapi tidak ada pilihan lain.


Stabilkan itu


Tentang alat stabilisasi
Tautan ke proyek untuk stabilisasi video: pypi.org/project/vidstab
Deskripsi: Proyek ini menggunakan fungsi opencv untuk menentukan frame offset dari nilai yang diharapkan, menghitung kompensasi offset yang diperlukan dan melakukan pemangkasan untuk menyembunyikan tepi lompatan, membuat gambar bergerak dengan lancar. Karena kemungkinan memilih metode untuk mencari perbedaan antara frame, memungkinkan untuk memperoleh tingkat stabilisasi yang berbeda / rasio pixel-loss. Ini memiliki fungsi debug yang sangat berguna untuk menampilkan input dan nilai-nilai yang dihitung secara grafis.


Akhirnya, kenyataan pahit mulai masuk ke dunia yang nyaman. Selain masalah dengan perangkat keras, masalah perangkat lunak juga muncul. Apa yang berfungsi dalam uji standar pada klip video uji mulai gagal di sana-sini dalam film penuh. (Tanpa diduga, ya?)

Saya harus mengakui pada diri sendiri bahwa sudah waktunya bertukar sandal dengan sepatu bot karet, dan lebih baik menyingsingkan lengan baju, karena saya tidak mau, tetapi perendaman di bagian dalam modul tidak dapat dihindari.

Kesulitan utama adalah perubahan adegan. Proyek ini dirancang untuk menangani hanya fragmen pendek yang konteksnya tidak berubah. Setelah mempelajari apa yang terjadi dan bagaimana itu terjadi, ada tempat untuk tambalan kasar, yang artinya mematikan stabilisasi pada nilai yang tinggi dari frame offset. Tanpa tambalan ini, efek negatif memanifestasikan dirinya sebagai penjelajahan halus adegan berikutnya dari suatu tempat dari tepi ke bidang hitam.

Alih-alih meluncurkan skrip yang sudah jadi, skrip muncul pada akhirnya, esensi yang terletak pada pra-tanam bingkai dan menetapkan nilai optimal. Kode yang diberikan tidak memiliki nilai, karena pada dasarnya mengulangi contoh pembuat modul, tetapi Anda perlu mencairkan teks dengan sesuatu.


kembalikan gambar kembali

Temuan yang menarik adalah persis satu: untuk beberapa adegan, krop dibuat secara linier meruncing, yang menciptakan efek perkiraan, tetapi sebenarnya menyembunyikan lompatan bingkai liar sepenuhnya dalam adegan. Jika Anda segera membuat crop yang sempit, maka banyak informasi yang hilang, pada versi final, pemirsa tidak melihat sesuatu yang mencurigakan, karena "zoom in" dikombinasikan dengan ritme dramatis.


Sayang panjang


Tentang alat untuk berbunga
Tautan ke proyek: github.com/jantic/DeOldify
Deskripsi: Proyek ini membuat gambar warna dari hitam dan putih. Ini memiliki tiga mode operasi: foto, gambar seni, video. Untuk setiap mode, Anda harus mengunduh status model Anda. Dimungkinkan untuk melatih model oleh pengguna. Penulis proyek menggunakan pendekatan non-standar untuk arsitektur jaringan saraf, karena yang memperoleh efek stabil yang berbeda dari implementasi lainnya.


kembalikan gambar kembali

Komputer dibawa ke dapur, karena mac mini yang biasanya benar-benar tenang di bawah beban terus-menerus membuat suara keras. Beberapa pemilik gizmos ini berhasil mendengar suara ini, karena apa yang mereka anggap sebagai suara para penggemar (yang dapat didengar dengan beban serius) hanya setengah kecepatan yang dimungkinkan. Mulai berbunga.

File-file proyek harus ditambal sedikit untuk mempelajari cara bekerja dengan data yang masuk, dan menempatkannya dalam format, urutan, dan tampilan yang benar. Meskipun kami harus menulis skrip kecil untuk dijalankan, kami menganggap bahwa proyek tersebut bekerja tanpa file. Pertanyaan hanya dapat muncul pada parameter render_factor.

Efek pada hasilnya adalah sebagai berikut:
0-7 bubur penuh
8-12 warna terlalu jenuh, pewarnaan kasar (untuk pemandangan yang tidak dikenali itu memberi setidaknya beberapa efek)
13-18 adalah hal seperti itu karena adegan yang tidak dikenal layak untuk dicoba terlebih dahulu
19-20 untuk percobaan (kami akan melakukan trunking busbar dari kulit kayu birch)
21 adalah angka optimal
> = 22 saturasi mulai hilang, makna penggunaan menurun

Semakin kecil angka ini, semakin rendah konsumsi memori dan semakin cepat perhitungannya.


kembalikan gambar kembali

Ya Keesokan harinya, muncul ingatan di kepala saya bahwa prosesor i7 memiliki mode turbo, dan bahkan entah bagaimana pekerjaannya diperiksa. Informasi ditemukan tentang cara mengaktifkannya di Windows, dan utilitas tes mulai menunjukkan nilai frekuensi inti yang lebih kuat. Temperatur prosesor melonjak dalam kisaran 85-99 ° C. Panci air ditempatkan di atas untuk menghilangkan panas. Dari bawah pukulan dingin dari laptop. Jika sebelumnya 5% frame diproses per hari, maka dalam mode akselerasi nilai ini menjadi 7%. Setidaknya sedikit sukacita.


kembalikan gambar kembali

Petualangan menanti kita

Program apa pun bisa jatuh. Tentu saja, bunga telah jatuh. Baik jatuh, mulai ulang. Dan kemudian datang "oh." Kadang-kadang versi untuk eksperimen jatuh ke prod, Anda tahu, jadi ketika saya menambal modul proyek, saya terganggu dan lupa untuk melihat seluruh rantai dan makna dari setiap instruksi dan menganggap penambalan lengkap. Proyek awalnya menghapus folder sementara, membuat yang baru, menambahkan bingkai yang ditarik dari video di sana ... secara umum, Anda sudah menduga bahwa folder dengan hasil untuk hari itu ditiupkan kepada saya.

Lalu ada R.saver, selama beberapa jam alih-alih berbunga kami memindai disk, dan ini adalah minus dari waktu rendering. Kami beralih ke komputer lain dengan yang disimpan. Lebih lanjut, tentu saja, ternyata karena masalah tidak segera diketahui, banyak file tidak memiliki konten penuh. Kita harus menulis sebuah checker agar, pertama, untuk memperkirakan kerugian, dan kedua, untuk menyusun daftar frame untuk pembungaan kembali.

Smaku menambahkan bahwa berbunga menghapus bingkai asli, dan itu normal untuk tidak bingung ketika memulai kembali apa yang perlu diproses dan apa yang tidak. Tidaklah normal untuk memiliki satu folder frame yang distabilkan, tidak "well, apa yang salah" dan "jika itu, Anda selalu dapat menstabilkan lagi". Ya, semuanya mungkin dengan menghabiskan waktu.


Urusan, kekhawatiran

Oke, sepertinya kehidupan entah bagaimana membaik, minicut berdengung pelan, Anda sudah bisa merencanakan pekerjaan lebih lanjut dan menulis skrip untuk post-processing.

Melihat materi berbunga, selain sukacita, juga menyebabkan jengkel. Ada dua hal yang tidak menyenangkan. Pertama, nada warna melesat di antara bingkai, kemungkinan besar karena kecerahan sumber yang tidak merata.


kembalikan gambar kembali

Kedua, sekelompok frame duplikat muncul. Tampaknya mengapa, tetapi, ternyata, pemutar video rumah tangga tidak menjadi gila dengan sesuatu yang kurang dari 24 frame / s.

Ada masalah dan mereka perlu dipecahkan. Menjadi jelas bahwa aliran frame perlu dipecah menjadi adegan. Untuk menyesuaikan nada / kecerahan, Anda harus memiliki batas. Dan agar tidak menghapus teks bersama-sama dengan frame duplikat, perlu untuk membagi frame menjadi teks dan non-teks.

Eksperimen panjang mulai menentukan kesamaan personel. Baiklah halo, apa kabar?
Mari kita lompati (mereka akan terlihat oleh kode), jumlah versi, metode yang dicoba (terlihat oleh jumlah fungsi tambahan).


kembalikan gambar kembali

Saya akan mencoba menjelaskan versi final.


kembalikan gambar kembali

Kami memuat dua frame secara berurutan. Kami membuat sedikit kabur, iblis tahu mengapa, tetapi jika demikian, maka percobaan menunjukkan peningkatan dalam hasil (mungkin pengaruh kebisingan dihilangkan). Temukan poin-poin penting dalam bingkai dan bandingkan.


kembalikan gambar kembali

Penjelasan untuk mereka yang tidak terbiasa dengan OpenCV:

Cari poin-poin penting (keypoints, kp) - menyoroti fitur-fitur karakteristik yang tetap tidak berubah ketika gambar berubah. Sangat kasar, tetapi sederhana, dapat dibayangkan sebagai array dari hash mikro.

ORB adalah salah satu dari banyak metode penyorotan titik kunci.

des - deskripsi, deskripsi parametrik poin kunci.

BFMatcher - lobak untuk membandingkan poin kunci menggunakan des. Tugasnya adalah memilih titik yang sama dalam dua larik dan menghitung jumlah keberangkatan setiap titik belitan dari posisi aslinya. Maaf inglezh milikku.

Ternyata semakin kecil jarak total perpindahan titik, semakin identik frame.


kembalikan gambar kembali

Jika nilainya lebih besar dari angka ajaib, maka ada baiknya melakukan pemeriksaan tambahan, mungkin ini benar-benar adegan yang berbeda? Pertama, mari kita periksa apakah ada bingkai dua teks, pertama, kita membutuhkan fitur ini, dan kedua, jika jenis bingkai telah berubah (teks -> not_text), maka adegan sudah pasti berubah. Kurangi gambar warna menjadi monoton dan kirim orang yang tidak sehat ke deteksi teks (meskipun is_text bahkan lebih indah).


kembalikan gambar kembali

Jika Anda mencoba menggambarkan esensinya, maka ada pencarian untuk sirkuit tertutup, dan jika ternyata kita memiliki banyak sirkuit yang jatuh ke dalam ukuran harapan ajaib kita, maka sangat mungkin bahwa ini adalah teks. Seperti yang Anda duga, kode ini menggantikan is_text, Anda dapat menganggapnya berhasil, meskipun ada kegagalan pada huruf dan adegan yang sangat BESAR seperti silau pada air hitam. Dengan kata-kata, akan sulit untuk menyampaikan semua pilihan antara berbagai pilihan "sederhana, tetapi berhasil" dan "pasti berhasil, tetapi berlebihan". Beberapa jenis redneck teknik tidak memungkinkan kita untuk jauh dari solusi "garis hitam pada semua tepi = teks".


kembalikan gambar kembali

Jika teks tidak berbau di sini, maka kami mencoba membandingkan histogram hitam dan putih, jika kecurigaan meningkat, maka kami membandingkan yang berwarna, jika secara langsung sangat mencurigakan, maka kami membandingkannya dalam satu bingkai, jadi itu pasti.


kembalikan gambar kembali

Di sini, murni tindakan praktis: jika naskah ingin membuat adegan pendek, maka mungkin tampak lebih baik baginya untuk menambahkan adegan ini ke yang sebelumnya. Dan jika ada lebih dari 90 frame dalam adegan, ini akan menambah waktu untuk pemrosesan adegan lebih lanjut.

Menemukan sesuatu untuk mengimbangi nada itu tidak mudah. Hanya satu artikel ilmiah dan proyek terkait yang jelas-jelas google.

Alat Pro untuk menstabilkan nada warna
Tautan ke proyek: github.com/Al-th/MVA_Project_TonalStabilization
Tautan ke sebuah artikel yang menjelaskan esensi matematika: www.cse.huji.ac.il/labs/cglab/projects/tonestab
Deskripsi: Proyek ini pertama-tama melihat bingkai-bingkai video, menghitung perbedaan-perbedaan lokal dari frame-frame yang disebabkan oleh hardcore matan. Pada pass kedua, perbedaan ini dikurangi menjadi nilai "benar" yang dihitung.


Ada masalah kecil. Ini Matlab. Entah kenapa, aku benar-benar tidak ingin segera menaruh monster ini dan menyeretku ke arah GNU Octave. Kode, tentu saja, tidak sepenuhnya kompatibel, saya harus mencari cara membaca dan menulis gambar, memenuhi harapan fungsi-fungsi yang bekerja secara berbeda dalam Oktaf, secara umum, bahasa tidak sepenuhnya kongruen dengan arus utama, ditambah saya harus mempelajari nuansa Matanov yang berbeda, dan itu sehari hilang.

Ketika akhirnya berhasil, kecepatan pemrosesan bisa dikatakan paling tidak kesal. 20 detik per frame. Bahkan pada prosesor lama, ini berlebihan. Oke, mari kita lihat bagaimana Matlab. "Pilih satu paket." Eh, tapi xs apa yang saya butuhkan, yah, mari dengan DSP. Dan, luncurkan! "Paket pemrosesan gambar tidak diinstal di versi Anda." Baiklah, saya masih punya alamat gratis untuk pendaftaran.

Akhirnya mulai dan bahkan bekerja jauh lebih cepat daripada di Oktaf, tapi masih terlalu lama, sebanding dengan berbunga, kali ini, dan kedua, hasil koreksi yang diterima tidak memenuhi harapan saya yang tinggi.


Jika Anda ingin melakukan sesuatu, lakukan sendiri. Saya tidak merasa ingin melakukannya sendiri, tetapi saya harus melakukannya. Googling dengan kecanduan akhirnya membantu menemukan setidaknya sesuatu dalam OpenCV yang dapat membantu saya. Satu set kelas ditemukan untuk menjahit foto panorama, di antaranya adalah mekanisme untuk mengoreksi perbedaan dalam cahaya dan nada. Bukan yang Anda butuhkan, tapi setidaknya itu pilihan.

Setelah percobaan panjang dengan satu-satunya (ya!) Contoh menggunakan hal ini, akhirnya saya mendapat kode yang bermanfaat.


kembalikan gambar kembali

Semua keajaibannya adalah secara eksperimental membangun kelas yang cocok untuk tujuan saya, dan mencari tahu format topeng. Maka sudah jelas: beri makan kompensator dengan gambar untuk menghitung nilai rata-rata dari total eksposur dan tingkat setiap saluran warna, kemudian telapak tangan kembali sumber untuk konversi.

Hasil pertama tidak cocok untukku lagi. , . , , . - . , .

.




, . « , ». , , , .

, , , , . small_wb , run, , , , - - . , . , .

. , , , . . .


, , . , - . , . , . , , .

github.com/sniklaus/3d-ken-burns

, , . Tapi . «». «», , , . .

opencv.




, . , .




, , , , , .





, , -, . , -. , , . , , , , . - . : . , , , . , , , , (, ) mac mini .

, , , .

. , - . , , .


, , . - , . , , . , , , / . , « , ».

, , (, , ?), / . , . «». , , 2014. « ». - , . , «», « ?», - . ? ? ? . ! !

. , «», ? , .

3 , . - . , , . , . «---» - . .


,

GPU- . . , .

, , . . . , . , , , 720 400 . , . . , Pentium 133 ( Cyrix 100, ). , . . , , , . ? . , , .

2 , , . , , 12 , .

, , ssd . , , - , .

, . Wow! ? , - GPU. , , , «if APU available», APU , , ? Tidak.




Kami tidak ragu untuk melakukan overclock dan mendapatkan 1 GHz gratis, pilihan pendingin yang panjang dan biayanya telah terbayar. Kami menempatkan pewarna. Kita mulai. Boom! Kehabisan memori CUDA. Keren, bagus, kami akan mencari tahu di pagi hari.

Di pagi hari, tidak ada ingatan. Google melaporkan bahwa kesalahan ini berarti ukuran memori video yang tersedia kurang dari yang diperlukan. Saya benar-benar tidak ingin mempercayainya, karena ini seharusnya tidak benar. Lagipula, saya tidak mungkin salah, setelah membeli versi kartu video dengan memori yang tidak rapi, tidak, saya tidak bisa, tetapi saya tidak pernah salah.

Percobaan dimulai dengan pembersihan paksa memori, mengubah parameter, harapan diberikan oleh kenyataan bahwa drop tidak terjadi segera, bahwa beberapa frame punya waktu untuk muncul di output. Dimungkinkan untuk memulai restart berbunga dalam satu siklus, tentu saja, tetapi waktu persiapan untuk peluncuran adalah sekitar 2 menit, dan ini tidak masuk akal.

Tiba-tiba, skrip debugging mulai bekerja dengan baik, dan pemrosesan terbang, saya tidak tahu apa yang telah saya lakukan di sana, saya memutuskan untuk tidak menyentuh apa pun, dan baru saja mendapatkan bingkai warna saya. 60% sisanya dari frame berakhir setelah 5 jam. Pada hari ini, memproses minicar hanya akan mulai berakhir, oh, minicar yang buruk.


Masih baru mulai

Jalankan skrip pencarian adegan dan isi direktori. Kami pergi, memeriksa apakah ada yang salah, kami memperbaikinya. Secara umum, semuanya baik-baik saja. Selanjutnya, Anda perlu membersihkan frame duplikat untuk mengecualikan buang-buang waktu dalam manipulasi lebih lanjut. Satu halangan, bagaimana memastikan bahwa script hanya akan menghapus yang diperlukan dan tidak akan melewatkan apa pun. Jika Anda berpikir secara logis, maka menambahkan frame tambahan tidak boleh kacau, tetapi harus memiliki semacam algoritma. Tentu saja, Anda tidak harus terikat padanya, tetapi harus diperhitungkan. Kami melakukan ini: salin semua adegan tanpa bingkai duplikat ke folder lain, lalu bandingkan setiap folder dengan yang asli, menggunakan perbandingan direktori manajer file. Jika irama berulang dalam file yang dihapus diamati secara visual, maka kami menganggap bahwa semuanya normal. Sepintas ia bekerja.

Hanya setengah jam dan Anda bisa melangkah lebih jauh. Kami memulai kompensasi nada. Setelah beberapa jam, kami mencoba untuk menikmati hasilnya, tetapi setengah dari sukacita. Sebagian kecil dari adegan berwarna buruk. Masih sebagian kecil adegan dari kompensasi nada menjadi serba salah. Jika mungkin dengan yang kedua, atau hanya mengambil apa yang ada sebelum kompensasi, atau mencoba meratakan nada tanpa menggunakan white balance. Itu dengan berbunga kembali semua lebih sulit. Beberapa adegan membaik dari penurunan parameter render_factor, sisanya tidak menyerah. Algoritma sama sekali tidak menemukan sesuatu yang serupa dalam model yang dilatih dan menghasilkan hasil yang aneh. Saya harus mewarnai setiap adegan seperti itu berkali-kali dengan render_factor yang berbeda, dan kemudian memilih bingkai terbaik sehingga setidaknya entah bagaimana menyerupai kebenaran. Sulit untuk menyampaikan seberapa banyak aktivitas ini melelahkan otak. Saya harus menulis skrip yang mengumpulkan opsi untuk setiap frame dalam folder terpisah, yang meningkatkan produktivitas dan mengurangi aliran penyalahgunaan.


Sebelum melanjutkan, Anda perlu memotong teks tambahan dan mengatur ulang beberapa adegan di beberapa tempat. Butuh beberapa cara sederhana untuk mengedit video. Kami memuat struktur folder dengan bingkai langsung ke editor saat ini.


kembalikan gambar kembali

Kami menghapus adegan, menukar mereka, membongkar struktur yang diperbarui ke disk di folder baru.


kembalikan gambar kembali

Sekarang Anda dapat mengubah 12 fps menjadi 24 fps.

Alat pelambatan video
Tautan ke proyek: github.com/avinashpaliwal/Super-SloMo
Deskripsi: Proyek menghitung frame perantara menggunakan model yang terlatih. Anda dapat mengunduh pengaturan yang sudah jadi. Anda bisa belajar sendiri. Dengan pilihan data pelatihan yang tepat, hasilnya sangat indah.


Kami menambal proyek untuk bekerja dengan masing-masing bingkai, jika tidak hanya berfungsi. Kami mulai, lihat hasilnya. Bersama-sama dengan "wow" masalah baru muncul, beberapa adegan dipenuhi dengan artefak, karena untuk mendapatkan 12 frame dari 24, Anda perlu melatih model secara khusus.

Ada dua opsi. Dan kalian berdua tidak akan suka. Baik secara manual menghapus frame yang gagal, atau terlibat dalam pelatihan model. Yaitu, atau menghabiskan banyak waktu, atau menghabiskan jumlah waktu yang tidak diketahui dengan hasil yang tidak terduga. Kejelasan menang.

Nah, tonton lebih dari 200.000 frame. Apa kesulitannya? Fakta bahwa Anda tidak dapat menghapus semua frame yang buruk. Hal ini diperlukan untuk menghapus persis yang memukul mata, dan meninggalkan yang seolah-olah tidak terlihat. Artinya, coba, ulangi, paksa kombinasi yang benar. Di suatu tempat di paruh kedua frame, jaringan saraf organik juga belajar, dan menjadi intuitif pada saat apa untuk menunggu cacat, dan frame mana yang harus dihapus dan mana yang tidak boleh disentuh. Hanya 4 hari dan kami memiliki versi yang mulus.

Kami mengumpulkan file video. Kami melihat. Sepertinya baik-baik saja. Tapi sepertinya ada yang macet. Apa ini Wow, wow, wow foto duplikat, tapi bagaimana, di mana, mengapa? Menjadi jelas bahwa bumerang ini terbang dari masa lalu. Stabilisasi, diproses duplikat frame juga, dan memasukkan masing-masing secara terpisah di lengkungan gerak, menambahkan offset unik untuk masing-masing. Dan algoritma pencarian duplikat, cukup masuk akal bahwa ini adalah frame yang berbeda, karena mereka digeser, semuanya logis.

Hebat, super. Tetapi jangan meninjau semua frame lagi tanpa mencoba menulis setidaknya kode kecil?

Eksperimen dimulai dengan algoritma untuk membandingkan gambar yang serupa. Kesulitannya adalah bahwa kebanyakan dari mereka memungkinkan Anda untuk melaporkan bahwa gambar-gambar itu benar-benar berbeda, atau relatif sama. Bagi saya, frame yang sangat berbeda dalam satu adegan hampir serupa, dan perlu menangkap gambar yang merupakan salinan offset. Semua algoritma yang dicoba dan diuji mengganggu dalam satu tumpukan, dan keduanya.

Compare_ssim dari skimage dapat membawa manfaat. Saya tidak akan berpura-pura mengingat apa itu, setidaknya kadang-kadang memberikan hasil yang benar dan diizinkan untuk segera mengidentifikasi beberapa duplikat. Saya harus mencari sisanya dengan mata saya. Pada hari kedua, jaringan saraf alami saya dilatih untuk memperhatikan hal-hal yang tidak mencolok. Pada titik ini, saya sudah tersiksa oleh deformasi profesional: gambar hitam-putih yang menarik perhatian saya dianggap sebagai pekerjaan yang tidak lengkap, dan setiap sentakan konten video pihak ketiga terdengar sebagai "duplikat lagi!"

Menempatkan versi video berikutnya, menonton. Perlu dipahami bahwa beberapa adegan memiliki saturasi asam. Dan ini lagi-lagi masalah, karena Anda tidak bisa hanya mengambil dan menurunkan saturasi semua adegan ke nilai umum, beberapa dari mereka, sebaliknya, tidak terlalu cerah.

Tantangan saturasi dimulai. Mengubah parameter ini mudah, tetapi sangat sulit untuk diukur secara memadai. Ini dapat dipahami secara teori, dalam praktiknya, hanya dikonfirmasi. Cara naif untuk membandingkan saturasi frame muncul selama pengujian pada adegan yang terang, tetapi nilainya normal, atau pudar, tetapi nilainya sangat tinggi.

Pada akhir hari, setidaknya entah bagaimana solusi kerja lahir.


kembalikan gambar kembali

Untuk median penyebaran saturasi piksel, kami menambahkan deviasi standar saturasi, dan kami memperoleh saturasi maksimum bersyarat dari frame. Ini tidak sempurna, tetapi dengan metode pengukuran ini, pemerataan saturasi mulai bekerja. Hanya tersisa untuk menggantikan koreksi polinomial_ nilai = f (terukur_nilai) . Kami menyusun pelat pada data uji dengan tangan "membeku" -> "nilai koreksi yang memberikan hasil yang menyenangkan", kami mengarahkan pelat ke alat apa pun yang dapat mendekati.

Fungsi koreksi saturasi total:


kembalikan gambar kembali

Kami beralih dari BGR ruang (tampilan default opencv) ke HSV. Kami mencirikan matriks saturasi dengan satu nomor. Kami menghitung gain / atenuasi saturasi. Kami memotong keberangkatan untuk jangkauan. Gabungkan matriks saturasi yang disesuaikan dengan kecerahan dan nada asli, kembali ke ruang BGR.


Kapan rilisnya?

Nah, sepertinya videonya akhirnya siap. Anda dapat membuat musik.

Karena tidak ada satu pun iringan musik yang ada yang cukup bagi saya, tidak ada yang bisa dilakukan selain melakukan sesuatu sendiri.

Masalah bodoh muncul sejak awal: setengah dari disk tersumbat dengan cadangan dari berbagai keadaan film. Dan program, yang seharusnya membuat musik, membutuhkan puluhan gigabytes untuk perpustakaan trek. Saya berpikir: "apa yang salah?" Dan menghapus cadangan pra-final, karena saya memiliki cadangan pra-final pada dua disk, dan saya tidak kehilangan sesuatu yang signifikan, dan tidak mungkin ada sesuatu yang perlu diulang.

Pada hari ketiga bekerja dengan musik, jumlah adegan yang kehilangan saturasi tidak bisa lagi diabaikan. Beberapa bingkai menjadi benar-benar hitam dan putih, dan sebelum itu bingkai inilah yang paling terang. Menariknya, apa itu? Apakah polinomial orde ketiga di luar meja asli tiba-tiba terbang ke angkasa? Itu mengejutkan, bukan? Perlu dicatat bahwa sekali lagi saya tidak ingin meninjau seluruh film setelah koreksi saturasi, saya membatasi diri saya untuk melihat satu frame dari setiap adegan, yang memberikan perasaan khayal tentang kecukupan hasil.

Tidak ada masalah menambahkan kondisi batas ke kode koreksi saturasi. Masalahnya adalah kurangnya sumber dari mana Anda bisa mendapatkan urutan frame yang sama dimana sinkronisasi dengan suara telah selesai.


Ada dua opsi: untuk melepaskan gambar melengkung ke dunia dengan suara dingin atau mundur dua langkah. Sangat disayangkan kehilangan sinkronisasi sempurna yang sempurna secara tidak sengaja, tetapi inti dari pekerjaan ini berwarna.

Kami mengulangi pembersihan duplikat, remounting, menyesuaikan saturasi, tentu saja, kami mendapatkan desync yang kuat dalam suara, kami mulai menyalip poin-poin penting dari trek, kami kecewa bahwa sinkronisasi sihir hampir menghilang. Jadi satu minggu lagi telah berlalu.


Tentang musik

Menulis musik baru secara gratis bukan merupakan pilihan sama sekali, tetapi memasukkan sesuatu dari opsi pengiring yang tersedia (walaupun setidaknya ada 5 di antaranya) juga tidak memiliki kejujuran. Dalam proses mencari trek gratis, saya menemukan hal yang menarik.

filmstro.com

Dari uraian itu menjadi jelas bahwa itu memungkinkan Anda untuk melakukan sesuatu di antara penggantian trek dan komposisi orang lain dari awal. Ini memiliki perpustakaan komposisi yang luas, yang masing-masing dapat diwakili sebagai proyek dari Fruity Loops bersyarat. Semua trek dari satu komposisi dikelompokkan menjadi tiga bagian: Intensitas, Kedalaman, Tegangan. Dengan mengubah "kekuatan" bagian, Anda dapat mengubah jumlah trek yang diaktifkan. Total: satu komposisi rata-rata berisi 11 opsi suara, yang dibentuk sebagai hasil dari pengaruh timbal balik dari bagian-bagian tersebut. Dengan bantuan pengaturan titik-titik kunci di sepanjang urutan video, perubahan suara komposisi dikaitkan dengan apa yang terjadi di layar. Doshirak seperti itu. Enak, jika Anda tidak tahu bagaimana itu terjadi.


kembalikan gambar kembali


Tentang YouTube

Akhirnya, Anda dapat membuat saluran dan mengunggah video. Tampaknya semuanya, selesai, Anda bisa santai. Tetapi kenyataannya tidak melepaskan, dan jika video asli dapat secara sewenang-wenang dianggap HD, maka setelah mengunggahnya ternyata memiliki kualitas yang menjijikkan. Dengan semua indikasi dan pendapat, ternyata dari Internet bahwa Google sengaja menggunakan bitrate sangat rendah untuk semua saluran baru. Untungnya, saran yang bagus menyelinap di suatu tempat: isi dengan kecepatan 1440p, seolah-olah itu membuat youtube lebih berhati-hati dalam menjepit. Dewan benar-benar membantu, itu menjadi setidaknya ditonton.

Setelah unduhan, keluhan tentang penggunaan video orang lain segera masuk. Sangat menarik, ternyata Youtube yang hebat masih belum memiliki database karya di domain publik, kami akan membantunya dengan mengirimkan keberatan.

Hasil: www.youtube.com/watch?v=r3NQyCInZiQ
Tautan unduhan dalam kualitas asli: drive.google.com/uc?id=1dEPcjKbjNowxsfaNcbV6DsbAr3kbACKH&export=download


Outro

Secara keseluruhan, saya suka apa yang terjadi. Tim spesialis bayaran akan membuat permen. Dalam hal ini: 70% frame normal, 20% miskin, 10% epik. Gratis, otomatis. Semua masalah yang harus saya perbaiki dengan tangan saya hanya disebabkan oleh fakta bahwa ini dilakukan untuk pertama kalinya. Film selanjutnya yang akan diwarnai akan jauh lebih mudah. Saya tidak tahu akan seperti apa, di era sinema sunyi, saya belum menemukan karya lain yang akan meminta mereka untuk dipindahkan ke acara-meta kami. Mungkin, itu akan menjadi sesuatu dari film suara awal, yang berarti bahwa perlu untuk mengembalikan suara, membawanya ke 20-20 KHz, mengubahnya menjadi stereo. Anda dapat menyentuh begitu banyak jaringan saraf yang berbeda =) Hari ini, kualitas berbunga sangat tergantung pada bahan sumber, semakin banyak nuansa abu-abu yang dipertahankan, semakin tinggi kejernihan, semakin baik hasilnya. Kemungkinan besar, generasi berikutnya dari alat-alat tersebut akan mensintesis gambar berkualitas tinggi baru, dan tidak sesuai dengan warna ke dalam kontur lama, itu akan mirip dengan proyek yang membuat tiruan foto dengan menggambar. Sementara itu, untuk mendapatkan hasil yang sangat baik, Anda perlu merentangkan gambar hitam dan putih dan secara individual melatih specifier warna pada materi video yang sesuai dengan film target.

Hidup kita berubah lebih cepat dan lebih cepat, kerangka waktu yang dengannya kita bergerak ke realitas lain menyusut. Kami menulis jaringan saraf untuk melacak semua yang baru yang terjadi dengan jaringan saraf. Tapi kita punya sedikit waktu. Setengah tahun yang lalu, mereka bertanya kepada saya apakah mungkin untuk secara otomatis membuat foto sewenang-wenang dengan warna asli, jawaban saya adalah: "tidak, itu masih fantastis."

Source: https://habr.com/ru/post/id481710/


All Articles