Video2X: 高品質ビデオのアップスケーリングとフレーム補間フレームワーク
ソースコードエディタ
重要
バージョン 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 パッケージを使用して Video2X を Arch Linux にインストールすることも、リリース ページからプリコンパイルされたバイナリをダウンロードすることもできます。ソースからビルドする場合は、PKGBUILD ファイルで必要なパッケージとコマンドの概要を参照してください。プログラムをソースからコンパイルしたくない場合は、以下のコンテナー イメージの使用を検討してください。
コンテナイメージ
Video2X コンテナ イメージは、Linux および macOS に簡単にデプロイできるように、GitHub コンテナ レジストリで入手できます。 Docker/Podman がインストールされている場合は、コマンド 1 つだけでビデオ増幅を開始できます。 Video2X の Docker イメージの使用方法の詳細については、ドキュメントを参照してください。
Google Colab (廃止: 5.0.0-beta7)
独自の強力な GPU がない場合は、Google Colab で Video2X を無料で使用できます。 Google のサーバー上で強力な GPU (NVIDIA T4、L4、または A100) をセッションごとに最大 12 時間無料で借りることができます。無料のリソースを公正に使用し、継続的なセッションを作成したり、Zoom を 24 時間 365 日実行したりしないでください。その結果、アクセス禁止となる場合があります。より優れた GPU を使用してランタイムを延長したい場合は、Colab Pro/Pro+ を入手してください。使用説明書は Colab ノートブックに埋め込まれています。
電報ディスカッショングループ
Telegram ディスカッション グループに参加して、Video2X について質問したり、開発者と直接チャットしたり、超解像度テクノロジーや Video2X の将来について話し合ったりしてください。
書類
Video2X のドキュメントは、このリポジトリの Wiki ページでホストされています。 GUI、CLI、コンテナイメージ、ライブラリなどの使用方法に関する包括的な手順が含まれています。 Wiki はコミュニティによる編集に公開されているため、間違いを修正したり、ドキュメントに新しいコンテンツを追加したりすることもできます。
導入
Video2X は、次の 3 つの主要コンポーネントを中心に構築された機械学習ベースのビデオ アップスケーリングおよびフレーム補間フレームワークです。
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 ライセンス
目次
ダークネットオブジェクト検出フレームワークとYOLO
1. 紙
2. 一般情報
3. ダークネットバージョン
4. MSCOCO 事前トレーニング ウェイト
5. 構築する
1.Googleコラボ
2. Linux CMake メソッド
3. Windows CMake メソッド
6. ダークネットを使用する
1.CLI
2. トレーニング
7. その他のツールとリンク
8. ロードマップ
1. 短期的な目標
2. 中期目標
3. 長期的な目標
ダークネットオブジェクト検出フレームワークとYOLO
Darknet は、C、C++、CUDA で書かれたオープンソースのニューラル ネットワーク フレームワークです。
YOLO (You Only Look Once) は、Darknet フレームワークで実行される最先端のリアルタイム物体検出システムです。
Hank.ai がダークネット/YOLO コミュニティにどのように貢献しているかを読む
ダークネット V3「ジャズ」を発表
ダークネット/YOLO Web サイトをチェックしてください。
ダークネット/YOLO FAQ をお読みください。
Darknet/YOLO Discord サーバーに参加する
紙
1.YOLOv7論文
2. スケールされた YOLOv4 論文
3. YOLOv4 論文
4.YOLOv3論文
一般情報
Darknet/YOLO フレームワークは、他のフレームワークや YOLO バージョンよりも高速かつ正確であり続けます。
このフレームワークは完全に無料でオープンソースです。 Darknet/YOLO は、ライセンスや料金なしで既存のプロジェクトや製品 (商用製品を含む) に統合できます。
2024 年 10 月にリリースされた Darknet V3 (「Jazz」) は、NVIDIA RTX 3090 GPU を使用する場合、LEGO データセット ビデオを最大 1000 FPS で正確に実行できます。つまり、各ビデオ フレームにかかる時間は 1 ミリ秒以下です。Darknet/ によって内部的に読み取られ、サイズ変更され、処理されます。ヨロ。
サポートが必要な場合、または 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 上で動作することが知られています。以下のビルド手順を参照してください。
ダークネットバージョン
2013 年から 2017 年に Joseph Redmon によって作成されたオリジナルの Darknet ツールにはバージョン番号がありませんでした。これはバージョン 0.x だと思います。
2017 年から 2021 年にかけて Alexey Bochkovskiy によって管理され、次に人気のある Darknet ライブラリにもバージョン番号がありません。これはバージョン 1.x だと思います。
Hank.ai がスポンサーとなり、2023 年から Stéphane Charette によって保守される Darknet ライブラリは、version コマンドを持つ最初のライブラリです。 2023 年から 2024 年末までは、バージョン 2.x「OAK」に戻ります。
目標は、既存の機能をできるだけ壊さずに、コード ベースに慣れることです。
1. ビルド手順を書き直して、CMake を使用して Windows と Linux 上でビルドできるようにしました。
2. C++ コンパイラを使用するようにコード ベースを変換します。
3. トレーニング中の chart.png を強化しました。
4. バグ修正とパフォーマンス関連の最適化。主にネットワークのトレーニングに必要な時間の短縮に関連します。
コード ベースの最後のブランチは、v2 ブランチのバージョン 2.1 です。
開発の次の段階は 2024 年半ばに始まり、2024 年 10 月にリリースされる予定です。 version コマンドは 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 で確認できます。
Darknet/YOLO のテストに利用できる、LEGO Gears や Rolodex などのより単純なデータセットと事前トレーニングされた重みが他にもいくつかあります。詳細については、ダークネット/YOLO FAQ を参照してください。
MSCOCO の事前トレーニングされた重みは、いくつかの異なる場所からダウンロードできます。また、このリポジトリからもダウンロードできます。
1. YOLOv2、2016 年 11 月
1.YOLOv2-tiny
2.YOLOv2-フル
2. YOLOv3、2018 年 5 月
1.YOLOv3-tiny
2.YOLOv3-フル
3. YOLOv4、2020 年 5 月
1.YOLOv4-tiny
2.YOLOv4-フル
4. YOLOv7、2022 年 8 月
1.YOLOv7-tiny
2.YOLOv7-フル
MSCOCO の事前トレーニング済み重みはデモンストレーションのみを目的としています。 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 を使用して画像 (およびビデオ) 処理を高速化します。
CMake に必要なファイルをすべて再検索させるには、Darknet ビルド ディレクトリから CMakeCache.txt ファイルを削除する必要があります。
ダークネットを再構築することを忘れないでください。
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 clone https://github.com/hank-ai/darknet
CDダークネット
mkdir ビルド
CD ビルド
cmake -DCMAKEBUILDTYPE=リリース ..
-j4 パッケージを作成する
sudo dpkg -i darknet-VERSION.deb
`
古いバージョンの CMake を使用している場合、上記の cmake コマンドを実行するには CMake をアップグレードする必要があります。 Ubuntu での CMake のアップグレードは、次のコマンドで実行できます。
「バッシュ」
sudo apt-get パージ cmake
sudo snap install cmake --classic
`
コマンド シェルとして bash を使用している場合は、この時点でシェルを再起動する必要があります。魚を使用している場合は、すぐに新しいパスを選択する必要があります。
上級ユーザー:
DEB ファイルではなく RPM インストール ファイルをビルドする場合は、CM_package.cmake の関連する行を参照してください。 make -j4 package を実行する前に、次の 2 行を編集する必要があります。
「バッシュ」
SET (CPACKGENERATOR "DEB")# SET (CPACKGENERATOR "RPM")
`
Centos や OpenSUSE などのディストリビューションの場合、CM_package.cmake のこれら 2 行を次のように切り替える必要があります。
「バッシュ」
SET (CPACK_GENERATOR "DEB")
SET (CPACK_GENERATOR "RPM")
`
パッケージをインストールするには、ビルドが完了した後でディストリビューションの通常のパッケージ マネージャーを使用します。たとえば、Ubuntu などの Debian ベースのシステムでは次のようになります。
「バッシュ」
sudo dpkg -i darknet-2.0.1-Linux.deb
`
.deb パッケージをインストールすると、次のファイルがコピーされます。
1. /usr/bin/darknet は通常の Darknet 実行可能ファイルです。 CLI からダークネット バージョンを実行して、正しくインストールされていることを確認します。
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/ に構築され、インストールされます。次のコマンドを実行してテストします: ダークネット バージョン。
/usr/bin/darknet がない場合は、インストールしたのではなく、ビルドしただけです。必ず上記のように .deb または .rpm ファイルをインストールしてください。
Windows CMake メソッド
これらの手順は、Windows 11 22H2 がクリーン インストールされていることを前提としています。
通常の cmd.exe コマンド プロンプト ウィンドウを開き、次のコマンドを実行します。
「バッシュ」
winget インストール Git.Git
winget インストール Kitware.CMake
winget インストール nsis.nsis
winget インストール Microsoft.VisualStudio.2022.Community
`
この時点で、Visual Studio のインストールを変更して C++ アプリケーションのサポートを含める必要があります。
1. Windows の [スタート] メニューをクリックし、Visual Studio インストーラーを実行します。
2. 「編集」をクリックします。
3. C++ を使用したデスクトップ開発を選択します。
4. 右下隅の「編集」をクリックし、「はい」をクリックします。
すべてがダウンロードされてインストールされたら、Windows の [スタート] メニューを再度クリックし、[Visual Studio 2022 の開発者コマンド プロンプト] を選択します。これらの手順を実行するのに PowerShell を使用しないでください。問題が発生する可能性があります。
上級ユーザー:
開発者コマンド プロンプトを実行する代わりに、通常のコマンド プロンプトまたは SSH を使用してデバイスにログインし、「Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat」を手動で実行できます。
上記のように開発者コマンド プロンプトを実行したら (PowerShell ではありません!)、次のコマンドを実行して Microsoft VCPKG をインストールします。これは OpenCV のビルドに使用されます。
「バッシュ」
CDC:
mkdir c:srccd c:src
git clone https://github.com/microsoft/vcpkg
cd vcpkg
ブートストラップ-vcpkg.bat
.vcpkg.exe 統合インストール
.vcpkg.exe 統合 powershell.vcpkg.exe インストール opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
この最後のステップは実行に時間がかかる場合があるため、しばらくお待ちください。多くのものをダウンロードして構築する必要があります。
上級ユーザー:
OpenCV を構築するときは、他の多くのオプション モジュールを追加する必要がある場合があることに注意してください。 .vcpkg.exe search opencv を実行して、完全なリストを表示します。
オプション: 最新の NVIDIA GPU を使用している場合は、この時点で CUDA または CUDA+cuDNN をインストールできます。インストールされている場合、Darknet は GPU を使用して画像 (およびビデオ) 処理を高速化します。
CMake に必要なファイルをすべて再検索させるには、Darknet ビルド ディレクトリから CMakeCache.txt ファイルを削除する必要があります。
ダークネットを再構築することを忘れないでください。
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/[バージョン]/ にコピーします。一部のファイルを上書きする必要がある場合があります。
後で CUDA または CUDA+cuDNN をインストールした場合、または NVIDIA ソフトウェアの新しいバージョンにアップグレードした場合:
CUDA は Visual Studio の後にインストールする必要があります。 Visual Studio をアップグレードする場合は、必ず CUDA を再インストールしてください。
これまでの手順がすべて正常に完了したら、Darknet のクローンを作成して構築する必要があります。このステップでは、OpenCV やその他の依存関係を見つけられるように、vcpkg の場所を CMake に伝える必要もあります。
「バッシュ」
cd c:src
git clone https://github.com/hank-ai/darknet.git
CDダークネット
mkdir ビルド
CD ビルド
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:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
CUDA または cuDNN DLL (cublas64_12.dll など) が見つからないというエラーが表示された場合は、CUDA .dll ファイルを Darknet.exe と同じ出力ディレクトリに手動でコピーします。例えば:
「バッシュ」
「C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll」をコピー src-cliRelease
`
(これは例です。実行しているバージョンを確認し、インストールしたバージョンに適したコマンドを実行してください。)
ファイルをコピーした後、最後の msbuild.exe コマンドを再実行して NSIS インストール パッケージを生成します。
「バッシュ」
msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
上級ユーザー:
cmake コマンドの出力は、通常の Visual Studio ソリューション ファイル Darknet.sln であることに注意してください。プロジェクトのビルドに msbuild.exe ではなく Visual Studio GUI を頻繁に使用するソフトウェア開発者の場合は、コマンド ラインを無視して Visual Studio に Darknet プロジェクトをロードできます。
これで、このファイル C:srcDarknetbuildsrc-cli releasearknet.exe を実行できるようになりました。次のコマンドを実行してテストします: C:srcDarknetbuildsrc-cli releasearknet.exe のバージョン。
Darknet、ライブラリ、インクルード ファイル、および必要な DLL を適切にインストールするには、前の手順で構築した NSIS インストール ウィザードを実行します。ビルド ディレクトリ内のファイル darknet-VERSION.exe を確認してください。例えば:
「バッシュ」
darknet-2.0.31-win64.exe
`
NSIS インストール パッケージをインストールすると、次のことが行われます。
1. Darknet という名前のディレクトリを作成します (例: C:Program FilesDarknet)。
2. CLI アプリケーション、darknet.exe、およびその他のサンプル アプリケーションをインストールします。
3. OpenCV などの必要なサードパーティの .dll ファイルをインストールします。
4. 別のアプリケーションから darknet.dll を使用するために必要な Darknet .dll、.lib、および .h ファイルをインストールします。
5. テンプレート .cfg ファイルをインストールします。
これで完了です。インストール ウィザードが完了すると、Darknet が C:Program FilesDarknet にインストールされます。次のコマンドを実行してテストします: C:Program FilesDarknetbindarknet.exe のバージョン。
C:/Program Files/darknet/bin/darknet.exe がない場合は、インストールしたのではなく、ビルドしただけです。前の手順で説明したように、NSIS インストール ウィザードの各パネルを必ず完了してください。
ダークネットの使用
CLI
以下は、Darknet でサポートされるすべてのコマンドの完全なリストではありません。
Darknet CLI に加えて、Darknet/YOLO の代替 CLI を提供する DarkHelp プロジェクト CLI にも注目してください。 DarkHelp CLI には、Darknet にはないいくつかの拡張機能もあります。 Darknet CLI と DarkHelp CLI は一緒に使用できますが、相互に排他的ではありません。
以下に示すほとんどのコマンドでは、対応する .name および .cfg ファイルを含む .weights ファイルが必要です。独自のネットワークをトレーニングすることも (強くお勧めします!)、他の人がトレーニングし、インターネット上で自由に入手できるニューラル ネットワークをダウンロードすることもできます。事前トレーニング データセットの例は次のとおりです。
1. レゴギア (画像内のオブジェクトを見つける)
2. Rolodex (画像内のテキストを検索)
3. MSCOCO (標準 80 カテゴリのターゲット検出)
実行するコマンドには次のものがあります。
実行可能なコマンドとオプションをいくつかリストします。
「バッシュ」
ダークネットのヘルプ
`
バージョンを確認します:
「バッシュ」
ダークネットバージョン
`
画像を使用して予測を行う:
「バッシュ」
V2
ダークネット ディテクタ テストcars.datacars.cfgcars_best.weights image1.jpg
V3
darknet02displayannotatedimagescars.cfg image1.jpg
ダークヘルプ
DarkHelp 車.cfg 車.cfg 車_ベスト.重み image1.jpg
`
出力座標:
「バッシュ」
V2
ダークネット ディテクタ テスト Animals.data Animals.cfg Animalsbest.weights -extoutput Dog.jpg
V3
darknet01inference_images 動物 犬.jpg
ダークヘルプ
DarkHelp --json 動物.cfg 動物.名前 動物ベスト.重み 犬.jpg
`
ビデオの処理:
「バッシュ」
V2
ダークネット ディテクタ デモ Animals.data Animals.cfg Animalsbest.weights -extoutput test.mp4
V3
darknet03display_videos 動物.cfg test.mp4
ダークヘルプ
DarkHelp 動物.cfg 動物.名前 動物ベスト.重みテスト.mp4
`
ウェブカメラからの読み取り:
「バッシュ」
V2
ダークネット検出器のデモ Animals.data Animals.cfg Animals_best.weights -c 0
V3
darknet08display_webカメラの動物
`
結果をビデオに保存:
「バッシュ」
V2
ダークネット ディテクタ デモ Animals.data Animals.cfg Animalsbest.weights test.mp4 -outfilename res.avi
V3
darknet05processvideosマルチスレッド動物.cfg動物.名前動物_ベスト.重みテスト.mp4
ダークヘルプ
DarkHelp 動物.cfg 動物.名前 動物ベスト.重みテスト.mp4
`
JSON:
「バッシュ」
V2
ダークネット ディテクタ デモ Animals.data Animals.cfg Animalbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3
darknet06imagestojson 動物 image1.jpg
ダークヘルプ
DarkHelp --json 動物.名前 動物.cfg 動物ベスト.重み image1.jpg
`
特定の GPU で実行します。
「バッシュ」
V2
ダークネット検出器のデモ Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
`
ニューラル ネットワークの精度を確認するには:
「バッシュ」
ダークネット検出器マップ Driving.data Driving.cfg Driving_best.weights ...
ID 名 AvgPrecision TP FN FP TN Accuracy ErrorRate Precision Recall Specificity 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:
「バッシュ」
ダークネット検出器マップ Animals.data Animals.cfg Animalsbest.weights -iouthresh 0.75
`
アンカー ポイントの再計算は、DarkMark で 100 回連続して実行され、計算されたすべてのアンカー ポイントから最適なアンカー ポイントを選択するため、最もよく実行されます。ただし、ダークネットで古いバージョンを実行したい場合は、次のようにします。
「バッシュ」
ダークネット検出器 calcanchors 動物.データ -numof_clusters 6 -幅 320 -高さ 256
`
新しいネットワークをトレーニングします。
「バッシュ」
ダークネット ディテクタ -map -dont_show train Animals.data Animals.cfg
`
(以下のトレーニングセクションも参照してください)
電車
ダークネット/YOLO FAQ の関連セクションへのクイック リンク:
1. ファイルとディレクトリはどのように設定すればよいですか?
2. どのプロファイルを使用すればよいですか?
3. 独自のネットワークをトレーニングする場合はどのコマンドを使用する必要がありますか?
DarkMark を使用して、必要なすべての Darknet ファイル、注釈、トレーニングを作成する最も簡単な方法。これは間違いなく、新しいニューラル ネットワークをトレーニングする場合に推奨される方法です。
カスタム ネットワークをトレーニングするためにさまざまなファイルを手動でセットアップする場合は、次の手順を実行します。
1. ファイルを保存する新しいフォルダーを作成します。この例では、動物を検出するためのニューラル ネットワークを作成するため、~/nn/animals/ というディレクトリが作成されます。
2. テンプレートとして使用する Darknet 構成ファイルの 1 つをコピーします。たとえば、cfg/yolov4-tiny.cfg を参照してください。作成したフォルダーに置きます。この例では、~/nn/animals/animals.cfg が作成されました。
3. 構成ファイルを配置したのと同じフォルダーに、animals.names テキスト ファイルを作成します。この例では、~/nn/animals/animals.names が作成されました。
4. テキスト エディタを使用して、animals.names ファイルを編集します。使用するカテゴリをリストします。 1 行に 1 つのエントリが必要であり、空白行やコメントは必要ありません。この例では、.names ファイルにはちょうど 4 行が含まれます。
`
犬
猫
鳥
馬
`
5. 同じフォルダーにanimals.dataテキストファイルを作成します。この例では、.data ファイルには次のものが含まれます。
`
クラス=4
train=/home/ユーザー名/nn/animals/animals_train.txt
valid=/home/ユーザー名/nn/animals/animals_valid.txt
names=/ホーム/ユーザー名/nn/animals/animals.names
バックアップ=/ホーム/ユーザー名/nn/animals
`
6. 画像と注釈を保存するフォルダーを作成します。たとえば、これは ~/nn/animals/dataset のようになります。各画像には、その画像の注釈を説明する対応する .txt ファイルが必要です。 .txt コメント ファイルの形式は非常に特殊です。各注釈には注釈の正確な座標が含まれている必要があるため、これらのファイルを手動で作成することはできません。画像に注釈を付けるには、DarkMark または他の同様のソフトウェアを参照してください。 YOLO アノテーション形式については、Darknet/YOLO FAQ で説明されています。
7. .data ファイル内に名前を付けた「train」および「valid」テキスト ファイルを作成します。これら 2 つのテキスト ファイルには、ダークネットがトレーニングと検証 (mAP% の計算時) に使用する必要があるすべての画像をそれぞれリストする必要があります。 1 行に 1 つの画像のみ。パスとファイル名は相対パスまたは絶対パスにすることができます。
8. テキスト エディタを使用して .cfg ファイルを変更します。
9. バッチ = 64 であることを確認します。
10. 細分化に注意してください。ネットワークのサイズと GPU で利用可能なメモリの量に応じて、サブディビジョンを増やす必要がある場合があります。使用するのに最適な値は 1 なので、1 から始めます。 1 がうまくいかない場合は、Darknet/YOLO FAQ を参照してください。
11. maxbatches=.... として開始するのに適した値は、カテゴリ数の 2000 倍であることに注意してください。この例では動物が 4 匹いるので、4 * 2000 = 8000 となります。これは、maxbatches=8000 を使用することを意味します。
12. ステップ =.... これは最大バッチの 80% と 90% に設定する必要があることに注意してください。この例では、maxbatches が 8000 に設定されているため、steps=6400,7200 を使用します。
13. width=... と height=.... に注意してください。これらはネットワークの寸法です。 Darknet/YOLO FAQ では、使用する最適なサイズを計算する方法について説明しています。
14. [convolutional] セクションで、[yolo] セクションの前にあるすべての class=... 行を検索し、.names ファイルのクラスの数でそれらを変更します。この例では、classes=4 を使用します。
15. 各 [yolo] セクションの前にある [convolutional] セクション内のすべての filters=... 行を検索します。使用する値は (カテゴリの数 + 5) 3 です。これは、この例では (4 + 5) 3 = 27 であることを意味します。したがって、適切な行で filters=27 を使用します。
トレーニングを始めましょう!次のコマンドを実行します。
「バッシュ」
cd ~/nn/動物/
ダークネット ディテクタ -map -dont_show train Animals.data Animals.cfg
`
お待ちください。最適な重みは、animals_best.weights として保存されます。 chart.png ファイルを表示すると、トレーニングの進行状況を観察できます。新しいネットワークをトレーニングするときに使用する追加パラメータについては、Darknet/YOLO FAQ を参照してください。
トレーニング中に詳細を確認したい場合は、--verbose パラメーターを追加します。例えば:
「バッシュ」
ダークネット ディテクタ -map -dont_show --verbose train Animals.data Animals.cfg
`
その他のツールとリンク
Darknet/YOLO プロジェクトの管理、画像に注釈を付け、注釈を検証し、Darknet でのトレーニングに必要なファイルを生成するには、DarkMark を参照してください。
Darknet に代わる強力な CLI、画像タイリングやビデオ内でのオブジェクト追跡を使用するための、または商用アプリケーションで簡単に使用できる強力な C++ API については、DarkHelp を参照してください。
Darknet/YOLO FAQ があなたの質問の答えに役立つかどうかを確認してください。
Stephane の YouTube チャンネルにある多くのチュートリアルとサンプルビデオをご覧ください。
サポートに関する質問がある場合、または他の Darknet/YOLO ユーザーとチャットしたい場合は、Darknet/YOLO Discord サーバーに参加してください。
ロードマップ
最終更新日: 2024-10-30:
完了しました
1. トレーニング中に使用される qsort() を std::sort() に置き換えます。