アンシブル
Ansible は非常にシンプルな IT 自動化システムです。構成管理、アプリケーションの展開、クラウド プロビジョニング、アドホック タスクの実行、ネットワークの自動化、およびマルチノード オーケストレーションを適切に処理します。 Ansible を使用すると、ロード バランサーを使用したダウンタイムなしのローリング アップデートなど、複雑な変更を簡単に実行できます。 Ansible の機能については、公式 Web サイトで詳しくご覧ください。
設計原則
1.Ansibleを活用する
pip または任意のパッケージ マネージャーを使用して、Ansible のリリース バージョンをシームレスにインストールできます。さまざまなプラットフォームにわたる包括的な手順については、詳細なインストール ガイドを参照してください。
2. パワーユーザーと開発者に権限を与える
上級ユーザーと開発者向けに、devel ブランチから最新の機能と修正へのアクセスが提供されます。一般的には安定していますが、このブランチを利用する場合は重大な変更が発生する可能性があることを認識することが重要です。 devel ブランチで作業する場合は、Ansible コミュニティに参加することを強くお勧めします。
コミュニケーション
活気のある Ansible フォーラムに参加して、コミュニティに参加し、支援を求め、質問してください。その他の通信チャネルについては、Ansible コミュニティとの接続に関する専用ガイドを参照してください。
Ansible に貢献する
コーディングガイドライン
私たちは開発者ガイドにコーディング ガイドラインを細心の注意を払って文書化しています。次のセクションを確認することを強くお勧めします。
1. 支店情報
2. ロードマップ
チームやコミュニティからの貴重なフィードバックに基づいて、メジャー バージョンまたはマイナー バージョン (例: 2.7、2.8) ごとに初期ロードマップが公開されます。 Ansible ロードマップ ページでは、私たちの計画の概要を説明し、方向性に影響を与える手段を提供します。
著者
Ansible は元々 Michael DeHaan によって考案され、5,000 人を超えるユーザー (そしてさらに増え続けています) の貢献の恩恵を受けてきました。ご協力いただいた皆様、ありがとうございました!
Ansible は Red Hat, Inc. によって後援されています。
ライセンス
GNU 一般公衆利用許諾書 v3.0 以降。ライセンスの全文については、「コピー」を参照してください。
ダークネットオブジェクト検出フレームワークとYOLO
!darknet と hank.ai のロゴ
Darknet は、C、C++、CUDA で開発されたオープンソースのニューラル ネットワーク フレームワークです。
YOLO (You Only Look Once) は、ダークネット フレームワーク内で動作する最先端のリアルタイム物体検出システムを表します。
Hank.ai が Darknet/YOLO コミュニティにどのように貢献しているかをご覧ください: https://darknetcv.ai/
Darknet/YOLO の公式 Web サイトを探索してください: https://pjreddie.com/darknet/
包括的な Darknet/YOLO FAQ を参照してください: https://pjreddie.com/darknet/yolo/
アクティブな Darknet/YOLO Discord サーバーに参加します: https://discord.gg/zSq8rtW
論文
1. YOLOv7 論文: https://arxiv.org/abs/2207.02696
2. Scaled-YOLOv4 論文: https://arxiv.org/abs/2102.12074
3. YOLOv4 論文: https://arxiv.org/abs/2004.10934
4. YOLOv3 論文: https://arxiv.org/abs/1804.02769
一般情報
Darknet/YOLO フレームワークは、速度と精度の両方で他のフレームワークや YOLO のバージョンよりも優れたパフォーマンスを維持し続けています。
その完全な自由とオープンソースの性質により、ライセンス制限や料金なしで、商用プロジェクトを含む既存のプロジェクトや製品に Darknet/YOLO をシームレスに統合できます。
2024 年 10 月にリリースされた Darknet V3 (「ジャズ」) は、NVIDIA RTX 3090 GPU を利用する際に LEGO データセット ビデオを驚異的な 1000 FPS で処理することでその優れた能力を実証しています。これは各ビデオ フレームの処理時間が 1 ミリ秒以下に相当し、優れた効率を示しています。
Darknet/YOLO に関連するサポートやディスカッションが必要な場合は、専用の Discord サーバー (https://discord.gg/zSq8rtW) に参加してください。
Darknet/YOLO の CPU バージョンは、Raspberry Pi、クラウドおよびコラボ サーバー、デスクトップ、ラップトップ、ハイエンド トレーニング リグなどのさまざまなデバイスに適応できます。 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」が返されました。
開発目標は、コードベースに慣れると同時に、既存の機能への混乱を最小限に抑えることに重点を置いていました。
バージョン 2.x の主な改善点:
1. 統合ビルド プロセス: Windows と Linux の両方で CMake を使用する統合アプローチのビルド ステップを書き直しました。
2. C++ への移行: C++ コンパイラを利用できるようにコードベースを変換しました。
3. トレーニングの視覚化の強化: トレーニング中の chart.png の視覚化が改善されました。
4. パフォーマンスの最適化: バグに対処し、主にトレーニング時間の短縮に焦点を当てたパフォーマンス関連の最適化を実装しました。
バージョン 2.1 は、このコードベースの最後のブランチであり、v2 ブランチで利用できます。
開発の次の段階は 2024 年半ばに開始され、2024 年 10 月のバージョン 3.x「JAZZ」リリースで最高潮に達しました。
そのバージョンの特定のコマンドにアクセスする必要がある場合は、以前の v2 ブランチをチェックアウトするオプションを保持します。不足しているコマンドが見つかった場合は、調査と再統合の可能性のために当社に通知してください。
バージョン 3.x での重要な変更点:
1. コマンドの削除: 古くなった、メンテナンスされていない多数のコマンドを削除しました。
2. パフォーマンスの強化: トレーニング中と推論中の両方で、広範なパフォーマンスの最適化が実装されました。
3. API の変更: 従来の C API は変更されました。オリジナルの Darknet API に依存するアプリケーションには、若干の調整が必要になります。ガイダンスについては、更新されたドキュメントを参照してください: https://darknetcv.ai/api/api.html
4. 新しい API の紹介: 新しい 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 テキスト ファイルに含まれています。
追加のより単純なデータセットと事前トレーニングされた重みは、LEGO Gears や Rolodex などの Darknet/YOLO のテストにすぐに利用できます。詳細については、Darknet/YOLO FAQ を参照してください。
MSCOCO の事前トレーニングされた重みは、次のリポジトリを含むさまざまな場所から取得できます。
YOLOv2 (2016 年 11 月):
yolov2-小さな
yolov2-フル
YOLOv3 (2018 年 5 月):
yolov3-小さな
yolov3-フル
YOLOv4 (2020 年 5 月):
yolov4-小さな
yolov4-フル
YOLOv7 (2022 年 8 月):
yolov7-小さな
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++ の専門知識は必要ありません。車の運転と同じように、整備士でなくても利用できます。
ソフトウェア開発者は、Darknet/YOLO オブジェクト検出フレームワークの内部動作について詳しく知るために、https://darknetcv.ai/ にアクセスすることをお勧めします。
Googleコラボ
Google Colab の手順は Linux の手順を反映しています。いくつかの Jupyter ノートブックでは、新しいネットワークのトレーニングなどの特定のタスクを示します。
colab サブディレクトリ内のノートブックを探索するか、以下に示す Linux の手順に従ってください。
Linux CMake メソッド
1. 必須ソフトウェア:
ビルドの基本: sudo apt-get install build-essential git libopencv-dev cmake
2. リポジトリのクローン作成:
ソースディレクトリを作成します: mkdir ~/srccd ~/src
リポジトリのクローンを作成します: git clone https://github.com/hank-ai/darknetcd darknet
3. ビルドディレクトリ:
ビルド ディレクトリを作成します: mkdir buildcd build
4.CMake 構成:
CMake を構成します: cmake -DCMAKEBUILDTYPE=Release ..
5. ダークネットを構築する:
ビルド: make -j4
6. パッケージのインストール:
パッケージを作成します: パッケージ
パッケージをインストールします: sudo dpkg -i darknet-VERSION.deb
オプション: CUDA または CUDA+cuDNN のインストール
画像およびビデオ処理を高速化するために、オプションで CUDA または CUDA+cuDNN をインストールできます。
CUDA のインストール:
https://developer.nvidia.com/cuda-downloads にアクセスして、CUDA をダウンロードしてインストールします。
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 インストール後:
nvcc と nvidia-smi を実行できることを確認します。 PATH 変数の変更が必要になる場合があります。
CUDA または CUDA+cuDNN のアップグレード:
Darknet ビルド ディレクトリから CMakeCache.txt ファイルを削除して、CMake に必要なファイルを強制的に再検索させます。
ダークネットを再構築します。
CMake バージョンのアップグレード (必要な場合):
既存の CMake をパージします: sudo apt-get purge cmake
最新の CMake をインストールします: sudo snap install cmake --classic
シェルを再起動するか (bash)、新しいパスが認識されていることを確認します (fish)。
上級ユーザー:
DEB の代わりに RPM インストール ファイルをビルドするには、CM_package.cmake 内の関連する行を変更します。 make -j4 package を実行する前に、次の行を調整します。
`cmake
SET (CPACK_GENERATOR "DEB")
SET (CPACK_GENERATOR "RPM")
`
CentOS や OpenSUSE などのディストリビューションの場合は、次の行を変更します。
`cmake
SET (CPACK_GENERATOR "DEB")
SET (CPACK_GENERATOR "RPM")
`
インストール パッケージが構築されたら、ディストリビューションのパッケージ マネージャーを使用してインストールします。たとえば、Ubuntu などの Debian ベースのシステムでは次のようになります。
「バッシュ」
sudo dpkg -i darknet-2.0.1-Linux.deb
`
インストール後:
インストールされるファイルには次のものが含まれます。
- /usr/bin/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 テンプレートの場所。
Darknet が正常に構築され、/usr/bin/ にインストールされました。確認するには、ダークネット バージョンを実行します。
Windows CMake メソッド
1. 前提条件:
Winget を使用して以下をインストールします。
- Git: winget インストール Git.Git
- CMake: WINGET インストール Kitware.CMake
- NSIS: winget インストール nsis.nsis
- Visual Studio 2022 コミュニティ: winget インストール Microsoft.VisualStudio.2022.Community
2. Visual Studio の構成:
Windows のスタート メニューから「Visual Studio インストーラー」を開きます。
「変更」をクリックします。
「C++によるデスクトップ開発」を選択します。
右下隅の「変更」をクリックし、「はい」をクリックします。
3. 開発者コマンド プロンプト:
「Windows スタート」メニューを開き、「VS 2022 の開発者コマンド プロンプト」を選択します。これらの手順では PowerShell を使用しないでください。
4. Microsoft VCPKG インストール (OpenCV 用):
C:: cd c: に移動します。
src ディレクトリを作成します: mkdir c:src
VCPKG のクローンを作成します: cd c:src git clone https://github.com/microsoft/vcpkg
ブートストラップ VCPKG: cd vcpkg bootstrap-vcpkg.bat
VCPKG の統合: .vcpkg.exe 統合インストール
OpenCV をインストールします (依存関係を含む): .vcpkg.exe install opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
5. オプション: CUDA または CUDA+cuDNN のインストール (Windows)
画像およびビデオ処理を高速化するために、オプションで CUDA または CUDA+cuDNN をインストールできます。
CUDA のインストール:
https://developer.nvidia.com/cuda-downloads にアクセスして、CUDA をダウンロードしてインストールします。
cuDNN のインストール:
https://developer.nvidia.com/rdp/cudnn-download または https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows にアクセスして、cuDNN をダウンロードしてインストールします。
CUDA インストール後:
nvcc.exe を実行できることを確認します。 PATH 変数の変更が必要になる場合があります。
ダウンロードした cuDNN を解凍し、bin、include、lib ディレクトリを C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[バージョン]/ にコピーします。一部のファイルを上書きする必要がある場合があります。
CUDA または CUDA+cuDNN のアップグレード:
CUDA は Visual Studio の後にインストールする必要があります。 Visual Studio をアップグレードする場合は、CUDA を再インストールします。
6. ダークネットのクローン作成と構築:
ソース ディレクトリに移動します: cd c:src
リポジトリのクローンを作成します: git clone https://github.com/hank-ai/darknet.git
ビルド ディレクトリを作成します: cd darknetmkdir build
VCPKG を使用して CMake を構成します: 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
NSIS インストール パッケージを生成します: msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
7. 欠落している CUDA/cuDNN DLL の処理:
CUDA または cuDNN DLL (例: cublas64_12.dll) の欠落に関するエラーが発生した場合は、関連する CUDA .dll ファイルを Darknet.exe と同じ出力ディレクトリに手動でコピーします。例えば:
「バッシュ」
「C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll」をコピー src-cliRelease
`
インストールに一致するようにコマンド内のバージョン番号を調整します。
msbuild.exe コマンドを再実行して、NSIS インストール パッケージを生成します。
上級ユーザー:
cmake コマンドは、Visual Studio ソリューション ファイル (Darknet.sln) を生成します。 Visual Studio GUI を使用したい場合は、コマンドライン ツールを使用する代わりに、Visual Studio に Darknet プロジェクトをロードできます。
ビルド後の検証:
C:srcDarknetbuildsrc-cli releasearknet.exe が存在することを確認します。 C:srcDarknetbuildsrc-cliリリースarknet.exeのバージョンを実行して確認します。
インストール:
NSIS インストール ウィザード (ビルド ディレクトリ内の darknet-VERSION.exe など) を実行して、Darknet、ライブラリ、インクルード ファイル、および必要な DLL をインストールします。
インストール後の検証:
C:/Program Files/darknet/bin/darknet.exe が存在することを確認します。 C:/Program Files/darknet/bindarknet.exe バージョンを実行して確認します。
ダークネットの使用
CLI
このリストには、すべての Darknet コマンドが含まれているわけではありません。
Darknet CLI に加えて、代替のより高度なインターフェイスを提供する DarkHelp プロジェクト CLI の使用を検討してください。両方の CLI を一緒に使用できます。
ほとんどのコマンドでは、.weights ファイルと、対応する .names ファイルおよび .cfg ファイルが必要です。独自のネットワークをトレーニングすることも、事前トレーニングされたネットワークをダウンロードすることもできます。
事前トレーニングされたデータセット:
LEGO Gears: 画像内のオブジェクト検出。
Rolodex: 画像内のテキスト検出。
MSCOCO: 標準の 80 クラスの物体検出。
一般的な CLI コマンド:
1. ヘルプ: ダークネットのヘルプ
2. バージョン: ダークネットバージョン
3. 画像予測 (V2):
ダークネット ディテクタ テストcars.datacars.cfgcars_best.weights image1.jpg
4. 画像予測 (V3):
darknet02displayannotatedimagescars.cfg image1.jpg
5. 画像予測 (DarkHelp):
DarkHelp 車.cfg 車.cfg 車_ベスト.重み image1.jpg
6. 出力座標 (V2):
ダークネット ディテクタ テスト Animals.data Animals.cfg Animalsbest.weights -extoutput Dog.jpg
7. 出力座標 (V3):
darknet01inference_images 動物 犬.jpg
8. 出力座標 (DarkHelp):
DarkHelp --json 動物.cfg 動物.名前 動物ベスト.重み 犬.jpg
9. ビデオ処理 (V2):
ダークネット ディテクタ デモ Animals.data Animals.cfg Animalsbest.weights -extoutput test.mp4
10. ビデオ処理 (V3):
darknet03display_videos 動物.cfg test.mp4
11. ビデオ処理 (DarkHelp):
DarkHelp 動物.cfg 動物.名前 動物ベスト.重みテスト.mp4
12. ウェブカメラ処理 (V2):
ダークネット検出器のデモ Animals.data Animals.cfg Animals_best.weights -c 0
13. ウェブカメラ処理 (V3):
darknet08display_webカメラの動物
14. ビデオ保存 (V2):
ダークネット ディテクタ デモ Animals.data Animals.cfg Animalsbest.weights test.mp4 -outfilename res.avi
15. ビデオ保存 (V3):
darknet05processvideosマルチスレッド動物.cfg動物.名前動物_ベスト.重みテスト.mp4
16. ビデオ保存 (DarkHelp):
DarkHelp 動物.cfg 動物.名前 動物ベスト.重みテスト.mp4
17. JSON 出力 (V2):
ダークネット ディテクタ デモ Animals.data Animals.cfg Animalsbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
18. JSON 出力 (V3):
darknet06imagestojson 動物 image1.jpg
19. JSON 出力 (DarkHelp):
DarkHelp --json 動物.名前 動物.cfg 動物ベスト.重み image1.jpg
20. GPU の選択 (V2):
ダークネット検出器のデモ Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
21. ネットワーク精度チェック:
ダークネット検出器マップ Driving.data Driving.cfg Driving_best.weights ...
22. 精度チェック (mAP@IoU=75):
ダークネット検出器マップ Animals.data Animals.cfg Animalsbest.weights -iouthresh 0.75
23. アンカーの再計算 (DarkMark を推奨):
ダークネット検出器 calcanchors 動物.データ -numof_clusters 6 -幅 320 -高さ 256
24. 新しいネットワークのトレーニング:
darknet detecter -map -dont_show train Animals.data Animals.cfg (下記のトレーニングセクションを参照)
トレーニング
ダークネット/YOLO FAQ の関連セクションへのクイック リンク:
セットアップ: https://pjreddie.com/darknet/yolo/
設定ファイルの選択: https://pjreddie.com/darknet/yolo/
トレーニングコマンド: https://pjreddie.com/darknet/yolo/
アノテーションとトレーニングに対する最も合理的なアプローチには、DarkMark の利用が含まれます。これは、新しいニューラル ネットワークをトレーニングする場合に推奨される方法です。
手動トレーニング設定:
1. プロジェクト フォルダーを作成します: 例: ~/nn/animals/。
2. 構成テンプレートをコピーします。
構成ファイル (cfg/yolov4-tiny.cfg など) を選択します。
プロジェクトフォルダーに置きます。
これで ~/nn/animals/animals.cfg が完成しました。
3. Animals.names ファイルを作成します。
プロジェクトフォルダーにanimals.namesという名前のテキストファイルを作成します。
このファイルを必要なクラスで編集します。
各クラスが個別の行にあり、空白行やコメントがないことを確認してください。
例えば:
`
犬
猫
鳥
馬
`
4. Animals.data ファイルを作成します。
プロジェクトフォルダーにanimals.dataという名前のテキストファイルを作成します。
内容は次のようになります。
`
クラス = 4
train = /home/ユーザー名/nn/animals/animals_train.txt
有効 = /home/ユーザー名/nn/animals/animals_valid.txt
名前 = /home/ユーザー名/nn/animals/animals.names
バックアップ = /home/ユーザー名/nn/animals
`
5. データセット フォルダーを作成します。
画像と注釈を保存するためのフォルダーを作成します。たとえば、~/nn/animals/dataset などです。
各画像には、その注釈を定義する対応する .txt ファイルが必要です。
これらの .txt ファイルを手動で作成することはできません。画像に注釈を付けてこれらのファイルを生成するには、DarkMark または同様のツールが必要です。
YOLO アノテーション形式については、Darknet/YOLO FAQ を参照してください。
6. Animalstrain.txt および Animalsvalid.txt ファイルを作成します。
Animals.data ファイルで指定されているように、これらのテキスト ファイルを作成します。
これらのファイルには、それぞれトレーニングと検証に使用されるすべての画像がリストされています。
相対パスまたは絶対パスを使用して、1 行に 1 つの画像を入力します。
7. 構成ファイル (animals.cfg) を変更します。
バッチ: バッチ=64 に設定します。
サブディビジョン: サブディビジョン=1 から始めます。ネットワークの規模と GPU メモリに基づいて、必要に応じて調整します。
最大バッチ数: 適切な開始値は maxbatches=2000 * クラス数です。この例では、maxbatches=8000 (動物 4 匹) です。
手順: max_batches の 80% および 90% に設定します。この例では、ステップ = 6400,7200 です。
幅と高さ: ネットワークの寸法を定義します。ガイダンスについては、Darknet/YOLO FAQ を参照してください。
クラス: .names ファイル内のクラスの数 (この例では 4) と一致するように、classes=... を設定します。
フィルター: yolo 層の前の各畳み込み層で、filters=... を (クラス数 + 5) * 3 に設定します。この例では、filters=27 です。
8. トレーニングを開始します。
プロジェクト フォルダーに移動します: cd ~/nn/animals/
トレーニングを開始します: darknet detecter -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
`
その他のツールとリンク
DarkMark: Darknet/YOLO プロジェクトの管理、画像の注釈付け、注釈の検証、トレーニング ファイルの生成用。 https://darknetcv.ai/darkmark/
DarkHelp: Darknet に代わる堅牢な CLI、画像タイリング、オブジェクト追跡、商用に適した C++ API 用。 https://darknetcv.ai/darkhelp/
ダークネット/YOLO FAQ: よくある質問への回答。 https://pjreddie.com/darknet/yolo/
Stéphane の YouTube チャンネル: チュートリアルとサンプルビデオ。 https://www.youtube.com/@stephane-charette
Darknet/YOLO Discord サーバー: サポートの質問やコミュニティのディスカッション用。 https://discord.gg/zSq8rtW
ロードマップ
最終更新日: 2024-10-30
完了
トレーニング中に qsort() を std::sort() に置き換えました。
check_missing、getchar()、system() を削除しました。
Darknet を C++ コンパイラ (Linux では g++、Windows では VisualStudio) に移行しました。
Windows のビルドの問題を解決しました。
Python サポートを再度有効にしました。
ダークネットライブラリを構築しました。
予測ラベル (「アルファベット」コード) を再度有効にしました。
CUDA/GPU コードを再度有効にしました。
CUDNNを再度有効にしました。
CUDNN 半分を再度有効にしました。
ハードコーディングされた CUDA アーキテクチャを削除しました。
CUDA バージョン情報を改善しました。
AVXを再度有効にしました。
古いソリューションと Makefile を削除しました。
OpenCV をオプションではない依存関係にしました。
古い pthread ライブラリへの依存関係を削除しました。
STBを取り外しました。
新しい CUDA 検出を使用するように CMakeLists.txt を書き換えました。
古い「アルファベット」コードを削除し、データ/ラベル内の 700 以上の画像を削除しました。
アウトオブソースの構築を有効にしました。
バージョン番号の出力が改善されました。
トレーニングに関連するパフォーマンスの最適化を実装しました (継続中)。
推論に関連するパフォーマンスの最適化を実装しました (継続中)。
該当する場合は参照渡しを採用します。
.hpp ファイルをクリーンアップしました。
darknet.hを書き直しました。
cv::Mat を void* にキャストすることを避け、適切な C++ オブジェクトとして使用しました。
内部イメージ構造の使用における不一致に対処しました。
ARM ベースの Jetson デバイスのビルドを修正しました。
新しい Jetson Orin デバイスは機能します。
V3 での Python API の問題が解決されました。
短期的な目標
printf() を std::cout と交換します (進行中)。
古い ZED カメラのサポートを調査します。
一貫性を保つためにコマンドライン解析を改善します (進行中)。
中期目標
すべての char* コードを削除し、std::string に置き換えます。
非表示の警告を削除し、コンパイラの警告に対処します (進行中)。
カスタム C イメージ構造の代わりに cv::Mat の使用を強化します (進行中)。
古いリスト機能を std::vector または std::list に置き換えます。
1 チャンネルのグレースケール イメージのサポートを修正しました。
N > 3 の N チャネル画像 (深度または熱チャネルを含む画像など) のサポートを追加します。
進行中のコードのクリーンアップを続行します (進行中)。
長期的な目標
すべての GPU にわたる CUDA/CUDNN の問題に対処します。
CUDA+cuDNN コードを書き換えます。
非 NVIDIA GPU のサポートを検討してください。
回転されたバウンディング ボックスまたは角度のサポートを実装します。
キーポイント/スケルトンを紹介します。
ヒートマップのサポートを追加します (進行中)。
セグメンテーションを組み込みます。