暗網目標偵測框架與 YOLO
!darknet 和 hank.ai 徽標
Darknet 是一個用 C、C++ 和 CUDA 寫的開源神經網路框架。
YOLO(You Only Look Once)是一種在 Darknet 框架內運作的最先進的即時物件偵測系統。
了解 Hank.ai 如何幫助 Darknet/YOLO 社群:https://hank.ai/
宣布 Darknet V3「Jazz」:https://darknetcv.ai/
請仔細閱讀 Darknet/YOLO 常見問題:https://darknetcv.ai/faq/
加入 Darknet/YOLO Discord 伺服器:https://discord.gg/zSq8rtW
文件
1.論文YOLOv7:https://arxiv.org/abs/2207.02670
2.Paper Scaled-YOLOv4:https://arxiv.org/abs/2103.05293
3.論文YOLOv4:https://arxiv.org/abs/2004.10934
4.論文YOLOv3:https://pjreddie.com/media/files/papers/YOLOv3.pdf
一般資訊
Darknet/YOLO 框架仍然比其他框架和 YOLO 版本更快、更準確。
該框架是完全免費且開源的。您可以將 Darknet/YOLO 整合到現有項目和產品中,包括商業項目和產品,而無需許可或支付費用。
Darknet V3(「Jazz」)於 2024 年 10 月發布,使用 NVIDIA RTX 3090 GPU 時,可以以高達 1000 FPS 的速度準確運行樂高資料集影片。這意味著每個視訊畫面由 Darknet/YOLO 在 1 毫秒或更短的時間內讀取、調整大小和處理。
Darknet/YOLO 的 CPU 版本可在簡單的裝置上運行,例如 Raspberry Pi、雲端和 Colab 伺服器、桌上型電腦、筆記型電腦和高階訓練設備。 Darknet/YOLO 的 GPU 版本需要 NVIDIA 提供的支援 CUDA 的 GPU。
眾所周知,Darknet/YOLO 可在 Linux、Windows 和 Mac 上運作。請參閱下面的建置說明。
暗網版本
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 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
如果您需要執行該版本中的命令之一,您可以隨時查看先前的 v2 分支。如果您遇到任何丟失的命令,請告訴我們,以便我們研究將它們添加回來。
MSCOCO 預訓練權重
為了方便起見,YOLO 的幾個流行版本在 MSCOCO 資料集上進行了預訓練。該資料集有 80 個類,可以在文字檔案 cfg/coco.names 中看到。
還有其他幾個更簡單的資料集和預訓練權重可用於測試 Darknet/YOLO,例如 LEGO Gears 和 Rolodex。有關詳細信息,請參閱 Darknet/YOLO 常見問題解答。
MSCOCO 預訓練權重可從多個不同位置下載,包括此儲存庫:
YOLOv2(2016 年 11 月):
yolov2-tiny.weights
yolov2-full.weights
YOLOv3(2018 年 5 月):
yolov3-tiny.weights
yolov3-full.權重
YOLOv4(2020 年 5 月):
yolov4-tiny.weights
yolov4-full.weights
YOLOv7(2022 年 8 月):
yolov7-tiny.weights
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,就像您不需要成為機械師來駕駛汽車一樣。
Google合作實驗室
Google Colab 指令與 Linux 指令相同。有多個 Jupyter 筆記本展示如何執行各種任務,例如訓練新網路。
請參閱 colab 子目錄中的筆記本,或按照下面的 Linux 說明進行操作。
Linux CMake方法
Linux 暗網建置教學課程
1. 選用:如果您有現代 NVIDIA GPU,則此時可以安裝 CUDA 或 CUDA+cuDNN。如果安裝,Darknet 將使用您的 GPU 來加速映像(和視訊)處理。
2.安裝必要的軟體包:
`bash
sudo apt-get install build-essential git libopencv-dev cmake
`
3.克隆暗網儲存庫:
`bash
mkdir ~/srccd ~/src
git 克隆 https://github.com/hank-ai/darknet
`
4.建立建置目錄:
`bash
CD暗網
mkdir 構建
光碟建構
`
5.產生CMake專案文件:
`bash
cmake -DCMAKEBUILDTYPE=發布 ..
`
重要提示:您必須從 Darknet 建置目錄中刪除 CMakeCache.txt 文件,以強制 CMake 重新尋找所有必要的檔案。
6. 建構暗網:
`bash
製作-j4包
`
7.安裝暗網包:
`bash
sudo dpkg -i darknet-VERSION.deb
`
安裝 CUDA 和 cuDNN(選購)
Darknet 可以在沒有 CUDA 的情況下運行,但如果要訓練自訂網絡,則需要 CUDA 或 CUDA+cuDNN。
1.安裝CUDA:
- 造訪 https://developer.nvidia.com/cuda-downloads 下載並安裝 CUDA。
- 確保您可以運行 nvcc 和 nvidia-smi。您可能需要修改 PATH 變數。
2.安裝cuDNN:
- 造訪 https://developer.nvidia.com/rdp/cudnn-download 或 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview下載並安裝cuDNN。
升級 CUDA 或 cuDNN
如果您稍後安裝 CUDA 或 CUDA+cuDNN,或升級至較新版本的 NVIDIA 軟體:
1. 重建暗網:
- 從 Darknet 建置目錄中刪除 CMakeCache.txt 檔案。
- 再次執行 cmake 和 make 指令。
進階用戶
要建立 RPM 安裝檔案而不是 DEB 文件,請在執行 make -j4 package 之前編輯 CM_package.cmake 中的相關行。
`cmake
# 設定(CPACK_GENERATOR“DEB”)
設定(CPACK_GENERATOR“RPM”)
`
若要在安裝套件完成建置後進行安裝,請使用您的發行版常用的套件管理器。例如,在基於 Debian 的系統(例如 Ubuntu)上:
`bash
sudo dpkg -i darknet-2.0.1-Linux.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 範本的位置。
執行以下命令來測試安裝:
`bash
暗網版本
`
Windows CMake方法
Windows 暗網建置教學課程
1.安裝所需軟體:
- 開啟普通的 cmd.exe 命令提示字元視窗並執行以下命令:
`bash
winget 安裝 Git.Git
winget 安裝 Kitware.CMake
winget安裝nsis.nsis
winget 安裝 Microsoft.VisualStudio.2022.Community
`
2.修改Visual Studio安裝:
- 按一下「Windows 開始」功能表並執行「Visual Studio 安裝程式」。
- 按一下「修改」。
- 選擇「使用 C++ 進行桌面開發」。
- 點擊右下角的“修改”,然後按一下“是”。
3.安裝微軟VCPKG:
- 下載並安裝所有內容後,再次按一下「Windows 開始」功能表並選擇「VS 2022 的開發人員命令提示字元」。請勿使用 PowerShell 執行這些步驟!
- 執行以下命令:
`bash
疾病管制署:
mkdir c:src
cd c:src
git 克隆 https://github.com/microsoft/vcpkg
cd vcpkg
bootstrap-vcpkg.bat
.vcpkg.exe 整合安裝
.vcpkg.exe 整合powershell
.vcpkg.exe 安裝 opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
重要提示:最後一步請耐心等待,因為它可能需要很長時間才能運行。它需要下載和構建很多東西。
4. 選用:安裝 CUDA 和 cuDNN
- 如果您有現代 NVIDIA GPU,則此時可以安裝 CUDA 或 CUDA+cuDNN。如果安裝,Darknet 將使用您的 GPU 來加速映像(和視訊)處理。
- 您必須從 Darknet 建置目錄中刪除 CMakeCache.txt 文件,以強制 CMake 重新尋找所有必要的文件。
- 記得重建暗網。
5.安裝CUDA:
- 造訪 https://developer.nvidia.com/cuda-downloads 下載並安裝 CUDA。
- 確保您可以執行 nvcc.exe 和 nvidia-smi.exe。您可能需要修改 PATH 變數。
6.安裝cuDNN:
- 造訪 https://developer.nvidia.com/rdp/cudnn-download 或 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows 下載並安裝 cuDNN。
- 下載 cuDNN 後,解壓縮並將 bin、include 和 lib 目錄複製到 C:/Program Files/NVIDIA GPUComputing Toolkit/CUDA/[version]/ 中。您可能需要覆蓋一些文件。
7. 克隆 Darknet 儲存庫並建置:
`bash
cd c:src
git 克隆 https://github.com/hank-ai/darknet.git
CD暗網
mkdir 構建
光碟建構
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
`
8. 複製 CUDA DLL(可選):
- 如果出現有關某些缺少 CUDA 或 cuDNN DLL(例如 cublas64_12.dll)的錯誤,請手動將 CUDA .dll 檔案複製到與 darknet.exe 相同的輸出目錄中。例如:
`bash
複製“C:Program FilesNVIDIA GPU計算工具包CUDAv12.2bin * .dll”src-cliRelease
`
9. 重新執行msbuild.exe產生NSIS安裝包:
`bash
msbuild.exe /property:平台=x64;設定=發布 PACKAGE.vcxproj
`
進階用戶
您可以使用普通命令提示字元或 ssh 進入裝置並手動執行 Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat,而不是執行開發人員命令提示字元。
建置 OpenCV 時,您可以新增許多其他選用模組。運行 .vcpkg.exe 搜尋 opencv 以查看完整清單。
cmake 指令的輸出是一個普通的 Visual Studio 解決方案檔案 Darknet.sln。如果您是經常使用 Visual Studio GUI 的軟體開發人員,則可以忽略命令列並在 Visual Studio 中載入 Darknet 專案。
測試安裝
您現在應該有以下檔案:C:srcDarknetbuildsrc-cliReleasedarknet.exe。執行以下命令來測試安裝:
`bash
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 檔案。
執行 NSIS 精靈後,執行以下命令來測試安裝:
`bash
C:Program FilesDarknetbindarknet.exe 版本
`
使用暗網
命令列介面
以下不是 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.dataanimals.cfganimalsbest.weightstest50.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-iothresh 0.75
`
12. 重新計算錨點:
- DarkMark:最好在 DarkMark 中重新計算錨點,因為它會連續運行 100 次,並從所有計算的錨點中選擇最佳錨點。
- 暗網:如果你想在暗網中使用舊方法:
`bash
暗網探測器 calcanchors Animals.data -numof_clusters 6 -寬度 320 -高度 256
`
13. 訓練新網路:
`bash
cd ~/nn/動物/
暗網探測器-map-dont_show火車animals.dataanimals.cfg
`
訓練
暗網/YOLO 常見問題相關部分的快速鏈接
1. 我應該如何設定我的文件和目錄?
2. 我應該使用哪個設定檔?
3. 訓練自己的網路時應該使用什麼指令?
使用 DarkMark 進行註解和訓練(建議)
最簡單的註解和訓練方法是使用 DarkMark,它會建立所有必要的 Darknet 檔案。強烈建議這用於訓練新的神經網路。
手動設定檔案來訓練自訂網絡
如果您喜歡手動設置,請按照下列步驟操作:
1. 建立一個新資料夾:
- 建立一個新資料夾來儲存您的訓練文件。例如,您可以建立 ~/nn/animals/ 來訓練動物偵測網路。
2. 複製設定檔範本:
- 從 cfg/ 複製暗網設定檔之一作為範本。例如,您可以使用 cfg/yolov4-tiny.cfg。將其放入您建立的資料夾中。現在你應該有~/nn/animals/animals.cfg。
3. 建立一個animals.names檔案:
- 在與設定檔相同的資料夾中建立一個名為animals.names 的文字檔案。
4. 編輯animals.names檔:
- 列出您想要偵測的類,每行一個條目,沒有空白行或註解。例如:
`
狗
貓
鳥
馬
`
5.建立animals.data檔:
- 在同一資料夾中建立一個名為animals.data 的文字檔案。
- 例如,animals.data 檔案可能包含:
`
班級=4
train=/home/使用者名稱/nn/animals/animals_train.txt
valid=/home/使用者名稱/nn/animals/animals_valid.txt
名稱=/home/使用者名稱/nn/animals/animals.names
備份=/home/用戶名/nn/animals
`
6. 建立資料集資料夾:
- 建立一個資料夾來儲存您的圖像和註釋。例如,您可以建立 ~/nn/animals/dataset。
7. 註釋圖像:
- 每個圖像都需要一個帶有註釋的相應 .txt 檔案。這些 .txt 檔案的格式是特定的,並且需要註釋的精確座標。使用 DarkMark 或類似軟體來註釋您的影像。
8. 建立animalstrain.txt和animalsvalid.txt:
- 這些文字檔案分別列出了用於訓練和驗證的圖像。每個影像應位於單獨的行上,並具有相對或絕對路徑。
9、修改設定檔:
- 用文字編輯器開啟animals.cfg並進行以下修改:
-batch=64:確保設定該值。
- 細分:最佳使用值為 1。
- maxbatches:將其設定為合理的值,通常為類別數的 2000 倍。對於本範例,使用 maxbatches=8000(4 個類別 * 2000)。
- 步驟:將這些設定為最大批次的 80% 和 90%。對於本例,使用steps=6400,7200(因為maxbatches=8000)。
- 寬度和高度:將其設定為您所需的網路尺寸。請參閱 Darknet/YOLO 常見問題解答,以取得選擇最佳尺寸的指導。
- 類別:搜尋該行的所有實例並修改它以符合 .names 檔案中的類別數(在本例中,classes=4)。
- 過濾器:在每個 [yolo] 部分之前的 [卷積] 部分中搜尋該行的所有實例。要使用的值是 (numberofclasses + 5) 3。
10. 開始訓練:
`bash
cd ~/nn/動物/
暗網探測器-map-dont_show火車animals.dataanimals.cfg
`
11. 監控訓練進度:
- 要有耐心!最佳權重將儲存為animals_best.weights。
- 您可以透過檢視chart.png檔案來監控訓練進度。
- 請參閱 Darknet/YOLO 常見問題解答,以了解您可能想要在訓練期間使用的其他參數。
12. 為訓練輸出添加詳細資訊:
`bash
暗網探測器-map-dont_show--verbose火車animals.dataanimals.cfg
`
其他工具和鏈接
DarkMark:用於管理 Darknet/YOLO 專案、註釋圖像、驗證註釋以及產生用於 Darknet 訓練的檔案。
DarkHelp:用於 Darknet 的強大替代 CLI,使用影像平鋪、影片中的物件追蹤以及可在商業應用程式中使用的強大 C++ API。
Darknet/YOLO 常見問題:https://darknetcv.ai/faq/
Stéphane 的 YouTube 頻道:https://www.youtube.com/channel/UCYQ2k0L3X0c56l9gE2r1RQ
Darknet/YOLO Discord 伺服器:https://discord.gg/zSq8rtW
路線圖
最後更新於 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 或 std::list 取代舊的清單功能。
修復對 1 通道灰階影像的支援。
添加對 N 通道影像的支持,其中 N > 3(例如,具有附加深度或熱通道的影像)。
正在進行的程式碼清理(正在進行中)。
長期目標
修復所有 GPU 的 CUDA/CUDNN 問題。
重寫CUDA+cuDNN程式碼。
考慮新增對非 NVIDIA GPU 的支援。
旋轉邊界框,或某種「角度」支援。
關鍵點/骨架。
熱圖(正在進行中)。
分割。