Kerangka Deteksi Objek Darknet dan YOLO
Darknet adalah kerangka jaringan saraf sumber terbuka yang dibuat menggunakan C, C++, dan CUDA. Ini berfungsi sebagai landasan bagi YOLO (You Only Look Once), sistem pendeteksi objek real-time mutakhir yang terkenal dengan kecepatan dan akurasinya.
Baca tentang bagaimana Hank.ai memperkuat komunitas Darknet/YOLO: [link ke blog Hank.ai]
Jelajahi situs web resmi Darknet/YOLO: [tautan ke situs web Darknet]
Pelajari FAQ Darknet/YOLO yang komprehensif: [tautan ke FAQ]
Terlibat dengan komunitas Darknet/YOLO yang dinamis di Discord: [tautan ke server Discord]
Dokumen
1. YOLOv7: [tautan ke kertas]
2. Scaled-YOLOv4: [tautan ke kertas]
3. YOLOv4: [tautan ke kertas]
4. YOLOv3: [tautan ke kertas]
Informasi Umum
Kerangka kerja Darknet/YOLO terus mendominasi kerangka kerja lain dan versi YOLO dalam hal kecepatan dan akurasi. Sifatnya yang open source dan kebebasan penuh dari biaya lisensi memungkinkan integrasi tanpa batas ke dalam proyek dan produk komersial yang sudah ada.
Darknet V3 (“Jazz”), dirilis pada Oktober 2024, mencapai performa luar biasa, memproses video kumpulan data LEGO pada 1000 FPS luar biasa menggunakan GPU NVIDIA RTX 3090. Ini berarti waktu pemrosesan kurang dari 1 milidetik per frame video.
Bergabunglah dengan server Darknet/YOLO Discord yang aktif di [tautan ke server Discord] untuk mendapatkan dukungan, diskusi, dan pembelajaran kolaboratif.
Darknet/YOLO melayani berbagai perangkat, mulai dari Raspberry Pi hingga rig pelatihan kelas atas, mendukung versi CPU dan GPU. Versi GPU memerlukan GPU berkemampuan CUDA dari NVIDIA.
Darknet/YOLO menawarkan kompatibilitas dengan sistem operasi Linux, Windows, dan Mac. Temukan petunjuk pembuatan terperinci di bawah.
Versi Darknet
Alat Darknet asli, yang dikembangkan oleh Joseph Redmon antara tahun 2013 dan 2017, tidak memiliki nomor versi. Kami menetapkan versi ini sebagai 0.x.
Alexei Bochkovskiy terus mengelola repositori Darknet yang populer dari tahun 2017 hingga 2021, sekali lagi tanpa nomor versi. Kami menyebutnya sebagai versi 1.x.
Repositori Darknet, disponsori oleh Hank.ai dan dikelola oleh Stéphane Charette sejak tahun 2023, memperkenalkan perintah "versi". Antara tahun 2023 dan akhir tahun 2024, ia mengembalikan versi 2.x "OAK".
Tujuan pengembangannya adalah untuk meminimalkan gangguan terhadap fungsionalitas yang ada sambil membiasakan diri dengan basis kode. Peningkatan utama meliputi:
Proses pembangunan terpadu: Langkah-langkah pembangunan ditulis ulang untuk proses pembangunan berbasis CMake yang konsisten di Windows dan Linux.
Basis kode C++: Konversi basis kode untuk memanfaatkan kompiler C++.
Bagan pelatihan yang ditingkatkan: Visualisasi bagan.png yang ditingkatkan selama pelatihan.
Perbaikan bug dan pengoptimalan: Peningkatan terkait kinerja, dengan fokus pada pengurangan waktu pelatihan.
Cabang terakhir dari basis kode ini adalah versi 2.1, yang berada di cabang "v2".
Fase pengembangan berikutnya dimulai pada pertengahan tahun 2024 dan mencapai puncaknya pada rilis versi 3.x "JAZZ" pada bulan Oktober 2024.
Anda selalu dapat mengakses cabang "v2" sebelumnya untuk menjalankan perintah dari versi tersebut. Harap beri tahu kami jika Anda menemukan perintah yang hilang, dan kami akan menyelidiki integrasinya kembali.
Perubahan signifikan pada Darknet V3 antara lain:
Penghapusan perintah: Penghapusan perintah usang dan jarang digunakan.
Pengoptimalan kinerja: Peningkatan kinerja pelatihan dan inferensi.
Modifikasi API lama: Modifikasi API C lama; aplikasi yang menggunakan API Darknet asli mungkin memerlukan sedikit penyesuaian.
API C/C++ baru: Pengenalan Darknet V3 C dan C++ API baru.
Kode contoh yang diperbarui: Penyertaan aplikasi baru dan kode contoh di direktori "src-examples".
Untuk informasi detail tentang API baru: [tautan ke dokumentasi API Darknet V3]
Jelajahi kode contoh yang diperbarui: [tautan ke file API Darknet V3]
Anak Timbangan Terlatih MSCOCO
Beberapa versi YOLO populer telah dilatih sebelumnya untuk kenyamanan pada kumpulan data MSCOCO. Kumpulan data ini mencakup 80 kelas, yang mudah diidentifikasi dalam file teks "cfg/coco.names".
Selain MSCOCO, Darknet/YOLO menyediakan bobot terlatih untuk kumpulan data yang lebih sederhana seperti LEGO Gears dan Rolodex, memungkinkan Anda bereksperimen dengan berbagai skenario. Lihat FAQ Darknet/YOLO untuk detail selengkapnya.
Anak timbangan terlatih MSCOCO dapat diakses dari berbagai sumber, termasuk repositori ini:
YOLOv2 (November 2016):
YOLOv2-tiny: [tautan ke beban]
YOLOv2-full: [tautan ke bobot]
YOLOv3 (Mei 2018):
YOLOv3-tiny: [tautan ke beban]
YOLOv3-full: [tautan ke beban]
YOLOv4 (Mei 2020):
YOLOv4-tiny: [tautan ke beban]
YOLOv4-full: [tautan ke beban]
YOLOv7 (Agustus 2022):
YOLOv7-tiny: [tautan ke beban]
YOLOv7-full: [tautan ke beban]
Anak beban yang telah dilatih sebelumnya ini terutama ditujukan untuk tujuan demonstrasi. File .cfg dan .names yang sesuai untuk MSCOCO terletak di direktori "cfg". Contoh perintah:
`
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
`
Ingat, melatih jaringan Anda sendiri sangat dianjurkan. MSCOCO terutama berfungsi sebagai tolok ukur untuk mengonfirmasi berfungsinya pengaturan Anda dengan benar.
Bangunan
Berbagai metode pembangunan yang digunakan sebelum tahun 2023 telah dikonsolidasikan menjadi satu solusi terpadu. Darknet mengandalkan C++17 atau lebih baru, OpenCV, dan menggunakan CMake untuk menghasilkan file proyek yang diperlukan.
Membangun, menginstal, dan menjalankan Darknet/YOLO tidak memerlukan keahlian C++, mirip dengan mengendarai mobil tanpa menjadi mekanik.
Google Kolab
Petunjuk Google Colab identik dengan petunjuk Linux. Beberapa notebook Jupyter mendemonstrasikan berbagai tugas, seperti melatih jaringan baru.
Jelajahi notebook di subdirektori "colab" atau ikuti petunjuk Linux di bawah.
Metode CMake Linux
Tutorial pembuatan Darknet untuk Linux
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).
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.
Darknet dapat berjalan tanpanya, tetapi jika Anda ingin melatih jaringan khusus maka diperlukan CUDA atau CUDA+cuDNN.
1. Instal prasyarat:
' pesta
sudo apt-get install build-essential git libopencv-dev cmake
`
2. Kloning repositori Darknet:
' pesta
mkdir ~/srccd ~/src
git clone https://github.com/hank-ai/darknetcd darknet
`
3. Buat direktori build:
' pesta
mkdir buildcd build
`
4. Konfigurasikan CMake:
' pesta
cmake -DCMAKEBUILDTYPE=Lepaskan ..
`
5. Bangun Jaringan Gelap:
' pesta
buat -j4
`
6. Paket Darknet:
' pesta
kemasan
`
7. Instal paketnya:
' pesta
sudo dpkg -i darknet-VERSION.deb
`
Jika Anda menggunakan CMake versi lama maka Anda perlu memutakhirkan CMake sebelum dapat menjalankan perintah cmake di atas. Upgrade CMake di Ubuntu dapat dilakukan dengan perintah berikut:
' pesta
sudo apt-get pembersihan cmake
sudo snap install cmake --klasik
`
Jika menggunakan bash sebagai shell perintah, Anda sebaiknya memulai ulang shell Anda saat ini. Jika menggunakan ikan, sebaiknya segera mengambil jalur baru.
Pengguna tingkat lanjut:
Jika Anda lebih memilih paket instalasi RPM daripada file DEB, ubah baris yang relevan di "CM_package.cmake". Sebelum menjalankan "make -j4 package", sesuaikan baris berikut:
`membuat
SET (CPACKGENERATOR "DEB")# SET (CPACKGENERATOR "RPM")
`
Untuk distribusi seperti Centos dan OpenSUSE, ubah baris tersebut sebagai berikut:
`membuat
SET (CPACK_GENERATOR "DEB")
SET (CPACK_GENERATOR "RPM")
`
Instal paket yang dibuat menggunakan manajer paket distribusi Anda. Untuk sistem berbasis Debian seperti Ubuntu:
' pesta
sudo dpkg -i darknet-2.0.1-Linux.deb
`
Instalasi paket .deb akan menyalin file berikut:
/usr/bin/darknet: Darknet utama yang dapat dieksekusi. Jalankan "versi darknet" dari CLI untuk mengonfirmasi instalasi berhasil.
/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/...: Menyimpan semua templat .cfg.
Selamat! Darknet telah dibangun dan diinstal ke /usr/bin/. Jalankan "versi darknet" untuk memverifikasi instalasi.
Jika Anda tidak memiliki /usr/bin/darknet, artinya Anda hanya membuatnya, bukan menginstalnya. Pastikan Anda menginstal file .deb atau .rpm seperti dijelaskan di atas.
Metode Windows CMake
Petunjuk ini mengasumsikan instalasi baru Windows 11 22H2.
1. Instal prasyarat menggunakan Winget:
' pesta
dapatkan 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 "Yes."
3. Instal Microsoft VCPKG:
- Setelah instalasi selesai, klik menu "Windows Start" dan pilih "Developer Command Prompt for VS 2022." Jangan gunakan PowerShell untuk langkah ini, ini akan menimbulkan masalah!
- Pengguna tingkat lanjut: Daripada menggunakan Prompt Perintah Pengembang, Anda dapat menjalankan prompt perintah normal atau ssh ke perangkat dan secara manual menjalankan "Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat."
4. Instal OpenCV menggunakan VCPKG:
' pesta
CDC:
mkdir c:srccd c:src
git clone https://github.com/microsoft/vcpkgcd vcpkg
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
`
Bersabarlah selama langkah ini karena memerlukan banyak waktu untuk mengunduh dan membangun dependensi.
Pengguna tingkat lanjut:
- Perhatikan bahwa ada banyak modul opsional lain yang mungkin ingin Anda tambahkan saat membuat OpenCV. Jalankan .vcpkg.exe cari opencv untuk melihat daftar lengkap.
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).
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.
Darknet dapat berjalan tanpanya, tetapi jika Anda ingin melatih jaringan khusus maka diperlukan CUDA atau CUDA+cuDNN.
1. Instal CUDA:
Kunjungi https://developer.nvidia.com/cuda-downloads untuk mengunduh dan menginstal CUDA.
2. 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.
3. Verifikasi instalasi CUDA:
Setelah menginstal CUDA, pastikan Anda dapat menjalankan nvcc.exe dan nvidia-smi.exe. Anda mungkin perlu menyesuaikan variabel PATH Anda.
4. Integrasikan cuDNN:
Buka zip arsip cuDNN yang diunduh dan salin direktori "bin", "include", dan "lib" ke C:Program FilesNVIDIA GPU Computing ToolkitCUDA[version]. Anda mungkin perlu menimpa file yang sudah ada.
5. Instal CUDA setelah Visual Studio:
- CUDA harus diinstal setelah Visual Studio. Jika Anda memutakhirkan Visual Studio, ingatlah untuk menginstal ulang CUDA.
6. Kloning Darknet dan bangun:
' pesta
cd c:src
git clone https://github.com/hank-ai/darknet.gitcd darknet
mkdir buildcd build
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
`
7. Tangani DLL CUDA/cuDNN yang hilang:
- Jika Anda mengalami kesalahan tentang CUDA atau cuDNN DLL yang hilang (misalnya, culas64_12.dll), salin secara manual file CUDA .dll yang relevan ke direktori yang sama dengan darknet.exe. Misalnya:
' pesta
salin "C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
`
(Ini adalah contohnya. Verifikasi versi CUDA Anda dan jalankan perintah yang sesuai.)
- Jalankan kembali perintah msbuild.exe terakhir untuk menghasilkan paket instalasi NSIS.
Pengguna tingkat lanjut:
Output perintah cmake adalah file solusi Visual Studio biasa (Darknet.sln). Jika Anda lebih suka menggunakan Visual Studio GUI daripada msbuild.exe untuk membangun, Anda dapat memuat proyek Darknet di Visual Studio dan mengabaikan langkah-langkah baris perintah.
Anda sekarang seharusnya sudah memiliki C:srcDarknetbuildsrc-cliReleasedarknet.exe yang dapat dieksekusi. Jalankan versi C:srcDarknetbuildsrc-cliReleasedarknet.exe untuk menguji instalasi.
Untuk menginstal Darknet dengan benar, termasuk perpustakaan, menyertakan file, dan DLL yang diperlukan, jalankan wizard instalasi NSIS yang dibuat pada langkah terakhir. Temukan file darknet-VERSION.exe di direktori build, misalnya darknet-2.0.31-win64.exe.
Paket instalasi NSIS akan:
Buat direktori bernama "Darknet" (misalnya, C:Program FilesDarknet).
Instal aplikasi CLI (darknet.exe) dan contoh aplikasi lainnya.
Instal file .dll pihak ketiga yang diperlukan (misalnya, dari OpenCV).
Instal file Darknet .dll, .lib, dan .h yang diperlukan untuk menggunakan darknet.dll dari aplikasi lain.
Instal file templat .cfg.
Anda sekarang sudah selesai! Setelah wizard instalasi selesai, Darknet akan diinstal di C:Program FilesDarknet. Jalankan versi C:Program FilesDarknetbindarknet.exe untuk memverifikasi instalasi.
Jika Anda tidak memiliki C:/Program Files/darknet/bin/darknet.exe, ini menunjukkan Anda hanya membuatnya, bukan menginstalnya. Pastikan Anda menelusuri setiap panel wizard instalasi NSIS seperti yang dijelaskan sebelumnya.
Menggunakan Darknet
CLI
Ini bukanlah daftar lengkap semua perintah yang didukung oleh Darknet.
Selain Darknet CLI, perhatikan CLI proyek DarkHelp, yang menawarkan antarmuka alternatif untuk Darknet/YOLO. Ini mencakup beberapa fitur lanjutan yang tidak tersedia secara langsung di Darknet. Anda dapat menggunakan Darknet CLI dan DarkHelp CLI secara bersamaan; mereka tidak saling eksklusif.
Untuk sebagian besar perintah di bawah ini, Anda memerlukan file .weights bersama dengan file .names dan .cfg yang sesuai. Anda dapat melatih jaringan Anda sendiri (sangat disarankan!) atau mengunduh jaringan saraf terlatih dari sumber daya yang tersedia untuk umum. Beberapa contohnya meliputi:
LEGO Gears (deteksi objek dalam gambar)
Rolodex (deteksi teks dalam gambar)
MSCOCO (deteksi objek kelas 80 standar)
Berikut beberapa contoh perintah dan penggunaannya:
Perintah dasar:
Membantu:
' pesta
bantuan darknet
`
Versi:
' pesta
versi darknet
`
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
`
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
`
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
`
Masukan kamera web:
V2:
' pesta
demo detektor darknet animal.data animal.cfg animal_best.weights -c 0
`
V3:
' pesta
darknet08display_webcam binatang
`
Menyimpan 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.tes bobot.mp4
`
Bantuan Gelap:
' pesta
DarkHelp animal.cfg animal.names animal_best.weights test.mp4
`
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
`
Berjalan pada GPU tertentu:
V2:
' pesta
demo detektor darknet animal.data animal.cfg animal_best.weights -i 1 test.mp4
`
Memeriksa keakuratan jaringan:
peta:
' pesta
peta detektor darknet Driving.data Driving.cfg Driving_best.weights ...
`
- Perintah ini akan menampilkan rata-rata presisi (AP) untuk setiap kelas dalam dataset.
peta@IoU=75:
' pesta
detektor darknet peta animal.data animal.cfg animalbest.weights -iouthresh 0.75
`
- Perintah ini menghitung peta pada ambang batas IoU 0,75.
Menghitung jangkar:
Praktik terbaik untuk penghitungan ulang jangkar adalah dengan menggunakan DarkMark, karena ia menjalankan 100 penghitungan berturut-turut dan memilih jangkar yang optimal. Namun, Anda dapat menggunakan metode Darknet yang lebih lama:
' pesta
detektor darknet calcanchors animal.data -numof_clusters 6 -width 320 -height 256
`
Melatih jaringan baru:
Pelatihan dasar:
' pesta
detektor darknet -peta -dont_show melatih hewan.data hewan.cfg
`
- Bobot terbaik akan disimpan sebagai animal_best.weights, dan kemajuan pelatihan dapat dilihat di chart.png.
Pelatihan verbose:
' pesta
detektor darknet -peta -dont_show --verbose melatih hewan.data hewan.cfg
`
- Perintah ini memberikan informasi lebih rinci selama pelatihan.
Pelatihan
Tautan cepat ke bagian yang relevan dari FAQ Darknet/YOLO:
Pengaturan file dan direktori: [tautan ke bagian FAQ]
Memilih file konfigurasi yang tepat: [tautan ke bagian FAQ]
Perintah pelatihan: [tautan ke bagian FAQ]
Cara paling mudah untuk membuat anotasi dan melatih adalah dengan menggunakan DarkMark untuk membuat semua file Darknet yang diperlukan. Ini adalah pendekatan yang direkomendasikan untuk melatih jaringan saraf baru.
Pengaturan pelatihan manual:
1. Buat folder: Buat folder baru untuk menyimpan file pelatihan Anda. Misalnya, ~/nn/animals/.
2. Salin file konfigurasi: Salin file konfigurasi Darknet sebagai templat (misalnya, cfg/yolov4-tiny.cfg) ke dalam folder Anda. Anda sekarang memiliki ~/nn/animals/animals.cfg.
3. Buat file .names: Buat file teks animal.names di folder yang sama.
- Edit file untuk membuat daftar kelas yang ingin Anda deteksi. Setiap kelas harus berada pada baris tersendiri tanpa ada baris kosong atau komentar. Misalnya:
`
anjing
kucing
burung
kuda
`
4. Buat file .data: Buat file teks animal.data di folder yang sama.
- File .data mendefinisikan kumpulan data pelatihan dan validasi, nama kelas, dan direktori cadangan. Misalnya:
`
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 folder gambar dan anotasi: Buat folder (misalnya, ~/nn/animals/dataset) untuk menyimpan gambar dan anotasi Anda.
- Setiap gambar memerlukan file .txt terkait yang berisi anotasi. Format anotasi bersifat spesifik; itu 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. Buat file "train" dan "valid": Buat file teks "train" dan "valid" yang disebutkan dalam file .data.
- File-file ini masing-masing mencantumkan gambar yang digunakan untuk pelatihan dan validasi. Setiap gambar harus berada pada baris terpisah. Anda dapat menggunakan jalur relatif atau absolut.
7. Ubah file konfigurasi:
- Buka file .cfg Anda dengan editor teks dan lakukan penyesuaian berikut:
- batch=64: Nilai ini biasanya baik-baik saja.
- subdivisi: Mulai dengan subdivisi=1. Anda mungkin perlu meningkatkan nilai ini tergantung pada memori GPU dan dimensi jaringan Anda. Lihat FAQ Darknet/YOLO untuk panduan.
- maxbatches: Setel ini ke 2000* jumlah kelas. Misalnya dengan 4 kelas, maxbatches=8000.
- langkah: Setel ini ke 80% dan 90% dari maxbatch. Misalnya dengan maxbatches=8000, langkah=6400,7200.
- lebar dan tinggi: Ini adalah dimensi jaringan. Konsultasikan FAQ Darknet/YOLO untuk saran penghitungan dimensi.
- kelas: Ubah baris kelas=... agar sesuai dengan jumlah kelas di file .names Anda (dalam contoh ini, kelas=4).
- filter: Ubah baris filter=... di setiap bagian [konvolusional] sebelum setiap bagian [yolo]. Nilai dihitung sebagai (jumlah kelas + 5) * 3. Misalnya, dengan 4 kelas, filter=27.
8. Mulai pelatihan:
' pesta
cd ~/nn/hewan/
detektor darknet -peta -dont_show melatih hewan.data hewan.cfg
`
- Pelatihan mungkin memakan waktu cukup lama. Bobot terbaik akan disimpan sebagai animal_best.weights. Kemajuan pelatihan terlihat di file chart.png. Lihat FAQ Darknet/YOLO untuk parameter pelatihan tambahan.
- Jika Anda ingin informasi pelatihan lebih detail, tambahkan parameter --verbose:
' pesta
detektor darknet -peta -dont_show --verbose melatih hewan.data hewan.cfg
`
Alat dan Tautan Lainnya
DarkMark: Alat ini membantu mengelola proyek Darknet/YOLO Anda, membuat anotasi gambar, memverifikasi anotasi, dan menghasilkan file yang diperlukan untuk pelatihan Darknet.
DarkHelp: CLI alternatif tangguh untuk Darknet yang menyediakan fitur seperti penataan gambar, pelacakan objek dalam video, dan API C++ tangguh untuk aplikasi komersial.
FAQ Darknet/YOLO: Sumber berharga untuk menjawab pertanyaan Anda tentang Darknet/YOLO.
Saluran YouTube Stéphane: Temukan banyak tutorial dan video contoh.
Server Darknet/YOLO Discord: Bergabunglah dengan server untuk mengajukan pertanyaan dukungan dan terhubung dengan pengguna Darknet/YOLO lainnya.
Peta jalan
Terakhir diperbarui: 30-10-2024
Selesai
Tukar qsort(): Mengganti qsort() dengan std::sort() di bagian basis kode yang relevan. (Beberapa instance yang tersisa masih menggunakan qsort())
Hapus fungsi yang ketinggalan jaman: Menghapus check_mistakes, getchar(), dan system().
Basis kode C++: Mengonversi Darknet untuk menggunakan kompiler C++ (g++ di Linux, VisualStudio di Windows).
Pembuatan Windows: Memperbaiki proses pembuatan Windows.
Dukungan Python: Memperbaiki integrasi Python.
Perpustakaan Darknet: Membangun perpustakaan Darknet.
Label prediksi: Mengaktifkan kembali label pada prediksi (kode "abjad").
Kode CUDA/GPU: Mengaktifkan kembali fungsionalitas CUDA/GPU.
CUDNN: Mengaktifkan kembali dukungan CUDNN.
Setengah CUDNN: Mengaktifkan kembali dukungan setengah presisi CUDNN.
Arsitektur CUDA: Menghapus hard-coding arsitektur CUDA.
Informasi versi CUDA: Peningkatan informasi versi CUDA.
AVX: Mengaktifkan kembali dukungan AVX.
Menghapus file lama: Menghapus solusi lama dan Makefile.
Ketergantungan OpenCV: Menjadikan OpenCV sebagai ketergantungan yang diperlukan.
perpustakaan pthread: Menghapus ketergantungan pada perpustakaan pthread lama.
STB: Menghapus ketergantungan STB.
CMakeLists.txt: CMakeLists.txt ditulis ulang untuk menggunakan metode deteksi CUDA yang baru.
Menghapus file usang: Menghapus kode "abjad" lama dan menghapus 700+ gambar di data/label.
Pembuatan di luar sumber: Mengaktifkan pembuatan di luar sumber.
Nomor versi: Output nomor versi yang ditingkatkan.
Kinerja pelatihan: Optimalisasi kinerja untuk pelatihan (tugas berkelanjutan).
Performa inferensi: Optimalisasi performa untuk inferensi (tugas yang sedang berlangsung).
Referensi lewat: Gunakan referensi lewat jika memungkinkan untuk meningkatkan efisiensi.
Pembersihan kode: Membersihkan file .hpp.
Darknet.h yang ditulis ulang: Memperbarui file header Darknet API.
cv::Penggunaan mat: Menggunakan cv::Mat sebagai objek C++ yang tepat alih-alih melemparkannya ke void*.
Struktur gambar: Memperbaiki inkonsistensi dan masalah terkait struktur gambar internal.
Dukungan Jetson: Memperbaiki build untuk perangkat Jetson berbasis ARM.
- Perangkat Jetson yang lebih lama kemungkinan besar tidak akan diperbaiki karena NVIDIA menghentikan dukungan (tidak ada kompiler C++17).
- Perangkat Jetson Orin baru berfungsi.
Python API di V3: Memperbaiki Python API di Darknet V3.
Tujuan jangka pendek
Tukar printf(): Ganti printf() dengan std::cout (sedang berlangsung).
Dukungan kamera Zed: Kunjungi kembali dan tingkatkan dukungan untuk kamera Zed.
Penguraian baris perintah: Menerapkan penguraian baris perintah yang lebih kuat dan konsisten (sedang berlangsung).
Tujuan jangka menengah
Hapus kode char: Hilangkan semua kode char dan ganti dengan std::string.
Peringatan kompiler: Jangan sembunyikan peringatan dan alamatkan peringatan kompiler (sedang berlangsung).
penggunaan cv::Mat: Tingkatkan penggunaan cv::Mat alih-alih struktur gambar khusus di C (sedang berlangsung).
Fungsionalitas daftar: Ganti fungsionalitas daftar lama dengan std::vector atau std::list.
Dukungan gambar skala abu-abu: Memperbaiki dukungan untuk gambar skala abu-abu 1 saluran.
Dukungan gambar saluran-N: Tambahkan dukungan untuk gambar dengan lebih dari 3 saluran (misalnya, saluran kedalaman atau termal).
Pembersihan kode yang sedang berlangsung: Lanjutkan dengan pembersihan kode yang sedang berlangsung (sedang berlangsung).
Tujuan jangka panjang
Masalah CUDA/CUDNN: Mengatasi masalah kompatibilitas CUDA/CUDNN di berbagai GPU.
Tulis ulang kode CUDA/CUDNN: Tulis ulang kode CUDA/CUDNN untuk meningkatkan kinerja dan kompatibilitas.
Dukungan GPU non-NVIDIA: Selidiki dukungan untuk GPU non-NVIDIA.
Kotak pembatas yang diputar: Menerapkan dukungan untuk kotak pembatas yang diputar atau informasi sudut.
Titik Kunci/Kerangka: Tambahkan dukungan untuk titik kunci dan kerangka.
Peta panas: Menerapkan dukungan peta panas (sedang berlangsung).
Segmentasi: Tambahkan dukungan untuk segmentasi.