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.
Baca bagaimana Hank.ai membantu komunitas Darknet/YOLO: https://hank.ai/
Mengumumkan Darknet V3 "Jazz": https://darknetcv.ai/
Silakan baca FAQ Darknet/YOLO: https://darknetcv.ai/faq/
Bergabunglah dengan server Darknet/YOLO Discord: https://discord.gg/zSq8rtW
Dokumen
1. Makalah YOLOv7: https://arxiv.org/abs/2207.02670
2. Kertas Berskala-YOLOv4: https://arxiv.org/abs/2103.05293
3. Makalah YOLOv4: https://arxiv.org/abs/2004.10934
4. Makalah YOLOv3: https://pjreddie.com/media/files/papers/YOLOv3.pdf
Informasi Umum
Kerangka kerja Darknet/YOLO tetap lebih cepat dan akurat dibandingkan kerangka kerja dan versi YOLO lainnya.
Kerangka kerja ini sepenuhnya gratis dan open source. Anda dapat memasukkan Darknet/YOLO ke dalam proyek dan produk yang sudah ada, termasuk proyek dan produk komersial, tanpa lisensi atau membayar biaya.
Darknet V3 (“Jazz”), yang dirilis pada Oktober 2024, dapat menjalankan video dataset LEGO secara akurat hingga 1000 FPS saat menggunakan GPU NVIDIA RTX 3090. Artinya setiap frame video dibaca, diubah ukurannya, dan diproses oleh Darknet/YOLO dalam 1 milidetik atau kurang.
Versi CPU Darknet/YOLO dapat berjalan di perangkat sederhana seperti 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 bekerja di Linux, Windows, dan Mac. Lihat petunjuk pembuatan di bawah.
Versi Darknet
1. Versi 0.x: Alat Darknet asli yang ditulis oleh Joseph Redmon pada tahun 2013-2017.
2. Versi 1.x: Repo Darknet populer berikutnya yang dikelola oleh Alexei Bochkovskiy antara tahun 2017-2021.
3. Versi 2.x "OAK": Repo Darknet disponsori oleh Hank.ai dan dikelola oleh Stéphane Charette mulai tahun 2023. Ini adalah yang pertama dengan perintah versi. Versi ini membawa perubahan berikut:
- Menulis ulang langkah-langkah pembangunan untuk pendekatan CMake terpadu pada Windows dan Linux.
- Mengonversi basis kode untuk menggunakan kompiler C++.
- Peningkatan pembuatan chart.png selama pelatihan.
- Perbaikan bug dan optimalisasi kinerja terkait waktu pelatihan.
4. Versi 2.1: Cabang terakhir dari basis kode 2.x, ditemukan di cabang v2.
5. Versi 3.x "JAZZ": Tahap pengembangan selanjutnya, dirilis pada Oktober 2024.
- Menghapus banyak perintah lama dan tidak terawat.
- Menerapkan optimalisasi kinerja untuk pelatihan dan inferensi.
- Memodifikasi API C lama. Aplikasi yang menggunakan API Darknet asli memerlukan sedikit modifikasi. https://darknetcv.ai/api/api.html
- Memperkenalkan Darknet V3 C dan C++ API baru: https://darknetcv.ai/api/api.html
- Menambahkan aplikasi baru dan kode contoh dalam contoh src: https://darknetcv.ai/api/files.html
Anda selalu dapat memeriksa cabang v2 sebelumnya jika Anda perlu menjalankan salah satu perintah dari versi tersebut. Beri tahu kami jika Anda menemukan perintah yang hilang sehingga kami dapat menyelidiki penambahannya kembali.
Anak Timbangan Terlatih MSCOCO
Beberapa versi YOLO yang populer telah dilatih sebelumnya untuk kenyamanan pada kumpulan data MSCOCO. Dataset ini memiliki 80 kelas, yang dapat dilihat pada file teks cfg/coco.names.
Ada beberapa kumpulan data sederhana dan anak timbangan terlatih lainnya yang tersedia untuk pengujian Darknet/YOLO, seperti LEGO Gears dan Rolodex. Lihat FAQ Darknet/YOLO untuk detailnya.
Anak timbang terlatih MSCOCO dapat diunduh dari beberapa lokasi berbeda, termasuk repositori ini:
YOLOv2 (November 2016):
yolov2-tiny.weights
yolov2-penuh.bobot
YOLOv3 (Mei 2018):
yolov3-tiny.weights
yolov3-penuh.bobot
YOLOv4 (Mei 2020):
yolov4-tiny.weights
yolov4-penuh.bobot
YOLOv7 (Agustus 2022):
yolov7-tiny.weights
yolov7-penuh.bobot
Anak timbangan terlatih MSCOCO disediakan untuk tujuan demo saja. File .cfg dan .names yang sesuai untuk MSCOCO ada 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
`
Perhatikan bahwa Anda dianjurkan untuk melatih jaringan Anda sendiri. MSCOCO terutama digunakan untuk mengonfirmasi bahwa semuanya berfungsi dengan benar.
Bangunan
Berbagai metode pembangunan yang tersedia di masa lalu (sebelum tahun 2023) telah digabungkan menjadi satu solusi terpadu. Darknet memerlukan C++17 atau lebih baru, OpenCV, dan menggunakan CMake untuk menghasilkan file proyek yang diperlukan.
Anda tidak perlu mengetahui C++ untuk membangun, menginstal, atau menjalankan Darknet/YOLO, sama seperti Anda tidak perlu menjadi mekanik untuk mengendarai mobil.
Google Kolab
Petunjuk Google Colab sama dengan petunjuk Linux. Beberapa notebook Jupyter tersedia yang menunjukkan cara melakukan berbagai tugas, seperti melatih jaringan baru.
Lihat notebook di subdirektori colab, atau ikuti petunjuk Linux di bawah.
Metode CMake Linux
Tutorial pembuatan Darknet untuk Linux
1. Opsional: Jika Anda memiliki GPU NVIDIA modern, Anda dapat menginstal CUDA atau CUDA+cuDNN pada saat ini. Jika dipasang, Darknet akan menggunakan GPU Anda untuk mempercepat pemrosesan gambar (dan video).
2. Instal Paket yang Diperlukan:
' pesta
sudo apt-get install build-essential git libopencv-dev cmake
`
3. Mengkloning Repositori Darknet:
' pesta
mkdir ~/srccd ~/src
git klon https://github.com/hank-ai/darknet
`
4. Buat Direktori Pembuatan:
' pesta
cd darknet
mkdir membangun
pembuatan cd
`
5. Hasilkan File Proyek CMake:
' pesta
cmake -DCMAKEBUILDTYPE=Lepaskan ..
`
Penting: Anda harus menghapus file CMakeCache.txt dari direktori build Darknet Anda untuk memaksa CMake menemukan kembali semua file yang diperlukan.
6. Bangun Jaringan Gelap:
' pesta
buat paket -j4
`
7. Instal Paket Darknet:
' pesta
sudo dpkg -i darknet-VERSION.deb
`
Menginstal CUDA dan cuDNN (Opsional)
Darknet dapat berjalan tanpa CUDA, tetapi jika Anda ingin melatih jaringan khusus, diperlukan CUDA atau CUDA+cuDNN.
1. Instal CUDA:
- Kunjungi https://developer.nvidia.com/cuda-downloads untuk mengunduh dan menginstal CUDA.
- Pastikan Anda dapat menjalankan nvcc dan nvidia-smi. Anda mungkin perlu mengubah variabel PATH Anda.
2. Instal cuDNN:
- Kunjungi https://developer.nvidia.com/rdp/cudnn-download atau https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview untuk unduh dan instal cuDNN.
Meningkatkan CUDA atau cuDNN
Jika Anda menginstal CUDA atau CUDA+cuDNN di lain waktu, atau meningkatkan ke versi perangkat lunak NVIDIA yang lebih baru:
1. Membangun kembali Darknet:
- Hapus file CMakeCache.txt dari direktori build Darknet Anda.
- Jalankan cmake dan buat perintah lagi.
Pengguna Tingkat Lanjut
Untuk membuat file instalasi RPM dan bukan file DEB, edit baris yang relevan di CM_package.cmake sebelum menjalankan paket make -j4.
`membuat
# SET (CPACK_GENERATOR "DEB")
SET (CPACK_GENERATOR "RPM")
`
Untuk menginstal paket instalasi setelah selesai dibuat, gunakan manajer paket yang biasa untuk distribusi Anda. Misalnya pada sistem berbasis Debian seperti Ubuntu:
' pesta
sudo dpkg -i darknet-2.0.1-Linux.deb
`
Menguji Instalasi
Setelah instalasi, Anda harus memiliki file berikut:
/usr/bin/darknet: Darknet dapat dieksekusi. Jalankan versi darknet dari CLI untuk mengonfirmasi bahwa versi tersebut diinstal dengan 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: Pustaka yang akan dihubungkan dengan pengembang C, C++, dan Python.
/opt/darknet/cfg/...: Tempat semua template .cfg disimpan.
Jalankan perintah berikut untuk menguji instalasi:
' pesta
versi darknet
`
Metode Windows CMake
Tutorial pembuatan Darknet untuk Windows
1. Instal Perangkat Lunak yang Diperlukan:
- Buka jendela prompt perintah cmd.exe normal dan jalankan perintah berikut:
' pesta
winget instal Git.Git
winget instal Kitware.CMake
winget instal nsis.nsis
winget instal Microsoft.VisualStudio.2022.Community
`
2. Ubah Instalasi Visual Studio:
- Klik menu "Windows Start" dan jalankan "Visual Studio Installer."
- Klik "Ubah".
- Pilih "Pengembangan Desktop Dengan C++."
- Klik "Modify" di pojok kanan bawah, lalu klik "Yes."
3. Instal Microsoft VCPKG:
- Setelah semuanya diunduh dan diinstal, klik lagi menu "Windows Start" dan pilih "Developer Command Prompt for VS 2022." Jangan gunakan PowerShell untuk langkah-langkah ini!
- Jalankan perintah berikut:
' pesta
CDC:
mkdir c:src
cd 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
`
Penting: Bersabarlah pada langkah terakhir ini karena mungkin memerlukan waktu lama untuk dijalankan. Perlu mengunduh dan membangun banyak hal.
4. Opsional: Instal CUDA dan cuDNN
- Jika Anda memiliki GPU NVIDIA modern, Anda dapat menginstal CUDA atau CUDA+cuDNN pada saat ini. Jika dipasang, Darknet akan menggunakan GPU Anda untuk mempercepat pemrosesan gambar (dan video).
- Anda harus menghapus file CMakeCache.txt dari direktori build Darknet Anda untuk memaksa CMake menemukan kembali semua file yang diperlukan.
- Ingatlah untuk membangun kembali Darknet.
5. Instal CUDA:
- Kunjungi https://developer.nvidia.com/cuda-downloads untuk mengunduh dan menginstal CUDA.
- Pastikan Anda dapat menjalankan nvcc.exe dan nvidia-smi.exe. Anda mungkin perlu mengubah variabel PATH Anda.
6. Instal cuDNN:
- Kunjungi https://developer.nvidia.com/rdp/cudnn-download atau https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows untuk mengunduh dan menginstal cuDNN.
- Setelah Anda mengunduh cuDNN, unzip dan salin direktori bin, include, dan lib ke C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[version]/. Anda mungkin perlu menimpa beberapa file.
7. Kloning Repositori Darknet dan Bangun:
' 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=Rilis PACKAGE.vcxproj
`
8. Salin DLL CUDA (Opsional):
- Jika Anda mendapatkan kesalahan tentang beberapa DLL CUDA atau cuDNN yang hilang, seperti cublas64_12.dll, 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
`
9. Jalankan kembali msbuild.exe untuk Menghasilkan Paket Instalasi NSIS:
' pesta
msbuild.exe /property:Platform=x64;Configuration=Rilis PACKAGE.vcxproj
`
Pengguna Tingkat Lanjut
Daripada menjalankan Prompt Perintah Pengembang, Anda dapat menggunakan prompt perintah normal atau ssh ke perangkat dan menjalankan Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat secara manual.
Anda dapat menambahkan banyak modul opsional lainnya saat membuat OpenCV. Jalankan .vcpkg.exe cari opencv untuk melihat daftar lengkap.
Output dari perintah cmake adalah file solusi Visual Studio normal, Darknet.sln. Anda dapat mengabaikan baris perintah dan memuat proyek Darknet di Visual Studio jika Anda adalah pengembang perangkat lunak yang rutin menggunakan Visual Studio GUI.
Menguji Instalasi
Anda sekarang harus memiliki file berikut: C:srcDarknetbuildsrc-cliReleasedarknet.exe. Jalankan perintah berikut untuk menguji instalasi:
' pesta
C:srcDarknetbuildsrc-cliReleasedarknet.exe versi
`
Untuk menginstal Darknet dengan benar, perpustakaan, file yang disertakan, dan DLL yang diperlukan, jalankan wizard instalasi NSIS yang dibuat pada langkah terakhir. Lihat file darknet-VERSION.exe di direktori build. Misalnya:
' pesta
darknet-2.0.31-win64.exe
`
Menginstal paket instalasi NSIS akan:
Buat direktori bernama Darknet, seperti C:Program FilesDarknet.
Instal aplikasi CLI, darknet.exe, dan aplikasi contoh lainnya.
Instal file .dll pihak ketiga yang diperlukan, seperti file dari OpenCV.
Instal file Darknet .dll, .lib, dan .h yang diperlukan untuk menggunakan darknet.dll dari aplikasi lain.
Instal file templat .cfg.
Jalankan perintah berikut untuk menguji instalasi setelah menjalankan wizard NSIS:
' pesta
C:Program FilesDarknetbindarknet.exe versi
`
Menggunakan Darknet
CLI
Berikut ini bukan daftar lengkap semua perintah yang didukung oleh Darknet.
Selain CLI Darknet, perhatikan CLI proyek DarkHelp, yang menyediakan CLI alternatif untuk Darknet/YOLO. DarkHelp CLI juga memiliki beberapa fitur lanjutan yang tidak tersedia langsung di Darknet. Anda dapat menggunakan Darknet CLI dan DarkHelp CLI secara bersamaan; mereka tidak saling eksklusif.
Untuk sebagian besar perintah yang ditampilkan di bawah, Anda memerlukan file .weights dengan file .names dan .cfg yang sesuai. Anda dapat melatih jaringan Anda sendiri (sangat disarankan!) atau mengunduh jaringan saraf yang telah dilatih dan disediakan secara gratis oleh seseorang di internet. Contoh kumpulan data terlatih meliputi:
LEGO Gears (menemukan objek dalam gambar)
Rolodex (menemukan teks dalam gambar)
MSCOCO (deteksi objek kelas 80 standar)
Perintah untuk Dijalankan
1. Dapatkan Bantuan:
' pesta
bantuan darknet
`
2. Periksa Versi:
' pesta
versi darknet
`
3. Prediksi Menggunakan 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. Bekerja dengan 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. Membaca dari Webcam:
- V2:
' pesta
demo detektor darknet animal.data animal.cfg animal_best.weights -c 0
`
- V3:
' pesta
darknet08display_webcam binatang
`
7. Simpan Hasil ke 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.uji 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. Berjalan pada GPU Tertentu:
- V2:
' pesta
demo detektor darknet animal.data animal.cfg animal_best.weights -i 1 test.mp4
`
10. Mengecek Akurasi Jaringan Neural:
' pesta
peta detektor darknet Driving.data Driving.cfg Driving_best.weights ...
`
Keluaran:
`
Nama Id Rata-rata Presisi 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
`
11. Pengecekan Akurasi mAP@IoU=75:
' pesta
detektor darknet peta animal.data animal.cfg animalbest.weights -iouthresh 0.75
`
12. Menghitung Ulang Jangkar:
- DarkMark: Yang terbaik adalah menghitung ulang jangkar di DarkMark, karena ini berjalan 100 kali berturut-turut dan memilih jangkar terbaik dari semua jangkar yang dihitung.
- Darknet: Jika Anda ingin menggunakan cara lama di Darknet:
' pesta
detektor darknet calcanchors animal.data -numof_clusters 6 -width 320 -height 256
`
13. Melatih Jaringan Baru:
' pesta
cd ~/nn/hewan/
detektor darknet -peta -dont_show melatih hewan.data hewan.cfg
`
Pelatihan
Tautan Cepat ke Bagian Terkait dari FAQ Darknet/YOLO
1. Bagaimana cara mengatur file dan direktori saya?
2. File konfigurasi manakah yang harus saya gunakan?
3. Perintah apa yang harus saya gunakan saat melatih jaringan saya sendiri?
Menggunakan DarkMark untuk Anotasi dan Pelatihan (Disarankan)
Cara termudah untuk membuat anotasi dan melatih adalah dengan DarkMark, yang membuat semua file Darknet yang diperlukan. Ini sangat disarankan untuk melatih jaringan saraf baru.
Menyiapkan File Secara Manual untuk Melatih Jaringan Kustom
Jika Anda lebih suka pengaturan manual, ikuti langkah-langkah berikut:
1. Buat Folder Baru:
- Buat folder baru untuk menyimpan file pelatihan Anda. Misalnya, Anda dapat membuat ~/nn/animals/ untuk melatih jaringan untuk mendeteksi hewan.
2. Salin Templat File Konfigurasi:
- Salin salah satu file konfigurasi Darknet dari cfg/ sebagai template. Misalnya, Anda dapat menggunakan cfg/yolov4-tiny.cfg. Tempatkan ini di folder yang Anda buat. Sekarang Anda harus memiliki ~/nn/animals/animals.cfg.
3. Buat File nama binatang:
- Buat file teks bernama animal.names di folder yang sama dengan file konfigurasi.
4. Edit File nama binatang:
- Buat daftar kelas yang ingin Anda deteksi, satu entri per baris, tanpa baris kosong atau komentar. Misalnya:
`
anjing
kucing
burung
kuda
`
5. Buat File animal.data:
- Buat file teks bernama animal.data di folder yang sama.
- Misalnya, file animal.data dapat berisi:
`
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
`
6. Buat Folder Kumpulan Data:
- Buat folder untuk menyimpan gambar dan anotasi Anda. Misalnya, Anda dapat membuat ~/nn/animals/dataset.
7. Anotasi Gambar:
- Setiap gambar memerlukan file .txt yang sesuai dengan anotasi. Format file .txt ini spesifik dan memerlukan koordinat yang tepat untuk anotasinya. Gunakan DarkMark atau perangkat lunak serupa untuk memberi anotasi pada gambar Anda.
8. Buat animaltrain.txt dan animalvalid.txt:
- File teks ini masing-masing mencantumkan gambar yang digunakan untuk pelatihan dan validasi. Setiap gambar harus berada pada baris terpisah, dengan jalur relatif atau absolut.
9. Ubah File Konfigurasi:
- Buka animal.cfg dengan editor teks dan lakukan modifikasi berikut:
- batch=64: Pastikan nilai ini disetel.
- subdivisi: Nilai terbaik untuk digunakan adalah 1. Anda mungkin perlu meningkatkan nilai ini tergantung pada memori GPU dan dimensi jaringan Anda.
- maxbatches: Tetapkan ini ke nilai yang wajar, biasanya 2000 kali jumlah kelas. Untuk contoh ini, gunakan maxbatches=8000 (4 kelas * 2000).
- langkah: Atur ini ke 80% dan 90% dari maxbatch. Untuk contoh ini, gunakan langkah=6400,7200 (karena maxbatches=8000).
- lebar dan tinggi: Atur ini ke dimensi jaringan yang Anda inginkan. Lihat FAQ Darknet/YOLO untuk panduan memilih ukuran terbaik.
- kelas: Cari semua contoh baris ini dan modifikasi agar sesuai dengan jumlah kelas di file .names Anda (dalam contoh ini, kelas=4).
- filter: Cari semua contoh baris ini di bagian [konvolusional] sebelum setiap bagian [yolo]. Nilai yang digunakan adalah (numberofclasses + 5) 3. Untuk contoh ini, gunakan filter=27 (4 + 5 3).
10. Mulai Pelatihan:
' pesta
cd ~/nn/hewan/
detektor darknet -peta -dont_show melatih hewan.data hewan.cfg
`
11. Memantau Kemajuan Pelatihan:
- Bersabarlah! Bobot terbaik akan disimpan sebagai animal_best.weights.
- Anda dapat memantau kemajuan pelatihan dengan melihat file chart.png.
- Lihat FAQ Darknet/YOLO untuk parameter tambahan yang mungkin ingin Anda gunakan selama pelatihan.
12. Menambahkan Verbositas pada Hasil Pelatihan:
' 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 untuk pelatihan Darknet.
DarkHelp: Untuk CLI alternatif yang tangguh untuk Darknet, menggunakan ubin gambar, pelacakan objek dalam video, dan API C++ tangguh yang dapat digunakan dalam aplikasi komersial.
Pertanyaan Umum Darknet/YOLO: https://darknetcv.ai/faq/
Saluran YouTube Stéphane: https://www.youtube.com/channel/UCYQ2k0L3X0c56l9gE2r1RQ
Server Perselisihan Darknet/YOLO: https://discord.gg/zSq8rtW
Peta jalan
Terakhir diperbarui 30-10-2024:
Selesai
Mengganti qsort() dengan std::sort() yang digunakan selama pelatihan (beberapa yang tidak jelas masih ada).
Menghapus check_mistakes, getchar(), dan system().
Mengonversi Darknet untuk menggunakan kompiler C++ (g++ di Linux, VisualStudio di Windows).
Memperbaiki versi Windows.
Memperbaiki dukungan Python.
Membangun perpustakaan Darknet.
Mengaktifkan kembali label pada prediksi (kode "alfabet").
Mengaktifkan kembali kode CUDA/GPU.
Mengaktifkan kembali CUDNN.
Mengaktifkan kembali setengah CUDNN.
Jangan melakukan hard-code pada arsitektur CUDA.
Peningkatan informasi versi CUDA.
Mengaktifkan kembali AVX.
Menghapus solusi lama dan Makefile.
Menjadikan OpenCV non-opsional.
Menghapus ketergantungan pada perpustakaan pthread lama.
STB dihapus.
Tulis ulang CMakeLists.txt untuk menggunakan deteksi CUDA baru.
Menghapus kode "abjad" lama, dan menghapus 700+ gambar di data/label.
Dibangun di luar sumber daya.
Output nomor versi yang ditingkatkan.
Optimalisasi kinerja terkait dengan pelatihan (tugas yang sedang berjalan).
Optimalisasi kinerja terkait dengan inferensi (tugas yang sedang berjalan).
Gunakan referensi lewat jika memungkinkan.
Membersihkan file .hpp.
Menulis ulang darknet.h.
Jangan masukkan cv::Mat ke void* tetapi gunakan sebagai objek C++ yang tepat.
Memperbaiki atau membuat konsisten bagaimana struktur gambar internal digunakan.
Memperbaiki build untuk perangkat Jetson berbasis ARM.
- Perangkat Jetson asli kemungkinan besar tidak akan diperbaiki karena tidak lagi didukung oleh NVIDIA (tidak ada kompiler C++17).
- Perangkat Jetson Orin baru berfungsi.
Memperbaiki API Python di V3.
Peningkatan dukungan untuk Python. (Adakah pengembang Python yang ingin membantu dalam hal ini?)
Tujuan Jangka Pendek
Tukar printf() dengan std::cout (sedang berlangsung).
Lihatlah dukungan kamera ZED lama.
Tingkatkan dan buat penguraian baris perintah yang konsisten (sedang berlangsung).
Tujuan Jangka Menengah
Hapus semua kode char* dan ganti dengan std::string.
Jangan sembunyikan peringatan dan bersihkan peringatan kompiler (sedang berlangsung).
Tingkatkan penggunaan cv::Mat alih-alih struktur gambar khusus di C (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 dengan N > 3 (misalnya, gambar dengan kedalaman tambahan atau saluran termal).
Pembersihan kode yang sedang berlangsung (sedang berlangsung).
Tujuan Jangka Panjang
Perbaiki masalah CUDA/CUDNN dengan semua GPU.
Tulis ulang kode CUDA+cuDNN.
Pertimbangkan untuk menambahkan dukungan untuk GPU non-NVIDIA.
Kotak pembatas yang diputar, atau semacam penyangga "sudut".
Titik kunci/kerangka.
Peta panas (sedang berlangsung).
Segmentasi.