Hmacマネージャー
まとめ
Downcodes のエディターには、ASP.NET Core アプリケーション用の HMAC 認証ツールである HmacManager が用意されており、アプリケーションにシームレスな統合と強力なセキュリティを提供します。
特徴
HMAC 認証: HmacManager は HMAC 認証を提供し、ASP.NET Core API に安全な認証レイヤーを追加できるようにします。
簡単な構成: シンプルな構成オプションを使用して、HMAC 認証をアプリケーションにすばやく統合できます。
カスタマイズ オプション: HmacManager には、ニーズに応じて構成できるカスタマイズ オプションが用意されています。
セキュリティの強化: HMAC 認証は、HMAC ハッシュ アルゴリズムを使用してリクエストを認証することにより、API のセキュリティを強化します。
インストール
HmacManager は NuGet で入手できます。
「バッシュ」
dotnet パッケージ HmacManager を追加
`
リソース
さらに読む: 公式ドキュメント
サンプルコード: GitHub リポジトリ
ダークネットオブジェクト検出フレームワークとYOLO
!darknet と hank.ai のロゴ
Darknet は、C、C++、CUDA で書かれたオープンソースのニューラル ネットワーク フレームワークです。
YOLO (You Only Look Once) は、ダークネット フレームワークで実行される高度なリアルタイム ターゲット検出システムです。
1. 論文
YOLOv7: 論文リンク
Scaled-YOLOv4: 論文リンク
YOLOv4: ペーパーリンク
YOLOv3: ペーパーリンク
2. 一般情報
Darknet/YOLO フレームワークは、速度と精度において他のフレームワークや YOLO バージョンよりも優れたパフォーマンスを維持し続けています。
このフレームワークは完全に無料でオープンソースです。 Darknet/YOLO は、ライセンスや料金なしで、商用製品を含む既存のプロジェクトや製品に統合できます。
2024 年 10 月にリリースされた Darknet V3 (「Jazz」) は、NVIDIA RTX 3090 GPU を使用する場合、LEGO データセット ビデオを最大 1000 FPS で正確に実行できます。つまり、Darknet による各ビデオ フレームの読み取り、サイズ変更、処理にかかる時間は 1 ミリ秒以下です。 /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 で適切に動作することが知られています。以下のビルド手順を参照してください。
3. ダークネットバージョン
バージョン 0.x: 2013 年から 2017 年に Joseph Redmon によって作成されたオリジナルの Darknet ツールにはバージョン番号がありません。
バージョン 1.x: 2017 年から 2021 年にかけて Alexey Bochkovskiy によって管理され、次に人気のある Darknet リポジトリにもバージョン番号がありません。
バージョン 2.x (「OAK」): Hank.ai がスポンサーとなり、2023 年から Stéphane Charette によって保守されている Darknet リポジトリは、バージョン コマンドを備えた最初のリポジトリです。 2023 年から 2024 年末までは、バージョン 2.x「OAK」に戻ります。
バージョン 3.x (「JAZZ」): 開発の次の段階は 2024 年半ばに開始され、2024 年 10 月にリリースされます。 version コマンドは 3.x "JAZZ" を返すようになりました。
4. MSCOCO 事前トレーニング ウェイト
便宜上、YOLO のいくつかの一般的なバージョンが MSCOCO データセットで事前トレーニングされています。このデータ セットには 80 のカテゴリが含まれており、テキスト ファイル cfg/coco.names で確認できます。
Darknet/YOLO のテストには、LEGO Gears や Rolodex など、より単純なデータセットと事前トレーニングされた重みが他にもあります。詳細については、ダークネット/YOLO FAQ を参照してください。
MSCOCO の事前トレーニングされた重みは、さまざまな場所またはこのリポジトリからダウンロードできます。
* YOLOv2 (2016 年 11 月)
*YOLOv2-tiny
*YOLOv2-フル
* YOLOv3 (2018 年 5 月)
* YOLOv3-tiny
*YOLOv3-フル
* YOLOv4 (2020 年 5 月)
* YOLOv4-tiny
*YOLOv4-フル
* YOLOv7 (2022 年 8 月)
* YOLOv7-tiny
*YOLOv7-フル
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.アビ
`
独自のネットワークをトレーニングする必要があることに注意してください。 MSCOCO は、すべてが正常であることを確認するためによく使用されます。
5. 構築する
過去 (2023 年以前) のさまざまな構築方法が統合ソリューションに統合されました。 Darknet では、C++17 以降、OpenCV、および CMake を使用して必要なプロジェクト ファイルを生成する必要があります。
車を運転するのに整備士である必要がないのと同じように、Darknet/YOLO を構築、インストール、実行するのに C++ の知識は必要ありません。
5.1 Googleコラボ
Google Colab の手順は Linux の手順と同じです。いくつかの Jupyter ノートブックには、新しいネットワークのトレーニングなど、特定のタスクを実行する方法が示されています。
colab サブディレクトリにあるノートブックを参照するか、以下の Linux の手順に従ってください。
5.2 Linux CMake メソッド
Linux でのダークネット構築チュートリアル
「バッシュ」
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
`
5.3 Windows CMake メソッド
これらの手順は、Windows 11 22H2 の新規インストールを前提としています。
「バッシュ」
winget インストール Git.Git winget インストール Kitware.CMake winget インストール nsis.nsis winget インストール Microsoft.VisualStudio.2022.Community
`
次に、Visual Studio のインストールを変更して、C++ アプリケーションのサポートを含める必要があります。
* Windows の [スタート] メニューをクリックし、Visual Studio インストーラーを実行します。
※「編集」をクリックします。
※「C++を使用したデスクトップ開発」を選択します。
※右下の「編集」をクリックし、「はい」をクリックします。
すべてをダウンロードしてインストールしたら、[Windows スタート] メニューを再度クリックし、[VS 2022 の開発者コマンド プロンプト] を選択します。これらの手順を実行するために PowerShell を使用しないでください。問題が発生する可能性があります。
上級ユーザー:
* 開発者コマンド プロンプトの実行に加えて、通常のコマンド プロンプトまたは ssh を使用してデバイスに接続し、「Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat」を手動で実行することもできます。
上記の手順に従い、開発者コマンド プロンプト (PowerShell ではありません!) を実行したら、次のコマンドを実行して Microsoft VCPKG をインストールします。これは、OpenCV のビルドに使用されます。
「バッシュ」
cd c:mkdir c:srccd c:src git clone https://github.com/microsoft/vcpkgcd vcpkg bootstrap-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 ファイルを削除する必要があります。
ダークネットを再構築することを忘れないでください。
ダークネットはこれなしでも実行できますが、カスタム ネットワークをトレーニングしたい場合は、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.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.gitcd darknetmkdir 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
`
いくつかの 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 インストール パッケージをインストールすると、次のことが行われます。
* Darknet という名前のディレクトリを作成します (例: C:Program FilesDarknet)。
* CLI アプリケーション、darknet.exe およびその他のサンプル アプリケーションをインストールします。
* OpenCV などの必要なサードパーティの .dll ファイルをインストールします。
* 他のアプリケーションから darknet.dll を使用するには、必要な Darknet .dll、.lib、および .h ファイルをインストールします。
* テンプレート .cfg ファイルをインストールします。
これで完了です。インストール ウィザードが完了すると、Darknet が C:Program FilesDarknet にインストールされます。次のコマンドを実行してテストします: C:Program FilesDarknetbindarknet.exe のバージョン。
C:/Program Files/darknet/bin/darknet.exe がない場合は、インストールしたのではなく、ビルドしただけです。前の手順で NSIS インストール ウィザードの各パネルを参照してください。
6. ダークネットを使用する
6.1 CLI
以下は、Darknet でサポートされるすべてのコマンドの完全なリストではありません。
Darknet CLI に加えて、Darknet/YOLO CLI の代替手段を提供する DarkHelp プロジェクト CLI にも注目してください。 DarkHelp CLI には、Darknet にはないいくつかの拡張機能もあります。 Darknet CLI と DarkHelp CLI は一緒に使用できますが、相互に排他的ではありません。
以下に示すほとんどのコマンドでは、対応する .name および .cfg ファイルを含む .weights ファイルが必要です。ネットワークを自分でトレーニングすることも (強くお勧めします!)、他の人がトレーニングしてインターネット上で自由に入手できるニューラル ネットワークをダウンロードすることもできます。事前トレーニング データセットの例は次のとおりです。
* LEGO Gears (画像内のオブジェクトを見つけます)
* Rolodex (画像内のテキストを検索)
* MSCOCO (標準 80 カテゴリ ターゲット検出)
実行するコマンドには次のものがあります。
* 実行可能ないくつかのコマンドとオプションをリストします。
「バッシュ」
ダークネットのヘルプ
`
* バージョンの確認:
「バッシュ」
ダークネットバージョン
`
* 予測に画像を使用:
「バッシュ」
V2: ダークネット ディテクタ テストcars.datacars.cfgcars_best.weights image1.jpg
V3: darknet02displayannotatedimagescars.cfg image1.jpg
DarkHelp: DarkHelp 車.cfg 車_ベスト.ウェイト image1.jpg
`
* 出力座標:
「バッシュ」
V2: ダークネット検出器テスト Animals.data Animals.cfg Animalsbest.weights -extoutput Dog.jpg
V3: darknet01inference_images 動物 犬.jpg
DarkHelp: DarkHelp --json Animals.cfg Animals.names Animals_best.weights Dog.jpg
`
*ビデオを使用:
「バッシュ」
V2: ダークネット検出器のデモ 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
`
* ウェブカメラからの読み取り:
「バッシュ」
V2: ダークネット検出器のデモ Animals.data Animals.cfg Animals_best.weights -c 0
V3: darknet08display_webcam 動物
`
* 結果をビデオに保存:
「バッシュ」
V2: ダークネット ディテクタ デモ Animals.data Animals.cfg Animalsbest.weights test.mp4 -outfilename res.avi
V3: darknet05processvideosmultithreaded Animals.cfg Animals.name Animals_best.weights test.mp4
DarkHelp: DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
`
*JSON:
「バッシュ」
V2: ダークネット検出器デモ Animals.data Animals.cfg Animalsbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3: darknet06imagestojson 動物 image1.jpg
DarkHelp: DarkHelp --json Animals.names Animals.cfg Animals_best.weights 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.11 0 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 10 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 2 17 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
`
* アンカー ポイントの再計算は、100 回連続して実行され、計算されたすべてのアンカー ポイントから最適なアンカー ポイントが選択されるため、DarkMark で行うのが最適です。ただし、ダークネットで古いバージョンを実行したい場合は、次のようにします。
「バッシュ」
ダークネット検出器 calcanchors 動物.データ -numof_clusters 6 -幅 320 -高さ 256
`
* 新しいネットワークをトレーニングします:
「バッシュ」
cd ~/nn/animals/ darknet detecter -map -dont_show train Animals.data Animals.cfg
`
6.2 トレーニング
ダークネット/YOLO FAQ の関連部分へのクイック リンク:
* ファイルとディレクトリはどのように設定すればよいですか?
* どのプロファイルを使用すればよいですか?
* 独自のネットワークをトレーニングする場合はどのコマンドを使用する必要がありますか?
DarkMark を使用して、必要なすべての Darknet ファイルを作成します。これは、注釈を付けてトレーニングする最も簡単な方法です。これは間違いなく、新しいニューラル ネットワークをトレーニングする場合に推奨される方法です。
カスタム ネットワークをトレーニングするためにさまざまなファイルを手動でセットアップする場合は、次の手順を実行します。
※ ファイルを保存するための新しいフォルダーを作成します。この例では、動物を検出するためにニューラル ネットワークが作成されるため、次のディレクトリが作成されます: ~/nn/animals/。
* テンプレートとして使用する Darknet 構成ファイルの 1 つをコピーします。たとえば、cfg/yolov4-tiny.cfg を参照してください。作成したフォルダーに置きます。この例では、~/nn/animals/animals.cfg が作成されました。
* 構成ファイルを配置したのと同じフォルダーに、animals.names テキスト ファイルを作成します。この例では、~/nn/animals/animals.names が作成されました。
* テキストエディタを使用して、animals.names ファイルを編集します。使用するカテゴリをリストします。 1 行に 1 つのエントリが必要です。空白行やコメントは必要ありません。この例では、.names ファイルにはちょうど 4 行が含まれます。
`
犬
猫
鳥
馬
`
* 同じフォルダーにanimals.dataテキストファイルを作成します。この例では、.data ファイルには次のものが含まれます。
`
クラス = 4
train = /home/ユーザー名/nn/animals/animals_train.txt
有効 = /home/ユーザー名/nn/animals/animals_valid.txt
名前 = /home/ユーザー名/nn/animals/animals.names
バックアップ = /home/ユーザー名/nn/animals
`
* 画像と注釈を保存するフォルダーを作成します。たとえば、これは ~/nn/animals/dataset のようになります。各画像には、その画像の注釈を説明する対応する .txt ファイルが必要です。 .txt コメント ファイルの形式は非常に特殊です。各注釈には注釈の正確な座標が含まれている必要があるため、これらのファイルを手動で作成することはできません。画像に注釈を付けるには、DarkMark または他の同様のソフトウェアを参照してください。 YOLO アノテーション形式については、Darknet/YOLO FAQ で説明されています。
* .data ファイル内に名前を付けた「train」および「valid」テキスト ファイルを作成します。これら 2 つのテキスト ファイルには、ダークネットが mAP% を計算する際のトレーニングと検証に使用する必要があるすべてのイメージを個別にリストする必要があります。 1 行に 1 つの画像のみ。パスとファイル名は相対パスまたは絶対パスにすることができます。
* テキスト エディタを使用して .cfg ファイルを変更します。
* バッチ=64 であることを確認してください。
※細分化に注意してください。ネットワークのサイズと GPU で利用可能なメモリの量に応じて、サブディビジョンを増やす必要がある場合があります。使用するのに最適な値は 1 なので、それから始めます。 1 を使用できない場合は、Darknet/YOLO FAQ を参照してください。
maxbatches=… であることに注意してください。最初はカテゴリ数の 2000 倍が適切な値です。この例では動物が 4 匹いるので、4 2000 = 8000 となります。これは、maxbatches=8000 を使用することを意味します。
* 手順に注意してください =....これは最大バッチの 80% と 90% に設定する必要があります。この例では、maxbatches が 8000 に設定されているため、steps=6400,7200 を使用します。
* width=... と height=.... に注意してください。これらはネットワークのディメンションです。 Darknet/YOLO FAQ では、使用する最適なサイズを計算する方法について説明しています。
* class=... 行のすべてのインスタンスを検索し、.names ファイル内のクラスの数でそれらを変更します。この例では、classes=4 を使用します。
各 [yolo] セクションの前の [convolutional] セクション内のすべての filters=... 行のインスタンスを検索します。使用する値は (カテゴリの数 + 5) 3 です。これは、この例では (4 + 5) * 3 = 27 であることを意味します。したがって、対応する行で filters=27 を使用します。
*トレーニングを始めましょう!次のコマンドを実行します。
「バッシュ」
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
`
7. その他のツールとリンク
Darknet/YOLO プロジェクトの管理、画像に注釈を付け、注釈を検証し、Darknet でのトレーニングに必要なファイルを生成するには、DarkMark を参照してください。
Darknet CLI の強力な代替手段、画像タイリングやビデオでのオブジェクト追跡を使用したり、商用アプリケーションで簡単に使用できる強力な C++ API を入手するには、DarkHelp を参照してください。
質問への回答については、Darknet/YOLO FAQ を参照してください。
Stéphane の YouTube チャンネルにある多くのチュートリアルとサンプルビデオをチェックしてください。
サポートに関する質問がある場合、または他の Darknet/YOLO ユーザーとチャットしたい場合は、Darknet/YOLO Discord サーバーに参加してください。
8. ロードマップ
最終更新日: 2024 年 10 月 30 日:
* 完了
* トレーニング中に qsort() を std::sort() に置き換えました (他の不明瞭なコードがまだ存在します)
* check_missing、getchar()、system() を取り除く
* C++ コンパイラを使用するように Darknet を変換します (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 デバイスは NVIDIA でサポートされなくなったため (C++17 コンパイラーがない)、修正される可能性は低いです。
* 新しい Jetson Orin デバイスが実行中
* V3 での Python API を修正
* より良い Python サポートが必要です (助けてくれる Python 開発者はいますか?)
* 短期的な目標
* printf() を std::cout に置き換えます (作業中)
* 古い Zed カメラのサポートを確認してください
* より適切で一貫性のあるコマンド ライン解析 (作業中)
※中期目標
すべての文字コードを削除し、std::string に置き換えます。
* 警告を非表示にせず、コンパイラ警告をクリーンアップします (作業中)
* C でのカスタム イメージ構造の代わりに cv::Mat をより適切に使用する (作業中)
* 古いリスト機能を std::vector または std::list に置き換えます。
* 1 チャンネルのグレースケール画像のサポートを修正
* N > 3 の N チャンネル画像のサポートを追加 (例: 余分な深さまたはホット チャンネルを持つ画像)
* 継続的なコードのクリーンアップ (進行中)
* 長期的な目標
* すべての GPU での CUDA/CUDNN の問題を修正
* CUDA+cuDNNコードを書き換える
* 非 NVIDIA GPU のサポートの追加を検討してください。
* 回転された境界ボックス、または何らかの形式の「角度」サポート
※ポイント・骨格
* ヒートマップ (作業中)
* スプリット