Video2X: 高品質影片放大與幀插值框架
源碼網小編
Important
版本4 和5 已經達到生命週期結束(EOL) 狀態。由於開發資源有限,任何低於6 的版本相關問題將不再解決。
版本6.0.0
下載Windows 安裝程式
簡而言之:版本6.0.0 是Video2X 專案在C/C++ 中的完全重寫,具有更快速、更有效率的架構、跨平台支援、大幅提升的輸出品質以及用於在Windows 上輕鬆設定的新GUI 和安裝程式。
版本6.0.0 是該專案的完全重寫,它在C/C++ 中實現,並包含以下特性:
1. 更快的架構:透過利用多執行緒和GPU 加速,Video2X 現在比以前快得多。
2. 跨平台支援:Video2X 現在可在Windows、Linux 和macOS 上運作。
3. 改進的輸出品質:Video2X 現在提供更高的放大質量,尤其是對於高解析度視訊。
4. 新的GUI:Video2X 現在具有使用者友善的GUI,簡化了設定和使用流程。
5. 新的安裝程序:Video2X 現在提供一個易於使用的安裝程序,可以幫助您在Windows 上快速輕鬆地安裝該軟體。
對RealCUGAN 和使用RIFE 的幀插值的支援即將推出。
下載Windows 版本
您可以從發布頁面下載最新的Windows 版本。有關基本GUI 用法,請參閱GUI wiki 頁面。如果您無法從GitHub 直接下載,請嘗試使用鏡像。 GUI 目前支援以下語言:
1. 英語
2. 簡體中文
3. 繁體中文
4. 日語
5. 韓語
6. 法語
7. 德語
8. 義大利語
9. 西班牙語
10. 葡萄牙語
11. 俄語
在Linux 上安裝
您可以使用video2x-git 軟體套件在Arch Linux 上安裝Video2X,或從發布頁面下載預先編譯的二進位。如果您想從原始程式碼構建,請參閱PKGBUILD 檔案以了解所需軟體包和命令的概述。如果您不想從原始程式碼編譯程序,請考慮使用下面的容器鏡像。
容器鏡像
Video2X 容器映像可在GitHub 容器註冊表中取得,以便在Linux 和macOS 上輕鬆部署。如果您已經安裝了Docker/Podman,只需一條指令即可啟動影片放大。有關如何使用Video2X 的Docker 映像的更多信息,請參閱文件。
Google Colab(已過時:5.0.0-beta7)
如果您沒有自己的強大GPU,可以在Google Colab 上免費使用Video2X。您可以在Google 的伺服器上免費借用強大的GPU(NVIDIA T4、L4 或A100),每個會話最多可使用12 小時。請公平使用免費資源,不要創建連續的會話並在24/7 運行放大。這可能導致您被封鎖。如果您想使用更好的GPU 並獲得更長的運行時間,可以取得Colab Pro/Pro+。使用說明已嵌入Colab 筆記本中。
Telegram 討論組
加入我們的Telegram 討論小組,詢問您有關Video2X 的任何問題,直接與開發人員聊天,或討論超解析度技術以及Video2X 的未來。
文件
Video2X 的文檔託管在本倉庫的Wiki 頁面。它包括有關如何使用GUI、CLI、容器鏡像、庫等的全面說明。 Wiki 向社群開放編輯,因此您,是的您,也可以修正錯誤或在文件中新增內容。
介紹
Video2X 是一個基於機器學習的視訊放大和幀插值框架,它圍繞著三個主要組件構建:
1. 模型:Video2X 使用各種先進的深度學習模型來執行放大和幀插值。
2. 引擎:Video2X 引擎負責處理視訊資料、執行模型推理以及產生輸出視訊。
3. 介面:Video2X 提供了多種介面,例如GUI、CLI 和容器鏡像,讓您輕鬆使用框架。
影片示範
放大展示:《神隱少女》電影預告片
標準測試片段
以下片段可用於測試您的設定是否正常運作。這也是用於運行效能基準測試的標準片段。
原文片段來自動畫《櫻花莊的寵物女孩》。
此片段的版權歸株式會社アニプレックス所有。
許可證
該專案是在GNU AGPL 版本3 的許可下發布的。
版權所有(C) 2018-2024 K4YT3X 和貢獻者。
該項目包括或依賴以下項目:
1. opencv: https://github.com/opencv/opencv
2. waifu2x-caffe: https://github.com/nagadomi/waifu2x-caffe
3. Real-ESRGAN: https://github.com/xinntao/Real-ESRGAN
4. BasicSR: https://github.com/xinntao/BasicSR
5. GFPGAN: https://github.com/TencentARC/GFPGAN
6. RIFE: https://github.com/hzwer/arXiv2021-RIFE
7. Anime4K: https://github.com/bloc97/Anime4K
您可以在NOTICE 文件中找到更多許可資訊。
特別感謝
特別感謝以下個人對此專案的重大貢獻,按字母順序排列:
1. K4YT3X: 專案創建者
2. 貢獻者:感謝所有為此專案做出貢獻的人。
例如:
Apache-2.0 許可證
目錄
Darknet 物件偵測框架和YOLO
1. 論文
2. 一般資訊
3. Darknet 版本
4. MSCOCO 預訓練權重
5. 構建
1. Google Colab
2. Linux CMake 方法
3. Windows CMake 方法
6. 使用Darknet
1. CLI
2. 訓練
7. 其他工具和鏈接
8. 路線圖
1. 短期目標
2. 中期目標
3. 長期目標
Darknet 物件偵測框架和YOLO
Darknet 是一個用C、C++ 和CUDA 寫的開源神經網路框架。
YOLO (You Only Look Once) 是一種最先進的即時目標偵測系統,可在Darknet 框架中運作。
閱讀Hank.ai 如何幫助Darknet/YOLO 社區
宣布Darknet V3 “Jazz”
查看Darknet/YOLO 網站
請閱讀Darknet/YOLO 常見問題解答
加入Darknet/YOLO Discord 伺服器
論文
1. YOLOv7 論文
2. Scaled-YOLOv4 論文
3. YOLOv4 論文
4. YOLOv3 論文
一般資訊
Darknet/YOLO 框架繼續比其他框架和YOLO 版本更快、更準確。
該框架完全免費且開源。您可以將Darknet/YOLO 整合到現有專案和產品中(包括商業產品),無需許可或付費。
2024 年10 月發布的Darknet V3(“Jazz”)在使用NVIDIA RTX 3090 GPU 時可以準確地以高達1000 FPS 的速度運行LEGO 數據集視頻,這意味著每個視頻幀在1 毫秒或更短的時間內由Darknet/YOLO 讀取、調整大小和處理。
如果您需要協助或想討論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 上運作。請參閱下面的建置說明。
Darknet 版本
Joseph Redmon 在2013-2017 年寫的原始Darknet 工具沒有版本號。我們認為這是版本0.x。
由Alexey Bochkovskiy 在2017-2021 年維護的下一個流行Darknet 庫也沒有版本號。我們認為這是版本1.x。
從2023 年開始由Hank.ai 贊助並由Stéphane Charette 維護的Darknet 庫是第一個具有版本命令的庫。從2023 年到2024 年底,它返回版本2.x “OAK”。
目標是在盡可能少破壞現有功能的同時,熟悉程式碼庫。
1. 重寫了建置步驟,因此我們現在可以使用CMake 在Windows 和Linux 上建置。
2. 將程式碼庫轉換為使用C++ 編譯器。
3. 增強了訓練期間的chart.png。
4. 修復錯誤並進行與效能相關的最佳化,主要與縮短訓練網路所需時間有關。
該程式碼庫的最後一個分支是v2 分支中的版本2.1。
下一階段的開發始於2024 年年中,並於2024 年10 月發布。版本命令現在返回3.x “JAZZ”。
如果您需要執行這些命令中的一個,則始終可以簽出先前的v2 分支。請告知我們,以便我們調查添加回任何缺少的命令。
1. 刪除了許多舊的和未維護的命令。
2. 進行了許多性能優化,包括在訓練和推理期間。
3. 修改了舊的C API;使用原始Darknet API 的應用程式將需要少量修改:https://darknetcv.ai/api/api.html
4. 新的Darknet V3 C 和C++ API:https://darknetcv.ai/api/api.html
5. src-examples 中的新應用程式和範例程式碼:https://darknetcv.ai/api/files.html
MSCOCO 預訓練權重
出於方便起見,YOLO 的幾個流行版本在MSCOCO 資料集上進行了預訓練。該資料集包含80 個類別,可以在文字檔案cfg/coco.names 中看到。
還有其他幾個更簡單的datasets 和預訓練權重可用於測試Darknet/YOLO,例如LEGO Gears 和Rolodex。有關詳細信息,請參閱Darknet/YOLO 常見問題。
MSCOCO 預訓練權重可以從幾個不同的位置下載,也可以從這個repo 下載:
1. YOLOv2,2016 年11 月
1. YOLOv2-tiny
2. YOLOv2-full
2. YOLOv3,2018 年5 月
1. YOLOv3-tiny
2. YOLOv3-full
3. YOLOv4,2020 年5 月
1. YOLOv4-tiny
2. YOLOv4-full
4. YOLOv7,2022 年8 月
1. YOLOv7-tiny
2. 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 Colab
Google Colab 說明與Linux 說明相同。有幾個Jupyter 筆記本可供參考,展示如何執行某些任務,例如訓練新網路。
查看colab 子目錄中的筆記本,或按照下面的Linux 說明操作。
Linux CMake 方法
Darknet 建置教學適用於Linux
選用:如果您擁有現代NVIDIA GPU,則可以在此時安裝CUDA 或CUDA+cuDNN。如果已安裝,Darknet 將使用您的GPU 來加速映像(和視訊)處理。
您必須從Darknet 建置目錄中刪除CMakeCache.txt 文件,以強制CMake 重新尋找所有必要的文件。
請記住重新建置Darknet。
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。如果您使用的是其他發行版,請根據需要進行調整。
`bash
sudo apt-get install build-essential git libopencv-dev cmake
mkdir ~/srccd ~/src
git clone https://github.com/hank-ai/darknet
cd darknet
mkdir build
cd build
cmake -DCMAKEBUILDTYPE=Release ..
make -j4 package
sudo dpkg -i darknet-VERSION.deb
`
如果您使用的是舊版的CMake,則需要升級CMake 才能執行上面的cmake 指令。在Ubuntu 上升級CMake 可以透過以下指令完成:
`bash
sudo apt-get purge cmake
sudo snap install cmake --classic
`
如果您使用bash 作為您的命令shell,您需要在此時重新啟動您的shell。如果您使用的是fish,它應該立即拾取新的路徑。
進階用戶:
如果您想建立RPM 安裝文件而不是DEB 文件,請參閱CM_package.cmake 中的相關行。在執行make -j4 package 之前,您需要編輯這兩行:
`bash
SET (CPACKGENERATOR "DEB")# SET (CPACKGENERATOR "RPM")
`
對於Centos 和OpenSUSE 等發行版,您需要將CM_package.cmake 中這兩行切換為:
`bash
SET (CPACK_GENERATOR "DEB")
SET (CPACK_GENERATOR "RPM")
`
若要安裝安裝包,請在它完成建置後使用您發行版的常規套件管理器。例如,在基於Debian 的系統(如Ubuntu)上:
`bash
sudo dpkg -i darknet-2.0.1-Linux.deb
`
安裝.deb 套件將複製以下檔案:
1. /usr/bin/darknet 是通常的Darknet 執行檔。從CLI 運行darknet version 以確認它已正確安裝。
2. /usr/include/darknet.h 是供C、C++ 和Python 開發人員使用的Darknet API。
3. /usr/include/darknet_version.h 包含開發人員使用的版本資訊。
4. /usr/lib/libdarknet.so 是供C、C++ 和Python 開發人員連結的函式庫。
5. /opt/darknet/cfg/... 是儲存所有.cfg 範本的位置。
您現在完成了! Darknet 已建置並安裝到/usr/bin/ 中。執行以下命令進行測試:darknet version。
如果您沒有/usr/bin/darknet,表示您沒有安裝它,只是建造了它!確保像上面描述的那樣安裝.deb 或.rpm 檔案。
Windows CMake 方法
這些說明假設您全新安裝了Windows 11 22H2。
打開一個普通的cmd.exe 命令提示字元視窗並執行以下命令:
`bash
winget install Git.Git
winget install Kitware.CMake
winget install nsis.nsis
winget install Microsoft.VisualStudio.2022.Community
`
此時,我們需要修改Visual Studio 安裝以包含對C++ 應用程式的支援:
1. 點選「Windows 開始」功能表並執行「Visual Studio Installer」。
2. 點選修改。
3. 選擇使用C++ 的桌面開發。
4. 點選右下角的修改,然後點選是。
一旦所有內容都下載並安裝,請再次點擊「Windows 開始」功能表並選擇Visual Studio 2022 的開發人員命令提示字元。不要使用PowerShell 執行這些步驟,您會遇到問題!
進階用戶:
您可以不用執行開發人員命令提示符,而是使用普通的命令提示字元或ssh 登入設備,並手動執行「Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat」。
一旦您按照上面描述的那樣運行了開發人員命令提示符(不是PowerShell!),請執行以下命令以安裝Microsoft VCPKG,然後將使用它來建置OpenCV:
`bash
cd c:
mkdir c:srccd c:src
git clone https://github.com/microsoft/vcpkg
cd 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
`
請耐心等待最後一步,因為它可能需要很長時間才能運行。它需要下載和構建許多東西。
進階用戶:
請注意,在建置OpenCV 時,您可能需要添加許多其他可選模組。運行.vcpkg.exe search opencv 查看完整列表。
選用:如果您擁有現代NVIDIA GPU,則可以在此時安裝CUDA 或CUDA+cuDNN。如果已安裝,Darknet 將使用您的GPU 來加速映像(和視訊)處理。
您必須從Darknet 建置目錄中刪除CMakeCache.txt 文件,以強制CMake 重新尋找所有必要的文件。
請記住重新建置Darknet。
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 和其他依賴:
`bash
cd c:src
git clone https://github.com/hank-ai/darknet.git
cd darknet
mkdir build
cd 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
`
如果您收到缺少CUDA 或cuDNN DLL(例如cublas64_12.dll)的錯誤,則手動將CUDA .dll 檔案複製到與Darknet.exe 相同的輸出目錄中。例如:
`bash
copy "C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
`
(這是一個範例!請檢查確保您正在運行的版本,並執行適合您安裝的版本的命令。)
複製完檔案後,重新執行最後一個msbuild.exe 命令以產生NSIS 安裝包:
`bash
msbuild.exe /property:Platform=x64;Configuration=Release 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 安裝精靈。查看建置目錄中的檔案darknet-VERSION.exe。例如:
`bash
darknet-2.0.31-win64.exe
`
安裝NSIS 安裝包將:
1. 建立一個名為Darknet 的目錄,例如C:Program FilesDarknet。
2. 安裝CLI 應用程式、darknet.exe 和其他範例應用程式。
3. 安裝所需的第三方.dll 文件,例如來自OpenCV 的文件。
4. 安裝必要的Darknet .dll、.lib 和.h 文件,以便從另一個應用程式使用darknet.dll。
5. 安裝模板.cfg 檔案。
您現在完成了!安裝精靈完成後,Darknet 將安裝到C:Program FilesDarknet 中。執行以下命令進行測試:C:Program FilesDarknetbindarknet.exe version。
如果您沒有C:/Program Files/darknet/bin/darknet.exe,則表示您沒有安裝它,只是建置了它!確保按照上一步中所述的完成NSIS 安裝精靈的每個面板。
使用Darknet
CLI
以下不是Darknet 支援的所有命令的完整清單。
除了Darknet CLI 之外,還要注意DarkHelp 專案CLI,它提供了Darknet/YOLO 的替代CLI。 DarkHelp CLI 還具有一些Darknet 中沒有的增強功能。您可以將Darknet CLI 和DarkHelp CLI 同時使用,它們並不互相排斥。
對於下面顯示的大多數命令,您需要具有相應.names 和.cfg 檔案的.weights 檔案。您可以訓練自己的網路(強烈建議!),也可以下載其他人已經訓練過並免費提供在網路上的神經網路。預訓練資料集的範例包括:
1. LEGO Gears(在影像中尋找物體)
2. Rolodex(在圖像中尋找文字)
3. MSCOCO(標準80 類目標偵測)
要運行的命令包括:
列出一些可以運行的可能的命令和選項:
`bash
darknet help
`
檢查版本:
`bash
darknet version
`
使用影像進行預測:
`bash
V2
darknet detector test cars.data cars.cfg cars_best.weights image1.jpg
V3
darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp
DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
`
輸出座標:
`bash
V2
darknet detector test animals.data animals.cfg animalsbest.weights -extoutput dog.jpg
V3
darknet01inference_images animals dog.jpg
DarkHelp
DarkHelp --json animals.cfg animals.names animals_best.weights dog.jpg
`
處理影片:
`bash
V2
darknet detector demo animals.data animals.cfg animalsbest.weights -extoutput test.mp4
V3
darknet03display_videos animals.cfg test.mp4
DarkHelp
DarkHelp animals.cfg animals.names animals_best.weights test.mp4
`
從網路攝影機讀取:
`bash
V2
darknet detector demo animals.data animals.cfg animals_best.weights -c 0
V3
darknet08display_webcam animals
`
將結果儲存到影片:
`bash
V2
darknet detector demo animals.data animals.cfg animalsbest.weights test.mp4 -outfilename res.avi
V3
darknet05processvideosmultithreaded animals.cfg animals.names animals_best.weights test.mp4
DarkHelp
DarkHelp animals.cfg animals.names animals_best.weights test.mp4
`
JSON:
`bash
V2
darknet detector demo animals.data animals.cfg animalsbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3
darknet06imagestojson animals image1.jpg
DarkHelp
DarkHelp --json animals.names animals.cfg animals_best.weights image1.jpg
`
在特定GPU 上運行:
`bash
V2
darknet detector demo animals.data animals.cfg animals_best.weights -i 1 test.mp4
`
要檢查神經網路的準確性:
`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
`
要檢查準確性mAP@IoU=75:
`bash
darknet detector map animals.data animals.cfg animalsbest.weights -iouthresh 0.75
`
重新計算錨點最好在DarkMark 中完成,因為它將連續運行100 次並從所有計算的錨點中選擇最佳錨點。但是,如果您想在Darknet 中執行舊版本:
`bash
darknet detector calcanchors animals.data -numof_clusters 6 -width 320 -height 256
`
訓練新網路:
`bash
darknet detector -map -dont_show train animals.data animals.cfg
`
(另請參閱下面的訓練部分)
訓練
指向Darknet/YOLO 常見問題相關部分的快速連結:
1. 如何設定我的檔案和目錄?
2. 我應該使用哪個設定檔?
3. 訓練自己的網路時我該使用什麼指令?
使用DarkMark 創建所有必要的Darknet 文件,註釋和訓練的最簡單方法。這絕對是訓練新神經網路的推薦方法。
如果您想手動設定各種文件以訓練自訂網路:
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 開始。如果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. 在[convolutional] 部分中搜尋所有[yolo] 部分之前的classes=... 行,並使用.names 檔案中的類別數對其進行修改。在本範例中,我們將使用classes=4。
15. 在每個[yolo] 部分之前的[convolutional] 部分中搜尋所有filters=... 行。要使用的值為(類別數+ 5) 3。這意味著在本範例中,(4 + 5) 3 = 27。因此,我們在適當的行上使用filters=27。
開始訓練!運行以下命令:
`bash
cd ~/nn/animals/
darknet detector -map -dont_show train animals.data animals.cfg
`
請耐心等待。最佳權重將儲存為animals_best.weights。可以透過查看chart.png 檔案來觀察訓練的進度。有關您可能想在訓練新網路時使用的其他參數,請參閱Darknet/YOLO 常見問題。
如果您想在訓練期間看到更多詳細信息,請添加--verbose 參數。例如:
`bash
darknet detector -map -dont_show --verbose train animals.data animals.cfg
`
其他工具和鏈接
要管理您的Darknet/YOLO 專案、註釋圖像、驗證您的註釋,以及產生與Darknet 一起訓練所需的必要文件,請參閱DarkMark。
對於Darknet 的強大替代CLI,要使用圖像平鋪、在您的影片中進行目標跟踪,或對於可以在商業應用程式中輕鬆使用的強大C++ API,請參閱DarkHelp。
看看Darknet/YOLO 常見問題是否可以幫助您解答您的問題。
在Stéphane 的YouTube 頻道上查看許多教程和示例視頻
如果您有任何支援問題或想與其他Darknet/YOLO 用戶聊天,請加入Darknet/YOLO Discord 伺服器。
路線圖
最後更新時間:2024-10-30:
已完成
1. 將訓練期間使用的qsort() 替換為std::sort()