Repositori utama Data.gov
Ini adalah gudang utama untuk Platform Data.gov. Ini digunakan terutama untuk melacak pekerjaan tim, tetapi juga untuk menampung kode datagov-wide (templat GitHub Actions, jalan keluar, dll.).
Jika Anda mencari dokumentasi untuk lingkungan cloud.gov, lihat repositori aplikasi.
Tindakan dan Templat GitHub
Beberapa Tindakan GitHub telah difaktorkan ulang untuk menggunakan templat di repositori ini. Anda dapat menemukan templat ini di sini dan contoh penerapannya di Inventaris dan Katalog.
Kerangka Deteksi Objek Darknet dan YOLO
Darknet adalah kerangka jaringan saraf sumber terbuka yang dibangun dengan C, C++, dan CUDA.
YOLO (You Only Look Once) adalah sistem deteksi objek real-time mutakhir yang beroperasi dalam kerangka Darknet.
Baca bagaimana Hank.ai mendukung komunitas Darknet/YOLO.
Temukan situs web Darknet/YOLO.
Jelajahi FAQ Darknet/YOLO.
Bergabunglah dengan server Darknet/YOLO Discord.
Dokumen
1. Kertas YOLOv7 (tautan ke kertas)
2. Kertas Berskala-YOLOv4 (tautan ke kertas)
3. Kertas YOLOv4 (tautan ke kertas)
4. Kertas YOLOv3 (tautan ke kertas)
Informasi Umum
Kerangka kerja Darknet/YOLO tetap lebih cepat dan akurat dibandingkan kerangka kerja dan versi YOLO lainnya. Ini sepenuhnya gratis dan open source, memungkinkan Anda untuk memasukkan Darknet/YOLO ke dalam proyek dan produk Anda tanpa batasan lisensi atau biaya apa pun.
Darknet V3 (“Jazz”), dirilis pada Oktober 2024, dapat memproses video dataset LEGO hingga 1000 FPS menggunakan GPU NVIDIA RTX 3090. Artinya setiap frame video diproses dalam waktu kurang dari 1 milidetik.
Bergabunglah dengan server Darknet/YOLO Discord untuk bantuan dan diskusi: https://discord.gg/zSq8rtW
Darknet/YOLO versi CPU dapat berjalan di berbagai perangkat, termasuk Raspberry Pi, server cloud & colab, desktop, laptop, dan rig pelatihan kelas atas. Versi GPU memerlukan GPU NVIDIA berkemampuan CUDA.
Darknet/YOLO diketahui bekerja di Linux, Windows, dan Mac. Petunjuk bangunan disediakan di bawah ini.
Versi Darknet
Versi 0.x: Alat Darknet asli yang dibuat oleh Joseph Redmon antara tahun 2013-2017.
Versi 1.x: Repositori Darknet populer yang dikelola oleh Alexei Bochkovskiy dari 2017-2021.
Versi 2.x ("OAK"): Repositori Darknet disponsori oleh Hank.ai dan dikelola oleh Stéphane Charette mulai tahun 2023. Versi ini memperkenalkan perintah versi.
Versi 2.1: Cabang terakhir dari basis kode versi 2, tersedia di cabang v2.
Versi 3.x ("JAZZ"): Tahap pengembangan terbaru dirilis pada Oktober 2024.
Perubahan penting di Versi 3.x:
1. Menghapus banyak perintah lama dan tidak terawat.
2. Optimalisasi kinerja yang signifikan untuk pelatihan dan inferensi.
3. API C lama yang dimodifikasi; aplikasi yang menggunakan API Darknet asli mungkin memerlukan sedikit penyesuaian.
4. Memperkenalkan 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 pada kumpulan data MSCOCO untuk kenyamanan. Kumpulan data ini berisi 80 kelas, tercantum dalam file teks cfg/coco.names.
Kumpulan data lain yang lebih sederhana dan anak timbangan terlatih, seperti LEGO Gears dan Rolodex, tersedia untuk pengujian Darknet/YOLO. Lihat FAQ Darknet/YOLO untuk detailnya.
Anda dapat mengunduh beban terlatih MSCOCO dari berbagai lokasi, 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
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
`
Ingatlah bahwa Anda didorong untuk melatih jaringan Anda sendiri. MSCOCO terutama digunakan untuk mengonfirmasi bahwa semuanya berfungsi dengan benar.
Bangunan
Metode pembangunan yang tersedia sebelum tahun 2023 telah digabungkan menjadi satu solusi terpadu. Darknet memerlukan C++17 atau lebih baru, OpenCV, dan menggunakan CMake untuk menghasilkan file proyek.
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 identik dengan petunjuk Linux. Beberapa buku catatan Jupyter yang mendemonstrasikan tugas seperti melatih jaringan baru tersedia di subdirektori colab. Anda juga dapat mengikuti petunjuk Linux di bawah ini.
Metode CMake Linux
1. Opsional: Jika Anda memiliki GPU NVIDIA modern, instal CUDA atau CUDA+cuDNN. Darknet akan memanfaatkan GPU Anda untuk pemrosesan gambar dan video yang lebih cepat.
2. Hapus file CMakeCache.txt dari direktori build Darknet Anda untuk memaksa CMake menemukan kembali semua file yang diperlukan.
3. Membangun kembali Darknet.
4. Instal CUDA (opsional): Kunjungi https://developer.nvidia.com/cuda-downloads untuk mengunduh dan menginstal CUDA.
5. Instal cuDNN (opsional): Kunjungi https://developer.nvidia.com/rdp/cudnn-download atau https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package -manager-installation-ikhtisar untuk mengunduh dan menginstal cuDNN.
6. Verifikasi instalasi CUDA: Pastikan Anda dapat menjalankan nvcc dan nvidia-smi. Anda mungkin perlu mengubah variabel PATH Anda.
7. Instal dependensi dan kloning Darknet:
' pesta
sudo apt-get install build-essential git libopencv-dev cmake
mkdir ~/srccd ~/src
git clone https://github.com/hank-ai/darknetcd darknet
mkdir membangun
pembuatan cd
`
8. Konfigurasikan CMake:
' pesta
cmake -DCMAKEBUILDTYPE=Lepaskan ..
`
9. Bangun Jaringan Gelap:
' pesta
buat paket -j4
`
10. Instal Darknet:
' pesta
sudo dpkg -i darknet-VERSION.deb
`
11. Uji instalasi:
' pesta
versi darknet
`
Catatan Tambahan:
Jika Anda menggunakan CMake versi lama, tingkatkan versinya sebelum menjalankan perintah cmake:
' pesta
sudo apt-get pembersihan cmake
sudo snap install cmake --klasik
`
Mulai ulang shell Anda jika menggunakan bash, atau fish akan memperbarui jalur secara otomatis.
Untuk membuat file instalasi RPM dan bukan file DEB, modifikasi file CM_package.cmake.
Setelah paket instalasi dibuat, gunakan manajer paket distribusi Anda untuk menginstalnya (misalnya, sudo dpkg -i darknet-2.0.1-Linux.deb pada sistem berbasis Debian).
Metode Windows CMake
1. Instal alat yang diperlukan:
' pesta
dapatkan instal Git.Git
winget instal Kitware.CMake
winget instal nsis.nsis
winget instal Microsoft.VisualStudio.2022.Community
`
2. Ubah instalasi Visual Studio:
- Buka "Penginstal Visual Studio".
- Klik "Ubah".
- Pilih "Pengembangan Desktop Dengan C++".
- Klik "Ubah" di pojok kanan bawah lalu "Ya".
3. Buka Prompt Perintah Pengembang untuk VS 2022: Jangan gunakan PowerShell.
4. Instal Microsoft VCPKG:
' pesta
cd c:mkdir c:srccd c:src
git clone https://github.com/microsoft/vcpkgcd vcpkg
bootstrap-vcpkg.bat
.vcpkg.exe terintegrasi
instal .vcpkg.exe integrasikan powershell.vcpkg.exe instal opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
5. Opsional: Instal CUDA atau CUDA+cuDNN (seperti dalam instruksi Linux).
6. Hapus CMakeCache.txt (seperti pada instruksi Linux).
7. Bangun kembali Darknet (seperti pada instruksi Linux).
8. Instal CUDA (opsional): Kunjungi https://developer.nvidia.com/cuda-downloads untuk mengunduh dan menginstal CUDA.
9. Instal cuDNN (opsional): 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.
10. Verifikasi instalasi CUDA: Pastikan Anda dapat menjalankan nvcc.exe. Anda mungkin perlu mengubah variabel PATH Anda.
11. Buka zip dan salin file cuDNN: Setelah diunduh, buka zip dan salin direktori bin, sertakan, dan lib ke C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[version]/. Anda mungkin perlu menimpa beberapa file.
12. Kloning Darknet dan bangun:
' pesta
cd c:src
git clone https://github.com/hank-ai/darknet.gitcd 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
`
13. Salin DLL CUDA (opsional): Jika Anda mengalami kesalahan tentang DLL CUDA atau cuDNN yang hilang (misalnya, culas64_12.dll), salin DLL CUDA secara manual ke direktori keluaran Darknet.exe:
' pesta
salin "C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
`
(Pastikan Anda mengganti nomor versi dengan yang Anda gunakan.)
14. Jalankan kembali perintah msbuild.exe untuk menghasilkan paket instalasi NSIS:
' pesta
msbuild.exe /property:Platform=x64;Configuration=Rilis PACKAGE.vcxproj
`
15. Uji instalasi:
' pesta
C:srcDarknetbuildsrc-cliReleasedarknet.exe versi
`
16. Jalankan wizard instalasi NSIS: Ini akan menginstal aplikasi CLI, DLL yang diperlukan, perpustakaan, file yang disertakan, dan file konfigurasi template.
Catatan Tambahan:
Perintah cmake menghasilkan file solusi Visual Studio (Darknet.sln). Anda dapat menggunakan Visual Studio GUI untuk membangun proyek alih-alih msbuild.exe.
Paket instalasi NSIS (misalnya darknet-VERSION.exe) dapat ditemukan di direktori build.
Menggunakan Darknet
CLI
Berikut ini bukanlah daftar lengkap dari semua perintah Darknet.
bantuan darknet: Menampilkan informasi bantuan.
versi darknet: Periksa versi Darknet.
Perintah Prediksi:
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
`
Pemrosesan Video:
V2:
' pesta
demo detektor darknet animal.data animal.cfg animalbest.weights -extoutput test.mp4
`
V3:
' pesta
darknet03display_videos animal.cfg test.mp4
`
Bantuan Gelap:
' pesta
DarkHelp animal.cfg animal.names animal_best.weights test.mp4
`
Masukan Kamera Web:
V2:
' pesta
demo detektor darknet animal.data animal.cfg animal_best.weights -c 0
`
V3:
' pesta
darknet08display_webcam binatang
`
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
`
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
`
Tentukan GPU:
V2:
' pesta
demo detektor darknet animal.data animal.cfg animal_best.weights -i 1 test.mp4
`
Perhitungan Akurasi:
peta:
' pesta
peta detektor darknet Driving.data Driving.cfg Driving_best.weights ...
`
peta@IoU=75:
' pesta
detektor darknet peta animal.data animal.cfg animalbest.weights -iouthresh 0.75
`
Hitung Ulang Jangkar:
DarkMark (disarankan): Gunakan DarkMark untuk menjalankan 100 perhitungan berturut-turut dan memilih jangkar terbaik.
jaringan gelap:
' pesta
detektor darknet calcanchors animal.data -numof_clusters 6 -width 320 -height 256
`
Latih Jaringan Baru:
Menggunakan DarkMark (disarankan): Gunakan DarkMark untuk membuat semua file yang diperlukan untuk pelatihan.
Pengaturan Manual:
1. Buat folder baru untuk proyek Anda (misalnya, ~/nn/animals/).
2. Salin file konfigurasi sebagai template (misalnya cfg/yolov4-tiny.cfg) ke dalam folder.
3. Buat file teks animal.names dengan nama kelas Anda, satu per baris.
4. Buat file teks animal.data dengan format berikut:
`
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 untuk gambar dan anotasi (misalnya, ~/nn/animals/dataset).
6. Beri anotasi pada gambar Anda dan buat file anotasi .txt yang sesuai menggunakan DarkMark atau perangkat lunak serupa.
7. Buat file animaltrain.txt dan animalvalid.txt, cantumkan gambar masing-masing untuk pelatihan dan validasi, satu gambar per baris.
8. Ubah file konfigurasi:
- Tetapkan kumpulan=64.
- Sesuaikan subdivisi sesuai kebutuhan.
- Tetapkan max_batches=8000 (atau 2000 x jumlah kelas).
- Tetapkan langkah=6400,7200 (80% dan 90% dari max_batches).
- Atur lebar dan tinggi ke dimensi jaringan Anda.
- Perbarui kelas dengan jumlah kelas di file .names Anda.
- Perbarui filter di setiap bagian [konvolusional] sebelum bagian [yolo]: (jumlah kelas + 5) * 3.
9. Mulai pelatihan:
' pesta
cd ~/nn/hewan/
detektor darknet -peta -dont_show melatih hewan.data hewan.cfg
`
Tip Pelatihan Tambahan:
Gunakan parameter --verbose untuk informasi pelatihan lebih detail:
' pesta
detektor darknet -peta -dont_show --verbose melatih hewan.data hewan.cfg
`
Alat dan Tautan Lainnya
DarkMark: Kelola proyek Darknet/YOLO, beri anotasi pada gambar, verifikasi anotasi, dan buat file pelatihan.
DarkHelp: CLI alternatif yang kuat untuk Darknet, dukungan untuk penataan gambar, pelacakan objek, dan API C++ untuk aplikasi komersial.
FAQ Darknet/YOLO: Sumber daya komprehensif untuk jawaban atas pertanyaan umum.
Saluran YouTube Stéphane: Tutorial dan contoh video di Darknet/YOLO.
Server Darknet/YOLO Discord: Forum komunitas untuk dukungan dan diskusi.
Peta jalan
Tugas yang Selesai:
Mengganti qsort() dengan std::sort() untuk meningkatkan efisiensi.
Menghapus fungsi yang tidak digunakan lagi seperti check_mistakes, getchar(), dan system().
Mengonversi Darknet untuk menggunakan kompiler C++ (g++ di Linux, VisualStudio di Windows).
Memperbaiki masalah pembuatan Windows.
Dukungan Python dipulihkan.
Membangun perpustakaan Darknet.
Label prediksi yang diaktifkan kembali (kode alfabet).
Mengaktifkan kembali setengah dukungan CUDA/GPU, CUDNN, dan CUDNN.
Menghapus arsitektur CUDA hard-coded.
Peningkatan informasi versi CUDA.
Mengaktifkan kembali dukungan AVX.
Menghapus solusi lama dan Makefile.
Menjadikan OpenCV sebagai ketergantungan non-opsional.
Menghapus ketergantungan pada perpustakaan pthread lama.
Menghapus ketergantungan STB.
Tulis ulang CMakeLists.txt untuk menggunakan deteksi CUDA baru.
Menghapus kode alfabet lama dan menghapus gambar yang tidak perlu.
Mengaktifkan build di luar sumber.
Output nomor versi yang ditingkatkan.
Pelatihan yang dioptimalkan dan kinerja inferensi.
Diimplementasikan pass-by-reference jika memungkinkan.
Membersihkan file .hpp.
Menulis ulang darknet.h.
Menggunakan cv::Mat sebagai objek C++ yang tepat alih-alih melakukan casting ke void*.
Memperbaiki inkonsistensi dalam penggunaan struktur gambar internal.
Memperbaiki masalah build untuk perangkat Jetson berbasis ARM (kecuali untuk model lama yang tidak didukung).
Memperbaiki Python API di Versi 3.
Tujuan Jangka Pendek:
Ganti printf() dengan std::cout.
Selidiki dukungan untuk kamera Zed lama.
Meningkatkan dan menstandarkan penguraian baris perintah.
Tujuan Jangka Menengah:
Hapus semua kode char* dan ganti dengan std::string.
Hilangkan peringatan kompiler dan pastikan gaya kode konsisten.
Tingkatkan penggunaan cv::Mat pada struktur gambar C kustom.
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 (misalnya, dengan kedalaman tambahan atau saluran termal).
Pembersihan kode yang sedang berlangsung.
Tujuan Jangka Panjang:
Mengatasi masalah CUDA/CUDNN di semua GPU.
Tulis ulang kode CUDA+cuDNN.
Jelajahi dukungan untuk GPU non-NVIDIA.
Terapkan kotak pembatas yang diputar atau penyangga "sudut".
Tambahkan titik kunci/kerangka, peta panas, dan dukungan segmentasi.