VIAME adalah aplikasi visi komputer yang dirancang untuk kecerdasan buatan yang dilakukan sendiri termasuk deteksi objek, pelacakan objek, anotasi gambar/video, pencarian gambar/video, pembuatan mosaik gambar, penyempurnaan gambar, pengukuran ukuran, pemrosesan data multi-kamera, pembuatan model cepat , dan alat untuk evaluasi algoritma yang berbeda. Awalnya menargetkan analisis spesies laut, VIAME sekarang berisi banyak algoritma dan perpustakaan umum, dan juga berguna sebagai perangkat visi komputer umum. Ini berisi sejumlah alat mandiri untuk mencapai hal di atas, kerangka pipa yang dapat menghubungkan node C/C++, python, dan matlab bersama-sama dalam mode multi-thread, dan beberapa algoritma yang bertumpu pada infrastruktur pipa. Terakhir, sebagian algoritma telah diintegrasikan ke dalam antarmuka pengguna desktop dan web untuk penerapan di berbagai jenis lingkungan, dengan arsip anotasi terbuka dan contoh platform web tersedia di viame.kitware.com.
Panduan Memulai Cepat Pengguna, Video Tutorial, dan Panduan Pengembang lebih komprehensif, namun entri tertentu juga tercantum di bawah ini dan dikelompokkan berdasarkan fungsi individual:
Ikhtisar Dokumentasi <> Instalasi <> Bangunan <> Semua Contoh <> Antarmuka DIVE <> LIHAT Antarmuka <> Pencarian dan Pembuatan Model Cepat <> Detektor Objek CLI <> Pelacak Objek CLI <> Pelatihan Detektor CLI <> Evaluasi Detektor <> Deteksi Format File <> Kalibrasi dan Penyempurnaan Gambar <> Registrasi dan Mosaik <> Pengukuran Stereo dan Peta Kedalaman <> Ikhtisar Pipelining <> Info Kelas Inti dan Pipeline <> Integrasi Plugin <> Contoh Templat Plugin <> Penyematan Algoritma di C++
Untuk panduan instalasi lengkap dan deskripsi berbagai varian VIAME, lihat panduan memulai cepat di atas. Versi desktop lengkap disediakan sebagai file .msi, .zip, atau .tar. Alternatifnya, anotator mandiri (tanpa algoritme pemrosesan apa pun) tersedia melalui penginstal yang lebih kecil (lihat DIVE mandiri, di bawah). Terakhir, file buruh pelabuhan tersedia untuk VIAME Desktop dan Web (di bawah). Untuk instalasi desktop lengkap, ekstrak binari dan letakkan di direktori pilihan Anda, misalnya /opt/noaa/viame di Linux atau C:Program FilesVIAME di Windows. Jika menggunakan paket yang dibuat dengan dukungan GPU, pastikan driver video telah diinstal dengan memadai, versi 465.19 atau lebih tinggi. Cara terbaik untuk menginstal driver bergantung pada sistem operasi Anda. Ini tidak diperlukan jika hanya menggunakan anotator manual (atau pengklasifikasi bingkai saja). Binernya cukup besar, dalam hal ruang disk, karena dimasukkannya beberapa file model dan program default, namun jika hanya membuat fitur yang Anda inginkan dari sumber (misalnya untuk aplikasi tertanam), ukurannya jauh lebih kecil.
Persyaratan Instalasi:
Rekomendasi Instalasi:
Biner Desktop Penuh Windows:
Biner Desktop Lengkap Linux:
Aplikasi Web :
Paket Tambahan:
Gambar Docker tersedia di: https://hub.docker.com. Untuk kontainer default yang hanya berisi algoritme inti, yang dapat dijalankan melalui baris perintah, lihat:
kitware/viame:gpu-algorithms-latest
Gambar ini tanpa kepala (yaitu, tidak mengandung GUI) dan berisi instalasi desktop VIAME (bukan web) di folder /opt/noaa/viame. Untuk tautan ke wadah buruh pelabuhan VIAME-Web lihat bagian di atas dalam dokumentasi instalasi. Kebanyakan model add-on tidak disertakan dalam instance tetapi dapat diunduh dengan menjalankan skrip download_viame_addons.sh di folder bin.
Petunjuk ini ditujukan bagi pengembang atau mereka yang tertarik untuk membangun cabang rilis terbaru. Siapa pun yang tertarik untuk menjalankan perangkat lunak apa adanya dan tidak memodifikasinya harus menggunakan penginstal yang tercantum di bagian sebelumnya, tanpa perlu melakukan pembuatan perangkat lunak. Petunjuk pembuatan yang lebih mendalam dapat ditemukan di sini, namun perangkat lunak dapat dibuat baik sebagai super-build, yang membangun sebagian besar dependensinya secara berdampingan, atau mandiri. Untuk membangun VIAME, minimal diperlukan Git, CMake, dan compiler C++. Menginstal Python dan CUDA juga disarankan. Jika menggunakan CUDA, versi 11.7 atau 11.6 lebih disukai, dengan CUDNN 8. Versi CUDA atau CUDNN lainnya mungkin berfungsi atau tidak. Untuk distribusi python, minimal diperlukan Python3.6 atau lebih tinggi, selain menginstal pip.
Untuk membangun baris perintah di Linux, gunakan perintah berikut, hanya mengganti [direktori sumber] dan [direktori build] dengan lokasi pilihan Anda. Meskipun direktori-direktori ini bisa saja sama, sebaiknya lakukan checkout 'src' lalu direktori 'build' terpisah di sampingnya:
git clone https://github.com/VIAME/VIAME.git [source-directory]
cd [source-directory] && git submodule update --init --recursive
Selanjutnya, buat direktori build dan jalankan perintah cmake
berikut (atau gunakan GUI cmake jika Anda tidak menggunakan antarmuka baris perintah):
mkdir [build-directory] && cd [build-directory]
cmake -DCMAKE_BUILD_TYPE:STRING=Release [source-directory]
Setelah perintah cmake
Anda selesai, Anda dapat mengonfigurasi flag build apa pun yang Anda inginkan menggunakan 'ccmake' atau GUI cmake, lalu membangun dengan perintah berikut di Linux:
make -j8
Atau alternatifnya dengan membangunnya di Visual Studio atau kompiler pilihan Anda di Windows. Di Linux, '-j8' memberi tahu build untuk menjalankan multi-threaded menggunakan 8 thread, ini berguna untuk build yang lebih cepat meskipun jika Anda mendapatkan kesalahan akan sulit untuk melihatnya, dalam hal ini hanya menjalankan 'make' saja mungkin lebih bermanfaat. Untuk Windows, saat ini VS2019 adalah compiler yang paling banyak diuji.
Ada beberapa argumen opsional untuk viame yang mengontrol plugin mana yang dibuat, seperti yang tercantum di bawah ini. Jika sebuah plugin diaktifkan yang bergantung pada ketergantungan lain seperti OpenCV) maka tanda ketergantungan akan dipaksa untuk aktif. Jika tidak yakin apa yang harus diaktifkan, sebaiknya biarkan saja tanda aktifkan dan nonaktifkan default yang akan membangun sebagian besar (walaupun tidak semua) fungsi. Ini adalah komponen inti yang kami sarankan untuk tetap menyala:
Bendera | Keterangan |
---|---|
VIAME_ENABLE_OPENCV | Membangun OpenCV dan proses dasar OpenCV (pembaca video, GUI sederhana) |
VIAME_ENABLE_VXL | Membangun proses VXL dan VXL dasar (pembaca video, filter gambar) |
VIAME_ENABLE_PYTHON | Mengaktifkan dukungan untuk menggunakan proses python (beberapa algoritma) |
VIAME_ENABLE_PYTORCH | Menginstal semua proses pytorch (detektor, pelacak, pengklasifikasi) |
Dan sejumlah tanda yang mengontrol utilitas dan optimalisasi sistem mana yang dibangun, misalnya:
Bendera | Keterangan |
---|---|
VIAME_ENABLE_CUDA | Mengaktifkan pengoptimalan CUDA (GPU) di semua paket |
VIAME_ENABLE_CUDNN | Mengaktifkan pengoptimalan CUDNN (GPU) di semua proses |
VIAME_ENABLE_DIVE | Mengaktifkan DIVE GUI (anotasi dan pelatihan pada beberapa urutan) |
VIAME_ENABLE_VIVIA | Membangun GUI VIVIA (LIHAT dan CARI untuk anotasi dan pencarian video) |
VIAME_ENABLE_DOCS | Membuat dokumentasi tingkat kelas Doxygen (meletakkan pohon instalasi) |
VIAME_BUILD_DEPENDENCIES | Bangun VIAME sebagai super-build, bangun semua dependensi (default) |
VIAME_INSTALL_EXAMPLES | Instal contoh untuk modul di atas ke dalam pohon instalasi/contoh |
VIAME_DOWNLOAD_MODEL | Mengunduh model terlatih untuk digunakan dengan contoh dan antarmuka |
Dan terakhir, sejumlah tanda yang membangun algoritme atau antarmuka dengan fungsi yang lebih terspesialisasi:
Bendera | Keterangan |
---|---|
VIAME_ENABLE_TENSORFLOW | Membangun plugin pendeteksi objek TensorFlow |
VIAME_ENABLE_DARKNET | Membangun plugin pendeteksi objek Darknet (YOLO). |
VIAME_ENABLE_TENSORRT | Membangun plugin pendeteksi objek TensorRT |
VIAME_ENABLE_BURNOUT | Membangun plugin pengklasifikasi piksel berbasis Burn-Out |
VIAME_ENABLE_SMQTK | Membangun plugin SMQTK untuk mendukung pengindeksan dan pencarian gambar/video |
VIAME_ENABLE_KWANT | Membangun alat deteksi KWANT dan evaluasi jalur (penilaian). |
VIAME_ENABLE_LEARN | Membangun metode tambahan untuk pembelajaran tingkat rendah |
VIAME_ENABLE_SCALLOP_TK | Membangun plugin pendeteksi objek berbasis Scallop-TK |
VIAME_ENABLE_SEAL | Membangun GUI multi-modalitas Seal |
VIAME_ENABLE_ITK | Membangun registrasi gambar lintas modalitas ITK |
VIAME_ENABLE_UW_CLASSIFIER | Membangun plugin pengklasifikasi ikan UW |
VIAME_ENABLE_MATLAB | Mengaktifkan dukungan dan menginstal semua proses matlab |
VIAME_ENABLE_LANL | Membangun detektor kerang tambahan (Matlab). |
VIAME ├── cmake # CMake file konfigurasi untuk subpaket ├── docs # File dokumentasi dan manual (pra-kompilasi) ├── configs # Semua file dan model konfigurasi yang dapat dijalankan sistem │ ├── pipelines # Semua konfigurasi pipeline pemrosesan │ │ └── model # Semua model, yang hanya diunduh berdasarkan flag │ ├── prj-linux # File proyek linux default │ └── prj-windows # File proyek windows default ├── contoh # Semua contoh yang dapat dijalankan dan tutorial contoh ├── paket # Proyek eksternal yang digunakan oleh sistem │ ├── kwiver # Memproses infrastruktur backend │ ├── fletch # Pembangun ketergantungan pada hal-hal yang tidak sering berubah │ ├── kwant # Alat evaluasi penilaian dan detektor │ ├── vivia # GUI desktop dasar (v1.0) │ └── ... # Berbagai macam paket lainnya (biasanya untuk algoritma) ├── plugin # Algoritme terintegrasi atau pembungkus proyek eksternal │ └── ... # Berbagai macam plugin (detektor, peta kedalaman, filter, dll.) ├── alat # Alat atau skrip mandiri, sering kali dibuat berdasarkan hal di atas └── README.md # Halaman pengenalan proyek yang sedang Anda baca └── RELEASE_NOTES.md # Daftar update terbaru di sistem per versi
Jika Anda sudah melakukan pembayaran VIAME dan ingin berpindah cabang atau memperbarui kode Anda, penting untuk menjalankannya kembali:
git submodule update --init --recursive
Setelah berpindah cabang untuk memastikan bahwa Anda memiliki hash sub-paket yang benar dalam build. Sangat jarang Anda mungkin juga perlu menjalankan:
git submodule sync
Kalau-kalau alamat submodul telah berubah. Anda hanya perlu menjalankan perintah ini jika Anda mendapatkan kesalahan "tidak dapat mengambil hash #hashid".
VIAME dirilis di bawah lisensi BSD-3.
Daftar lengkap makalah relevan yang digunakan dalam proyek bersama kontributor dapat ditemukan di sini.
VIAME dikembangkan dengan pendanaan dari berbagai sumber, dan terima kasih khusus kepada pihak-pihak yang tercantum di sini.