暗網目標偵測框架與 YOLO
文件
一般資訊
暗網版本
MSCOCO 預訓練權重
大樓
Google合作實驗室
Linux CMake方法
Windows CMake方法
使用暗網
命令列介面
訓練
其他工具和鏈接
路線圖
短期目標
中期目標
長期目標
Darknet 是一個用 C、C++ 和 CUDA 寫的開源神經網路框架。
YOLO(You Only Look Once)是一個最先進的即時目標偵測系統,運行在 Darknet 框架中。
了解Hank.ai 如何幫助 Darknet/YOLO 社區
宣布暗網 V3“爵士樂”
請參閱Darknet/YOLO 網站
請仔細閱讀Darknet/YOLO 常見問題解答
加入Darknet/YOLO Discord 伺服器
論文YOLOv7
紙比例-YOLOv4
論文YOLOv4
論文YOLOv3
Darknet/YOLO 框架仍然比其他框架和 YOLO 版本更快、更準確。
該框架是完全免費且開源的。 您可以將 Darknet/YOLO 整合到現有的項目和產品中(包括商業項目和產品),而無需許可證或支付費用。
2024 年 10 月發布的 Darknet V3(“Jazz”)在使用 NVIDIA RTX 3090 GPU 時可以以高達1000 FPS 的速度準確運行樂高數據集視頻,這意味著每個視頻幀都可以由Darknet/YOLO 在1 毫秒或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 上運作。 請參閱下面的建置說明。
Joseph Redmon 在 2013-2017 年所寫的原始暗網工具沒有版本號。 我們認為這個版本是 0.x。
Alexey Bochkovskiy 在 2017 年至 2021 年間維護的下一個流行的暗網儲存庫也沒有版本號。 我們認為這個版本是 1.x。
從 2023 年開始,由 Hank.ai 贊助並由 Stéphane Charette 維護的 Darknet 儲存庫是第一個帶有version
命令的儲存庫。 從 2023 年到 2024 年底,它返回了版本 2.x「OAK」。
目標是在熟悉程式碼庫的同時嘗試盡可能少地破壞現有功能。
重新編寫了建置步驟,以便我們有 1 種統一的方式在 Windows 和 Linux 上使用 CMake 進行建置。
將程式碼庫轉換為使用 C++ 編譯器。
訓練時增強了chart.png。
錯誤修復和與效能相關的最佳化,主要與減少訓練網路所需的時間有關。
該程式碼庫的最後一個分支是v2
分支中的版本 2.1。
下一階段的開發於 2024 年中期version
,並於 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
為了方便起見,YOLO 的幾個流行版本在 MSCOCO 資料集上進行了預訓練。 該資料集有 80 個類,可以在文字檔案cfg/coco.names
中看到。
還有其他幾個更簡單的資料集和預訓練權重可用於測試 Darknet/YOLO,例如 LEGO Gears 和 Rolodex。 有關詳細信息,請參閱 Darknet/YOLO 常見問題解答。
MSCOCO 預訓練權重可以從幾個不同的位置下載,也可以從此儲存庫下載:
YOLOv2,2016 年 11 月
YOLOv2-微小
YOLOv2-full
YOLOv3,2018 年 5 月
YOLOv3-微小
YOLOv3-full
YOLOv4,2020 年 5 月
YOLOv4-小
YOLOv4-full
YOLOv7,2022 年 8 月
YOLOv7-微小
YOLOv7-full
MSCOCO 預訓練權重僅用於演示目的。 MSCOCO 對應的.cfg
和.names
檔案位於 cfg 目錄中。 命令範例:
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights darknet_02_display_annotated_images coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg darknet_03_display_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,就像您不需要成為機械師來駕駛汽車一樣。
Google合作實驗室
Linux
視窗
如果您遵循具有更複雜建置步驟的舊教學課程,或建置步驟與本自述文件中的內容不匹配,請注意。如下所述的新建步驟於 2023 年 8 月開始。
我們鼓勵軟體開發人員造訪 https://darknetcv.ai/ 以取得有關 Darknet/YOLO 物件偵測框架內部的資訊。
Google Colab 指令與 Linux 指令相同。 有多個 Jupyter 筆記本可以展示如何執行某些任務,例如訓練新網路。
請參閱colab
子目錄中的筆記本,和/或按照下面的 Linux 說明進行操作。
選用:如果您有現代 NVIDIA GPU,則此時可以安裝 CUDA 或 CUDA+cuDNN。 如果安裝,Darknet 將使用您的 GPU 來加速映像(和視訊)處理。
您必須從 Darknet build
目錄中刪除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。 如果您使用不同的發行版,請根據需要進行調整。
sudo apt-get install build-essential git libopencv-dev cmake mkdir ~/srccd ~/src git 克隆 https://github.com/hank-ai/darknetcd darknet mkdir buildcd build cmake -DCMAKE_BUILD_TYPE=發布 .. 製作-j4包 sudo dpkg -i darknet-<插入版本-您在此處建置>.deb
如果您使用的是舊版的 CMake ,則需要先升級 CMake,然後才能執行上面的cmake
指令。 可以使用以下命令在 Ubuntu 上升級 CMake:
sudo apt-get purge cmake sudo snap install cmake --經典
如果使用bash
作為命令 shell,此時您需要重新啟動 shell。 如果使用fish
,它應該立即選擇新路徑。
進階用戶:
如果您想要建立 RPM 安裝文件而不是 DEB 文件,請參閱
CM_package.cmake
中的相關行。 在執行make -j4 package
之前,您需要編輯以下兩行:
SET (CPACK_GENERATOR "DEB")# SET (CPACK_GENERATOR "RPM")
對於 Centos 和 OpenSUSE 等發行版,您需要將
CM_package.cmake
中的這兩行切換為:
# SET (CPACK_GENERATOR "DEB")SET (CPACK_GENERATOR "RPM")
若要在安裝套件完成建置後進行安裝,請使用您的發行版常用的套件管理器。 例如,在基於 Debian 的系統(例如 Ubuntu)上:
sudo dpkg -i darknet-2.0.1-Linux.deb
安裝.deb
套件將複製以下檔案:
/usr/bin/darknet
是通常的 Darknet 執行檔。 從 CLI 運行darknet version
以確認其安裝正確。
/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/
中。 執行此命令來測試: darknet version
。
如果你沒有
/usr/bin/darknet
那麼這意味著你沒有安裝它,你只是建造了它! 確保如上所述安裝.deb
或.rpm
檔。
這些說明假定全新安裝 Windows 11 22H2。
開啟普通的cmd.exe
命令提示字元視窗並執行以下命令:
winget 安裝 Git.Git winget 安裝 Kitware.CMake winget安裝nsis.nsis winget安裝Microsoft.VisualStudio.2022.社區
此時我們需要修改 Visual Studio 安裝以包含對 C++ 應用程式的支援:
點擊“Windows 開始”功能表並執行“Visual Studio Installer”
點選Modify
選擇Desktop Development With C++
點選右下角的Modify
,然後Developer Command Prompt for VS 2022
Yes
。不要使用 PowerShell 執行這些步驟,您會遇到問題!
進階用戶:
您可以使用普通命令提示字元或 ssh 進入裝置並手動執行
"Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat"
,而不是執行Developer Command Prompt
。
很多人都會犯同樣的錯誤,並認為他們可以跳過上一步。請不要跳過這一步!不要使用普通的命令提示字元或 PowerShell! 重新閱讀上述步驟,看看您必須使用哪種類型的視窗。 每當您想要從命令提示字元使用 Visual Studio 來編譯 C++ 程式碼時,您必須使用 Visual Studio 開發人員命令提示符,如上所述。
如上所述執行開發人員命令提示字元後,執行以下命令來安裝 Microsoft VCPKG,然後它將用於建置 OpenCV:
cd c:mkdir c:srccd c:src git 克隆 https://github.com/microsoft/vcpkgcd vcpkg bootstrap-vcpkg.bat .vcpkg.exe 整合安裝 .vcpkg.exe 整合 powershell。
最後一步請耐心等待,因為它可能需要很長時間才能運行。 它需要下載和構建很多東西。
進階用戶:
請注意,在建置 OpenCV 時您可能需要添加許多其他可選模組。 運行
.vcpkg.exe search opencv
以查看完整列表。
選用:如果您有現代 NVIDIA GPU,則此時可以安裝 CUDA 或 CUDA+cuDNN。 如果安裝,Darknet 將使用您的 GPU 來加速映像(和視訊)處理。
您必須從 Darknet build
目錄中刪除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 Computing Toolkit/CUDA/[version]/
中。 您可能需要覆蓋一些文件。
如果您稍後安裝 CUDA 或 CUDA+cuDNN,或升級到較新版本的 NVIDIA 軟體:
CUDA必須在 Visual Studio之後安裝。 如果升級 Visual Studio,請記得重新安裝 CUDA。
成功完成前面的所有步驟後,您需要克隆 Darknet 並建立它。 在此步驟中,我們還需要告訴 CMake vcpkg 所在位置,以便它可以找到 OpenCV 和其他依賴:
cd c:src git 克隆 https://github.com/hank-ai/darknet.gitcd darknetmkdir buildcd 構建 cmake -DCMAKE_BUILD_TYPE=發布-DCMAKE_TOOLCHAIN_FILE=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
相同的輸出目錄中。 例如:
複製「C: Program Files NVIDIA GPU運算工具包 CUDA v12.2 bin *.dll」src-cli Release
(這是一個範例!檢查以確保您正在執行什麼版本,然後執行適合您已安裝的版本的命令。)
複製檔案後,重新執行最後的msbuild.exe
命令以產生 NSIS 安裝包:
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 --version
。
若要正確安裝 Darknet、程式庫、包含檔案和必要的 DLL,請執行上一個步驟中建置的 NSIS 安裝精靈。 請參閱build
目錄中的檔案darknet-<INSERT-VERSION-YOU-BUILT-HERE>-win64.exe
。 例如:
darknet-<插入版本-您在此處建置>-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 version
。
如果您沒有
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級物體偵測)
要運行的命令包括:
列出一些可能運行的命令和選項:
darknet help
檢查版本:
darknet version
使用影像進行預測:
V2: darknet detector test cars.data cars.cfg cars_best.weights image1.jpg
V3: darknet_02_display_annotated_images cars.cfg image1.jpg
DarkHelp: DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
輸出座標:
V2: darknet detector test animals.data animals.cfg animals_best.weights -ext_output dog.jpg
V3: darknet_01_inference_images animals dog.jpg
DarkHelp: DarkHelp --json animals.cfg animals.names animals_best.weights dog.jpg
處理影片:
V2: darknet detector demo animals.data animals.cfg animals_best.weights -ext_output test.mp4
V3: darknet_03_display_videos animals.cfg test.mp4
DarkHelp: DarkHelp animals.cfg animals.names animals_best.weights test.mp4
從網路攝影機讀取:
V2: darknet detector demo animals.data animals.cfg animals_best.weights -c 0
V3: darknet_08_display_webcam animals
將結果儲存到影片:
V2: darknet detector demo animals.data animals.cfg animals_best.weights test.mp4 -out_filename res.avi
V3: darknet_05_process_videos_multithreaded animals.cfg animals.names animals_best.weights test.mp4
DarkHelp: DarkHelp animals.cfg animals.names animals_best.weights test.mp4
JSON:
V2: darknet detector demo animals.data animals.cfg animals_best.weights test50.mp4 -json_port 8070 -mjpeg_port 8090 -ext_output
V3: darknet_06_images_to_json animals image1.jpg
DarkHelp: DarkHelp --json animals.names animals.cfg animals_best.weights image1.jpg
在特定 GPU 上運行:
V2: darknet detector demo animals.data animals.cfg animals_best.weights -i 1 test.mp4
檢查神經網路的準確性:
暗網探測器地圖 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
檢查精度 mAP@IoU=75:
darknet detector map animals.data animals.cfg animals_best.weights -iou_thresh 0.75
重新計算錨點最好在 DarkMark 中完成,因為它將連續運行 100 次並從所有計算的錨點中選擇最佳錨點。 但如果你想在 Darknet 中運行舊版:
暗網偵測器 calc_anchors Animals.data -num_of_clusters 6 -寬度 320 -高度 256
訓練一個新網路:
darknet detector -map -dont_show train animals.data animals.cfg
(另請參閱下面的訓練部分)
暗網/YOLO 常見問題相關部分的快速連結:
我應該如何設定我的文件和目錄?
我應該使用哪個設定檔?
訓練自己的網路時應該使用什麼指令?
最簡單的註解和訓練方法是使用 DarkMark 建立所有必要的 Darknet 檔案。 這絕對是訓練新神經網路的推薦方法。
如果您想手動設定各種文件來訓練自訂網路:
建立一個用於儲存檔案的新資料夾。 對於此範例,將建立一個神經網路來偵測動物,因此建立以下目錄: ~/nn/animals/
。
複製您想要用作範本的暗網設定檔之一。 例如,請參閱cfg/yolov4-tiny.cfg
。 將其放入您建立的資料夾中。 對於這個例子,我們現在有~/nn/animals/animals.cfg
。
在放置設定檔的相同資料夾中建立animals.names
文字檔案。 對於這個例子,我們現在有~/nn/animals/animals.names
。
使用文字編輯器編輯animals.names
檔案。 列出您要使用的類別。 每行必須有 1 個條目,沒有空白行,也沒有註解。 對於此範例, .names
檔案將包含 4 行:
狗 貓 鳥 馬
在同一資料夾中建立animals.data
文字檔。 對於此範例, .data
檔案將包含:
班級 = 4 火車 = /home/使用者名稱/nn/animals/animals_train.txt 有效 = /home/使用者名稱/nn/animals/animals_valid.txt 名稱 = /home/使用者名稱/nn/animals/animals.names 備份= /home/用戶名/nn/animals
建立一個資料夾,用於儲存圖像和註釋。 例如,這可能是~/nn/animals/dataset
。 每個影像都需要一個對應的.txt
檔案來描述該影像的註解。 .txt
註解文件的格式非常具體。 您無法手動建立這些文件,因為每個註釋都需要包含註釋的精確座標。 請參閱 DarkMark 或其他類似軟體來註釋您的影像。 YOLO 註釋格式在 Darknet/YOLO FAQ 中有描述。
建立在.data
檔案中命名的「train」和「valid」文字檔。 這兩個文字檔案需要單獨列出 Darknet 在計算 mAP% 時必須用於訓練和驗證的所有圖像。 每行只有一張圖像。 路徑和檔案名稱可以是相對的或絕對的。
使用文字編輯器修改.cfg
檔。
確保batch=64
。
注意細分。 根據網路尺寸和 GPU 上可用的記憶體量,您可能需要增加細分。 最好使用的值是1
,因此從該值開始。 如果1
不適合您,請參閱 Darknet/YOLO 常見問題。
注意max_batches=...
。 開始時使用的一個很好的值是 2000 x 類別數。 對於這個例子,我們有 4 隻動物,所以 4 * 2000 = max_batches=8000
。
注意steps=...
應設定為max_batches
的 80% 和 90%。 對於本例,我們將使用steps=6400,7200
,因為max_batches
設定為8000。
注意width=...
和height=...
。 這些是網路維度。 Darknet/YOLO 常見問題說明如何計算最佳使用大小。
搜尋classes=...
行的所有實例,並使用.names
檔案中的類別數對其進行修改。 對於此範例,我們將使用classes=4
。
在每個[yolo]
部分之前的[convolutional]
部分中搜尋filters=...
的所有實例。 要使用的值是 ( filters=27
+ 5) * 3。
開始訓練! 運行以下命令:
cd ~/nn/動物/ 暗網探測器-map-dont_show火車animals.dataanimals.cfg
要有耐心。 最佳權重將儲存為animals_best.weights
。 並且可以透過查看chart.png
檔案來觀察訓練的進度。 請參閱 Darknet/YOLO 常見問題解答,以了解訓練新網路時可能需要使用的其他參數。
如果您想在訓練過程中查看更多詳細信息,請添加--verbose
參數。 例如:
暗網探測器-map-dont_show--verbose火車animals.dataanimals.cfg
若要管理您的 Darknet/YOLO 專案、註釋影像、驗證註釋並產生使用 Darknet 進行訓練所需的文件,請參閱 DarkMark。
如需 Darknet 的強大替代 CLI、使用圖像平鋪、影片中的物件跟踪,或可輕鬆在商業應用程式中使用的強大 C++ API,請參閱 DarkHelp。
查看 Darknet/YOLO 常見問題是否可以幫助回答您的問題。
在 Stéphane 的 YouTube 頻道上觀看許多教程和示例視頻
如果您有支援問題或想與其他 Darknet/YOLO 用戶聊天,請加入 Darknet/YOLO 不和諧伺服器。
最後更新於 2024 年 11 月 2 日:
將 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++ 對象
修復或保持內部image
結構的使用方式一致
修復基於 ARM 的 Jetson 設備的構建
原始 Jetson 設備(不太可能修復,因為 NVIDIA 不再支援它們並且沒有 C++17 編譯器)
新的 Jetson Orin 設備正在運行
修復 V3 中的 Python API
需要對 Python 提供更好的支援(任何 Python 開發人員想為此提供協助嗎?)
將 printf() 替換為 std::cout (正在進行中)
看看舊的 zed 相機支持
更好、更一致的命令列解析(正在進行中)
刪除所有char*
程式碼並替換為std::string
不要隱藏警告並清理編譯器警告(正在進行中)
更好地使用cv::Mat
而不是 C 中的自訂image
結構(正在進行中)
用std::vector
或std::list
取代舊的list
功能
修復對 1 通道灰階影像的支持
添加對 N 通道圖像的支持,其中 N > 3(例如,具有附加深度或熱通道的圖像)
正在進行的程式碼清理(正在進行中)
修復所有 GPU 的 CUDA/CUDNN 問題
重寫CUDA+cuDNN程式碼
考慮新增對非 NVIDIA GPU 的支持
旋轉邊界框,或某種“角度”支持
關鍵點/骨架
熱圖(進行中)
分割