加特林
什麼是加特林?
Gattle 是一款功能強大的開源負載測試工具,專為效能和可靠性而設計。它提供了一個全面的解決方案,用於模擬真實用戶行為並測量應用程式在壓力下的性能。
動機
加特林使您能夠:
1. 了解應用程式的限制:在瓶頸和效能問題影響使用者之前識別它們。
2. 改善使用者體驗:確保您的應用程式能夠處理峰值流量並為所有使用者提供流暢的效能。
3. 獲得有價值的見解:分析測試結果以優化應用程式的效能、可擴展性和可靠性。
有問題,需要幫忙嗎?
如需協助和支持,您可以:
1.查閱官方文件:探索詳細的教學、指南和API參考。
2. 加入 Gattle 社群論壇:與其他使用者聯繫、分享經驗並尋求建議。
3. 回報問題:如果遇到錯誤,請在官方 Gadling GitHub 儲存庫上提出問題。
合作夥伴
Ga特林與各個合作夥伴合作提供全面的負載測試解決方案。探索專業整合和支援服務的合作夥伴生態系統。
暗網目標偵測框架與 YOLO
Darknet 是一個以 C、C++ 和 CUDA 編寫的開源神經網路框架,以其速度和效率而聞名。
YOLO(You Only Look Once)是一種最先進的即時目標偵測系統,可與 Darknet 框架無縫整合。
探索暗網/YOLO 生態系統:
1. Hank.ai 的貢獻:了解 Hank.ai 如何積極為 Darknet/YOLO 社群做出貢獻。
2. 官方網站:造訪Darknet/YOLO網站上的最新資訊、資源和新聞。
3. 全面的常見問題:尋找有關 Darknet/YOLO 的常見問題。
4. 加入 Discord 伺服器:與其他 Darknet/YOLO 愛好者聯繫,討論想法並獲得支援。
文件
1. YOLOv7:探索YOLOv7的最新進展。
2. Scaled-YOLOv4:深入研究 Scaled-YOLOv4 架構及其效能增強。
3. YOLOv4:了解YOLOv4的關鍵特性與創新。
4. YOLOv3:了解YOLO的起源以及YOLOv3的基本原理。
一般資訊
Darknet/YOLO 框架在速度和準確性方面始終優於其他框架和 YOLO 版本。
它完全免費且開源,允許您將其整合到您的專案和產品中,而不受許可限制。
2024 年 10 月發布的 Darknet V3「Jazz」實現了卓越的效能,使用 NVIDIA RTX 3090 GPU 以高達 1000 FPS 的速度處理樂高資料集影片。
暗網版本
1. 版本 0.x:由 Joseph Redmon 在 2013-2017 年開發的原始暗網工具。
2. 版本 1.x:流行的暗網儲存庫,由 Alexey Bochkovskiy 在 2017 年至 2021 年間維護。
3. 2.x 版本「OAK」:由 Hank.ai 贊助並由 Stéphane Charette 從 2023 年開始維護的暗網存儲庫。
- 使用適用於 Windows 和 Linux 的 CMake 進行統一建置流程。
- 程式碼庫轉換為 C++ 編譯器。
- 改進了訓練期間的圖表.png 視覺化。
- 錯誤修復和效能優化。
4. 版本2.1:版本2.x的最後一個分支,在v2分支中可用。
5. 3.x版本「JAZZ」:2024年10月發布的最新版本,特色:
- 刪除了遺留和未維護的命令。
- 針對訓練和推理的廣泛性能優化。
- 修改了舊版 C API。
- 新的 Darknet V3 C 和 C++ API。
- src-examples 中擴展了範例程式碼和應用程式。
MSCOCO 預訓練權重
幾個流行的 YOLO 版本在 MSCOCO 資料集上進行了預訓練,提供 cfg/coco.names 檔案中列出的 80 個物件類別。
其他資料集和預訓練權重可用於測試,包括:
樂高齒輪
名片盒
從不同位置下載 MSCOCO 預訓練權重,包括此儲存庫:
|版本 |小|完整|
|---|---|---|
| YOLOv2(2016 年 11 月)| yolov2-tiny.weights | yolov2-tiny.weights | yolov2-full.weights | yolov2-full.weights |
| YOLOv3(2018 年 5 月)| yolov3-tiny.weights | yolov3-tiny.weights | yolov3-full.weights | yolov3-full.weights |
| YOLOv4(2020 年 5 月)| yolov4-tiny.weights | yolov4-tiny.weights | yolov4-full.weights | yolov4-full.weights |
| YOLOv7(2022 年 8 月)| yolov7-tiny.weights | yolov7-tiny.weights | yolov7-full.weights | yolov7-full.weights |
使用 MSCOCO 預訓練權重的範例:
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights darknet02displayannotatedatedimages coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
darknet03display_videos coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
請記住,我們鼓勵用戶訓練自己的網絡,而 MSCOCO 主要用於測試。
大樓
Darknet 需要 C++17 或更高版本、OpenCV,並使用 CMake 進行建置自動化。
重要提示:這些說明針對 2023 年 8 月後建立 Darknet 進行了更新。
Google合作實驗室
請按照下面的 Linux 說明進行操作。探索 colab 子目錄中的 Jupyter Notebook 以執行訓練等特定任務。
Linux CMake方法
1.安裝必要的依賴項:
- sudo apt-get install build-essential git libopencv-dev cmake
2.克隆暗網儲存庫:
- mkdir ~/srccd ~/src git 克隆 https://github.com/hank-ai/darknet
3.建立建置目錄:
- cd darknet mkdir buildcd build
4.配置並建構暗網:
- cmake -DCMAKEBUILDTYPE =發布..
- 製作-j4 包
5.安裝.deb套件:
- sudo dpkg -i darknet-VERSION.deb
6. 驗證安裝:
- 暗網版本
選購:安裝 CUDA 或 CUDA+cuDNN 以進行 GPU 加速:
1.下載並安裝CUDA:
- https://developer.nvidia.com/cuda-downloads
2.下載並安裝cuDNN:
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview
3.驗證CUDA安裝:
- NVCC
- 英偉達-SMI
4.重建暗網:
- cmake -DCMAKEBUILDTYPE =發布..
- 製作-j4 包
5.安裝更新的.deb套件:
- sudo dpkg -i darknet-VERSION.deb
Windows CMake方法
1.安裝必要的依賴項:
- winget安裝Git.Git
- winget安裝Kitware.CMake
- winget安裝nsis.nsis
- winget安裝Microsoft.VisualStudio.2022.Community
2.修改Visual Studio安裝:
- 開啟「Visual Studio 安裝程式」。
- 選擇“修改”。
- 選擇「使用 C++ 進行桌面開發」。
- 點選「修改」和「是」。
3.安裝微軟VCPKG:
- 開啟 VS 2022 的開發人員命令提示字元(不是 PowerShell)。
- cd c:mkdir c:srccd c:src git clone https://github.com/microsoft/vcpkgcd vcpkg bootstrap-vcpkg.bat .vcpkg.exe 整合安裝 .pkg.exe 整合式 powershell.vcpkg.exe 安裝 opencv[contribvcpkg.exe 整合 powershell.vcpkg.exe 安裝 opencv[contribvcpkg.exe 整合 powershell.vcpkg.exe 安裝 cv[contribvcpkg. ,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
4.克隆暗網儲存庫:
- cd c:src git克隆 https://github.com/hank-ai/darknet.gitcd darknet
5.建立建置目錄:
- mkdir buildcd 構建
6.配置並建構暗網:
- cmake -DCMAKEBUILDTYPE=發布 -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. 如果需要,複製 CUDA DLL:
- 如果遇到缺少 CUDA DLL 錯誤,請將它們複製到輸出目錄:
- 複製「C:Program FilesNVIDIA GPU運算工具包CUDAv12.2bin * .dll」src-cliRelease
8.重新運行msbuild產生NSIS安裝包:
- msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
9. 執行 NSIS 安裝精靈:
- 暗網版本.exe
10. 驗證安裝:
- C:Program FilesDarknetbindarknet.exe 版本
選購:安裝 CUDA 或 CUDA+cuDNN 以進行 GPU 加速:
1.下載並安裝CUDA:
- https://developer.nvidia.com/cuda-downloads
2.下載並安裝cuDNN:
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows
3.解壓縮cuDNN並複製目錄:
- C:/Program Files/NVIDIA GPU 運算工具包/CUDA/[版本]
4.重建暗網:
- 安裝 CUDA 後重複步驟 6-8。
使用暗網
命令列介面
命令:
暗網幫助
暗網版本
影像預測:
V2:暗網探測器測試 cars.data cars.cfg cars_best.weights image1.jpg
V3:darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp:DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
輸出座標:
V2:暗網探測器測試animals.dataanimals.cfganimalsbest.weights-extoutputdog.jpg
V3:darknet01inference_images 動物 狗.jpg
DarkHelp:DarkHelp --json Animals.cfg Animals.names Animals_best.weights Dog.jpg
視訊處理:
V2:暗網偵測器示範 Animals.data Animals.cfg Animalbest.weights -extoutput test.mp4
V3:darknet03display_videos Animals.cfg test.mp4
DarkHelp:DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
網路攝影機:
V2:暗網偵測器示範 Animals.data Animals.cfg Animals_best.weights -c 0
V3:darknet08display_網路攝影機動物
將結果儲存到影片:
V2:暗網偵測器示範animals.data Animals.cfg Animalbest.weights test.mp4 -outfilename res.avi
V3:darknet05processvideos多執行緒animals.cfganimals.namesanimals_best.weightstest.mp4
DarkHelp:DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
JSON 輸出:
V2:暗網探測器示範animals.data Animals.cfg Animalbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3:darknet06imagestojson 動物 image1.jpg
DarkHelp: DarkHelp --json Animals.names Animals.cfg Animals_best.weights image1.jpg
具體GPU:
V2:暗網偵測器示範 Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
準確性:
暗網探測器地圖 Driving.data Driving.cfg moving_best.weights ...
暗網探測器地圖animals.dataanimals.cfganimalsbest.weights-iothresh 0.75
錨點:
暗網探測器 calcanchors Animals.data -numof_clusters 6 -寬度 320 -高度 256
訓練
DarkMark:利用 DarkMark 進行註解和訓練。這是訓練新神經網路的推薦方法。
手動設定:
1. 建立專案目錄:例如~/nn/animals/。
2.複製設定檔:cfg/yolov4-tiny.cfg
3. 建立一個 Animals.names 檔案:列出類別(每行一個),例如:
- 狗
- 貓
- 鳥
- 馬
4. 建立animals.data檔:
- 班級 = 4
- 火車 = /home/使用者名稱/nn/animals/animals_train.txt
- 有效 = /home/使用者名稱/nn/animals/animals_valid.txt
- 名稱 = /home/使用者名稱/nn/animals/animals.names
- 備份 = /home/使用者名稱/nn/animals
5. 建立資料集資料夾:以YOLO格式儲存影像和對應的註解檔案(.txt)。
6. 建立animalstrain.txt 和animalsvalid.txt:列出用於訓練和驗證的影像。
7.修改animals.cfg:
- 批次 = 64
- 細分= 1
- max_batches = 8000(4 類 * 2000)
- 步數 = 6400,7200
- 寬度 = ...
- 高度 = ...
- 班級 = 4
- 更新過濾器值(例如,(4 + 5) * 3 = 27)。
8.開始訓練: cd ~/nn/animals/ darknet detector -map -dont_show train Animals.data Animals.cfg
訓練參數:
--verbose 詳細輸出
其他工具和鏈接
DarkMark:Darknet 的專案管理、圖像註解和檔案生成。
DarkHelp:取代 CLI、映像平鋪、物件追蹤和強大的 C++ API。
Darknet/YOLO 常見問題:針對常見問題的豐富資源。
Stéphane 的 YouTube 頻道:教學和範例影片。
Darknet/YOLO Discord 伺服器:社群支援與討論。
路線圖
完全的:
訓練期間 qsort() 的 std::sort()
刪除 check_mistakes、getchar() 和 system()
C++ 編譯器支援(Linux 上的 g++,Windows 上的 VisualStudio)
Windows 建置修復
Python 支援修復
暗網庫構建
預測標籤(“字母”代碼)
CUDA/GPU 代碼重新啟用
CUDNN 重新啟用
CUDNN 半重新啟用
非硬式編碼的 CUDA 架構
改進了 CUDA 版本信息
AVX 重新啟用
刪除舊的解決方案和 Makefile
OpenCV 作為非可選依賴項
刪除舊的 pthread 庫依賴項
移除機上盒
CMakeLists.txt 重寫以實現新的 CUDA 檢測
刪除“字母”代碼和資料/標籤圖像
外源構建
增強版本號輸出
訓練和推理的效能優化
盡可能透過引用傳遞
已清理的 .hpp 文件
重寫darknet.h
使用 cv::Mat 代替 void* 轉換
修復內部圖像結構使用
針對基於 ARM 的 Jetson 裝置的建置修復
V3 中的 Python API 修復
短期目標:
printf() 的 std::cout
Zed 相機支持
改進的命令列解析
中期目標:
刪除 char* 程式碼以支援 std::string
編譯器警告清理
改良了 cv::Mat 的使用
用 std::vector 或 std::list 取代舊列表功能
支援1通道灰階影像
支援 N 通道影像 (N > 3)
持續的程式碼清理
長期目標:
針對所有 GPU 的 CUDA/CUDNN 修復
CUDA+cuDNN程式碼重寫
非 NVIDIA GPU 支持
旋轉邊界框和角度支持
關鍵點和骨架
熱圖
分割