Gatling
Apa itu Gatling?
Gatling adalah alat pengujian beban sumber terbuka yang dirancang untuk kinerja dan keandalan. Ini menawarkan solusi komprehensif untuk mensimulasikan perilaku pengguna nyata dan mengukur kinerja aplikasi Anda di bawah tekanan.
Motivasi
Gatling memberdayakan Anda untuk:
1. Pahami batasan aplikasi Anda: Identifikasi hambatan dan masalah kinerja sebelum berdampak pada pengguna Anda.
2. Tingkatkan pengalaman pengguna: Pastikan aplikasi Anda dapat menangani lalu lintas puncak dan memberikan kinerja yang lancar untuk semua pengguna.
3. Dapatkan wawasan berharga: Analisis hasil pengujian untuk mengoptimalkan kinerja, skalabilitas, dan keandalan aplikasi Anda.
Pertanyaan, Bantuan?
Untuk bantuan dan dukungan, Anda dapat:
1. Lihat dokumentasi resmi: Jelajahi tutorial mendetail, panduan, dan referensi API.
2. Bergabunglah dengan Forum Komunitas Gatling: Terhubung dengan pengguna lain, berbagi pengalaman, dan mencari saran.
3. Laporkan masalah: Jika Anda menemukan bug, ajukan masalah di repositori resmi Gatling GitHub.
Mitra
Gatling berkolaborasi dengan berbagai mitra untuk memberikan solusi pengujian beban yang komprehensif. Jelajahi ekosistem mitra untuk integrasi khusus dan layanan dukungan.
Kerangka Deteksi Objek Darknet dan YOLO
Darknet adalah kerangka jaringan saraf sumber terbuka yang ditulis dalam C, C++, dan CUDA, terkenal dengan kecepatan dan efisiensinya.
YOLO (You Only Look Once) adalah sistem deteksi objek real-time canggih yang terintegrasi secara mulus dengan kerangka Darknet.
Jelajahi Ekosistem Darknet/YOLO:
1. Kontribusi Hank.ai: Temukan bagaimana Hank.ai berkontribusi aktif pada komunitas Darknet/YOLO.
2. Situs web resmi: Akses informasi, sumber daya, dan berita terkini di situs web Darknet/YOLO.
3. FAQ Komprehensif: Temukan jawaban atas pertanyaan umum tentang Darknet/YOLO.
4. Bergabunglah dengan server Discord: Terhubung dengan penggemar Darknet/YOLO lainnya, diskusikan ide, dan dapatkan dukungan.
Dokumen
1. YOLOv7: Jelajahi kemajuan terbaru di YOLOv7.
2. Scaled-YOLOv4: Selami arsitektur Scaled-YOLOv4 dan peningkatan kinerjanya.
3. YOLOv4: Memahami fitur utama dan inovasi YOLOv4.
4. YOLOv3: Pelajari asal usul YOLO dan prinsip dasar YOLOv3.
Informasi Umum
Kerangka kerja Darknet/YOLO secara konsisten mengungguli kerangka kerja lain dan versi YOLO dalam hal kecepatan dan akurasi.
Ini sepenuhnya gratis dan bersumber terbuka, memungkinkan Anda mengintegrasikannya ke dalam proyek dan produk Anda tanpa batasan lisensi.
Darknet V3 "Jazz", yang dirilis pada Oktober 2024, mencapai performa luar biasa, memproses video kumpulan data LEGO hingga 1000 FPS menggunakan GPU NVIDIA RTX 3090.
Versi Darknet
1. Versi 0.x: Alat Darknet asli yang dikembangkan oleh Joseph Redmon dari 2013-2017.
2. Versi 1.x: Repositori Darknet populer yang dikelola oleh Alexei Bochkovskiy antara 2017-2021.
3. Versi 2.x "OAK": Repositori Darknet disponsori oleh Hank.ai dan dikelola oleh Stéphane Charette mulai tahun 2023. Repositori ini memperkenalkan penomoran versi dan membawa peningkatan yang signifikan, termasuk:
- Proses pembangunan terpadu menggunakan CMake untuk Windows dan Linux.
- Konversi basis kode ke kompiler C++.
- Peningkatan visualisasi chart.png selama pelatihan.
- Perbaikan bug dan optimalisasi kinerja.
4. Versi 2.1: Cabang terakhir dari versi 2.x, tersedia di cabang v2.
5. Versi 3.x "JAZZ": Versi terbaru dirilis pada Oktober 2024, menampilkan:
- Menghapus perintah lama dan tidak dipelihara.
- Optimalisasi kinerja yang ekstensif untuk pelatihan dan inferensi.
- API C Lama yang Dimodifikasi.
- API Darknet V3 C dan C++ baru.
- Kode sampel dan aplikasi yang diperluas di src-example.
Anak Timbangan Terlatih MSCOCO
Beberapa versi YOLO yang populer telah dilatih sebelumnya pada kumpulan data MSCOCO, menyediakan 80 kelas objek yang tercantum dalam file cfg/coco.names.
Kumpulan data lain dan anak timbangan terlatih tersedia untuk pengujian, termasuk:
Perlengkapan LEGO
Rolodex
Unduh beban terlatih MSCOCO dari berbagai lokasi, termasuk repositori ini:
| Versi | Kecil | Penuh |
|---|---|---|
| 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 |
Contoh penggunaan beban terlatih MSCOCO:
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 pengguna didorong untuk melatih jaringan mereka sendiri, dan MSCOCO terutama untuk pengujian.
Bangunan
Darknet memerlukan C++17 atau lebih baru, OpenCV, dan menggunakan CMake untuk otomatisasi build.
Catatan Penting: Petunjuk ini diperbarui untuk membuat Darknet setelah Agustus 2023. Jika Anda mengalami masalah saat mengikuti tutorial lama, lihat README ini untuk langkah-langkah pembuatan terbaru.
Google Kolab
Ikuti instruksi Linux di bawah ini. Jelajahi buku catatan Jupyter di subdirektori colab untuk tugas tertentu seperti pelatihan.
Metode CMake Linux
1. Instal dependensi yang diperlukan:
- sudo apt-get install build-essential git libopencv-dev cmake
2. Kloning repositori Darknet:
- mkdir ~/srccd ~/src git clone https://github.com/hank-ai/darknet
3. Buat direktori build:
- cd darknet mkdir buildcd build
4. Konfigurasikan dan bangun Darknet:
- cmake -DCMAKEBUILDTYPE=Lepaskan ..
- buat paket -j4
5. Instal paket .deb:
- sudo dpkg -i darknet-VERSION.deb
6. Verifikasi instalasi:
- versi darknet
Opsional: Instal CUDA atau CUDA+cuDNN untuk akselerasi GPU:
1. Unduh dan instal CUDA:
- https://developer.nvidia.com/cuda-downloads
2. Unduh dan instal cuDNN:
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview
3. Verifikasi instalasi CUDA:
- nvcc
- nvidia-smi
4. Membangun kembali Darknet:
- cmake -DCMAKEBUILDTYPE=Lepaskan ..
- buat paket -j4
5. Instal paket .deb yang diperbarui:
- sudo dpkg -i darknet-VERSION.deb
Metode Windows CMake
1. Instal dependensi yang diperlukan:
- Saya akan menginstal Git.Git
- Saya akan menginstal Kitware.CMake
- winget instal nsis.nsis
- dapatkan instalasi Microsoft.VisualStudio.2022.Community
2. Ubah instalasi Visual Studio:
- Buka "Penginstal Visual Studio."
- Pilih "Ubah."
- Pilih "Pengembangan Desktop Dengan C++."
- Klik "Ubah" dan "Ya."
3. Instal Microsoft VCPKG:
- Buka Prompt Perintah Pengembang untuk VS 2022 (bukan PowerShell).
- cd c:mkdir c:srccd c:src git clone https://github.com/microsoft/vcpkgcd vcpkg bootstrap-vcpkg.bat .vcpkg.exe integrasikan instal .vcpkg.exe integrasikan powershell.vcpkg.exe instal opencv[contrib ,dnn,ketik bebas,jpeg,openmp,png,webp,dunia]:x64-windows
4. Kloning repositori Darknet:
- cd c:src git clone https://github.com/hank-ai/darknet.gitcd darknet
5. Buat direktori build:
- mkdir buildcd build
6. Konfigurasikan dan bangun Darknet:
- 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=Release PACKAGE.vcxproj
7. Salin DLL CUDA jika diperlukan:
- Jika Anda menemukan kesalahan CUDA DLL yang hilang, salin ke direktori keluaran:
- salin "C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
8. Jalankan kembali msbuild untuk menghasilkan paket instalasi NSIS:
- msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
9. Jalankan wizard instalasi NSIS:
- darknet-VERSION.exe
10. Verifikasi instalasi:
- C:Program FilesDarknetbindarknet.exe versi
Opsional: Instal CUDA atau CUDA+cuDNN untuk akselerasi GPU:
1. Unduh dan instal CUDA:
- https://developer.nvidia.com/cuda-downloads
2. Unduh dan instal cuDNN:
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows
3. Buka zip cuDNN dan salin direktori:
- C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[versi]
4. Membangun kembali Darknet:
- Ulangi langkah 6-8 setelah menginstal CUDA.
Menggunakan Darknet
CLI
Perintah:
bantuan darknet
versi darknet
Prediksi Gambar:
V2: uji detektor darknet cars.data cars.cfg cars_best.weights image1.jpg
V3: darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp: DarkHelp mobil.cfg mobil.cfg mobil_best.weights image1.jpg
Koordinat Keluaran:
V2: detektor darknet menguji animal.data animal.cfg animalbest.weights -extoutput dog.jpg
V3: darknet01inference_images hewan anjing.jpg
DarkHelp: DarkHelp --json animal.cfg animal.names animal_best.weights dog.jpg
Pemrosesan Video:
V2: demo detektor darknet animal.data animal.cfg animalbest.weights -extoutput test.mp4
V3: darknet03display_videos animal.cfg test.mp4
DarkHelp: DarkHelp animal.cfg animal.names animal_best.weights test.mp4
Kamera web:
V2: demo detektor darknet animal.data animal.cfg animal_best.weights -c 0
V3: darknet08display_webcam hewan
Menyimpan Hasil ke Video:
V2: demo detektor darknet animal.data animal.cfg animalbest.weights test.mp4 -outfilename res.avi
V3: darknet05processvideoshewan multithread.cfg hewan.nama hewan_terbaik.uji bobot.mp4
DarkHelp: DarkHelp animal.cfg animal.names animal_best.weights test.mp4
Keluaran JSON:
V2: demo detektor darknet animal.data animal.cfg animalbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3: darknet06imagestojson hewan image1.jpg
DarkHelp: DarkHelp --json animal.names animal.cfg animal_best.weights image1.jpg
GPU spesifik:
V2: demo detektor darknet animal.data animal.cfg animal_best.weights -i 1 test.mp4
Ketepatan:
peta detektor darknet Driving.data Driving.cfg Driving_best.weights ...
detektor darknet peta animal.data animal.cfg animalbest.weights -iouthresh 0.75
Jangkar:
detektor darknet calcanchors animal.data -numof_clusters 6 -width 320 -height 256
Pelatihan
DarkMark: Gunakan DarkMark untuk anotasi dan pelatihan. Ini adalah pendekatan yang direkomendasikan untuk melatih jaringan saraf baru.
Pengaturan Manual:
1. Buat direktori proyek: Misalnya, ~/nn/animals/.
2. Salin file konfigurasi: cfg/yolov4-tiny.cfg
3. Buat file animal.names: Daftar kelas (satu per baris) seperti:
- anjing
- kucing
- burung
- kuda
4. Buat file animal.data:
- 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
- cadangan = /home/nama pengguna/nn/animals
5. Buat folder kumpulan data: Simpan gambar dan file anotasi terkait (.txt) dalam format YOLO.
6. Buat animaltrain.txt dan animalvalid.txt: Buat daftar gambar untuk pelatihan dan validasi.
7. Memodifikasi animal.cfg:
- kumpulan = 64
- subdivisi = 1
- max_batches = 8000 (4 kelas * 2000)
- langkah = 6400,7200
- lebar = ...
- tinggi = ...
- kelas = 4
- Perbarui nilai filter (misalnya (4 + 5) * 3 = 27).
8. Mulai pelatihan: cd ~/nn/animals/ darknet detector -map -dont_show train animal.data animal.cfg
Parameter Pelatihan:
--verbose untuk keluaran detail
Alat dan Tautan Lainnya
DarkMark: Manajemen proyek, anotasi gambar, dan pembuatan file untuk Darknet.
DarkHelp: CLI alternatif, ubin gambar, pelacakan objek, dan API C++ yang tangguh.
FAQ Darknet/YOLO: Sumber daya yang luas untuk pertanyaan umum.
Saluran YouTube Stéphane: Tutorial dan video contoh.
Server Darknet/YOLO Discord: Dukungan dan diskusi komunitas.
Peta jalan
Selesai:
std::sort() untuk qsort() selama pelatihan
Penghapusan check_mistakes, getchar(), dan system()
Dukungan kompiler C++ (g++ di Linux, VisualStudio di Windows)
Perbaikan versi Windows
Perbaikan dukungan Python
Pembuatan perpustakaan Darknet
Label pada prediksi (kode "abjad")
Kode CUDA/GPU diaktifkan kembali
CUDNN aktifkan kembali
CUDNN setengah aktifkan kembali
Arsitektur CUDA non-hardcode
Informasi versi CUDA yang ditingkatkan
AVX aktifkan kembali
Penghapusan solusi lama dan Makefile
OpenCV sebagai ketergantungan non-opsional
Penghapusan ketergantungan perpustakaan pthread lama
Penghapusan STB
Penulisan ulang CMakeLists.txt untuk deteksi CUDA baru
Penghapusan kode "abjad" dan gambar data/label
Pembuatan di luar sumber
Output nomor versi yang ditingkatkan
Optimalisasi kinerja untuk pelatihan dan inferensi
Referensi lewati jika memungkinkan
File .hpp yang dibersihkan
Ditulis ulang darknet.h
cv::Penggunaan mat alih-alih casting void*
Perbaikan pada penggunaan struktur gambar internal
Perbaikan build untuk perangkat Jetson berbasis ARM
Perbaikan Python API di V3
Tujuan Jangka Pendek:
std::cout untuk printf()
Dukungan kamera Zed
Penguraian baris perintah yang ditingkatkan
Tujuan Jangka Menengah:
Penghapusan kode char* demi std::string
Pembersihan peringatan kompiler
Peningkatan penggunaan cv::Mat
Penggantian fungsionalitas daftar lama dengan std::vector atau std::list
Dukungan untuk gambar skala abu-abu 1 saluran
Dukungan untuk gambar saluran-N (N > 3)
Pembersihan kode yang sedang berlangsung
Tujuan Jangka Panjang:
Perbaikan CUDA/CUDNN untuk semua GPU
Penulisan ulang kode CUDA+cuDNN
Dukungan GPU non-NVIDIA
Kotak pembatas yang diputar dan penyangga sudut
Titik kunci dan kerangka
Peta panas
Segmentasi