暗網目標偵測框架與 YOLO
Darknet 是一個使用 C、C++ 和 CUDA 製作的開源神經網路框架。它是 YOLO(You Only Look Once)的基礎,YOLO 是一種尖端的即時物體檢測系統,以其速度和準確性而聞名。
了解 Hank.ai 如何支持 Darknet/YOLO 社群:[Hank.ai 部落格連結]
探索 Darknet/YOLO 官方網站:[Darknet 網站連結]
深入了解全面的 Darknet/YOLO 常見問題:[常見問題連結]
與 Discord 上充滿活力的 Darknet/YOLO 社群互動:[Discord 伺服器連結]
文件
1. YOLOv7:[論文連結]
2. Scaled-YOLOv4:[論文連結]
3. YOLOv4:[論文連結]
4. YOLOv3:[論文連結]
一般資訊
Darknet/YOLO框架在速度和準確性方面繼續主導其他框架和YOLO版本。其開源性質和完全免收許可費用,可以無縫整合到現有項目和商業產品中。
Darknet V3(「Jazz」)於 2024 年 10 月發布,實現了卓越的效能,使用 NVIDIA RTX 3090 GPU 以驚人的 1000 FPS 處理樂高資料集影片。這意味著每個視訊畫面的處理時間不到 1 毫秒。
透過 [Discord 伺服器連結] 加入活躍的 Darknet/YOLO Discord 伺服器以獲得支援、討論和協作學習。
Darknet/YOLO 適合各種設備,從 Raspberry Pi 到高階訓練設備,支援 CPU 和 GPU 版本。 GPU 版本需要 NVIDIA 提供的支援 CUDA 的 GPU。
Darknet/YOLO 與 Linux、Windows 和 Mac 作業系統相容。請在下面找到詳細的建造說明。
暗網版本
最初的暗網工具由 Joseph Redmon 在 2013 年至 2017 年期間開發,缺乏版本號。我們將此版本指定為 0.x。
Alexey Bochkovskiy 從 2017 年到 2021 年繼續維護流行的 Darknet 儲存庫,同樣沒有版本號。我們將此稱為版本 1.x。
由 Hank.ai 贊助並自 2023 年起由 Stéphane Charette 維護的 Darknet 儲存庫引入了「version」命令。 2023 年至 2024 年底期間,它返回了版本 2.x「OAK」。
開發目標是盡量減少對現有功能的干擾,同時熟悉程式碼庫。主要改進包括:
統一建置過程:重寫建置步驟,以在 Windows 和 Linux 上實作基於 CMake 的一致建置流程。
C++ 程式碼庫:轉換程式碼庫以利用 C++ 編譯器。
增強的訓練圖表:改進了訓練過程中的chart.png視覺化。
錯誤修復和最佳化:與表現相關的增強,重點是減少訓練時間。
該程式碼庫的最後一個分支是版本 2.1,位於「v2」分支。
下一階段的開發於 2024 年中期開始,並最終於 2024 年 10 月發布 3.x「JAZZ」版本。
您始終可以存取先前的“v2”分支來執行這些版本中的命令。如果您遇到任何遺失的命令,請通知我們,我們將調查它們的重新整合。
Darknet V3 的重大變更包括:
命令刪除:刪除過時和不常用的命令。
表現優化:訓練和推理表現的增強。
Legacy API修改:對遺留C API的修改;使用原始 Darknet API 的應用程式可能需要進行細微調整。
新的 C/C++ API:引進新的 Darknet V3 C 和 C++ API。
更新的範例程式碼:在「src-examples」目錄中包含新應用程式和範例程式碼。
有關新 API 的詳細資訊:[Darknet V3 API 文件連結]
探索更新的範例程式碼:[Darknet V3 API 檔案連結]
MSCOCO 預訓練權重
為了方便起見,幾個流行的 YOLO 版本已經在 MSCOCO 資料集上進行了預訓練。該資料集包含 80 個類,可以在「cfg/coco.names」文字檔案中輕鬆識別。
除了 MSCOCO 之外,Darknet/YOLO 還為 LEGO Gears 和 Rolodex 等更簡單的資料集提供預訓練權重,讓您嘗試各種場景。有關詳細信息,請參閱 Darknet/YOLO 常見問題解答。
MSCOCO 預訓練權重可從多個來源存取,包括此儲存庫:
YOLOv2(2016 年 11 月):
YOLOv2-tiny:[權重連結]
YOLOv2-full:[權重連結]
YOLOv3(2018 年 5 月):
YOLOv3-tiny:[權重連結]
YOLOv3-full:[權重連結]
YOLOv4(2020 年 5 月):
YOLOv4-tiny:[權重連結]
YOLOv4-full:[權重連結]
YOLOv7(2022 年 8 月):
YOLOv7-tiny:[權重連結]
YOLOv7-full:[權重連結]
這些預先訓練的權重主要用於演示目的。 MSCOCO 對應的 .cfg 和 .names 檔案位於「cfg」目錄中。命令範例:
`
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 產生必要的專案文件。
建造、安裝和運行 Darknet/YOLO 不需要 C++ 專業知識,類似於無需機械師即可駕駛汽車。
Google合作實驗室
Google Colab 指令與 Linux 指令相同。幾個 Jupyter 筆記本示範了各種任務,例如訓練新網路。
瀏覽「colab」子目錄中的筆記本或按照下面的 Linux 說明進行操作。
Linux CMake方法
Linux 暗網建置教學課程
選用:如果您有現代 NVIDIA GPU,則此時可以安裝 CUDA 或 CUDA+cuDNN。如果安裝,Darknet 將使用您的 GPU 來加速映像(和視訊)處理。
您必須從 Darknet 建置目錄中刪除 CMakeCache.txt 文件,以強制 CMake 重新尋找所有必要的文件。
記得重建暗網。
Darknet 可以在沒有它的情況下運行,但如果您想訓練自訂網絡,則需要 CUDA 或 CUDA+cuDNN。
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.配置CMake:
`bash
cmake -DCMAKEBUILDTYPE=發布 ..
`
5. 建構暗網:
`bash
使-j4
`
6. 打包暗網:
`bash
包裹
`
7.安裝包:
`bash
sudo dpkg -i darknet-VERSION.deb
`
如果您使用的是舊版的 CMake,則需要先升級 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”之前,請調整這些行:
`cmake
設定(CPACKGENERATOR“DEB”)#設定(CPACKGENERATOR“RPM”)
`
對於 Centos 和 OpenSUSE 等發行版,請如下修改這些行:
`cmake
設定(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 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/ 中。執行“暗網版本”來驗證安裝。
如果你沒有 /usr/bin/darknet,這表示你只是建造了它,而不是安裝了它。確保如上所述安裝 .deb 或 .rpm 檔案。
Windows CMake方法
這些說明假定全新安裝 Windows 11 22H2。
1. 使用 Winget 安裝先決條件:
`bash
winget 安裝 Git.Git
winget 安裝 Kitware.CMake
winget安裝nsis.nsis
winget安裝Microsoft.VisualStudio.2022.社區
`
2.修改Visual Studio安裝:
- 按一下「Windows 開始」功能表並執行「Visual Studio 安裝程式」。
- 按一下「修改」。
- 選擇「使用 C++ 進行桌面開發」。
- 點擊右下角的“修改”,然後按一下“是”。
3.安裝微軟VCPKG:
- 安裝完成後,按一下「Windows 開始」功能表並選擇「VS 2022 的開發人員命令提示字元」。不要使用 PowerShell 執行這些步驟,這會導致問題!
- 進階使用者:您可以執行普通命令提示字元或 ssh 進入裝置並手動執行“Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat”,而不是使用開發人員命令提示字元。
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
`
在此步驟中請耐心等待,因為下載和建置依賴項可能需要大量時間。
進階用戶:
- 請注意,在建置 OpenCV 時您可能需要添加許多其他可選模組。運行 .vcpkg.exe 搜尋 opencv 以查看完整清單。
選用:如果您有現代 NVIDIA GPU,則此時可以安裝 CUDA 或 CUDA+cuDNN。如果安裝,Darknet 將使用您的 GPU 來加速映像(和視訊)處理。
您必須從 Darknet 建置目錄中刪除 CMakeCache.txt 文件,以強制 CMake 重新尋找所有必要的文件。
記得重建暗網。
Darknet 可以在沒有它的情況下運行,但如果您想訓練自訂網絡,則需要 CUDA 或 CUDA+cuDNN。
1.安裝CUDA:
造訪 https://developer.nvidia.com/cuda-downloads 下載並安裝 CUDA。
2.安裝cuDNN:
造訪 https://developer.nvidia.com/rdp/cudnn-download 或 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows 下載並安裝 cuDNN。
3.驗證CUDA安裝:
安裝 CUDA 後,請確保可以執行 nvcc.exe 和 nvidia-smi.exe。您可能需要調整 PATH 變數。
4.整合cuDNN:
解壓縮下載的 cuDNN 檔案並將「bin」、「include」和「lib」目錄複製到 C:Program FilesNVIDIA GPU Compute ToolkitCUDA[版本]。您可能需要覆蓋現有文件。
5.在Visual Studio之後安裝CUDA:
- CUDA 必須在 Visual Studio 之後安裝。如果升級 Visual Studio,請記得重新安裝 CUDA。
6. 克隆暗網並建構:
`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
`
7. 處理缺失的 CUDA/cuDNN DLL:
- 如果遇到缺少 CUDA 或 cuDNN DLL(例如 cublas64_12.dll)的錯誤,請手動將相關 CUDA .dll 檔案複製到 darknet.exe 所在的目錄中。例如:
`bash
複製“C: Program Files NVIDIA GPU計算工具包 CUDA v12.2 bin * .dll” src-cliRelease
`
(這是一個範例。驗證您的 CUDA 版本並執行適當的命令。)
- 重新執行最後一個msbuild.exe指令以產生NSIS安裝包。
進階用戶:
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 文件,例如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 提供了替代介面。它包括暗網中不直接提供的一些高級功能。您可以同時使用 Darknet CLI 和 DarkHelp CLI;它們並不互相排斥。
對於下面的大多數命令,您將需要 .weights 檔案以及相應的 .names 和 .cfg 檔案。您可以訓練自己的網路(強烈建議!)或從公開資源下載預先訓練的神經網路。一些例子包括:
LEGO Gears(影像中的物件偵測)
Rolodex(影像中的文字偵測)
MSCOCO(標準80級物體偵測)
以下是一些範例命令及其用法:
基本指令:
幫助:
`bash
暗網幫助
`
版本:
`bash
暗網版本
`
影像預測:
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
`
輸出座標:
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
`
處理影片:
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
`
網路攝影機輸入:
V2:
`bash
暗網探測器示範 Animals.data Animals.cfg Animals_best.weights -c 0
`
V3:
`bash
darknet08display_網路攝影機動物
`
將結果儲存到影片:
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
`
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
`
在特定 GPU 上運行:
V2:
`bash
暗網探測器示範 Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
`
檢查網路準確性:
地圖:
`bash
暗網探測器地圖 Driving.data Driving.cfg moving_best.weights ...
`
- 此指令將顯示資料集中每個類別的平均精確度 (AP)。
映射@IoU=75:
`bash
暗網探測器地圖animals.dataanimals.cfganimalsbest.weights-iothresh 0.75
`
- 此指令計算 IoU 閾值 0.75 時的 mAP。
計算錨點:
錨點重新計算的最佳實踐是使用 DarkMark,因為它會運行 100 次連續計算並選擇最佳錨點。但是,您可以使用較舊的暗網方法:
`bash
暗網探測器 calcanchors Animals.data -numof_clusters 6 -寬度 320 -高度 256
`
訓練新網路:
基礎訓練:
`bash
暗網探測器-map-dont_show火車animals.dataanimals.cfg
`
- 最佳權重將保存為animals_best.weights,訓練進度在chart.png中可見。
詳細訓練:
`bash
暗網探測器-map-dont_show--verbose火車animals.dataanimals.cfg
`
- 此命令在訓練期間提供更詳細的資訊。
訓練
暗網/YOLO 常見問題相關部分的快速連結:
文件和目錄設定:[連結到常見問題解答部分]
選擇正確的設定檔:[連結到常見問題解答部分]
訓練指令:[連結到常見問題解答部分]
最直接的註解和訓練方法是使用 DarkMark 建立所有必要的 Darknet 檔案。這是訓練新神經網路的推薦方法。
手動訓練設定:
1. 建立資料夾:建立一個新資料夾來儲存您的訓練文件。例如,~/nn/animals/。
2. 複製設定檔:將 Darknet 設定檔作為範本(例如 cfg/yolov4-tiny.cfg)複製到您的資料夾中。您現在擁有 ~/nn/animals/animals.cfg。
3. 建立.names 檔案:在同一資料夾中建立animals.names 文字檔案。
- 編輯文件以列出您要偵測的類別。每個類別必須單獨佔一行,不能有空行或註解。例如:
`
狗
貓
鳥
馬
`
4. 建立.data 檔案:在同一資料夾中建立animals.data 文字檔案。
- .data 檔案定義訓練和驗證資料集、類別名稱和備份目錄。例如:
`
班級=4
train=/home/使用者名稱/nn/animals/animals_train.txt
valid=/home/使用者名稱/nn/animals/animals_valid.txt
名稱=/home/使用者名稱/nn/animals/animals.names
備份=/home/用戶名/nn/animals
`
5. 建立圖像和註解資料夾:建立一個資料夾(例如~/nn/animals/dataset)來儲存圖像和註解。
- 每個圖像都需要一個包含註釋的相應 .txt 檔案。註釋格式具體;它無法手動創建。使用 DarkMark 或類似軟體對影像進行註釋。
- YOLO 註釋格式在 Darknet/YOLO FAQ 中進行了解釋。
6. 建立「train」和「valid」檔案:建立.data 檔案中提到的「train」和「valid」文字檔。
- 這些文件分別列出了用於訓練和驗證的圖像。每個影像應位於單獨的行上。您可以使用相對或絕對路徑。
7、修改設定檔:
- 使用文字編輯器開啟 .cfg 檔案並進行以下調整:
-batch=64:這個值通常就可以了。
- 細分:從細分=1 開始。您可能需要根據 GPU 記憶體和網路尺寸增加此值。請參閱 Darknet/YOLO 常見問題以取得指導。
- maxbatches:將其設定為 2000 * 類別數。例如,對於 4 個類,maxbatches=8000。
- 步驟:將其設定為最大批次的 80% 和 90%。例如,maxbatches=8000,steps=6400,7200。
- 寬度和高度:這些是網路尺寸。有關維度計算建議,請參閱 Darknet/YOLO 常見問題。
- 類別:更改classes=... 行以匹配.names 檔案中的類別數(在本例中,classes=4)。
- 過濾器:修改每個[yolo]部分之前的每個[卷積]部分中的filters=...行。該值的計算方式為 (numberofclasses + 5) * 3。
8. 開始訓練:
`bash
cd ~/nn/動物/
暗網探測器-map-dont_show火車animals.dataanimals.cfg
`
- 訓練可能需要一段時間。最佳權重將儲存為animals_best.weights。訓練進度在 Chart.png 檔案中可見。有關其他訓練參數,請參閱 Darknet/YOLO 常見問題。
- 如果您想要更詳細的訓練信息,請添加 --verbose 參數:
`bash
暗網探測器-map-dont_show--verbose火車animals.dataanimals.cfg
`
其他工具和鏈接
DarkMark:此工具可協助管理您的 Darknet/YOLO 專案、註釋影像、驗證註解以及產生 Darknet 訓練所需的檔案。
DarkHelp:Darknet 的強大替代 CLI,提供影像平鋪、影片中的物件追蹤等功能以及用於商業應用程式的強大 C++ API。
Darknet/YOLO 常見問題:用於回答有關 Darknet/YOLO 問題的寶貴資源。
Stéphane 的 YouTube 頻道:尋找大量教學和範例影片。
Darknet/YOLO Discord 伺服器:加入伺服器以詢問支援問題並與其他 Darknet/YOLO 使用者聯繫。
路線圖
最後更新: 2024-10-30
完全的
交換 qsort():在程式碼庫的相關部分將 qsort() 替換為 std::sort()。 (剩下的一些實例仍然使用 qsort())
刪除過時的函數:刪除了 check_mistakes、getchar() 和 system()。
C++ 程式碼庫:將 Darknet 轉換為使用 C++ 編譯器(Linux 上為 g++,Windows 上為 VisualStudio)。
Windows 建置:修復了 Windows 建置過程。
Python 支援:修復了 Python 整合。
暗網庫:建構了暗網庫。
預測標籤:重新啟用預測標籤(「字母」代碼)。
CUDA/GPU 代碼:重新啟用 CUDA/GPU 功能。
CUDNN:重新啟用 CUDNN 支援。
CUDNN half:重新啟用 CUDNN 半精確度支援。
CUDA 架構:刪除了 CUDA 架構的硬編碼。
CUDA版本資訊:改進了CUDA版本資訊。
AVX:重新啟用 AVX 支援。
刪除了舊文件:刪除了舊的解決方案和 Makefile。
OpenCV 依賴項:使 OpenCV 成為必需的依賴項。
pthread 函式庫:刪除了對舊 pthread 函式庫的依賴。
STB:刪除了 STB 相依性。
CMakeLists.txt:重寫 CMakeLists.txt 以使用新的 CUDA 偵測方法。
刪除了過時的檔案:刪除了舊的“字母”代碼並刪除了資料/標籤中的 700 多個圖像。
外源建置:啟用外源建置。
版本號:改進版本號輸出。
訓練表現:訓練的表現最佳化(正在進行的任務)。
推理表現:推理表現最佳化(正在進行的任務)。
按引用傳遞:盡可能使用按引用傳遞以提高效率。
程式碼清理:清理了 .hpp 檔案。
重寫darknet.h:更新了Darknet API頭檔。
cv::Mat 用法:使用 cv::Mat 作為正確的 C++ 對象,而不是強制轉換為 void*。
影像結構:修復了與內部影像結構相關的不一致和問題。
Jetson 支援:修復了基於 ARM 的 Jetson 裝置的建置。
- 由於 NVIDIA 停止支援(無 C++17 編譯器),較舊的 Jetson 裝置不太可能修復。
- 新的 Jetson Orin 設備正在運作。
V3 中的 Python API:修復了 Darknet V3 中的 Python API。
短期目標
交換 printf():用 std::cout 取代 printf()(正在進行中)。
Zed 相機支援:重新審視並改進對 Zed 相機的支援。
命令列解析:實作更強大且一致的命令列解析(正在進行中)。
中期目標
刪除字元代碼:刪除所有字元代碼並將其替換為 std::string。
編譯器警告:不要隱藏警告並解決編譯器警告(正在進行中)。
cv::Mat 用法:增強 cv::Mat 的使用,而不是 C 中的自訂影像結構(正在進行中)。
清單功能:用 std::vector 或 std::list 取代舊的清單功能。
灰階影像支援:修復了對 1 通道灰階影像的支援。
N 通道影像支援:增加超過 3 個通道(例如深度或熱通道)的影像的支援。
正在進行的程式碼清理:繼續進行正在進行的程式碼清理(正在進行中)。
長期目標
CUDA/CUDNN 問題:解決不同 GPU 之間的 CUDA/CUDNN 相容性問題。
重寫 CUDA/CUDNN 程式碼:重寫 CUDA/CUDNN 程式碼以提高效能和相容性。
非 NVIDIA GPU 支援:研究對非 NVIDIA GPU 的支援。
旋轉邊界框:實現對旋轉邊界框或角度資訊的支援。
關鍵點/骨架:新增對關鍵點和骨架的支援。
熱圖:實現熱圖支援(正在進行中)。
分段:新增對分段的支援。