Kerangka Deteksi Objek Darknet dan YOLO
!Logo Darknet dan Hank.ai
Darknet adalah kerangka jaringan saraf sumber terbuka yang ditulis dalam C, C++, dan CUDA. YOLO (You Only Look Once) adalah sistem pendeteksi objek canggih dan real-time yang berjalan dalam kerangka Darknet.
Temukan bagaimana Hank.ai mendukung komunitas Darknet/YOLO
Jelajahi situs web resmi Darknet/YOLO
Konsultasikan FAQ Darknet/YOLO yang komprehensif
Bergabunglah dengan server Darknet/YOLO Discord yang ramai
Dokumen
1. Kertas YOLOv7
2. Kertas Berskala-YOLOv4
3. Kertas YOLOv4
4. Kertas YOLOv3
Informasi Umum
Kerangka kerja Darknet/YOLO terus mendorong batas kinerja, secara konsisten memberikan kecepatan dan akurasi yang melebihi kerangka kerja lain dan versi YOLO. Kerangka kerja ini sepenuhnya gratis dan open source, memungkinkan Anda mengintegrasikan Darknet/YOLO dengan lancar ke dalam proyek dan produk yang ada, termasuk aplikasi komersial, tanpa memerlukan lisensi atau biaya.
Darknet V3 ("Jazz"), dirilis pada Oktober 2024, mencapai performa luar biasa, mampu memproses video kumpulan data LEGO secara akurat hingga 1000 FPS menggunakan GPU NVIDIA RTX 3090. Ini berarti Darknet/YOLO menangani setiap frame video, termasuk mengubah ukuran dan memproses, hanya dalam 1 milidetik atau kurang.
Bergabunglah dengan server Darknet/YOLO Discord yang dinamis di https://discord.gg/zSq8rtW untuk bantuan, diskusi, dan terhubung dengan sesama pengguna.
Versi CPU Darknet/YOLO dapat berjalan di berbagai perangkat, termasuk Raspberry Pi, server cloud & colab, desktop, laptop, dan rig pelatihan kelas atas. Versi GPU Darknet/YOLO memerlukan GPU berkemampuan CUDA dari NVIDIA.
Darknet/YOLO diketahui berfungsi dengan lancar di Linux, Windows, dan Mac. Untuk petunjuk rinci, lihat bagian bangunan di bawah.
Versi Darknet
1. Versi 0.x: Ini mengacu pada alat Darknet asli yang dikembangkan oleh Joseph Redmon dari 2013-2017, yang tidak memiliki nomor versi.
2. Versi 1.x: Ini mencakup repositori Darknet populer yang dikelola oleh Alexei Bochkovskiy antara 2017-2021, juga tanpa nomor versi resmi.
3. Versi 2.x "OAK": Versi ini diperkenalkan pada tahun 2023, disponsori oleh Hank.ai dan dikelola oleh Stéphane Charette. Ini menandai pertama kalinya repositori Darknet memasukkan perintah versi.
- Tujuannya adalah untuk meminimalkan gangguan terhadap fungsi yang ada sambil membiasakan diri dengan basis kode.
- Perubahan penting termasuk:
- Sistem pembangunan CMake terpadu untuk Windows dan Linux
- Konversi basis kode ke kompiler C++
- Grafik.png yang ditingkatkan selama pelatihan
- Perbaikan bug dan optimalisasi kinerja, khususnya untuk pengurangan waktu pelatihan
- Cabang terakhir dari basis kode ini adalah versi 2.1 di cabang v2.
4. Versi 3.x "JAZZ": Fase pengembangan ini dimulai pada pertengahan tahun 2024 dan diluncurkan pada bulan Oktober 2024. Perintah versi sekarang mengembalikan 3.x.
- Perubahan pada versi ini antara lain :
- Penghapusan beberapa perintah usang dan tidak didukung.
- Optimalisasi kinerja yang komprehensif untuk pelatihan dan inferensi.
- Modifikasi pada API C lama, memerlukan sedikit penyesuaian untuk aplikasi yang menggunakan API Darknet asli. Dokumentasi yang diperbarui untuk Darknet V3 C dan C++ API dapat ditemukan di https://darknetcv.ai/api/api.html.
- Pengenalan aplikasi baru dan kode contoh di direktori src-examples, dapat diakses di https://darknetcv.ai/api/files.html.
Catatan: Untuk kompatibilitas, Anda selalu dapat mengakses cabang v2 sebelumnya jika Anda perlu menjalankan salah satu perintah khusus tersebut. Silakan hubungi kami jika Anda menemukan perintah yang hilang, dan kami akan menyelidiki reintegrasinya.
Anak Timbangan Terlatih MSCOCO
Demi kenyamanan, beberapa versi YOLO populer telah dilatih sebelumnya pada kumpulan data MSCOCO. Dataset ini berisi 80 kelas, yang dapat dilihat di file teks cfg/coco.names.
Selain MSCOCO, Anda dapat menemukan anak timbangan terlatih lainnya dan kumpulan data sederhana untuk menguji Darknet/YOLO, seperti LEGO Gears dan Rolodex. Informasi selengkapnya dapat ditemukan di FAQ Darknet/YOLO.
Anak timbang terlatih MSCOCO dapat diakses dari berbagai lokasi, termasuk dalam repositori ini:
1.YOLOv2 (November 2016)
- yolov2-tiny.weights
- yolov2-penuh.bobot
2. YOLOv3 (Mei 2018)
- yolov3-tiny.weights
- yolov3-penuh.bobot
3. YOLOv4 (Mei 2020)
- yolov4-tiny.weights
- yolov4-penuh.bobot
4. YOLOv7 (Agustus 2022)
- yolov7-tiny.weights
- yolov7-penuh.bobot
Anak timbangan MSCOCO yang telah dilatih sebelumnya disediakan terutama untuk tujuan demonstrasi. File .cfg dan .names yang sesuai untuk MSCOCO terletak di direktori cfg.
Contoh Perintah:
' pesta
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights
darknet02displayannotatedimages coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
darknet03display_videos coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
DarkHelp coco.nama yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
DarkHelp coco.nama yolov4-tiny.cfg yolov4-tiny.weights video1.avi
`
Penting untuk dipahami bahwa melatih jaringan Anda sendiri adalah praktik yang disarankan. MSCOCO terutama digunakan untuk memverifikasi pengoperasian Darknet/YOLO yang benar.
Bangunan
Berbagai metode pembangunan yang digunakan di masa lalu (sebelum tahun 2023) telah disederhanakan menjadi solusi terpadu. Darknet memerlukan C++17 atau lebih baru, OpenCV, dan menggunakan CMake untuk pembuatan file proyek.
Ingat, membangun, menginstal, dan menjalankan Darknet/YOLO tidak memerlukan pengetahuan C++. Ini mirip dengan mengendarai mobil tanpa menjadi mekanik.
Harap dicatat: Jika Anda mengacu pada tutorial lama dengan langkah-langkah pembuatan yang lebih kompleks atau yang tidak sejalan dengan readme ini, lanjutkan dengan hati-hati. Petunjuk build baru yang diuraikan di bawah ini diperkenalkan pada Agustus 2023.
Untuk mendapatkan wawasan tentang cara kerja kerangka deteksi objek Darknet/YOLO, pengembang perangkat lunak didorong untuk mengunjungi https://darknetcv.ai/.
Google Kolab
Petunjuk Google Colab identik dengan petunjuk Linux. Beberapa notebook Jupyter tersedia, menunjukkan cara melakukan tugas tertentu seperti melatih jaringan baru.
Jelajahi notebook dalam subdirektori colab, atau ikuti petunjuk Linux yang disediakan di bawah.
Metode CMake Linux
Tutorial Pembuatan Darknet untuk Linux
1. Instal Dependensi:
' pesta
sudo apt-get install build-essential git libopencv-dev cmake
`
2. Klon Repositori Darknet:
' pesta
mkdir ~/srccd ~/src
git klon https://github.com/hank-ai/darknet
cd darknet
`
3. Buat Direktori Pembuatan:
' pesta
mkdir buildcd build
`
4. Konfigurasi Menggunakan CMake:
' pesta
cmake -DCMAKEBUILDTYPE=Lepaskan ..
`
5. Bangun Jaringan Gelap:
' pesta
buat -j4
`
6. Paket dan Instal:
' pesta
kemasan
sudo dpkg -i darknet-VERSION.deb
`
Opsional: Instalasi CUDA dan cuDNN
Untuk mempercepat pemrosesan gambar dan video, Anda dapat menginstal CUDA atau CUDA+cuDNN secara opsional. Darknet akan memanfaatkan GPU Anda jika tersedia.
1. Instal CUDA:
- Unduh dan instal CUDA dari https://developer.nvidia.com/cuda-downloads.
- Pastikan Anda dapat menjalankan nvcc dan nvidia-smi. Anda mungkin perlu mengubah variabel PATH Anda.
2. Instal cuDNN:
- Unduh dan instal cuDNN dari https://developer.nvidia.com/rdp/cudnn-download atau https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager- ikhtisar instalasi.
Jika Anda menginstal CUDA atau CUDA+cuDNN setelah pengaturan awal atau mengupgrade perangkat lunak NVIDIA:
1. Hapus CMakeCache.txt:
- Hapus file CMakeCache.txt dari direktori build Darknet Anda untuk memaksa CMake menemukan kembali semua dependensi.
2. Membangun kembali Darknet:
- Ulangi cmake dan lakukan langkah di atas.
Catatan: Petunjuk ini menggunakan Ubuntu 22.04, tetapi dapat diadaptasi untuk distribusi lain.
Pengguna Tingkat Lanjut:
Untuk membuat file instalasi RPM dan bukan file DEB, ubah baris yang relevan di CM_package.cmake. Sebelum menjalankan paket make -j4, perbarui dua baris berikut:
`membuat
SET (CPACK_GENERATOR "DEB")
SET (CPACK_GENERATOR "RPM")
`
Untuk distribusi seperti Centos dan OpenSUSE, sesuaikan barisnya menjadi:
`membuat
SET (CPACK_GENERATOR "DEB")
SET (CPACK_GENERATOR "RPM")
`
Setelah membangun, instal paket menggunakan manajer paket distribusi Anda. Misalnya pada sistem berbasis Debian:
' pesta
sudo dpkg -i darknet-2.0.1-Linux.deb
`
Hasil Instalasi:
/usr/bin/darknet: Darknet standar yang dapat dieksekusi. Jalankan versi darknet untuk memverifikasi instalasi yang benar.
/usr/include/darknet.h: Darknet API untuk pengembang C, C++, dan Python.
/usr/include/darknet_version.h: Berisi informasi versi untuk pengembang.
/usr/lib/libdarknet.so: Perpustakaan untuk menghubungkan proyek C, C++, dan Python.
/opt/darknet/cfg/...: Lokasi untuk semua templat .cfg.
Konfirmasi: Jalankan versi darknet di terminal Anda untuk mengonfirmasi keberhasilan instalasi Darknet.
Metode Windows CMake
Petunjuk Pembuatan Windows (Asumsikan Windows 11 22H2)
1. Instal Dependensi:
' pesta
winget instal Git.Git
winget instal Kitware.CMake
winget instal nsis.nsis
winget instal Microsoft.VisualStudio.2022.Community
`
2. Ubah Instalasi Visual Studio:
- Buka menu "Windows Start" dan jalankan "Visual Studio Installer".
- Klik "Ubah".
- Pilih "Pengembangan Desktop Dengan C++".
- Klik "Modify" di pojok kanan bawah dan kemudian "Yes".
3. Buka Prompt Perintah Pengembang:
- Buka menu "Windows Start" dan pilih "Developer Command Prompt for VS 2022". Jangan gunakan PowerShell untuk langkah-langkah ini.
4. Instal Microsoft VCPKG:
' pesta
CDC:
mkdir c:srccd c:src
git clone https://github.com/microsoft/vcpkg
cd vcpkg.dll
bootstrap-vcpkg.bat
.vcpkg.exe mengintegrasikan instalasi
.vcpkg.exe mengintegrasikan powershell.vcpkg.exe instal opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
5. Opsional: Instalasi CUDA dan cuDNN:
- Instal CUDA atau CUDA+cuDNN untuk akselerasi GPU.
- Ikuti langkah yang sama seperti pada instruksi Linux.
6. Mengkloning Darknet dan Membangun:
' pesta
cd c:src
git klon https://github.com/hank-ai/darknet.git
cd darknet
mkdir membangun
pembuatan cd
cmake -DCMAKEBUILDTYPE=Rilis -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
Jika Anda mengalami kesalahan tentang DLL CUDA atau cuDNN yang hilang (misalnya, culas64_12.dll):
1. Salin DLL CUDA:
- Salin file CUDA .dll secara manual ke direktori keluaran yang sama dengan Darknet.exe. Misalnya:
' pesta
salin "C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
`
2. Jalankan kembali msbuild.exe:
- Jalankan kembali perintah msbuild.exe terakhir untuk menghasilkan paket instalasi NSIS.
Pengguna Tingkat Lanjut:
Alih-alih Prompt Perintah Pengembang, Anda dapat menggunakan prompt perintah normal atau SSH dan menjalankan "Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat".
Perintah cmake menghasilkan file solusi Visual Studio (Darknet.sln). Jika Anda lebih suka menggunakan Visual Studio GUI, muat proyek daripada mengandalkan alat baris perintah.
Konfirmasi: Jalankan versi C:srcDarknetbuildsrc-cliReleasedarknet.exe untuk memverifikasi instalasi.
Instal menggunakan NSIS Wizard:
Jalankan wizard instalasi NSIS yang ditemukan di direktori build (misalnya, darknet-VERSION.exe). Ini akan:
- Buat direktori Darknet (misalnya C:Program FilesDarknet).
- Instal aplikasi CLI, darknet.exe, dan aplikasi contoh lainnya.
- Instal file .dll pihak ketiga yang diperlukan (misalnya, dari OpenCV).
- Instal file Darknet .dll, .lib, dan .h untuk digunakan di aplikasi lain.
- Instal file templat .cfg.
Konfirmasi: Setelah instalasi, jalankan C:Program FilesDarknetbindarknet.exe version untuk mengonfirmasi Darknet sudah siap.
Menggunakan Darknet
CLI
Berikut ini adalah sebagian daftar perintah yang didukung oleh Darknet.
Selain CLI Darknet, pertimbangkan CLI proyek DarkHelp, yang menawarkan CLI alternatif dengan fitur-fitur canggih yang tidak tersedia secara langsung di Darknet. Anda dapat menggunakan kedua CLI secara bersamaan.
Untuk sebagian besar perintah, Anda memerlukan file .weights beserta file .names dan .cfg yang terkait. Anda dapat melatih jaringan Anda sendiri (sangat disarankan) atau mengunduh jaringan terlatih yang tersedia secara online secara gratis. Contohnya meliputi:
LEGO Gears (deteksi objek dalam gambar)
Rolodex (deteksi teks dalam gambar)
MSCOCO (deteksi objek kelas 80 standar)
Perintah Umum Darknet CLI:
1. Dapatkan Bantuan:
' pesta
bantuan darknet
`
2. Periksa Versi:
' pesta
versi darknet
`
3. Prediksi Gambar:
- V2:
' pesta
tes detektor darknet cars.data cars.cfg cars_best.weights image1.jpg
`
- V3:
' pesta
darknet02displayannotatedimages mobil.cfg image1.jpg
`
- Bantuan Gelap:
' pesta
DarkHelp mobil.cfg mobil.cfg mobil_best.weights image1.jpg
`
4. Koordinat Keluaran:
- V2:
' pesta
detektor darknet menguji animal.data animal.cfg animalbest.weights -extoutput dog.jpg
`
- V3:
' pesta
darknet01inference_images hewan anjing.jpg
`
- Bantuan Gelap:
' pesta
DarkHelp --json animal.cfg animal.names animal_best.weights dog.jpg
`
5. Pemrosesan Video:
- V2:
' pesta
demo detektor darknet animal.data animal.cfg animalbest.weights -extoutput test.mp4
`
- V3:
' pesta
darknet03display_videos animal.cfg test.mp4
`
- Bantuan Gelap:
' pesta
DarkHelp animal.cfg animal.names animal_best.weights test.mp4
`
6. Masukan Kamera Web:
- V2:
' pesta
demo detektor darknet animal.data animal.cfg animal_best.weights -c 0
`
- V3:
' pesta
darknet08display_webcam binatang
`
7. Simpan Hasil Video:
- V2:
' pesta
demo detektor darknet animal.data animal.cfg animalbest.weights test.mp4 -outfilename res.avi
`
- V3:
' pesta
darknet05prosesvideoshewan multithread.cfg hewan.nama hewan_terbaik.tes bobot.mp4
`
- Bantuan Gelap:
' pesta
DarkHelp animal.cfg animal.names animal_best.weights test.mp4
`
8. Keluaran JSON:
- V2:
' pesta
demo detektor darknet hewan.data hewan.cfg hewanbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
`
- V3:
' pesta
darknet06imagestojson hewan image1.jpg
`
- Bantuan Gelap:
' pesta
DarkHelp --json animal.names animal.cfg animal_best.weights image1.jpg
`
9. Pemilihan GPU:
- V2:
' pesta
demo detektor darknet animal.data animal.cfg animal_best.weights -i 1 test.mp4
`
10. Evaluasi Akurasi Jaringan:
- Hitung peta:
' pesta
peta detektor darknet Driving.data Driving.cfg Driving_best.weights ...
`
- Informasi Akurasi Terperinci:
' pesta
Nama Id Rata-rata TP FN FP TN Akurasi ErrorRate Precision Recall Spesifisitas FalsePosRate -- ---- ------------ ------ ------ ------ - ----- -------- --------- --------- ------ ----------- -- ---------- 0 kendaraan 91,2495 32648 3903 5826 65129 0,9095 0,0905 0,8486 0,8932 0,9179 0,0821 1 sepeda motor 80.4499 2936 513 569 5393 0,8850 0,1150 0,8377 0,8513 0,9046 0,0954 2 sepeda 89,0912 570 124 104 3548 0,9475 0,0525 0,8457 0,8213 0,9715 0,0285 3 orang 76,7937 7072 1727 2574 27523 0,8894 0,1106 0,7332 0,8037 0,9145 0,0855 4 banyak kendaraan 64.3089 1068 509 733 11288 0,9087 0,0913 0,5930 0,6772 0,9390 0,0610 5 lampu hijau 86,8118 1969 239 510 4116 0,8904 0,1096 0,7943 0,8918 0,8898 0,1102 6 lampu kuning 82,0390 126 38 30 1239 0,9525 0,0475 0,8077 0,7683 0,9764 0,0236 7 lampu merah 94,1033 3449 217 451 4643 0,9237 0,0763 0,8844 0,9408 0,9115 0,0885
`
- Hitung mAP@IoU=75:
' pesta
peta detektor darknet animal.data animal.cfg animalbest.weights -iouthresh 0,75
`
- Hitung Jangkar:
' pesta
detektor darknet calcanchors animal.data -numof_clusters 6 -width 320 -height 256
`
11. Latih Jaringan Baru:
' pesta
detektor darknet -peta -dont_show melatih hewan.data hewan.cfg
`
Pelatihan
Tautan Penting ke FAQ Darknet/YOLO:
Menyiapkan File dan Direktori
Memilih File Konfigurasi yang Tepat
Melatih Perintah Jaringan Kustom
Untuk anotasi dan pelatihan yang lancar, DarkMark menyederhanakan proses dengan secara otomatis membuat semua file Darknet yang diperlukan. Penggunaan DarkMark sangat disarankan untuk melatih jaringan saraf baru.
Pengaturan Pelatihan Manual:
1. Buat Direktori Proyek:
- Misalnya, buat direktori bernama ~/nn/animals/ untuk mendeteksi hewan.
2. Salin File Konfigurasi:
- Salin file konfigurasi Darknet yang sesuai sebagai templat (misalnya cfg/yolov4-tiny.cfg) ke direktori proyek Anda. Ini menciptakan ~/nn/animals/animals.cfg.
3. Buat File nama hewan:
- Buat file teks bernama animal.names di direktori yang sama.
- Cantumkan kelas yang Anda inginkan, satu per baris, tanpa baris kosong atau komentar. Misalnya:
`
anjing
kucing
burung
kuda
`
4. Buat File animal.data:
- Buat file teks bernama animal.data. Kontennya harus:
`
kelas = 4
kereta = /home/nama pengguna/nn/animals/animals_train.txt
valid = /home/nama pengguna/nn/animals/animals_valid.txt
nama = /home/nama pengguna/nn/animals/animals.names
backup = /home/nama pengguna/nn/animals
`
5. Buat Direktori Kumpulan Data:
- Buat direktori (misalnya, ~/nn/animals/dataset) untuk menyimpan gambar dan anotasi. Setiap gambar memerlukan file .txt terkait yang menjelaskan anotasinya. Formatnya spesifik dan tidak dapat dibuat secara manual. Gunakan DarkMark atau perangkat lunak serupa untuk membuat anotasi pada gambar. Format anotasi YOLO dijelaskan di FAQ Darknet/YOLO.
6. Membuat File Pelatihan dan Validasi:
- Buat file animaltrain.txt dan animalvalid.txt yang disebutkan dalam file .data. File-file ini mencantumkan semua gambar untuk pelatihan dan validasi, masing-masing, satu gambar per baris. Jalur bisa bersifat relatif atau absolut.
7. Konfigurasikan File .cfg:
- Buka file .cfg Anda dengan editor teks.
- Pastikan batch=64.
- Sesuaikan subdivisi berdasarkan dimensi jaringan dan memori GPU. Mulailah dengan subdivisi=1. Lihat FAQ Darknet/YOLO untuk nilai alternatif.
- Atur max_batches menjadi 2000* jumlah kelas (misal 8000 untuk 4 kelas).
- Tetapkan langkah ke 80% dan 90% dari maxbatches (misalnya, 6400,7200 untuk maxbatches=8000).
- Konfigurasikan lebar dan tinggi (dimensi jaringan) menggunakan pedoman dari FAQ Darknet/YOLO.
- Ganti kelas=... dengan jumlah kelas dari file .names Anda (misal, kelas=4).
- Ubah filter=... di bagian [konvolusional] sebelum setiap bagian [yolo]. Gunakan rumus (jumlah kelas + 5) * 3 (misalnya, filter=27 untuk 4 kelas).
8. Mulai Pelatihan:
- Arahkan ke direktori proyek Anda:
' pesta
cd ~/nn/hewan/
`
- Jalankan perintah pelatihan:
' pesta
detektor darknet -peta -dont_show melatih hewan.data hewan.cfg
`
9. Pantau Kemajuan:
- Bobot terbaik akan disimpan sebagai animal_best.weights.
- Lacak kemajuan pelatihan dengan melihat file chart.png.
- Lihat FAQ Darknet/YOLO untuk parameter pelatihan tambahan.
10. Pelatihan Verbosa:
- Untuk keluaran lebih detail selama pelatihan, sertakan parameter --verbose:
' pesta
detektor darknet -peta -dont_show --verbose melatih hewan.data hewan.cfg
`
Alat dan Tautan Lainnya
DarkMark: Untuk mengelola proyek Darknet/YOLO, membuat anotasi gambar, memverifikasi anotasi, dan membuat file pelatihan.
DarkHelp: Menyediakan CLI alternatif yang kuat untuk Darknet, penataan gambar, pelacakan objek dalam video, dan API C++ yang komprehensif untuk aplikasi komersial.
FAQ Darknet/YOLO: Sumber berharga untuk menjawab pertanyaan Anda.
Saluran YouTube Stéphane: Banyak tutorial dan contoh video.
Server Perselisihan Darknet/YOLO: Bergabunglah dengan komunitas untuk mendapatkan dukungan dan diskusi.
Peta jalan
Terakhir Diperbarui: 30-10-2024
Selesai:
Mengganti qsort() dengan std::sort() selama pelatihan (kecuali untuk beberapa kasus yang tersisa).
Menghapus check_mistakes, getchar(), dan system().
Mengonversi Darknet untuk menggunakan kompiler C++ (g++ di Linux, VisualStudio di Windows).
Memperbaiki versi Windows.
Dukungan Python diaktifkan.
Membangun perpustakaan Darknet.
Label prediksi diaktifkan kembali (menggunakan kode "alfabet").
Mengaktifkan kembali kode CUDA/GPU.
Mengaktifkan kembali CUDNN dan setengah CUDNN.
Menghapus arsitektur CUDA hard-coded.
Informasi versi CUDA yang ditingkatkan.
Mengaktifkan kembali AVX.
Menghapus solusi lama dan Makefile.
Menjadikan OpenCV non-opsional.
Menghapus ketergantungan pada perpustakaan pthread lama.
STB dihapus.
CMakeLists.txt ditulis ulang untuk deteksi CUDA baru.
Menghapus kode "abjad" lama dan menghapus 700+ gambar di data/label.
Mengaktifkan pembangunan di luar sumber.
Output nomor versi yang ditingkatkan.
Optimalisasi kinerja yang diterapkan selama pelatihan (berkelanjutan).
Penerapan optimalisasi kinerja selama inferensi (berkelanjutan).
Gunakan referensi lewat jika memungkinkan.
Membersihkan file .hpp.
Ditulis ulang darknet.h.
Menghindari casting cv::Mat ke void* dan menggunakannya sebagai objek C++ yang tepat.
Memperbaiki penggunaan struktur gambar internal yang tidak konsisten.
Memperbaiki masalah build untuk perangkat Jetson berbasis ARM (kecuali untuk model Jetson asli yang tidak didukung).
Perangkat Jetson Orin berfungsi.
Memperbaiki API Python di V3.
Dukungan Python yang ditingkatkan (mencari pengembang Python untuk berkontribusi).
Tujuan Jangka Pendek:
Ganti printf() dengan std::cout (sedang berlangsung).
Kunjungi kembali dukungan untuk kamera Zed lama.
Tingkatkan dan pastikan konsistensi dalam penguraian baris perintah (sedang berlangsung).
Tujuan Jangka Menengah:
Hilangkan semua kode char* dan ganti dengan std::string.
Perlihatkan peringatan dan alamatkan peringatan kompiler (sedang berlangsung).
Optimalkan penggunaan cv::Mat alih-alih struktur gambar C kustom (sedang berlangsung).
Ganti fungsionalitas daftar lama dengan std::vector atau std::list.
Perbaiki dukungan untuk gambar skala abu-abu 1 saluran.
Tambahkan dukungan untuk gambar saluran-N (N > 3).
Lanjutkan pembersihan kode yang sedang berlangsung (sedang berlangsung).
Tujuan Jangka Panjang:
Selesaikan masalah CUDA/CUDNN di semua GPU.
Tulis ulang kode CUDA+cuDNN.
Jelajahi dukungan untuk GPU non-NVIDIA.
Terapkan kotak pembatas yang diputar atau penyangga "sudut".
Tambahkan titik kunci/kerangka.
Menerapkan peta panas (sedang berlangsung).
Memperkenalkan fungsi segmentasi.