Katna mengotomatiskan tugas ekstraksi kunci video/bingkai terbaik yang membosankan dan rawan kesalahan, kompresi video, dan tugas manual yang memakan waktu untuk memotong dan mengubah ukuran gambar menggunakan ML.
Singkatnya, Anda mungkin ingin mempertimbangkan untuk menggunakan perpustakaan Katna jika Anda memiliki tugas berikut:
Anda memiliki video/video yang ingin Anda kompres menjadi ukuran yang lebih kecil. (misalnya Anda mempunyai video dengan ukuran katakanlah 1 GB tetapi Anda ingin mengompresnya sekecil mungkin.)
Anda memiliki gambar/gambar yang ingin Anda ubah ukurannya secara cerdas ke resolusi target. (misalnya 500x500, 1080p (1920x1080) dll.)
Anda ingin mengekstrak potongan rasio aspek tertentu misalnya 4:3 dari gambar/gambar masukan Anda. (misalnya Dapatkan potongan rasio aspek 1:1 dari gambar beresolusi 1920x1080 (gambar rasio aspek 16:9))
Anda ingin mengubah ukuran video ke rasio aspek tertentu misalnya 16:9 (Lanskap), katakanlah menjadi 1:1 (persegi). Harap dicatat bahwa fitur ini saat ini masih eksperimental dan memerlukan kompilasi dan konfigurasi tambahan perpustakaan Google Mediapipe.
Katna dibagi menjadi dua modul
Modul ini menangani tugas ekstraksi bingkai utama dan kompresi video.
Bingkai utama didefinisikan sebagai bingkai representatif dari streaming video, bingkai yang memberikan ringkasan konten video paling akurat dan ringkas.
Ekstraksi bingkai dan kriteria pemilihan untuk ekstraksi bingkai kunci
Kompresi video ditangani menggunakan perpustakaan ffmpeg. Detailnya dapat dibaca di bagian modul Katna.video_compressor.
Sejak Katna versi 0.8.0 kami memperluas fitur pengubahan ukuran cerdas ke video dengan bantuan proyek Mediapipe Google. Untuk mengetahui lebih lanjut tentang hal ini silakan lihat dokumentasi [Video Smart Resize menggunakan Katna] (https://katna.readthedocs.io/en/latest/understanding_katna.html#katna-video-resize). Harap dicatat bahwa fitur ini adalah fitur eksperimental opsional. Dan mungkin dapat dihapus/dimodifikasi pada versi yang lebih baru. Anda juga perlu menginstal perpustakaan Mediapipe Google, khususnya biner autoflip agar ini berfungsi. Silakan merujuk ke Tautan untuk cara menginstal dan mengkonfigurasi mediapipe untuk digunakan dengan katna.
Modul ini menangani tugas yang terkait dengan pemotongan cerdas dan pengubahan ukuran gambar.
Pemangkasan gambar cerdas dilakukan sedemikian rupa sehingga modul mengidentifikasi bagian atau area terbaik di mana seseorang lebih fokus dan menafsirkan informasi ini saat memotong gambar.
Kriteria ekstraksi dan seleksi tanaman
Mirip dengan Pemotongan cerdas, modul gambar Katna mendukung fitur pengubahan ukuran gambar cerdas . Dengan adanya gambar masukan, ia dapat mengubah ukuran gambar ke resolusi target dengan pengubahan ukuran sederhana jika rasio aspek sama untuk gambar masukan dan target. Jika rasio aspek berbeda dari pengubahan ukuran gambar cerdas, pertama-tama akan dilakukan pemotongan kualitas terbaik terbesar dalam resolusi target, lalu mengubah ukuran gambar dalam resolusi target. Hal ini memastikan pengubahan ukuran gambar tanpa membuat gambar masukan menjadi miring. Harap diperhatikan bahwa jika rasio aspek gambar input dan output tidak sama, katna image_resize dapat menyebabkan hilangnya konten gambar
Format file video dan gambar yang didukung ###########################################
Semua format video utama seperti .mp4,.mov,.avi dll dan format gambar seperti .jpg, .png, .jpeg dll didukung.
Fitur pilihan lainnya sedang dalam tahap pengembangan
Instal git
Instal Anaconda atau Miniconda Python
Buka terminalnya
Klon repo dari sini https://github.com/keplerlab/Katna.git
Ubah direktori ke direktori tempat Anda mengkloning repo Anda
$cd path_to_the_folder_repo_cloned
Buat lingkungan anaconda baru jika Anda menggunakan distribusi anaconda python
conda create --name katna python=3.7
source activate katna
Jalankan pengaturan:
python setup.py install
Sejak Katna versi 0.4.0 Modul video Katna dioptimalkan untuk menggunakan multiprosesing menggunakan modul multiprosesor python. Karena keterbatasan multiprosesing di windows, Untuk mengimpor modul utama dengan aman ke sistem windows, pastikan “titik masuk” program dibungkus dengan name == ' main ': sebagai berikut:
from Katna.video import Video
if __name__ == "__main__":
vd = Video()
# your code
silakan merujuk ke https://docs.python.org/2/library/multiprocessing.html#windows untuk detail lebih lanjut.
Jika gambar masukan berukuran sangat besar (lebih besar dari 2000x2000), mungkin memerlukan waktu lama untuk melakukan Pemotongan cerdas otomatis. Jika Anda mengalami masalah ini, pertimbangkan untuk mengubah down_sample_factor dari default 8 ke nilai yang lebih besar (seperti 16 atau 32). Ini akan mengurangi waktu pemrosesan secara signifikan.
Jika Anda melihat kesalahan "AttributeError: modul 'cv2.cv2' tidak memiliki atribut 'saliency'". Copot pemasangan opencv-contrib dengan menjalankan perintah "python -m pip uninstall opencv-contrib-python" lalu instal lagi dengan menjalankan perintah
python -m pip install opencv-contrib-python
Jika Anda melihat "FileNotFoundError: file frozen_east_text_detection.pb tidak ditemukan". Buka python shell dan ikuti perintah di bawah ini.
from Katna.image_filters.text_detector import TextDetector
td = TextDetector()
td.download()
Di windows, pastikan anaconda memiliki hak admin jika menginstal dengan anaconda karena gagal dengan izin menulis saat menginstal beberapa modul.
Jika Anda mendapatkan "RuntimeError: Tidak ada exe ffmpeg yang dapat ditemukan". Instal ffmpeg di sistem Anda, dan/atau atur variabel lingkungan IMAGEIO_FFMPEG_EXE atau FFMPEG_EXE ke jalur biner ffmpeg Anda. Biasanya ffmpeg diinstal menggunakan paket imageio-ffmpeg, Periksa folder imageio_ffmpeg-*.egg di dalam folder paket situs Anda, harus ada file ffmpeg di dalam folder binari, periksa apakah file ini memiliki izin baca/eksekusi yang tepat dan atur juga jalurnya ke variabel lingkungan.
Ada masalah kebocoran memori yang diketahui di Katna versi 0.8.2 dan kurang, saat menjalankan ekstraksi keyframe video massal pada Python versi 3.6 dan 3.7, Ini adalah bug multiproses yang hanya diamati di Python 3.6 dan 3.7. Dan sudah diperbaiki di katna versi 0.9 ke atas. Jika Anda menjalankan kode ekstraksi Keyframe pada sejumlah besar video dan menghadapi masalah memori, minta Anda untuk meningkatkan versi katna Anda ke versi 0.9 atau lebih tinggi. Jika Anda masih ingin menggunakan katna versi lama, pertimbangkan untuk mengupgrade versi python Anda ke 3.8 atau lebih tinggi.
Kami telah menambahkan kerangka penulis untuk memproses data dari modul Katna Video dan Gambar. Versi ini juga memperbaiki masalah kebocoran memori yang dilaporkan oleh masalah ini dan ini.
video.extract_video_keyframes dan video.extract_video_keyframes_from_dir memerlukan objek penulis tambahan. Secara default, KeyFrameDiskWriter tersedia untuk digunakan dari modul Katna.writer. Kerangka penulis dapat diperluas berdasarkan kebutuhan.
image.crop_image dan image.crop_image_from_dir memerlukan objek penulis tambahan. Secara default, ImageCropDiskWriter tersedia untuk digunakan dari modul Katna.writer. Kerangka penulis dapat diperluas berdasarkan kebutuhan.
Lihat dokumentasi untuk contoh yang diperbarui di sini: Tautan
Versi perbaikan bug ini memperbaiki masalah ini: Tautan
Memperbaiki masalah yang jarang terjadi ketika video dipisahkan menggunakan ffmpeg tidak dapat dibaca dan memunculkan Tautan pengecualian
Menambahkan dukungan eksperimental untuk memotong otomatis/mengubah ukuran video menggunakan contoh kode Autoflip mediapipe Google.
Memperbaiki bug ketika pemotongan spesifikasi yang salah dikembalikan oleh metode image_module crop_image dan crop_image_from_dir.
Menambahkan dukungan untuk kompresi video di modul Katna.video.
Menambahkan dukungan untuk pengubahan ukuran gambar cerdas di modul Katna.image.
Di versi 0.5.0 kami telah mengubah nama beberapa fungsi publik di dalam modul Katna.video yang digunakan untuk ekstraksi keyframe,