OpenCV 4.0 dan 4.1 - apa yang baru?



Kami kembali ke cerita tentang perpustakaan visi komputer sumber terbuka OpenCV . Proyek ini hidup dan berkembang, didorong oleh tim pengembang yang bekerja di Intel, serta dukungan komunitas yang bertahan lama. Pada akhir 2018, rilis stabil pertama dari cabang 4.x dirilis, dan hanya sebulan yang lalu pembaruan baru dirilis - versi 4.1. Kami meminta para penulis perpustakaan untuk mendaftar secara singkat apa yang baru dibawa oleh kedua versi ini ke fungsionalitas OpenCV.

Opencv 4.0


Rilis OpenCV 4.0 menyelesaikan siklus hidup versi 3.x - untuk memperbaiki kesalahan dan perbaikan kecil, cabang 3.4 telah dibuat, dari mana versi kecil 3.4.x sudah dibuat (mirip dengan 2.4.x).

Opencv 4.0 final

  • OpenCV sekarang menjadi pustaka C ++ 11 dan membutuhkan kompiler yang kompatibel dengan C ++ 11;
  • Banyak fungsi API C yang usang (dari OpenCV 1.0) telah dihapus, konstanta lama dan deklarasi fungsi telah dipindahkan ke file header yang terpisah ( imgproc_c.h ) dan sekarang harus dimasukkan oleh pengguna secara eksplisit ( #include <opencv / imgproc / imgproc_c.h> );
  • Semua modul CUDA telah porting ke repositori opencv_contrib ;
  • API Kegigihan untuk menulis dan membaca data ke file telah ditulis ulang dalam C ++, fungsi lama telah dihapus;
  • Modul G-API baru telah ditambahkan, yang memungkinkan Anda untuk membuat grafik dari operasi pada gambar dan menerapkan berbagai optimasi untuknya;
  • Menambahkan dukungan untuk Deep Learning Deployment Toolkit (termasuk versi opensource ) ke modul dnn , termasuk penggunaan Intel Movidius Neural Compute Stick atau Intel Neural Compute Stick 2 pada Raspberri Pi 3 ;
  • Dukungan untuk jaringan dalam format ONNX (Open Neural Network Exchange) telah ditambahkan ke modul dnn ;
  • Menambahkan dukungan eksperimental untuk perhitungan melalui Vulkan ke modul dnn;
  • Implementasi algoritma waktu nyata untuk memproses adegan 3D / model KinectFusion (dengan optimasi untuk CPU dan GPU / OpenCL) telah ditambahkan ;
  • Dukungan untuk mendeteksi dan mendekode kode QR telah ditambahkan ke modul objdetect (decoder menggunakan perpustakaan QUirc) - musim panas ini, sebagai bagian dari magang musim panas, pekerjaan akan dilakukan untuk meningkatkan kualitas dan, mungkin, mode deteksi-decoding simultan lebih dari satu kode QR dalam gambar akan ditambahkan.;
  • Algoritme aliran optik DIS yang sangat efisien dan presisi tinggi dipindahkan dari opencv_contrib ke modul video dari repositori utama.

Opencv 4.1


  • Ditambahkan implementasi optimalisasi pengiriman banyak algoritma dalam modul inti dan imgproc ;
  • Perbaikan dalam modul dnn :
    • Dukungan yang diimplementasikan untuk meluncurkan jaringan pada Intel Neural Compute Stick 2 (menggunakan DLDT);
    • Mengurangi konsumsi memori maksimum, memperkenalkan dukungan untuk banyak jaringan baru dari TensorFlow
  • Modul Videoio menambahkan dukungan untuk Android Media NDK API untuk membaca file video / stream pada perangkat Android dari kode C ++ (berguna untuk pengujian algoritma);
  • Modul baru untuk menganalisis kualitas gambar ( opencv_contrib / quality ) telah ditambahkan . Ini mengimplementasikan kedua algoritma dasar (PSNR, SSIM) dan algoritma khusus baru (seperti algoritma penilaian kualitas tanpa menggunakan gambar BRISQUE asli - Blind / Referenceless Image Spatial Quality Evaluator);
  • Diimplementasikan beberapa algoritma baru: Aliran optik lokal yang kuat, Stereo Dasi Padat, kalibrasi kamera yang melekat pada manipulator (Tangan-Mata);

Informasi lebih lanjut tentang perpustakaan dapat ditemukan di situs proyek, yang telah berubah tanpa bisa dikenali.

Jumlah tambalan dari 4.0.0 ke 4.1.0: 462 (sekitar 5.3 tambalan per hari, tidak termasuk akhir pekan dan hari libur). Ada banyak perubahan, seperti yang Anda lihat, dan mereka signifikan. Jika Anda memiliki pertanyaan tentang fungsionalitas yang disematkan, atau, sebaliknya, fungsi yang tidak diterapkan, selamat datang di komentar, pengembang OpenCV akan mencoba menjawabnya.

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


All Articles