Citra "garpu PabloMK7"
Garpu ini telah menghentikan pengembangan. Proyek kelanjutan Citra baru yang lebih serius akan segera menyusul.
Lisensi: Lisensi Apache-2.0
Daftar isi
1. Kerangka Deteksi Objek Darknet dan YOLO
2. Makalah
3. Informasi Umum
4. Versi Darknet
5. Beban Terlatih MSCOCO
6. Bangunan
* Google Kolab
* Metode CMake Linux
* Metode CMake Windows
7. Menggunakan Darknet
* KL
* Pelatihan
8. Alat dan Tautan Lainnya
9. Peta Jalan
* Tujuan jangka pendek
* Tujuan jangka menengah
* Tujuan jangka panjang
Kerangka Deteksi Objek Darknet dan YOLO
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.com/
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.02696
2. Kertas Berskala-YOLOv4: https://arxiv.org/abs/2102.05909
3. Makalah YOLOv4: https://arxiv.org/abs/2004.10934
4. Makalah YOLOv3: https://arxiv.org/abs/1804.02769
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.
Silakan bergabung dengan server Darknet/YOLO Discord jika Anda memerlukan bantuan atau ingin berdiskusi tentang Darknet/YOLO: https://discord.gg/zSq8rtW
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
Alat Darknet asli yang ditulis oleh Joseph Redmon pada tahun 2013-2017 tidak memiliki nomor versi. Kami menganggap versi ini 0.x.
Repo Darknet populer berikutnya yang dikelola oleh Alexei Bochkovskiy antara tahun 2017-2021 juga tidak memiliki nomor versi. Kami menganggap ini versi 1.x.
Repo Darknet yang disponsori oleh Hank.ai dan dikelola oleh Stéphane Charette mulai tahun 2023 adalah yang pertama dengan perintah versi. Dari tahun 2023 hingga akhir tahun 2024, ia mengembalikan versi 2.x "OAK".
Versi 2.x tujuan "OAK":
1. Hancurkan sesedikit mungkin fungsi yang ada sambil membiasakan diri dengan basis kode.
2. Tulis ulang langkah-langkah pembangunan untuk mendapatkan 1 cara terpadu untuk membangun menggunakan CMake di Windows dan Linux.
3. Konversi basis kode untuk menggunakan kompiler C++.
4. Tingkatkan chart.png saat berlatih.
5. Perbaikan bug dan optimalisasi terkait kinerja, sebagian besar terkait dengan pengurangan waktu yang diperlukan untuk melatih jaringan.
Cabang terakhir dari basis kode ini adalah versi 2.1 di cabang v2.
Fase pengembangan berikutnya dimulai pada pertengahan tahun 2024 dan dirilis pada bulan Oktober 2024. Perintah versi sekarang mengembalikan 3.x "JAZZ".
Anda selalu dapat melakukan checkout pada cabang v2 sebelumnya jika Anda perlu menjalankan salah satu perintah ini. Beri tahu kami agar kami dapat menyelidiki penambahan kembali perintah yang hilang.
Versi 3.x "JAZZ" berubah:
1. Menghapus banyak perintah lama dan tidak terawat.
2. Banyak optimalisasi kinerja, baik saat pelatihan maupun saat inferensi.
3. API C lama telah dimodifikasi; aplikasi yang menggunakan API Darknet asli memerlukan sedikit modifikasi: https://darknetcv.ai/api/api.html
4. Darknet V3 C dan C++ API baru: https://darknetcv.ai/api/api.html
5. Aplikasi baru dan kode contoh dalam contoh src: https://darknetcv.ai/api/files.html
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 timbangan terlatih MSCOCO dapat diunduh dari beberapa lokasi berbeda, dan juga tersedia untuk diunduh dari repo 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 timbang terlatih MSCOCO disediakan hanya untuk tujuan demo. 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 masyarakat diharapkan untuk melatih jaringan mereka sendiri. MSCOCO biasanya digunakan untuk memastikan 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 tugas tertentu, seperti melatih jaringan baru.
Lihat notebook di subdirektori colab, dan/atau ikuti petunjuk Linux di bawah.
Metode CMake Linux
Tutorial pembuatan Darknet untuk Linux:
1. Instal prasyarat:
' pesta
sudo apt-get install build-essential git libopencv-dev cmake
`
2. Kloning repositori Darknet:
' pesta
mkdir ~/srccd ~/src
git klon https://github.com/hank-ai/darknet
cd darknet
mkdir membangun
pembuatan cd
`
3. Konfigurasikan dan bangun:
' pesta
cmake -DCMAKEBUILDTYPE=Lepaskan ..
buat paket -j4
sudo dpkg -i darknet-VERSION.deb
`
4. Opsional: Instal CUDA/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.
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#cudnn-package-manager-installation-overview untuk unduh dan instal cuDNN.
Setelah Anda menginstal CUDA pastikan Anda dapat menjalankan nvcc dan nvidia-smi. Anda mungkin harus mengubah variabel PATH Anda.
Jika Anda menginstal CUDA atau CUDA+cuDNN di lain waktu, atau Anda meningkatkan ke versi perangkat lunak NVIDIA yang lebih baru:
* Petunjuk ini mengasumsikan (tetapi tidak memerlukan!) sistem yang menjalankan Ubuntu 22.04. Beradaptasi seperlunya jika Anda menggunakan distribusi yang berbeda.
* Hapus file CMakeCache.txt dan jalankan kembali cmake dan make.
Pengguna tingkat lanjut:
Jika Anda ingin membuat file instalasi RPM dan bukan file DEB, lihat baris yang relevan di CM_package.cmake. Sebelum menjalankan paket make -j4 Anda harus mengedit dua baris ini:
`membuat
# SET (CPACK_GENERATOR "DEB")
SET (CPACK_GENERATOR "RPM")
`
Untuk distro seperti Centos dan OpenSUSE, Anda harus mengganti kedua baris tersebut di CM_package.cmake menjadi:
`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
`
Menginstal paket .deb akan menyalin file berikut:
/usr/bin/darknet adalah Darknet biasa yang dapat dieksekusi. Jalankan versi darknet dari CLI untuk mengonfirmasi bahwa versi tersebut diinstal dengan benar.
/usr/include/darknet.h adalah API Darknet untuk pengembang C, C++, dan Python.
/usr/include/darknet_version.h berisi informasi versi untuk pengembang.
/usr/lib/libdarknet.so adalah perpustakaan yang dapat dihubungkan dengan pengembang C, C++, dan Python.
/opt/darknet/cfg/... adalah tempat semua templat .cfg disimpan.
Anda sekarang sudah selesai! Darknet telah dibangun dan diinstal ke /usr/bin/. Jalankan ini untuk menguji: versi darknet.
Jika Anda tidak memiliki /usr/bin/darknet berarti Anda tidak menginstalnya, Anda hanya membuatnya! 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:
' 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 Modifikasi di pojok kanan bawah, lalu klik Ya
3. Instal Microsoft VCPKG:
Setelah semuanya diunduh dan diinstal, klik lagi menu "Windows Start" dan pilih Prompt Perintah Pengembang untuk VS 2022. Jangan gunakan PowerShell untuk langkah-langkah ini, Anda akan mengalami masalah!
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.
Setelah Anda menjalankan Prompt Perintah Pengembang seperti dijelaskan di atas (bukan PowerShell!), jalankan perintah berikut untuk menginstal Microsoft VCPKG, yang kemudian akan digunakan untuk membangun OpenCV:
' 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
`
Bersabarlah pada langkah terakhir ini karena mungkin membutuhkan waktu lama untuk dijalankan. Perlu mengunduh dan membangun banyak hal.
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.
4. Opsional: Instal CUDA/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.
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 Darknet dan bangun:
Setelah semua langkah sebelumnya berhasil diselesaikan, Anda perlu mengkloning Darknet dan membangunnya. Pada langkah ini, kita juga perlu memberi tahu CMake di mana vcpkg berada sehingga dapat 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 mendapatkan kesalahan tentang beberapa DLL CUDA atau cuDNN yang hilang seperti 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
`
(Itu adalah contohnya! Periksa untuk memastikan versi apa yang Anda jalankan, dan jalankan perintah yang sesuai dengan apa yang telah Anda instal.)
Setelah file disalin, 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 normal, Darknet.sln. Jika Anda seorang pengembang perangkat lunak yang secara rutin menggunakan Visual Studio GUI alih-alih msbuild.exe untuk membangun proyek, Anda dapat mengabaikan baris perintah dan memuat proyek Darknet di Visual Studio.
Anda sekarang seharusnya memiliki file ini yang dapat Anda jalankan: C:srcDarknetbuildsrc-cliReleasedarknet.exe. Jalankan ini untuk menguji: versi C:srcDarknetbuildsrc-cliReleasedarknet.exe.
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:
1. Buat direktori bernama Darknet, misalnya C:Program FilesDarknet.
2. Instal aplikasi CLI, darknet.exe dan aplikasi contoh lainnya.
3. Instal file .dll pihak ketiga yang diperlukan, seperti file dari OpenCV.
4. Instal file Darknet .dll, .lib dan .h yang diperlukan untuk menggunakan darknet.dll dari aplikasi lain.
5. Instal file template .cfg.
Anda sekarang sudah selesai! Setelah wizard instalasi selesai, Darknet akan diinstal ke C:Program FilesDarknet. Jalankan ini untuk menguji: C:Program FilesDarknetbindarknet.exe version.
Jika Anda tidak memiliki C:/Program Files/darknet/bin/darknet.exe maka ini berarti Anda tidak menginstalnya, Anda hanya membuatnya! Pastikan Anda menelusuri setiap panel wizard instalasi NSIS pada langkah sebelumnya.
Menggunakan Darknet
CLI
Berikut ini bukan daftar lengkap semua perintah yang didukung oleh Darknet.
Selain CLI Darknet, perhatikan juga 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, keduanya tidak 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 oleh seseorang secara gratis di internet. Contoh kumpulan data terlatih meliputi:
1. LEGO Gears (menemukan objek dalam gambar)
2. Rolodex (menemukan teks dalam gambar)
3. MSCOCO (deteksi objek kelas 80 standar)
Perintah yang harus dijalankan meliputi:
1. Buat daftar beberapa perintah dan opsi yang mungkin untuk dijalankan:
' pesta
bantuan darknet
`
2. Periksa versinya:
' 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.tes bobot.mp4
`
* Bantuan Gelap:
' pesta
DarkHelp animal.cfg animal.names animal_best.weights test.mp4
`
8.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. Untuk 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
`
11. Untuk memeriksa keakuratan mAP@IoU=75:
' pesta
detektor darknet peta animal.data animal.cfg animalbest.weights -iouthresh 0.75
`
12. Menghitung ulang jangkar paling baik dilakukan di DarkMark, karena ini akan berjalan 100 kali berturut-turut dan memilih jangkar terbaik dari semua jangkar yang telah dihitung. Namun jika Anda ingin menjalankan versi lama di Darknet:
' pesta
detektor darknet calcanchors animal.data -numof_clusters 6 -width 320 -height 256
`
Pelatihan
Tautan cepat ke bagian yang relevan dari FAQ Darknet/YOLO:
Bagaimana cara mengatur file dan direktori saya?
File konfigurasi mana yang harus saya gunakan?
Perintah apa yang harus saya gunakan saat melatih jaringan saya sendiri?
Cara termudah untuk membuat anotasi dan melatih adalah dengan menggunakan DarkMark untuk membuat semua file Darknet yang diperlukan. Ini jelas merupakan cara yang disarankan untuk melatih jaringan saraf baru.
Jika Anda lebih suka mengatur berbagai file secara manual untuk melatih jaringan khusus:
1. Buat folder baru untuk proyek Anda:
Untuk contoh ini, jaringan saraf akan dibuat untuk mendeteksi hewan, sehingga direktori berikut dibuat: ~/nn/animals/.
2. Salin file konfigurasi Darknet sebagai templat:
Misalnya, lihat cfg/yolov4-tiny.cfg. Tempatkan ini di folder yang Anda buat. Untuk contoh ini, kita sekarang memiliki ~/nn/animals/animals.cfg.
3. Buat file teks nama binatang:
Buat file teks animal.names di folder yang sama tempat Anda meletakkan file konfigurasi. Untuk contoh ini, kita sekarang memiliki ~/nn/animals/animals.names.
4. Edit file animal.names:
Edit file animal.names dengan editor teks Anda. Buat daftar kelas yang ingin Anda gunakan. Anda harus memiliki tepat 1 entri per baris, tanpa baris kosong dan tanpa komentar. Untuk contoh ini, file .names akan berisi 4 baris:
`
anjing
kucing
burung
kuda
`
5. Buat file teks animal.data:
Buat file teks animal.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. Buat folder untuk gambar dan anotasi Anda:
Misalnya, ini bisa berupa ~/nn/animals/dataset. Setiap gambar memerlukan file .txt terkait yang menjelaskan anotasi untuk gambar tersebut. Format file anotasi .txt sangat spesifik. Anda tidak dapat membuat file ini dengan tangan karena setiap anotasi harus berisi koordinat yang tepat untuk anotasi tersebut. Lihat DarkMark atau perangkat lunak serupa lainnya untuk membuat anotasi pada gambar Anda. Format anotasi YOLO dijelaskan di FAQ Darknet/YOLO.
7. Buat file teks "train" dan "valid":
Buat file teks "train" dan "valid" yang diberi nama dalam file .data. Kedua file teks ini perlu mencantumkan satu per satu semua gambar yang harus digunakan Darknet untuk melatih dan untuk validasi saat menghitung% peta. Tepat satu gambar per baris. Jalur dan nama file mungkin relatif atau absolut.
8. Ubah file .cfg Anda:
* Pastikan batch=64.
* Perhatikan subdivisinya. Bergantung pada dimensi jaringan dan jumlah memori yang tersedia pada GPU Anda, Anda mungkin perlu menambah subdivisi. Nilai terbaik untuk digunakan adalah 1 jadi mulailah dengan itu. Lihat FAQ Darknet/YOLO jika 1 tidak berhasil untuk Anda.
Catatan maxbatches=..... Nilai yang baik untuk digunakan saat memulai adalah 2000 x jumlah kelas. Misalnya kita punya 4 hewan, jadi 4 2000 = 8000. Artinya kita akan menggunakan maxbatches=8000.
* Catatan langkah=..... Ini harus diatur ke 80% dan 90% dari maxbatch. Untuk contoh ini, kami akan menggunakan langkah=6400,7200 karena maxbatches disetel ke 8000.
* Catatan lebar=... dan tinggi=..... Ini adalah dimensi jaringan. FAQ Darknet/YOLO menjelaskan cara menghitung ukuran terbaik untuk digunakan.
* Cari semua contoh baris class=... dan modifikasi dengan jumlah kelas di file .names Anda. Untuk contoh ini, kami akan menggunakan kelas=4.
Cari semua contoh baris filter=... di bagian [convolutional] sebelum setiap bagian [yolo]. Nilai yang digunakan adalah (numberofclasses + 5) 3. Arti contoh ini, (4 + 5) * 3 = 27. Jadi kita akan menggunakan 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. Dan kemajuan pelatihan dapat diamati dengan melihat file chart.png. Lihat FAQ Darknet/YOLO untuk parameter tambahan yang mungkin ingin Anda gunakan saat melatih jaringan baru.
Jika Anda ingin melihat detail selengkapnya selama pelatihan, tambahkan parameter --verbose. Misalnya:
' pesta
detektor darknet -peta -dont_show --verbose melatih hewan.data hewan.cfg
`
Alat dan Tautan Lainnya
DarkMark: Untuk mengelola proyek Darknet/YOLO Anda, membuat anotasi pada gambar, memverifikasi anotasi Anda, dan membuat file yang diperlukan untuk berlatih dengan Darknet.
DarkHelp: Untuk CLI alternatif yang tangguh untuk Darknet, untuk menggunakan ubin gambar, untuk pelacakan objek di video Anda, atau untuk C++ API tangguh yang dapat dengan mudah digunakan dalam aplikasi komersial.
FAQ Darknet/YOLO: Lihat apakah FAQ Darknet/YOLO dapat membantu menjawab pertanyaan Anda.
Saluran YouTube Stéphane: Lihat banyak video tutorial dan contoh di saluran YouTube Stéphane.
Server Perselisihan Darknet/YOLO: Jika Anda memiliki pertanyaan dukungan atau ingin mengobrol dengan pengguna Darknet/YOLO lainnya, bergabunglah dengan server perselisihan Darknet/YOLO.
Peta jalan
Terakhir diperbarui 30-10-2024:
Selesai
1. Tukar qsort() dengan std::sort() yang digunakan selama pelatihan (masih ada beberapa yang tidak jelas).
2. Hapus check_mistakes, getchar(), dan system().
3. Konversi Darknet untuk menggunakan compiler C++ (g++ di Linux, VisualStudio di Windows).
4. Perbaiki versi Windows.
5. Perbaiki dukungan Python.
6. Bangun perpustakaan darknet.
7. Aktifkan kembali label pada prediksi (kode "abjad").
8. Aktifkan kembali kode CUDA/GPU.
9. Aktifkan kembali CUDNN.
10. Aktifkan kembali separuh CUDNN.