Pemimpin pemikiran
Menerapkan AI pada Pengolahan Video Waktu Nyata: Dasar dan Lebih

Oleh Maksym Tatariants, Ilmu Data Insinyur di MobiDev.
Tidak ada yang baru tentang menggunakan kecerdasan buatan (AI) dalam pengolahan video. Jika Anda melihat di luar pengolahan gambar – ini adalah salah satu kasus penggunaan paling umum untuk AI. Dan seperti pengolahan gambar, pengolahan video menggunakan teknik yang mapan seperti penglihatan komputer, pengenalan objek, pembelajaran mesin, dan pembelajaran dalam untuk meningkatkan proses ini.
Apakah Anda menggunakan penglihatan komputer dan NLP dalam pengeditan video dan generasi, pengenalan objek dalam penandaan otomatis konten video tugas, pembelajaran mesin untuk memperlancar analisis video AI, atau pembelajaran dalam untuk mempercepat penghapusan latar belakang waktu nyata, kasus penggunaan terus berkembang setiap hari.
Terus membaca untuk mempelajari pendekatan apa yang dapat Anda ambil ketika datang ke menggunakan AI dalam pengolahan video.
Dasar-Dasar Pengolahan Video Waktu Nyata
Mari kita mulai dengan dasar-dasar. Pengolahan video waktu nyata adalah teknologi penting dalam sistem pengawasan yang menggunakan pengenalan objek dan wajah. Ini juga proses yang memungkinkan perangkat lunak inspeksi visual AI di sektor industri.
Jadi, bagaimana pengolahan video bekerja? Pengolahan video melibatkan serangkaian langkah, yang mencakup decoding, komputasi, dan encoding. Berikut adalah apa yang perlu Anda ketahui:
- Decoding: Proses yang diperlukan untuk mengubah video dari file terkompresi kembali ke format aslinya.
- Komputasi: Operasi khusus yang dilakukan pada bingkai video asli.
- Encoding: Proses mengubah kembali bingkai yang diproses ke dalam keadaan terkompresi aslinya.
Sekarang, tujuan dari setiap tugas pengolahan video adalah untuk menyelesaikan langkah-langkah ini secepat dan seakurat mungkin. Cara termudah untuk melakukan ini termasuk: bekerja secara paralel dan mengoptimalkan algoritma untuk kecepatan. Dalam istilah sederhana? Anda perlu menggunakan pemisahan file dan arsitektur pipa.
Apa itu Pemisahan File Video?
Pemisahan file video memungkinkan algoritma bekerja secara bersamaan, memungkinkan mereka menggunakan model yang lebih lambat dan lebih akurat. Ini dicapai dengan membagi video menjadi bagian-bagian terpisah yang kemudian diproses secara bersamaan.
Anda dapat memikirkan pemisahan video sebagai bentuk generasi file virtual daripada generasi sub-file.
Meskipun demikian, pemisahan file video bukanlah pilihan terbaik untuk pengolahan video waktu nyata. Mengapa? Proses ini membuat sulit untuk Anda menjeda, melanjutkan, dan memutar ulang file sambil diproses.
Apa itu Arsitektur Pipa?
Pilihan lainnya adalah arsitektur pipa. Proses ini bekerja untuk membagi dan memaralelisasi tugas-tugas yang dilakukan selama pemrosesan, bukan sekadar memisahkan video.
Berikut adalah contoh singkat tentang apa itu arsitektur pipa dalam prakteknya, dan bagaimana itu dapat digunakan dalam sistem pengawasan video untuk mendeteksi dan mengaburkan wajah secara waktu nyata.
Dalam contoh ini, pipa telah membagi tugas-tugas menjadi decoding, deteksi wajah, pengaburan wajah, dan encoding. Dan jika Anda ingin meningkatkan kecepatan pipa, Anda dapat menggunakan teknik pembelajaran dalam.
Decoding dan Encoding yang Dijelaskan
Apa tentang decoding dan encoding? Ada dua cara Anda menyelesaikan proses ini: perangkat lunak dan perangkat keras.
Anda mungkin sudah familiar dengan konsep percepatan perangkat keras. Proses ini dimungkinkan berkat decoder dan encoder yang dipasang di kartu grafis NVIDIA terbaru, serta CUDA core.
Jadi, apa pilihan yang Anda miliki untuk percepatan perangkat keras untuk proses encoding dan decoding? Berikut adalah beberapa pilihan yang lebih populer:
- Kompilasi OpenCV dengan Dukungan CUDA: Mengompilasi OpenCV dengan CUDA mengoptimalkan baik decoding dan perhitungan pipa yang menggunakan OpenCV. Perlu diingat – Anda perlu menulisnya dalam C++ karena wrapper Python tidak mendukung ini. Tapi dalam situasi yang memerlukan baik decoding dan perhitungan numerik dengan GPU tanpa menyalin dari memori CPU, ini masih salah satu pilihan yang lebih baik.
- Kompilasi FFmpeg atau GStreamer dengan Dukungan Kodek NVDEC/NVENC: Pilihan lainnya adalah menggunakan decoder dan encoder NVIDIA bawaan yang disertakan dengan instalasi khusus FFmpeg dan Gstreamer. Namun, kami sarankan menggunakan FFmpeg jika memungkinkan karena memerlukan perawatan yang lebih sedikit. Juga, sebagian besar perpustakaan didukung oleh FFmpeg, yang berarti Anda akan secara otomatis meningkatkan kinerja perpustakaan dengan menggantinya.
- Gunakan Kerangka Pemrosesan Video NVIDIA: Pilihan terakhir adalah menggunakan wrapper Python untuk mendekode bingkai langsung ke tensor PyTorch di GPU. Pilihan ini menghilangkan penyalinan ekstra dari CPU ke GPU.
Deteksi Wajah dan Pengaburan
Model deteksi objek (SSDs atau RetinaFace) adalah pilihan populer untuk menyelesaikan deteksi wajah. Solusi ini bekerja untuk menemukan wajah manusia dalam bingkai. Dan berdasarkan pengalaman kami, kami cenderung lebih memilih model pelacakan wajah Caffe dan deteksi objek TensorFlow karena mereka memberikan hasil terbaik. Selain itu, keduanya tersedia menggunakan perpustakaan modul dnn OpenCV.
Jadi, apa yang terjadi setelah wajah terdeteksi? Selanjutnya, sistem Python dan OpenCV-based akan mengungkapkan kotak pembatas dan kepercayaan deteksi. Akhirnya, algoritma pengaburan diterapkan pada area yang dipotong.
Bagaimana Anda Dapat Membangun Perangkat Lunak Pengolahan Video Waktu Nyata yang Dipowered oleh AI?
Tidak ada rahasia bahwa pengolahan video, kodek yang memungkinkannya, dan baik perangkat keras dan perangkat lunak yang diperlukan cukup teknis.
Namun, itu tidak berarti Anda tidak dapat menggunakan alat-alat ini untuk membangun perangkat lunak pengolahan video waktu nyata sendiri.
Berikut adalah ringkasan singkat tentang apa yang perlu Anda lakukan:
- Mulai dengan menyesuaikan jaringan neural pra-dilatih Anda untuk menyelesaikan tugas yang diperlukan.
- Konfigurasikan infrastruktur cloud Anda untuk menangani pengolahan video dan skala sesuai kebutuhan.
- Bangun pengacara perangkat lunak untuk mengompresi proses dan mengintegrasikan kasus penggunaan khusus seperti aplikasi seluler dan panel admin atau web.
Mengembangkan MVP untuk perangkat lunak pengolahan video yang serupa dapat memakan waktu hingga empat bulan menggunakan jaringan neural pra-dilatih dan lapisan aplikasi sederhana. Namun, ruang lingkup dan timeline tergantung pada detail proyek. Dalam sebagian besar kasus, lebih masuk akal untuk memulai dengan pengembangan Konsep Bukti untuk mengeksplorasi detail proyek dan menemukan alur optimal.














