Cloud-native high-performance edge/middle/service proxy
Envoy is hosted by the Cloud Native Computing Foundation (CNCF). If you are a company that wants to help shape the evolution of technologies that are container-packaged, dynamically-scheduled and services-oriented, consider joining thetail thes hotail thetail. involved and how Envoy plays a role, read the CNCF announcement.
Documentation
Downcodes小編註: Envoy 擁有完善的文檔,您可以參考以下資源:
官方文檔
GitHub 倉庫
Related
Downcodes小編註: Envoy 與以下技術密切相關:
容器技術: Docker, Kubernetes
服務網格: Istio, Linkerd
微服務架構: gRPC, RESTful API
Contact
Downcodes小編註: 您可以透過以下途徑與Envoy 社群聯繫:
郵件列表
Slack 頻道
Contributing
Downcodes小編註: 如果您想為Envoy 專案貢獻程式碼,請參考以下步驟:
1. 熟悉程式碼庫: 閱讀Envoy 的原始碼,了解其結構和設計。
2. 選擇任務: 在GitHub 倉庫中選擇一個您感興趣的任務。
3. 提交代碼: 遵循Envoy 的程式碼風格規範,並提交您的程式碼。
Community Meeting
Downcodes小編註: Envoy 社區每月兩次在周二太平洋時間上午9 點舉行會議。
Google 日曆
會議記錄
Downcodes小編註: 任何社群成員都可以透過在會議記錄中加入議題來提出議題。維護者會在24 小時內確認議題,或如果會議沒有確認的議題,會在會議時間前24 小時內取消會議。
Security
Downcodes小編註: Envoy 專案重視安全問題。
Security Audit
Downcodes小編註: Envoy 專案已經進行過多次第三方安全審計。
Reporting security vulnerabilities
Downcodes小編註: 如果您發現了Envoy 專案中的安全漏洞,請將漏洞報告傳送至[email protected] 信箱。 我們會發送確認郵件以確認您的報告,並在確定問題是否存在後發送額外的郵件。
Downcodes小編註: 有關更多信息,請參閱我們的完整安全發布流程。
Releases
Downcodes小編註: 有關Envoy 版本發布的詳細信息,請參閱我們的發布流程。
範例
`
Apache-2.0 license
Table of Contents
Darknet Object Detection Framework and YOLO
Papers
General Information
Darknet Version
MSCOCO Pre-trained Weights
Building
Google Colab
Linux CMake Method
Windows CMake Method
Using Darknet
CLI
Training
Other Tools and Links
Roadmap
Short-term goals
Mid-term goals
Long-term goals
Darknet Object Detection Framework and YOLO
!Darknet Logo
!Hank.ai Logo
Downcodes小編註: Darknet 是一個用C、C++ 和CUDA 寫的開源神經網路框架。
Downcodes小編註: YOLO (You Only Look Once) 是一個最先進的即時目標偵測系統,它在Darknet 框架中運作。
Downcodes小編註: 了解更多Hank.ai 如何幫助Darknet/YOLO 社群的資訊。
Downcodes小編註: Darknet/YOLO 網站
Downcodes小編註: Darknet/YOLO 常見問題
Downcodes小編註: Darknet/YOLO Discord 伺服器
Papers
Downcodes小編註: 以下是一些關於YOLO 的論文:
1. YOLOv7: 論文鏈接
2. Scaled-YOLOv4: 論文鏈接
3. YOLOv4: 論文鏈接
4. YOLOv3: 論文鏈接
General Information
Downcodes小編註: Darknet/YOLO 框架比其他框架和YOLO 版本更快、更準確。
Downcodes小編註: 框架是完全免費且開源的。您可以將Darknet/YOLO 整合到現有專案和產品中,包括商業產品,無需許可或支付費用。
Downcodes小編註: 2024 年10 月發布的Darknet V3(“Jazz”)可以準確地以高達1000 FPS 的速度運行LEGO 數據集視頻,使用NVIDIA RTX 3090 GPU 時,這意味著每個視頻幀在1 毫秒或在更短的時間內被Darknet/YOLO 讀取、調整大小和處理。
Downcodes小編註: 如果您需要協助或想討論Darknet/YOLO,請加入Darknet/YOLO Discord 伺服器: https://discord.gg/zSq8rtW
Downcodes小編註: Darknet/YOLO 的CPU 版本可在Raspberry Pi、雲端伺服器和Colab 伺服器、桌上型電腦、筆記型電腦和高階訓練設備等簡單裝置上運作。 Darknet/YOLO 的GPU 版本需要NVIDIA 的CUDA 支援的GPU。
Downcodes小編註: Darknet/YOLO 已知可在Linux、Windows 和Mac 上運行。請參閱下面的建置說明。
Darknet Version
Downcodes小編註: Joseph Redmon 在2013-2017 年寫的原始Darknet 工具沒有版本號。我們認為這個版本是0.x。
Downcodes小編註: Alexey Bochkovskiy 在2017-2021 年間維護的下一個流行的Darknet 倉庫也沒有版本號。我們認為這個版本是1.x。
Downcodes小編註: Hank.ai 贊助並由Stéphane Charette 從2023 年開始維護的Darknet 倉庫是第一個帶有版本命令的倉庫。從2023 年到2024 年底,它返回版本2.x “OAK”。
Downcodes小編註: 目標是在熟悉程式碼庫的同時,盡量減少現有功能的破壞。
Downcodes小編註: 重寫了建置步驟,因此我們有1 種統一的方式來使用CMake 在Windows 和Linux 上建置。
Downcodes小編註: 將程式碼庫轉換為使用C++ 編譯器。
Downcodes小編註: 在訓練期間增強了chart.png。
Downcodes小編註: 錯誤修復與效能相關的最佳化,主要與縮短訓練網路所需時間有關。
Downcodes小編註: 此程式碼庫的最後一個分支是v2 分支中的版本2.1。
Downcodes小編註: 下一階段的開發始於2024 年年中,並在2024 年10 月發布。版本命令現在返回3.x “JAZZ”。
Downcodes小編註: 如果您需要執行這些指令中的一個,您可以隨時簽出先前的v2 分支。請告知我們,以便我們調查添加回任何丟失的命令。
Downcodes小編註: 刪除了許多舊的和未維護的指令。
Downcodes小編註: 許多效能最佳化,包括訓練和推理期間的最佳化。
Downcodes小編註: 舊的C API 已被修改;使用原始Darknet API 的應用程式需要進行一些小修改: https://darknetcv.ai/api/api.html
Downcodes小編註: 新的Darknet V3 C 和C++ API: https://darknetcv.ai/api/api.html
Downcodes小編註: src-examples 中的新應用程式和範例程式碼: https://darknetcv.ai/api/files.html
MSCOCO Pre-trained Weights
Downcodes小編註: 為了方便起見,幾個流行的YOLO 版本都經過預先訓練以適應MSCOCO 資料集。此資料集有80 個類別,可以在文字檔cfg/coco.names 中看到。
Downcodes小編註: 還有其他幾個更簡單的資料集和預訓練權重可用於測試Darknet/YOLO,例如LEGO Gears 和Rolodex。有關詳細信息,請參閱Darknet/YOLO 常見問題。
Downcodes小編註: MSCOCO 預訓練權重可以從幾個不同的位置下載,也可以從此倉庫下載:
1. YOLOv2, November 2016:
* YOLOv2-tiny
* YOLOv2-full
2. YOLOv3, May 2018:
* YOLOv3-tiny
* YOLOv3-full
3. YOLOv4, May 2020:
* YOLOv4-tiny
* YOLOv4-full
4. YOLOv7, August 2022:
* YOLOv7-tiny
* YOLOv7-full
Downcodes小編註: MSCOCO 預訓練權重僅用於展示目的。 MSCOCO 的對應.cfg 和.names 檔案位於cfg 目錄中。範例命令:
`
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 Darkg cooco-vr. avi
`
Downcodes小編註: 請注意,人們應該訓練自己的網路。 MSCOCO 通常用於確認一切正常運作。
Building
Downcodes小編註: 過去(2023 年以前)的各種建構方法已被合併到一個統一的解決方案中。 Darknet 需要C++17 或更高版本、OpenCV,並使用CMake 產生必要的專案檔。
Downcodes小編註: 您不需要了解C++ 即可建造、安裝或運行Darknet/YOLO,就像您不需要是機械師才能駕駛汽車一樣。
Google Colab
Downcodes小編註: Google Colab 的說明與Linux 說明相同。有幾個Jupyter 筆記本可供使用,展示如何執行某些任務,例如訓練新網路。
Downcodes小編註: 請參閱colab 子目錄中的筆記本,或遵循下面的Linux 說明。
Linux CMake Method
Downcodes小編註: Darknet 的Linux 建置教學課程
Downcodes小編註: 可選:如果您有現代NVIDIA GPU,您可以在此時安裝CUDA 或CUDA+cuDNN。如果已安裝,Darknet 將使用您的GPU 加速映像(和影片)處理。
Downcodes小編註: 您必須從Darknet 建置目錄中刪除CMakeCache.txt 文件,以強制CMake 重新找到所有必要的檔案。
Downcodes小編註: 請記得重新建置Darknet。
Downcodes小編註: Darknet 可以運行,但如果您想訓練自訂網絡,則需要CUDA 或CUDA+cuDNN。
Downcodes小編註: 造訪https://developer.nvidia.com/cuda-downloads 下載並安裝CUDA。
Downcodes小編註: 造訪https://developer.nvidia.com/rdp/cudnn-download 或https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager- installation-overview 下載並安裝cuDNN。
Downcodes小編註: 安裝CUDA 後,請確保您可以執行nvcc 和nvidia-smi。您可能需要修改PATH 變數。
Downcodes小編註: 如果您在稍後安裝CUDA 或CUDA+cuDNN,或升級到NVIDIA 軟體的更新版本:
Downcodes小編註: 這些說明假設(但不要求!)運行Ubuntu 22.04 的系統。如果您使用的是其他發行版,請根據需要進行調整。
`bash
sudo apt-get install build-essential git libopencv-dev cmake
mkdir ~/srccd ~/src
git clone https://github.com/hank-ai/darknetcd darknet
mkdir buildcd build
cmake -DCMAKEBUILDTYPE=Release ..
make -j4 package
sudo dpkg -i darknet-VERSION.deb
`
Downcodes小編註: 如果您使用的是舊版的CMake,那麼您需要在執行上面的cmake 指令之前升級CMake。在Ubuntu 上升級CMake 可以透過以下指令完成:
`bash
sudo apt-get purge cmakesudo snap install cmake --classic
`
Downcodes小編註: 如果您使用bash 作為您的指令shell,您將需要在此重新啟動您的shell。如果您使用的是fish,它應該立即拾取新的路徑。
Downcodes小編註: 進階用戶:
Downcodes小編註: 如果您想要建立RPM 安裝文件而不是DEB 文件,請參閱CM_package.cmake 中的相關行。在執行make -j4 package 之前,您需要編輯這兩行:
`
SET (CPACKGENERATOR "DEB")# SET (CPACKGENERATOR "RPM")
`
Downcodes小編註: 對於Centos 和OpenSUSE 等發行版,您需要將CM_package.cmake 中的這兩行改為:
`
SET (CPACKGENERATOR "DEB")SET (CPACKGENERATOR "RPM")
`
Downcodes小編註: 要安裝安裝包,一旦它完成構建,請使用您發行版的常用套件管理器。例如,在基於Debian 的系統(如Ubuntu)上:
`bash
sudo dpkg -i darknet-2.0.1-Linux.deb
`
Downcodes小編註: 安裝.deb 套件將複製以下檔案:
/usr/bin/darknet 是通常的Darknet 執行檔。從CLI 運行darknet version 以確認它已正確安裝。
/usr/include/darknet.h 是Darknet API,供C、C++ 和Python 開發人員使用。
/usr/include/darknet_version.h 包含開發人員的版本資訊。
/usr/lib/libdarknet.so 是函式庫,供C、C++ 和Python 開發人員連結使用。
/opt/darknet/cfg/... 是所有.cfg 範本儲存的位置。
Downcodes小編註: 您現在完成了! Darknet 已建置並安裝到/usr/bin/ 中。執行以下命令進行測試:darknet version。
Downcodes小編註: 如果您沒有/usr/bin/darknet,表示您沒有安裝它,您只是建造了它!請確保您按照上述步驟安裝.deb 或.rpm 檔案。
Windows CMake Method
Downcodes小編註: 這些說明假設Windows 11 22H2 的全新安裝。
Downcodes小編註: 開啟一個普通的cmd.exe 命令提示字元視窗並執行以下命令:
`bash
winget install Git.Git
winget install Kitware.CMake
winget install nsis.nsis
winget install Microsoft.VisualStudio.2022.Community
`
Downcodes小編註: 此時,我們需要修改Visual Studio 安裝以包含對C++ 應用程式的支援:
1. 點選「Windows 開始」選單,執行「Visual Studio 安裝程式」。
2. 點選修改。
3. 選擇使用C++ 的桌面開發。
4. 點選右下角的修改,然後點選是。
Downcodes小編註: 一旦所有內容下載並安裝,請再次點擊「Windows 開始」選單,並選擇VS 2022 的開發人員命令提示字元。不要使用PowerShell 執行這些步驟,否則會出現問題!
Downcodes小編註: 進階用戶:
Downcodes小編註: 除了執行開發人員命令提示字元外,您還可以使用普通命令提示字元或ssh 登入裝置並手動執行「Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat」。
Downcodes小編註: 一旦您執行了上述開發人員命令提示字元(不是PowerShell!),請執行以下命令來安裝Microsoft VCPKG,它將用於建置OpenCV:
`bash
cd c:mkdir c:srccd c:src
git clone https://github.com/microsoft/vcpkgcd vcpkg
bootstrap-vcpkg.bat .vcpkg.exe integrate install
.vcpkg.exe integrate powershell
.vcpkg.exe install opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
Downcodes小編註: 請耐心等待最後一步,因為它可能需要很長時間才能運作。它需要下載和構建許多東西。
Downcodes小編註: 進階用戶:
Downcodes小編註: 請注意,在建置OpenCV 時,您可能需要新增許多其他可選模組。運行.vcpkg.exe search opencv 以查看完整列表。
Downcodes小編註: 可選:如果您有現代NVIDIA GPU,您可以在此時安裝CUDA 或CUDA+cuDNN。如果已安裝,Darknet 將使用您的GPU 加速映像(和影片)處理。
Downcodes小編註: 您必須從Darknet 建置目錄中刪除CMakeCache.txt 文件,以強制CMake 重新找到所有必要的檔案。
Downcodes小編註: 請記得重新建置Darknet。
Downcodes小編註: Darknet 可以運行,但如果您想訓練自訂網絡,則需要CUDA 或CUDA+cuDNN。
Downcodes小編註: 造訪https://developer.nvidia.com/cuda-downloads 下載並安裝CUDA。
Downcodes小編註: 造訪https://developer.nvidia.com/rdp/cudnn-download 或https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows 下載並安裝cuDNN。
Downcodes小編註: 安裝CUDA 後,請確保您可以執行nvcc.exe 和nvidia-smi.exe。您可能需要修改PATH 變數。
Downcodes小編註: 下載cuDNN 後,解壓縮並將bin、include 和lib 目錄複製到C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[version]/ 中。您可能需要覆蓋一些文件。
Downcodes小編註: 如果您在稍後安裝CUDA 或CUDA+cuDNN,或升級到NVIDIA 軟體的更新版本:
Downcodes小編註: CUDA 必須在Visual Studio 之後安裝。如果您升級Visual Studio,請記得重新安裝CUDA。
Downcodes小編註: 一旦所有先前的步驟成功完成,您需要克隆Darknet 並建立它。在此步驟中,我們還需要告訴CMake vcpkg 的位置,以便它可以找到OpenCV 和其他依賴:
`bash
cd c:src
git clone https://github.com/hank-ai/darknet.gitcd darknet
mkdir buildcd build
cmake -DCMAKEBUILDTYPE=Release -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
`
Downcodes小編註: 如果您收到缺少CUDA 或cuDNN DLL 的錯誤(如cublas64_12.dll),則手動將CUDA .dll 檔案複製到與Darknet.exe 相同的輸出目錄中。例如:
`bash
copy "C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
`
Downcodes小編註: (這是一個例子!請檢查確保您運行的是什麼版本,並執行適合您安裝的內容的命令。)
Downcodes小編註: 一旦檔案被複製,重新執行最後一個msbuild.exe 指令來產生NSIS 安裝包:
`bash
msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
Downcodes小編註: 進階用戶:
Downcodes小編註: 請注意,cmake 指令的輸出是一個普通的Visual Studio 解決方案文件,Darknet.sln。如果您是經常使用Visual Studio GUI 而不是msbuild.exe 來建置專案的軟體開發人員,您可以忽略命令列並在Visual Studio 中載入Darknet 專案。
Downcodes小編註: 您現在應該有以下檔案可以執行:C:srcDarknetbuildsrc-cliReleasedarknet.exe。執行以下命令進行測試:C:srcDarknetbuildsrc-cliReleasedarknet.exe version。
Downcodes小編註: 若要正確安裝Darknet、函式庫、包含檔案和必要的DLL,請執行在最後一步中建置的NSIS 安裝精靈。請參閱build 目錄中的檔案darknet-VERSION.exe。例如:
`bash
darknet-2.0.31-win64.exe
`
Downcodes小編註: 安裝NSIS 安裝包將:
建立一個名為Darknet 的目錄,例如C:Program FilesDarknet。
安裝CLI 應用程序,darknet.exe 和其他範例應用程式。
安裝所需的第三方.dll 文件,例如來自OpenCV 的文件。
安裝必要的Darknet .dll、.lib 和.h 文件,以便從另一個應用程式使用darknet.dll。
安裝模板.cfg 檔案。
Downcodes小編註: 您現在完成了!安裝精靈完成後,Darknet 將安裝到C:Program FilesDarknet 中。執行以下命令進行測試:C:Program FilesDarknetbindarknet.exe version。
Downcodes小編註: 如果您沒有C:/Program Files/darknet/bin/darknet.exe,則表示您沒有安裝它,您只是建置了它!請確保您按照上一個步驟中NSIS 安裝精靈的每個面板進行操作。
Using Darknet
CLI
Downcodes小編註: 以下不是Darknet 支援的所有指令的完整清單。
Downcodes小編註: 除了Darknet CLI 外,請注意DarkHelp 專案CLI,它為Darknet/YOLO 提供了一個替代的CLI。 DarkHelp CLI 還有一些Darknet 中沒有的先進功能。您可以同時使用Darknet CLI 和DarkHelp CLI,它們並不互相排斥。
Downcodes小編註: 對於下方顯示的大多數指令,您將需要帶有對應.names 和.cfg 檔案的.weights 檔案。您可以訓練自己的網路(強烈建議!),或從網路上下載別人已經訓練並免費提供的神經網路。預訓練資料集的例子包括:
LEGO Gears(在影像中尋找物體)
Rolodex(在圖像中尋找文字)
MSCOCO(標準的80 類目標偵測)
Downcodes小編註: 要執行的指令包括:
1. 列出一些可能會運行的命令和選項:
`bash
darknet help
`
2. 檢查版本:
`bash
darknet version
`
3. 使用影像進行預測:
* V2:
`bash
darknet detector test cars.data cars.cfg cars_best.weights image1.jpg
`
* V3:
`bash
darknet02displayannotatedimages cars.cfg image1.jpg
`
* DarkHelp:
`bash
DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
`
4. 輸出座標:
* V2:
`bash
darknet detector test animals.data animals.cfg animalsbest.weights -extoutput dog.jpg
`
* V3:
`bash
darknet01inference_images animals dog.jpg
`
* DarkHelp:
`bash
DarkHelp --json animals.cfg animals.names animals_best.weights dog.jpg
`
5. 處理影片:
* V2:
`bash
darknet detector demo animals.data animals.cfg animalsbest.weights -extoutput test.mp4
`
* V3:
`bash
darknet03display_videos animals.cfg test.mp4
`
* DarkHelp:
`bash
DarkHelp animals.cfg animals.names animals_best.weights test.mp4
`
6. 從網路攝影機讀取:
* V2:
`bash
darknet detector demo animals.data animals.cfg animals_best.weights -c 0
`
* V3:
`bash
darknet08display_webcam animals
`
7. 將結果儲存到影片中:
* V2:
`bash
darknet detector demo animals.data animals.cfg animalsbest.weights test.mp4 -outfilename res.avi
`
* V3:
`bash
darknet05processvideosmultithreaded animals.cfg animals.names animals_best.weights test.mp4
`
* DarkHelp:
`bash
DarkHelp animals.cfg animals.names animals_best.weights test.mp4
`
8. JSON:
* V2:
`bash
darknet detector demo animals.data animals.cfg animalsbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
`
* V3:
`bash
darknet06imagestojson animals image1.jpg
`
* DarkHelp:
`bash
DarkHelp --json animals.names animals.cfg animals_best.weights image1.jpg
`
9. 在特定GPU 上運作:
* V2:
`bash
darknet detector demo animals.data animals.cfg animals_best.weights -i 1 test.mp4
`
10. 檢查神經網路的準確性:
`bash
darknet detector map driving.data driving.cfg driving_best.weights ...
Id Name AvgPrecision TP FN FP TN Accuracy ErrorRate Precision Recall Specificity FalsePosRate
-- ---- ------------ ------ ------ ------ ------ -------- --------- --------- ------ ----------- ------------
0 vehicle 91.2495 32648 3903 5826 65129 0.9095 0.0905 0.8486 0.8932 0.9179 0.0821
1 motorcycle 80.4499 2936 513 569 5393 0.8850 0.1150 0.8377 0.8513 0.9046 0.0954
2 bicycle 89.0912 570 124 104 3548 0.9475 0.0525 0.8457 0.8213 0.9715 0.0285
3 person 76.7937 7072 1727 2574 27523 0.8894 0.1106 0.7332 0.8037 0.9145 0.0855
4 many vehicles 64.3089 1068 509 733 11288 0.9087 0.0913 0.5930 0.6772 0.9390 0.0610
5 green light 86.8118 1969 239 510 4116 0.8904 0.1096 0.7943 0.8918 0.8898 0.1102
6 yellow 光 82.0390 126 38 30 1239 0.9525 0.0475 0.8077 0.7683 0.9764 0.0236
7 red light 94.1033 3449 217 451 4643 0.9237 0.0763 0.8844 0.9408 0.9115 0.0885
`
11. 檢查準確率mAP@IoU=75:
`bash
darknet detector map animals.data animals.cfg animalsbest.weights -iouthresh 0.75
`
12. 重新計算錨點最好在DarkMark 中完成,因為它會連續運行100 次並從所有計算出的錨點中選擇最佳錨點。但如果您想在Darknet 中運行舊版本:
`bash
darknet detector calcanchors animals.data -numof_clusters 6 -width 320 -height 256
`
13. 訓練新網路:
`bash
darknet detector -map -dont_show train animals.data animals.cfg
`
(另請參閱下面的訓練部分)
Training
Downcodes小編註: Darknet/YOLO 常見問題的相關部分的快速連結:
如何設定我的文件和目錄?
我應該使用哪個設定檔?
訓練自己的網路時應該使用什麼指令?
Downcodes小編註: 使用DarkMark 建立所有必要的Darknet 檔案是進行標註和訓練最簡單的方法。這絕對是訓練新神經網路的推薦方法。
Downcodes小編註: 如果您想手動設定各種檔案來訓練自訂網路:
1. 建立一個新的資料夾來儲存檔案。例如,將建立一個神經網路來偵測動物,因此將建立以下目錄:~/nn/animals/。
2. 複製一個您想用來當模板的Darknet 設定檔。例如,請參閱cfg/yolov4-tiny.cfg。將它放在您建立的資料夾中。例如,我們現在有了~/nn/animals/animals.cfg。
3. 在您放置設定檔的同一個資料夾中建立一個animals.names 文字檔。例如,我們現在有了~/nn/animals/animals.names。
4. 使用文字編輯器編輯animals.names 檔案。列出您要使用的類別。您需要每行只有一個條目,沒有空白行和註解。例如,.names 檔案將包含正好4 行:
`
dog
cat
鳥
horse
`
5. 在同一個資料夾中建立一個animals.data 文字檔。例如,.data 檔案將包含:
`
classes=4
train=/home/username/nn/animals/animals_train.txt
valid=/home/username/nn/animals/animals_valid.txt
names=/home/username/nn/animals/animals.names
backup=/home/username/nn/animals
`
6. 建立一個資料夾來儲存您的影像和標註。例如,這可能是~/nn/animals/dataset。每個影像都需要一個對應的.txt 文件,描述該影像的標註。 .txt 標註文件的格式非常具體。您不能手動建立這些文件,因為每個標註都需要包含標註的精確座標。請參閱DarkMark 或其他類似軟體來標註您的影像。 YOLO 標註格式在Darknet/YOLO 常見問題中進行了描述。
7. 建立.data 檔案中命名的「train」和「valid」文字檔。這兩個文字檔案需要分別列出Darknet 用於訓練和驗證時計算mAP% 的所有圖像。每行正好一個圖像。路徑和檔案名稱可以是相對的或絕對的。
8. 使用文字編輯器修改您的.cfg 檔案。
9. 確保batch=64。
10. 注意subdivisions。根據網路尺寸和GPU 上可用的記憶體量,您可能需要增加subdivisions。要使用的最佳值是1,因此從該值開始。如果1 不適合您,請參閱Darknet/YOLO 常見問題。
11. 注意maxbatches=....。在開始時使用的良好值是類別數的2000 倍。例如,我們有4 種動物,因此4 * 2000 = 8000。這意味著我們將使用maxbatches=8000。
12. 注意steps=....。這應該設定為maxbatches 的80% 和90%。例如,由於maxbatches 設定為8000,因此我們將使用steps=6400,7200。
13. 注意width=... 和height=....。這些是網路尺寸。 Darknet/YOLO 常見問題說明如何計算要使用的最佳尺寸。
14. 搜尋所有包含行classes=... 的實例,並使用.names 檔案中的類別數修改它。例如,我們將使用classes=4。
15. 在每個[yolo] 部分之前的[convolutional] 部分中