暗網目標偵測框架與 YOLO
Darknet 是一個用 C、C++ 和 CUDA 寫的開源神經網路框架。 YOLO(You Only Look Once)是一種在 Darknet 框架內運作的最先進的即時物件偵測系統。
了解 Hank.ai 如何幫助 Darknet/YOLO 社區
宣布暗網 V3“爵士樂”
請參閱 Darknet/YOLO 網站
請仔細閱讀 Darknet/YOLO 常見問題解答
加入 Darknet/YOLO Discord 伺服器
文件
1.論文YOLOv7
2. 紙尺度-YOLOv4
3.論文YOLOv4
4.論文YOLOv3
一般資訊
Darknet/YOLO 框架仍然比其他框架和 YOLO 版本更快、更準確。該框架是完全免費且開源的。您可以將 Darknet/YOLO 合併到現有項目和產品中,包括商業項目和產品,而無需許可或支付費用。
Darknet V3(“Jazz”)於2024 年10 月發布,使用NVIDIA RTX 3090 GPU 時,可以以高達1000 FPS 的速度準確運行樂高數據集視頻,這意味著每個視頻幀都由Darknet/YOLO 在1 時間內讀取、調整大小和處理。
如果您需要協助或想要討論 Darknet/YOLO,請加入 Darknet/YOLO Discord 伺服器:https://discord.gg/zSq8rtW
Darknet/YOLO 的 CPU 版本可在簡單的裝置上運行,例如 Raspberry Pi、雲端和 Colab 伺服器、桌上型電腦、筆記型電腦和高階訓練設備。 Darknet/YOLO 的 GPU 版本需要 NVIDIA 提供的支援 CUDA 的 GPU。
眾所周知,Darknet/YOLO 可在 Linux、Windows 和 Mac 上運作。請參閱下面的建置說明。
暗網版本
1. Joseph Redmon 在 2013-2017 年編寫的原始 Darknet 工具沒有版本號。我們認為這個版本是 0.x。
2. Alexey Bochkovskiy 在 2017-2021 年間維護的下一個流行的 Darknet 儲存庫也沒有版本號。我們認為這個版本是 1.x。
3. 從 2023 年開始,由 Hank.ai 贊助並由 Stéphane Charette 維護的 Darknet 儲存庫是第一個帶有版本命令的儲存庫。從 2023 年到 2024 年底,它返回了版本 2.x「OAK」。
目標是在熟悉程式碼庫的同時嘗試盡可能少地破壞現有功能。進行了以下更改:
重新編寫了建置步驟,以便我們有 1 種統一的方式在 Windows 和 Linux 上使用 CMake 進行建置。
將程式碼庫轉換為使用 C++ 編譯器。
訓練時增強了chart.png。
錯誤修復和與效能相關的最佳化,主要與減少訓練網路所需的時間有關。
該程式碼庫的最後一個分支是 v2 分支中的版本 2.1。
下一階段的開發於 2024 年中期開始,並於 2024 年 10 月發布。
如果您需要執行這些命令之一,您始終可以簽出先前的 v2 分支。請告訴我們,以便我們研究添加回所有丟失的命令。
刪除了許多舊的和未維護的命令。
在訓練和推理過程中進行了許多性能優化。
修改了舊版 C API;使用原始 Darknet API 的應用程式需要少量修改:https://darknetcv.ai/api/api.html
新的 Darknet V3 C 和 C++ API:https://darknetcv.ai/api/api.html
src-examples 中的新應用程式和範例程式碼:https://darknetcv.ai/api/files.html
MSCOCO 預訓練權重
為了方便起見,YOLO 的幾個流行版本在 MSCOCO 資料集上進行了預訓練。該資料集有 80 個類,可以在文字檔案 cfg/coco.names 中看到。
還有其他幾個更簡單的資料集和預訓練權重可用於測試 Darknet/YOLO,例如 LEGO Gears 和 Rolodex。有關詳細信息,請參閱 Darknet/YOLO 常見問題解答。
MSCOCO 預訓練權重可以從幾個不同的位置下載,也可以從此儲存庫下載:
1.YOLOv2,2016 年 11 月
- YOLOv2-微小
- YOLOv2-full
2.YOLOv3,2018 年 5 月
- YOLOv3-微小
- YOLOv3-full
3.YOLOv4,2020 年 5 月
- YOLOv4-小
- YOLOv4-full
4.YOLOv7,2022 年 8 月
- YOLOv7-小
- YOLOv7-full
MSCOCO 預訓練權重僅用於演示目的。 MSCOCO 對應的 .cfg 和 .names 檔案位於 cfg 目錄中。命令範例:
`bash
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.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
`
請注意,人們應該訓練自己的網路。 MSCOCO 通常用於確認一切正常運作。
大樓
過去(2023 年之前)可用的各種建置方法已合併為一個統一的解決方案。 Darknet 需要 C++17 或更高版本、OpenCV,並使用 CMake 產生必要的專案檔案。
您不需要了解 C++ 來建造、安裝或運行 Darknet/YOLO,就像您不需要成為機械師來駕駛汽車一樣。
如果您遵循具有更複雜建置步驟的舊教學課程,或建置步驟與本自述文件中的內容不匹配,請注意。如下所述的新建步驟於 2023 年 8 月開始。
我們鼓勵軟體開發人員造訪 https://darknetcv.ai/ 以取得有關 Darknet/YOLO 物件偵測框架內部的資訊。
Google合作實驗室
Google Colab 指令與 Linux 指令相同。有多個 Jupyter 筆記本展示如何執行某些任務,例如訓練新網路。
請參閱 colab 子目錄中的筆記本,和/或按照下面的 Linux 說明進行操作。
Linux CMake方法
1.安裝先決條件:
`bash
sudo apt-get install build-essential git libopencv-dev cmake
`
2.克隆暗網儲存庫:
`bash
mkdir ~/srccd ~/src
git 克隆 https://github.com/hank-ai/darknetcd darknet
`
3. 建立建置目錄:
`bash
mkdir buildcd build
`
4.配置和建構暗網:
`bash
cmake -DCMAKEBUILDTYPE=發布 ..
使-j4
`
5. 安裝軟體包:
`bash
包裹
sudo dpkg -i darknet-VERSION.deb
`
選用:如果您有現代 NVIDIA GPU,則此時可以安裝 CUDA 或 CUDA+cuDNN。如果安裝,Darknet 將使用您的 GPU 來加速映像(和視訊)處理。
您必須從 Darknet 建置目錄中刪除 CMakeCache.txt 文件,以強制 CMake 重新尋找所有必要的文件。記得重建暗網。
Darknet 可以在沒有它的情況下運行,但如果您想訓練自訂網絡,則需要 CUDA 或 CUDA+cuDNN。
造訪 https://developer.nvidia.com/cuda-downloads 下載並安裝 CUDA。
造訪 https://developer.nvidia.com/rdp/cudnn-download 或 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview 下載並安裝cuDNN。
安裝 CUDA 後,請確保可以執行 nvcc 和 nvidia-smi。您可能必須修改 PATH 變數。
如果您稍後安裝 CUDA 或 CUDA+cuDNN,或升級至較新版本的 NVIDIA 軟體,請依照下列步驟操作:
這些說明假設(但不要求!)系統運行 Ubuntu 22.04。如果您使用不同的發行版,請根據需要進行調整。
您需要先升級 CMake,然後才能執行上面的 cmake 指令。可以使用以下命令在 Ubuntu 上升級 CMake:
`bash
sudo apt-get purge cmake
sudo snap install cmake --經典
`
如果使用 bash 作為命令 shell,此時您需要重新啟動 shell。如果使用魚,它應該立即選擇新路徑。
進階用戶:
如果您想要建立 RPM 安裝文件而不是 DEB 文件,請參閱 CM_package.cmake 中的相關行。在執行 make -j4 package 之前,您需要編輯以下兩行:
`bash
設定(CPACKGENERATOR“DEB”)#設定(CPACKGENERATOR“RPM”)
`
對於 Centos 和 OpenSUSE 等發行版,您需要將 CM_package.cmake 中的這兩行切換為:
`bash
# 設定(CPACK_GENERATOR“DEB”)
設定(CPACK_GENERATOR“RPM”)
`
若要在安裝套件完成建置後進行安裝,請使用您的發行版常用的套件管理器。例如,在基於 Debian 的系統(例如 Ubuntu)上:
`bash
sudo dpkg -i darknet-2.0.1-Linux.deb
`
安裝 .deb 套件將複製以下檔案:
- /usr/bin/darknet 是通常的 Darknet 執行檔。從 CLI 運行 darknet 版本以確認其安裝正確。
- /usr/include/darknet.h 是 C、C++ 和 Python 開發人員的 Darknet API。
- /usr/include/darknet_version.h 包含開發人員的版本資訊。
- /usr/lib/libdarknet.so 是 C、C++ 和 Python 開發人員連結的函式庫。
- /opt/darknet/cfg/... 是儲存所有 .cfg 範本的位置。
現在你已經完成了! Darknet 已建置並安裝到 /usr/bin/ 中。執行此測試:暗網版本。
如果你沒有 /usr/bin/darknet 那麼這意味著你沒有安裝它,你只是建造了它!確保如上所述安裝 .deb 或 .rpm 檔案。
Windows CMake方法
1.安裝先決條件:
`bash
winget 安裝 Git.Git
winget 安裝 Kitware.CMake
winget安裝nsis.nsis
winget安裝Microsoft.VisualStudio.2022.社區
`
2. 安裝 Visual Studio C++ 支援:
- 按一下「Windows 開始」功能表並執行「Visual Studio 安裝程式」。
- 按一下「修改」。
- 選擇使用 C++ 進行桌面開發。
- 點擊右下角的“修改”,然後按一下“是”。
3. 開啟 VS 2022 的開發人員命令提示字元:
- 下載並安裝所有內容後,再次按一下「Windows 開始」選單,然後選擇 VS 2022 的開發人員命令提示字元。你會遇到問題!
4.安裝微軟VCPKG和OpenCV:
`bash
疾病管制署:
mkdir c:srccd c:src
git 克隆 https://github.com/microsoft/vcpkgcd vcpkg
bootstrap-vcpkg.bat
.vcpkg.exe 集成
安裝.vcpkg.exe 整合 powershell.vcpkg.exe
安裝 opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
- 最後一步請耐心等待,因為它可能需要很長時間才能運行。它需要下載和構建很多東西。
5.克隆暗網儲存庫:
`bash
cd c:src
git 克隆 https://github.com/hank-ai/darknet.gitcd darknet
mkdir buildcd build
`
6. 使用 CMake 配置和建置 Darknet:
`bash
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
`
7. 建置NSIS安裝包:
`bash
msbuild.exe /property:平台=x64;設定=發布 PACKAGE.vcxproj
`
選用:如果您有現代 NVIDIA GPU,則此時可以安裝 CUDA 或 CUDA+cuDNN。如果安裝,Darknet 將使用您的 GPU 來加速映像(和視訊)處理。
您必須從 Darknet 建置目錄中刪除 CMakeCache.txt 文件,以強制 CMake 重新尋找所有必要的文件。記得重建暗網。
Darknet 可以在沒有它的情況下運行,但如果您想訓練自訂網絡,則需要 CUDA 或 CUDA+cuDNN。
造訪 https://developer.nvidia.com/cuda-downloads 下載並安裝 CUDA。
造訪 https://developer.nvidia.com/rdp/cudnn-download 或 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows 下載並安裝 cuDNN。
安裝 CUDA 後,請確保可以執行 nvcc.exe 和 nvidia-smi.exe。您可能必須修改 PATH 變數。
下載 cuDNN 後,解壓縮並將 bin、include 和 lib 目錄複製到 C:/Program Files/NVIDIA GPU Compute Toolkit/CUDA/[version]/ 中。您可能需要覆蓋一些文件。
如果您稍後安裝 CUDA 或 CUDA+cuDNN,或升級至較新版本的 NVIDIA 軟體,請依照下列步驟操作:
CUDA 必須在 Visual Studio 之後安裝。如果升級 Visual Studio,請記得重新安裝 CUDA。
成功完成前面的所有步驟後,您需要克隆 Darknet 並建立它。在此步驟中,我們還需要告訴 CMake vcpkg 所在位置,以便它可以找到 OpenCV 和其他依賴:
`bash
cd c:src
git 克隆 https://github.com/hank-ai/darknet.gitcd darknet
mkdir buildcd build
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:平台=x64;設定=發布 PACKAGE.vcxproj
`
如果出現有關某些缺少 CUDA 或 cuDNN DLL(例如 cublas64_12.dll)的錯誤,請手動將 CUDA .dll 檔案複製到與 darknet.exe 相同的輸出目錄中。例如:
`bash
複製“C:Program FilesNVIDIA GPU計算工具包CUDAv12.2bin * .dll”src-cliRelease
`
- (這是一個範例!檢查以確保您正在執行什麼版本,然後執行適合您已安裝的版本的命令。)
複製檔案後,重新執行最後的 msbuild.exe 命令以產生 NSIS 安裝包:
`bash
msbuild.exe /property:平台=x64;設定=發布 PACKAGE.vcxproj
`
進階用戶:
請注意,cmake 指令的輸出是普通的 Visual Studio 解決方案檔案 Darknet.sln。如果您是經常使用 Visual Studio GUI 而不是 msbuild.exe 來建置專案的軟體開發人員,則可以忽略命令列並在 Visual Studio 中載入 Darknet 專案。
您現在應該擁有可以運行的檔案:C:srcDarknetbuildsrc-cliReleasedarknet.exe。執行此命令來測試:C:srcDarknetbuildsrc-cliReleasedarknet.exe 版本。
若要正確安裝 Darknet、程式庫、包含檔案和必要的 DLL,請執行上一個步驟中建置的 NSIS 安裝精靈。請參閱建置目錄中的檔案 darknet-VERSION.exe。例如:
`bash
darknet-2.0.31-win64.exe
`
安裝 NSIS 安裝包將:
- 建立一個名為 Darknet 的目錄,例如 C:Program FilesDarknet。
- 安裝 CLI 應用程式、darknet.exe 和其他範例應用程式。
- 安裝所需的第 3 方 .dll 文件,例如 OpenCV 中的文件。
- 安裝必要的 Darknet .dll、.lib 和 .h 檔案以使用其他應用程式中的 darknet.dll。
- 安裝模板 .cfg 檔案。
現在你已經完成了!安裝精靈完成後,Darknet 將會安裝到 C:Program FilesDarknet 中。執行此命令來測試:C:Program FilesDarknetbindarknet.exe 版本。
如果您沒有 C:/Program Files/darknet/bin/darknet.exe 那麼這表示您沒有安裝它,您只是建置了它!確保您在上一個步驟中完成了 NSIS 安裝精靈的每個面板。
使用暗網
命令列介面
以下不是 Darknet 支援的所有命令的完整清單。
除了 Darknet CLI 之外,請注意 DarkHelp 專案 CLI,它提供了 Darknet/YOLO 的替代 CLI。 DarkHelp CLI 還具有一些在 Darknet 中無法直接使用的進階功能。您可以同時使用 Darknet CLI 和 DarkHelp CLI;它們並不互相排斥。
對於下面顯示的大多數命令,您需要 .weights 檔案以及相應的 .names 和 .cfg 檔案。您可以訓練自己的網路(強烈建議!),也可以下載某人已經訓練過並在網路上免費提供的神經網路。預訓練資料集的範例包括:
LEGO Gears(在圖像中尋找物件)
Rolodex(在圖像中尋找文字)
MSCOCO(標準80級物體偵測)
要運行的命令包括:
1. 列出一些可能會運行的命令和選項:
`bash
暗網幫助
`
2、檢查版本:
`bash
暗網版本
`
3. 使用影像進行預測:
- V2:
`bash
暗網探測器測試 cars.data cars.cfg cars_best.weights image1.jpg
`
- V3:
`bash
darknet02displayannotatedimages cars.cfg image1.jpg
`
- 黑暗幫助:
`bash
DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
`
4、輸出座標:
- V2:
`bash
暗網探測器測試animals.dataanimals.cfganimalsbest.weights-extoutputdog.jpg
`
- V3:
`bash
darknet01inference_images 動物 狗.jpg
`
- 黑暗幫助:
`bash
DarkHelp --json Animals.cfg Animals.names Animals_best.weights Dog.jpg
`
5. 處理影片:
- V2:
`bash
暗網探測器示範 Animals.data Animals.cfg Animalbest.weights -extoutput test.mp4
`
- V3:
`bash
darknet03display_videos Animals.cfg test.mp4
`
- 黑暗幫助:
`bash
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
`
6. 從網路攝影機讀取資料:
- V2:
`bash
暗網探測器示範 Animals.data Animals.cfg Animals_best.weights -c 0
`
- V3:
`bash
darknet08display_網路攝影機動物
`
7. 將結果儲存到影片中:
- V2:
`bash
暗網探測器示範 Animals.data Animals.cfg Animalbest.weights test.mp4 -outfilename res.avi
`
- V3:
`bash
darknet05processvideos多線程animals.cfganimals.namesanimals_best.weightstest.mp4
`
- 黑暗幫助:
`bash
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
`
8.JSON:
- V2:
`bash
暗網探測器示範animals.data Animals.cfg Animalbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
`
- V3:
`bash
darknet06imagestojson 動物 image1.jpg
`
- 黑暗幫助:
`bash
DarkHelp --json Animals.names Animals.cfg Animals_best.weights image1.jpg
`
9. 在特定GPU上運作:
- V2:
`bash
暗網探測器示範 Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
`
10. 檢查神經網路的準確性:
`bash
暗網探測器地圖 Driving.data Driving.cfg Driving_best.weights ...
`
輸出:
`
ID 名稱 AvgPrecision TP FN FP TN 準確度 錯誤率 精確度 召回率 特異性 FalsePosRate
------ ------------ ------ ------ ------ ------ -------- --------- --------- ------ ----------- ------------
0 輛 91.2495 32648 3903 5826 65129 0.9095 0.0905 0.8486 0.8932 0.9179 0.0821
1 摩托車 80.4499 2936 513 569 5393 0.8850 0.1150 0.8377 0.8513 0.9046 0.0954
2 自行車 89.0912 570 124 104 3548 0.9475 0.0525 0.8457 0.8213 0.9715 0.0285
3人 76.7937 7072 1727 2574 27523 0.8894 0.1106 0.7332 0.8037 0.9145 0.0855
4多輛車 64.3089 1068 509 733 11288 0.9087 0.0913 0.5930 0.6772 0.9390 0.0610
5 綠光 86.8118 1969 239 510 4116 0.8904 0.1096 0.7943 0.8918 0.8898 0.1102
6 黃光 82.0390 126 38 30 1239 0.9525 0.0475 0.8077 0.7683 0.9764 0.0236
7 紅光 94.1033 3449 217 451 4643 0.9237 0.0763 0.8844 0.9408 0.9115 0.0885
`
11. 檢查精度 mAP@IoU=75:
`bash
暗網探測器地圖animals.dataanimals.cfganimalsbest.weights-iouthresh 0.75
`
12. 重新計算錨點:
`bash
暗網探測器 calcanchors Animals.data -numof_clusters 6 -寬度 320 -高度 256
`
13. 訓練新網路:
`bash
暗網探測器-map-dont_show火車animals.dataanimals.cfg
`
訓練
暗網/YOLO 常見問題相關部分的快速連結:
我應該如何設定我的文件和目錄?
我應該使用哪個設定檔?
訓練自己的網路時應該使用什麼指令?
最簡單的註解和訓練方法是使用 DarkMark 建立所有必要的 Darknet 檔案。這絕對是訓練新神經網路的推薦方法。
如果您希望手動設定各種文件來訓練自訂網絡,請按照以下步驟操作:
1. 為您的專案建立一個新資料夾:
- 對於此範例,將建立一個神經網路來偵測動物,因此建立以下目錄:~/nn/animals/。
2. 複製設定檔作為範本:
- 複製您想要用作範本的暗網設定檔之一。例如,請參閱 cfg/yolov4-tiny.cfg。將其放入您建立的資料夾中。對於此範例,我們現在有 ~/nn/animals/animals.cfg。
3. 建立animals.names文字檔:
- 在放置設定檔的相同資料夾中建立animals.names 文字檔案。對於此範例,我們現在有 ~/nn/animals/animals.names。
4. 編輯animals.names檔:
- 使用文字編輯器編輯animals.names 檔案。列出您要使用的類別。每行必須有 1 個條目,沒有空白行,也沒有註解。對於此範例,.names 檔案將包含 4 行:
`
狗
貓
鳥
馬
`
5. 建立animals.data文字檔:
- 在同一資料夾中建立animals.data 文字檔。對於此範例,.data 檔案將包含:
`
班級 = 4
火車 = /home/使用者名稱/nn/animals/animals_train.txt
有效 = /home/使用者名稱/nn/animals/animals_valid.txt
名稱 = /home/使用者名稱/nn/animals/animals.names
備份= /home/用戶名/nn/animals
`
6. 為圖像和註釋建立一個資料夾:
- 建立一個資料夾,用於儲存影像和註釋。例如,這可能是 ~/nn/animals/dataset。每個圖像都需要一個相應的 .txt 檔案來描述該圖像的註釋。 .txt 註解文件的格式非常具體。您無法手動建立這些文件,因為每個註釋都需要包含註釋的精確座標。請參閱 DarkMark 或其他類似軟體來註釋您的影像。 YOLO 註釋格式在 Darknet/YOLO FAQ 中有描述。
7. 建立「train」和「valid」文字檔:
- 建立在 .data 檔案中命名的「train」和「valid」文字檔案。這兩個文字檔案需要單獨列出 Darknet 在計算 mAP% 時必須用於訓練和驗證的所有圖像。每行只有一張圖像。路徑和檔案名稱可以是相對的或絕對的。
8. 修改您的.cfg 檔案:
- 使用文字編輯器修改您的.cfg 檔案。
- 確保批次=64。
- 注意細分。根據網路尺寸和 GPU 上可用的記憶體量,您可能需要增加細分。最好使用的值為 1,因此從該值開始。如果 1 不適合您,請參閱 Darknet/YOLO 常見問題。
- 注意 maxbatches=..... 開始時使用的一個很好的值是 2000 x 類別數。對於此範例,我們有 4 隻動物,因此 4 * 2000 = 8000。
- 注意steps=.....這應該設定為maxbatch的80%和90%。對於此範例,我們將使用steps=6400,7200,因為 maxbatches 設定為 8000。
- 注意 width=... 和 height=..... 這些是網路尺寸。 Darknet/YOLO 常見問題說明如何計算最佳使用大小。
- 搜尋 class=... 行的所有實例,並使用 .names 檔案中的類別數對其進行修改。對於本例,我們將使用classes=4。
- 在每個 [yolo] 部分之前的 [卷積] 部分中搜尋線路過濾器=... 的所有實例。要使用的值是 (numberofclasses + 5) 3。
9. 開始訓練:
- 執行以下命令:
`bash
cd ~/nn/動物/
暗網探測器-map-dont_show火車animals.dataanimals.cfg
`
要有耐心。最佳權重將儲存為animals_best.weights。並且可以透過查看chart.png檔案來觀察訓練的進度。請參閱 Darknet/YOLO 常見問題解答,以了解訓練新網路時可能需要使用的其他參數。
如果您想在訓練過程中查看更多詳細信息,請添加 --verbose 參數。例如:
`bash
暗網探測器-map -dont_show --verbose 訓練animals.data Animals.cfg
`
其他工具和鏈接
若要管理您的 Darknet/YOLO 專案、註釋影像、驗證註釋並產生使用 Darknet 進行訓練所需的文件,請參閱 DarkMark。
如需 Darknet 的強大替代 CLI、使用圖像平鋪、影片中的物件跟踪,或可輕鬆在商業應用程式中使用的強大 C++ API,請參閱 DarkHelp。
查看 Darknet/YOLO 常見問題是否可以幫助回答您的問題。
在 Stéphane 的 YouTube 頻道上觀看許多教程和示例視頻
如果您有支援問題或想與其他 Darknet/YOLO 用戶聊天,請加入 Darknet/YOLO 不和諧伺服器。
路線圖
最後更新於 2024 年 10 月 30 日:
完全的
將訓練期間使用的 qsort() 替換為 std::sort() (仍有其他一些模糊的)。
擺脫 check_mistakes、getchar() 和 system()。
將 Darknet 轉換為使用 C++ 編譯器(Linux 上為 g++,Windows 上為 VisualStudio)。
修復 Windows 建置。
修復 Python 支援。
建置暗網庫。
重新啟用預測標籤(“字母”代碼)。
重新啟用 CUDA/GPU 代碼。
重新啟用 CUDNN。
重新啟用 CUDNN 一半。
不要對 CUDA 架構進行硬編碼。
更好的 CUDA 版本資訊。
重新啟用 AVX。
刪除舊的解決方案和 Makefile。
使 OpenCV 成為非可選。
刪除對舊 pthread 函式庫的依賴。
刪除機上盒。
重寫 CMakeLists.txt 以使用新的 CUDA 檢測。
刪除舊的“字母”代碼,並刪除資料/標籤中的 700 多個圖像。
建構外源。
有更好的版本號輸出。
與培訓(正在進行的任務)相關的性能優化。
與推理相關的效能最佳化(正在進行的任務)。
盡可能透過引用傳遞。
清理 .hpp 檔案。
重寫darknet.h。
不要將 cv::Mat 轉換為 void*,而是將其用作正確的 C++ 物件。
修復或保持內部影像結構的使用方式一致。
修復基於 ARM 的 Jetson 設備的建置。
- 原始 Jetson 裝置不太可能已修復,因為 NVIDIA 不再支援它們(無 C++17 編譯器)。
- 新的 Jetson Orin 設備正在運作。
修復 V3 中的 Python API。
- 需要對 Python 提供更好的支援(任何 Python 開發人員想為此提供協助嗎?)
短期目標
將 printf() 替換為 std::cout (正在進行中)。
查看舊版 zed 相機支援。
更好、更一致的命令列解析(正在進行中)。
中期目標
刪除所有 char* 程式碼並替換為 std::string。
不要隱藏警告並清除編譯器警告(正在進行中)。
更好地使用 cv::Mat 而不是 C 中的自訂影像結構(正在進行中)。
用 std::vector 或 ` 取代舊的列表功能