Kerangka Deteksi Objek Darknet dan YOLO
Downcode dan daftar terbaru pelacak BitTorrent publik
Daftar
Daftar ini diperbarui secara otomatis setiap hari. Pembaruan terakhir 31/10/2024:
Apakah Anda mengalami masalah DNS? Daftar ini berisi pelacak yang sama tetapi dengan alamat IP, bukan domain:
Catatan
Menyumbang
Kontak
ngosang [@] hotmail [.es]
Alat pihak ketiga
Alat daring pihak ketiga
contoh:
Lisensi Apache-2.0
Daftar isi
Kerangka Deteksi Objek Darknet dan YOLO
Dokumen
Informasi Umum
Versi Darknet
Anak Timbangan Terlatih MSCOCO
Bangunan
Google Kolab
Metode CMake Linux
Metode Windows CMake
Menggunakan Darknet
CLI
Pelatihan
Alat dan Tautan Lainnya
Peta jalan
Tujuan jangka pendek
Tujuan jangka menengah
Tujuan jangka panjang
Kerangka Deteksi Objek Darknet dan YOLO
Darknet adalah kerangka jaringan saraf sumber terbuka, terutama ditulis dalam C, C++, dan CUDA.
YOLO (You Only Look Once) adalah sistem deteksi objek real-time mutakhir yang beroperasi dalam kerangka Darknet.
Baca tentang bagaimana Hank.ai mendukung komunitas Darknet/YOLO.
Jelajahi situs web Darknet/YOLO.
Konsultasikan FAQ Darknet/YOLO untuk jawaban atas pertanyaan umum.
Bergabunglah dengan server Darknet/YOLO Discord untuk diskusi dan bantuan.
Dokumen
1. Kertas YOLOv7
2. Kertas Berskala-YOLOv4
3. Kertas YOLOv4
4. Kertas YOLOv3
Informasi Umum
Kerangka kerja Darknet/YOLO secara konsisten mengungguli kerangka kerja lain dan versi YOLO dalam hal kecepatan dan akurasi.
Kerangka kerja ini sepenuhnya gratis dan bersumber terbuka. Anda dapat mengintegrasikan Darknet/YOLO ke dalam proyek dan produk Anda, bahkan yang komersial, tanpa memerlukan lisensi atau dikenakan biaya.
Darknet V3 (“Jazz”), dirilis pada Oktober 2024, dapat menjalankan video dataset LEGO secara efisien hingga 1000 FPS menggunakan GPU NVIDIA RTX 3090. Artinya Darknet/YOLO dapat memproses setiap frame video (membaca, mengubah ukuran, dan memproses) dalam 1 milidetik atau kurang.
Bergabunglah dengan server Darknet/YOLO Discord jika Anda memerlukan bantuan atau ingin mendiskusikan Darknet/YOLO: https://discord.gg/zSq8rtW
Versi CPU Darknet/YOLO berjalan di berbagai perangkat, termasuk Raspberry Pi, server cloud dan Colab, desktop, laptop, dan rig pelatihan kelas atas. Versi GPU memerlukan GPU NVIDIA berkemampuan CUDA.
Darknet/YOLO diketahui kompatibel dengan Linux, Windows, dan Mac. Lihat petunjuk pembuatan di bawah untuk detailnya.
Versi Darknet
Alat Darknet asli yang dikembangkan oleh Joseph Redmon antara tahun 2013 dan 2017 tidak memiliki nomor versi. Kami menganggap versi ini 0.x.
Repositori Darknet populer berikutnya, yang dikelola oleh Alexei Bochkovskiy dari 2017 hingga 2021, juga tidak memiliki nomor versi. Kami menganggap ini versi 1.x.
Repositori Darknet yang disponsori oleh Hank.ai dan dikelola oleh Stéphane Charette sejak tahun 2023 adalah yang pertama menyertakan perintah versi. Ini mengembalikan versi 2.x "OAK" dari tahun 2023 hingga akhir 2024.
Tujuan utamanya adalah untuk meminimalkan gangguan terhadap fungsi yang ada sambil membiasakan diri dengan basis kode.
Perubahan Penting:
Unified Build: Langkah-langkah build yang ditulis ulang untuk membuat metode tunggal yang konsisten menggunakan CMake untuk Windows dan Linux.
Migrasi C++: Mengonversi basis kode untuk memanfaatkan kompiler C++.
Bagan yang Disempurnakan: Meningkatkan visualisasi chart.png selama pelatihan.
Perbaikan & Pengoptimalan Bug: Memperbaiki banyak bug dan menerapkan optimalisasi kinerja, terutama berfokus pada pengurangan waktu pelatihan.
Cabang terakhir dari basis kode ini adalah versi 2.1, terletak di cabang v2.
Tahap pengembangan selanjutnya dimulai pada pertengahan tahun 2024 dan mencapai puncaknya dengan dirilisnya versi 3.x "JAZZ" pada bulan Oktober 2024.
Peningkatan Utama Darknet V3 ("Jazz"):
Kinerja: Optimalisasi kinerja yang signifikan selama pelatihan dan inferensi.
Perubahan API: Memodifikasi API C lama. Aplikasi yang menggunakan API Darknet asli akan memerlukan sedikit penyesuaian. Lihat: https://darknetcv.ai/api/api.html
API Baru: Memperkenalkan API Darknet V3 C dan C++ baru: https://darknetcv.ai/api/api.html
Contoh yang Diperbarui: Menambahkan aplikasi baru dan kode contoh dalam direktori src-examples: https://darknetcv.ai/api/files.html
Anda selalu dapat kembali ke cabang v2 sebelumnya jika Anda perlu menjalankan perintah tertentu. Harap beri tahu kami jika Anda menemukan perintah yang hilang sehingga kami dapat mengeksplorasi untuk menggabungkannya kembali.
Penghapusan Kunci Darknet V3 ("Jazz"):
Perintah Kedaluwarsa: Menghapus banyak perintah yang usang dan tidak dipelihara.
Anak Timbangan Terlatih MSCOCO
Demi kenyamanan, beberapa versi YOLO yang populer telah dilatih sebelumnya pada kumpulan data MSCOCO. Kumpulan data ini mencakup 80 kelas, yang dapat ditemukan di file teks cfg/coco.names.
Selain MSCOCO, berbagai kumpulan data sederhana dan anak timbangan terlatih lainnya tersedia untuk pengujian Darknet/YOLO, seperti LEGO Gears dan Rolodex. Periksa FAQ Darknet/YOLO untuk detailnya.
Anak timbang terlatih MSCOCO dapat diunduh dari berbagai sumber, termasuk repositori ini:
YOLOv2, November 2016:
YOLOv2-kecil
YOLOv2-penuh
YOLOv3, Mei 2018:
YOLOv3-kecil
YOLOv3-penuh
YOLOv4, Mei 2020:
YOLOv4-kecil
YOLOv4-penuh
YOLOv7, Agustus 2022:
YOLOv7-kecil
YOLOv7-penuh
Anak timbangan terlatih MSCOCO disediakan semata-mata untuk tujuan demonstrasi. File .cfg dan .names yang sesuai untuk MSCOCO berada 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
`
Ingat, pengguna didorong untuk melatih jaringan mereka sendiri. MSCOCO terutama digunakan untuk memvalidasi bahwa semuanya berfungsi dengan benar.
Bangunan
Beragam metode pembangunan yang digunakan sebelum tahun 2023 telah dikonsolidasikan menjadi satu solusi terpadu. Darknet memerlukan C++17 atau versi yang lebih baru, OpenCV, dan menggunakan CMake untuk menghasilkan file proyek yang diperlukan.
Anda tidak memerlukan keahlian C++ untuk membuat, menginstal, atau menjalankan Darknet/YOLO, sama seperti Anda tidak perlu menjadi mekanik untuk mengendarai mobil.
Google Kolab
Petunjuk Google Colab mencerminkan petunjuk Linux. Beberapa notebook Jupyter mendemonstrasikan berbagai tugas, seperti melatih jaringan baru.
Jelajahi notebook di subdirektori colab atau ikuti petunjuk Linux yang disediakan di bawah.
Metode CMake Linux
Tutorial pembuatan Darknet untuk Linux
Opsional: Jika Anda memiliki GPU NVIDIA modern, instal CUDA atau CUDA+cuDNN pada saat ini. Jika dipasang, Darknet akan memanfaatkan 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 berfungsi tanpanya, tetapi CUDA atau CUDA+cuDNN diperlukan jika Anda ingin melatih jaringan khusus.
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#cudnn-package-manager- ikhtisar instalasi untuk mengunduh dan menginstal cuDNN.
Setelah menginstal CUDA, pastikan Anda dapat menjalankan nvcc dan nvidia-smi. Anda mungkin perlu mengubah variabel PATH Anda.
Jika Anda menginstal CUDA atau CUDA+cuDNN nanti, atau jika Anda mengupgrade ke versi perangkat lunak NVIDIA yang lebih baru:
Tingkatkan CMake: Jika versi CMake Anda sudah usang, tingkatkan menggunakan perintah berikut:
' pesta
sudo apt-get pembersihan cmake
sudo snap install cmake --klasik
`
Restart Shell: Jika menggunakan bash sebagai shell perintah Anda, restart shell Anda. Jika menggunakan ikan, jalurnya harus diperbarui secara otomatis.
Membangun Jaringan Gelap:
' pesta
sudo apt-get install build-essential git libopencv-dev cmake
mkdir ~/srccd ~/src
git clone https://github.com/hank-ai/darknetcd darknet
mkdir buildcd build
cmake -DCMAKEBUILDTYPE=Lepaskan ..
buat -j4
kemasan
sudo dpkg -i darknet-VERSION.deb
`
Pengguna Tingkat Lanjut:
Instalasi RPM: Untuk membuat file instalasi RPM dan bukan file DEB, ubah baris yang relevan di CM_package.cmake. Sebelum menjalankan paket make -j4, edit baris berikut:
`membuat
SET (CPACKGENERATOR "DEB")# SET (CPACKGENERATOR "RPM")
`
Untuk distribusi seperti CentOS dan OpenSUSE, sesuaikan barisnya menjadi:
`membuat
SET (CPACK_GENERATOR "DEB")
SET (CPACK_GENERATOR "RPM")
`
Paket Instalasi: Instal paket setelah selesai dibuat menggunakan manajer paket distribusi Anda. Untuk sistem berbasis Debian (misalnya Ubuntu):
' pesta
sudo dpkg -i darknet-2.0.1-Linux.deb
`
Menginstal paket .deb akan menyalin file berikut:
/usr/bin/darknet: Darknet standar yang dapat dieksekusi. Jalankan versi darknet dari CLI untuk mengonfirmasi pemasangan 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: Pustaka untuk menghubungkan dalam pengembangan C, C++, dan Python.
/opt/darknet/cfg/...: Menyimpan semua templat .cfg.
Selamat! Darknet telah dibangun dan diinstal di /usr/bin/. Jalankan versi darknet untuk memverifikasi.
Jika Anda kekurangan /usr/bin/darknet, Anda hanya membuat Darknet, 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: Buka prompt perintah cmd.exe standar dan jalankan perintah berikut:
' pesta
dapatkan instal Git.Git
winget instal Kitware.CMake
winget instal nsis.nsis
winget instal Microsoft.VisualStudio.2022.Community
`
2. Ubah Visual Studio: Konfigurasikan Visual Studio untuk mendukung aplikasi C++:
Klik menu "Windows Start" dan jalankan "Visual Studio Installer."
Pilih "Ubah".
Pilih "Pengembangan Desktop Dengan C++."
Klik "Ubah" di pojok kanan bawah, lalu klik "Ya".
3. Prompt Perintah Pengembang: Setelah instalasi selesai, klik menu "Windows Start" dan pilih "Developer Command Prompt for VS 2022." Jangan gunakan PowerShell untuk langkah-langkah ini, karena dapat menimbulkan masalah!
Pengguna Tingkat Lanjut:
Daripada menggunakan Prompt Perintah Pengembang, Anda dapat memilih prompt perintah normal atau terhubung melalui SSH dan secara manual menjalankan "Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat".
4. Instal Microsoft VCPKG: Jalankan perintah berikut di Prompt Perintah Pengembang (bukan PowerShell) untuk menginstal Microsoft VCPKG, yang akan digunakan untuk membangun OpenCV:
' 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
`
Bersabarlah selama langkah terakhir karena mungkin memerlukan waktu lama untuk menyelesaikannya. Ini melibatkan pengunduhan dan pembuatan berbagai komponen.
Pengguna Tingkat Lanjut:
Perhatikan bahwa ada banyak modul opsional yang dapat Anda sertakan saat membuat OpenCV. Jalankan .vcpkg.exe pencarian 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.
Kunjungi https://developer.nvidia.com/cuda-downloads untuk mengunduh dan menginstal CUDA.
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 menginstal CUDA pastikan Anda dapat menjalankan nvcc.exe dan nvidia-smi.exe. Anda mungkin harus mengubah variabel PATH Anda.
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.
Jika Anda menginstal CUDA atau CUDA+cuDNN di lain waktu, atau Anda meningkatkan ke versi perangkat lunak NVIDIA yang lebih baru:
CUDA harus diinstal setelah Visual Studio. Jika Anda memutakhirkan Visual Studio, ingatlah untuk menginstal ulang CUDA.
5. Kloning dan Bangun Darknet: Setelah langkah sebelumnya berhasil diselesaikan, kloning Darknet dan bangunlah. Selama langkah ini, tentukan lokasi VCPKG untuk CMake guna menemukan OpenCV dan dependensi lainnya:
' 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
`
Jika Anda mengalami kesalahan tentang hilangnya CUDA atau cuDNN DLL (misalnya, culas64_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
`
(Ini adalah contohnya! Verifikasi versi yang Anda jalankan dan gunakan perintah yang sesuai untuk instalasi Anda.)
Setelah menyalin file, jalankan kembali perintah msbuild.exe terakhir untuk menghasilkan paket instalasi NSIS:
' pesta
msbuild.exe /property:Platform=x64;Configuration=Rilis PACKAGE.vcxproj
`
Pengguna Tingkat Lanjut:
Perhatikan bahwa output dari perintah cmake adalah file solusi Visual Studio standar (Darknet.sln). Jika Anda seorang pengembang perangkat lunak yang lebih suka menggunakan Visual Studio GUI daripada msbuild.exe untuk membangun proyek, Anda dapat melewati langkah-langkah baris perintah dan memuat proyek Darknet di Visual Studio.
Anda sekarang harus memiliki C:srcDarknetbuildsrc-cliReleasedarknet.exe yang dapat dieksekusi. Jalankan untuk menguji: versi C:srcDarknetbuildsrc-cliReleasedarknet.exe.
Untuk menginstal Darknet dengan benar, pustakanya, menyertakan file, dan DLL yang diperlukan, jalankan wizard instalasi NSIS yang dibuat pada langkah terakhir. Temukan 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.
Anda sekarang sudah selesai! Setelah wizard instalasi selesai, Darknet akan diinstal di C:Program FilesDarknet. Uji dengan menjalankan: C:Program FilesDarknetbindarknet.exe version.
Jika C:/Program Files/darknet/bin/darknet.exe tidak ada, Darknet hanya dibuat, bukan diinstal. Pastikan Anda menyelesaikan setiap panel wizard instalasi NSIS dari langkah sebelumnya.
Menggunakan Darknet
CLI
Berikut ini bukan daftar lengkap semua perintah yang didukung oleh Darknet.
Selain CLI Darknet, ingat CLI proyek DarkHelp, yang menawarkan CLI alternatif untuk Darknet/YOLO. DarkHelp CLI menyertakan berbagai fitur canggih yang tidak dapat diakses 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 beserta file .names dan .cfg yang terkait. Anda dapat melatih jaringan Anda sendiri (sangat disarankan!) atau mengunduh jaringan saraf terlatih yang disediakan seseorang secara online gratis. Beberapa kumpulan data terlatih meliputi:
LEGO Gears (deteksi objek dalam gambar)
Rolodex (deteksi teks dalam gambar)
MSCOCO (deteksi objek kelas 80 standar)
Perintah untuk dijalankan:
Daftar kemungkinan perintah dan opsi:
' pesta
bantuan darknet
`
Periksa versinya:
' pesta
versi darknet
`
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
`
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
`
Membaca dari webcam:
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
`
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 saraf:
' pesta
peta detektor darknet Driving.data Driving.cfg Driving_best.weights ...
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
`
Untuk memeriksa akurasi mAP@IoU=75:
' pesta
detektor darknet peta animal.data animal.cfg animalbest.weights -iouthresh 0.75
`
Menghitung ulang jangkar: Perhitungan ulang jangkar paling baik dilakukan di DarkMark, karena ini akan berjalan 100 kali berturut-turut dan memilih jangkar terbaik dari semua opsi yang dihitung. Namun, jika Anda ingin menggunakan metode Darknet yang lebih lama:
' pesta
detektor darknet calcanchors animal.data -numof_clusters 6 -width 320 -height 256
`
Melatih jaringan baru:
' pesta
cd ~/nn/hewan/
detektor darknet -peta -dont_show melatih hewan.data hewan.cfg
`
(Lihat bagian pelatihan di bawah untuk rincian tambahan.)
Pelatihan
Tautan cepat ke bagian yang relevan dari FAQ Darknet/YOLO:
Pengaturan File dan Direktori: Bagaimana cara mengatur file dan direktori saya?
File Konfigurasi: File konfigurasi mana yang harus saya gunakan?
Perintah Pelatihan: Perintah apa yang harus saya gunakan saat melatih jaringan saya sendiri?
Cara paling sederhana untuk membuat anotasi dan melatih adalah dengan DarkMark. Ini menyederhanakan proses pembuatan semua file Darknet yang diperlukan. Penggunaan DarkMark sangat disarankan untuk melatih jaringan saraf baru.
Jika Anda lebih suka pengaturan file secara manual untuk pelatihan jaringan khusus:
1. Buat Folder: Buat folder baru untuk menyimpan file. Untuk contoh ini, kita akan membuat jaringan saraf untuk mendeteksi hewan; oleh karena itu, direktori berikut dibuat: ~/nn/animals/.
2. Salin File Konfigurasi: Salin file konfigurasi Darknet yang ingin Anda gunakan sebagai templat. Misalnya, lihat cfg/yolov4-tiny.cfg. Tempatkan di folder yang dibuat. Dalam contoh ini, kita sekarang memiliki ~/nn/animals/animals.cfg.
3. Buat nama hewan: Buat file teks bernama nama hewan di folder yang sama dengan file konfigurasi. Contoh ini sekarang memiliki ~/nn/animals/animals.names.
4. Edit nama hewan: Edit file nama hewan menggunakan editor teks Anda. Buat daftar kelas yang ingin Anda gunakan. Setiap kelas harus menempati baris tersendiri, tanpa ada baris kosong atau komentar. Dalam contoh ini, file .names akan berisi empat baris:
`
anjing
kucing
burung
kuda
`
5. Buat hewan.data: Buat file teks hewan.data di folder yang sama. Untuk contoh ini, file .data akan 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. Folder Kumpulan Data: Buat folder untuk menyimpan gambar dan anotasi Anda. Misalnya, ini bisa berupa ~/nn/animals/dataset. Setiap gambar memerlukan file .txt terkait yang menjelaskan anotasinya. Format file anotasi .txt sangat spesifik. Anda tidak dapat membuat file ini secara manual karena setiap anotasi memerlukan koordinat yang tepat. Gunakan DarkMark atau perangkat lunak serupa untuk membuat anotasi pada gambar Anda. Format anotasi YOLO dijelaskan di FAQ Darknet/YOLO.
7. File "train" dan "valid": Buat file teks "train" dan "valid" yang disebutkan dalam file .data. Kedua file ini perlu mencantumkan satu per satu semua gambar yang akan digunakan Darknet untuk pelatihan dan validasi saat menghitung% peta. Sertakan satu gambar per baris. Jalur dan nama file bisa relatif atau absolut.
8. Ubah File .cfg: Gunakan editor teks untuk mengubah file .cfg Anda.
Pastikan batch=64.
Amati subdivisi. Berdasarkan dimensi jaringan dan kapasitas memori GPU, Anda mungkin perlu menambah subdivisi. Nilai idealnya adalah 1, jadi mulailah dengan itu. Lihat FAQ Darknet/YOLO jika 1 tidak berhasil untuk Anda.
Perhatikan maxbatches=..... Nilai awal yang baik adalah 2000 kali jumlah kelas. Dalam contoh ini, kita memiliki 4 hewan, jadi 4 * 2000 = 8000, artinya maxbatches=8000.
Catatan langkah=..... Setel ini ke 80% dan 90% dari maxbatch. Dalam contoh ini, dengan maxbatches disetel ke 8000, kita akan menggunakan langkah=6400,7200.
Perhatikan lebar=... dan tinggi=..... Ini adalah dimensi jaringan. FAQ Darknet/YOLO menjelaskan cara menentukan ukuran terbaik.
Cari semua kemunculan baris class=... dan modifikasi dengan jumlah kelas di file .names Anda. Dalam contoh ini, kami akan menggunakan kelas=4.
Cari semua kemunculan baris filter=... di bagian [convolutional] sebelum setiap bagian [yolo]. Nilainya harus (numberofclasses + 5) 3. Dalam contoh ini, (4 + 5) 3 = 27. Oleh karena itu, gunakan filter=27 pada baris yang sesuai.
9. Mulai Pelatihan: Jalankan perintah berikut:
' pesta
cd ~/nn/hewan/
detektor darknet -peta -dont_show melatih hewan.data hewan.cfg
`
Bersabarlah. Bobot terbaik akan disimpan sebagai animal_best.weights. Kemajuan pelatihan dapat dipantau dengan melihat file chart.png. Konsultasikan FAQ Darknet/YOLO untuk parameter tambahan yang mungkin berguna saat melatih jaringan baru.
Untuk melihat detail pelatihan selengkapnya, tambahkan parameter --verbose. Misalnya:
' pesta
detektor darknet -peta -dont_show --verbose melatih hewan.data hewan.cfg
`
Alat dan Tautan Lainnya
Untuk mengelola proyek Darknet/YOLO Anda, memberi anotasi pada gambar, memverifikasi anotasi, dan membuat file yang diperlukan untuk pelatihan dengan Darknet, lihat DarkMark.
Untuk CLI alternatif yang tangguh selain Darknet, untuk memanfaatkan ubin gambar, pelacakan objek dalam video, atau API C++ yang tangguh untuk aplikasi komersial, jelajahi DarkHelp.
Periksa apakah FAQ Darknet/YOLO dapat menjawab pertanyaan Anda.
Lihat berbagai tutorial dan contoh video di saluran YouTube Stéphane.
Jika Anda memiliki pertanyaan dukungan atau ingin berinteraksi dengan pengguna Darknet/YOLO lainnya, bergabunglah dengan server Darknet/YOLO Discord.
Peta jalan
Terakhir diperbarui 30-10-2024:
Selesai:
1. Mengganti qsort() dengan std::sort() selama pelatihan (masih ada beberapa contoh yang tidak jelas).
2. Menghapus check_mistakes, getchar(), dan system().
3. Mengonversi Darknet untuk menggunakan kompiler C++ (g++ di Linux, VisualStudio di Windows).
4. Memperbaiki versi Windows.
5. Memperbaiki dukungan Python.
6. Membangun perpustakaan Darknet.
7. Mengaktifkan kembali label pada prediksi (kode "abjad").
8. Mengaktifkan kembali kode CUDA/GPU.
9. Mengaktifkan kembali CUDNN.
10. Mengaktifkan kembali separuh CUDNN.
11. Menghindari hard-coding arsitektur CUDA.
12. Informasi versi CUDA yang ditingkatkan.
13. Mengaktifkan kembali AVX.
14. Menghapus solusi lama dan Makefile.
15. Menjadikan OpenCV wajib.
16. Menghapus ketergantungan pada perpustakaan pthread lama.
17. Menghapus STB.
18. Menulis ulang CMakeLists.txt untuk menggabungkan deteksi CUDA baru.
19. Menghapus kode "abjad" lama dan menghapus 700+ gambar di data/label.
20. Dibangun di luar sumbernya.
21. Peningkatan keluaran nomor versi.
22. Melaksanakan optimalisasi kinerja terkait pelatihan (ongoing task).
23. Menerapkan optimalisasi kinerja terkait inferensi (tugas berkelanjutan).
24. Gunakan referensi lewat sedapat mungkin.
25. Membersihkan file .hpp.
26. Ditulis ulang darknet.h.
27. Menghindari casting cv::Mat ke void* dan menggunakannya sebagai objek C++ yang tepat.
28. Memperbaiki atau memastikan konsistensi dalam penggunaan struktur gambar internal.
29. Memperbaiki build untuk perangkat Jetson berbasis ARM.
30. Perangkat Jetson asli kemungkinan besar tidak akan diperbaiki karena NVIDIA tidak lagi mendukungnya (tidak ada kompiler C++17).
31. Perangkat Jetson Orin baru berfungsi.
32. Memperbaiki API Python di V3.
Tujuan jangka pendek:
1. Ganti printf() dengan std::cout (sedang berlangsung).
2. Kunjungi kembali dukungan kamera zed lama.
3. Meningkatkan dan meningkatkan konsistensi penguraian baris perintah (sedang berlangsung).
Tujuan jangka menengah:
1. Hapus semua kode char* dan ganti dengan std::string.
2. Hilangkan peringatan tersembunyi dan bersihkan peringatan kompiler (sedang berlangsung).
3. Pemanfaatan cv::Mat yang lebih baik daripada struktur gambar khusus di C (sedang berlangsung).
4. Ganti fungsionalitas daftar lama dengan std::vector atau std::list.
5. Memperbaiki dukungan untuk gambar skala abu-abu 1 saluran.
6. Tambahkan dukungan untuk gambar saluran-N dengan N > 3 (misalnya, gambar dengan kedalaman tambahan atau saluran termal).
7. Pembersihan kode yang sedang berlangsung (sedang berlangsung).
Tujuan jangka panjang:
1. Selesaikan masalah CUDA/CUDNN di semua GPU.
2. Tulis ulang kode CUDA+cuDNN.
3. Selidiki penambahan dukungan untuk GPU non-NVIDIA.
4. Perkenalkan kotak pembatas yang diputar atau semacam penyangga "sudut".
5. Menggabungkan titik kunci/kerangka.
6. Integrasikan peta panas (sedang berlangsung).
7. Menerapkan segmentasi.