Schema.org へようこそ
これは Schema.org プロジェクト リポジトリです。これには、schema.org を公開するために使用されるすべてのスキーマ、サンプル、およびソフトウェアが含まれています。サイト自体については、代わりに Schema.org を参照してください。
注: サポート ソフトウェアの多くはサブ モジュール「sdopythonapp」からインポートされます。
ここでの問題と提案は、プロジェクト周辺の協力者、特に W3C Schema.org コミュニティ グループの参加者によって管理されます。参加に興味がある場合は、W3C のグループに参加し、自己紹介を行って、関心のある問題をここで検索または提出してください。 Git と GitHub を初めて使用する場合は、W3C Wiki に GitHub の役立つ入門情報があります。
受信したプル リクエストをチェックするための継続的統合テストもあります。
GitHub の問題 #1 は、リリース計画のエントリ ポイントです。広範なテーマ、特定の問題、リリースのマイルストーンの観点から、今後の作業の概要を提供する必要があります。問題 #1 はリリースごとのエントリ ポイントにリンクするか、GitHub 内のラベルまたはマイルストーンを介して問題に移動します。
サイトへの変更はすべて、ここでのディスカッションを通じて行われます。実質的な変更はリリースノートに記録されています。新しいリリース ノートの草案のプレビューは、次のリリースのテスト サイトの一部として見つけることができます。 Schema.org 運営グループとより広範なコミュニティによる最終レビューを経て、ほぼ毎月、正式なリリースを行っています。
ドキュメントとソフトウェアの CC およびオープンソース ライセンスについては、FAQ エントリを参照してください。
私たちは schema.org を改善するための実践的な提案に常に関心を持っており、2011 年の立ち上げ以来、スキーマのコレクションは徐々に増加してきました。私たちは、新しいスキーマの追加よりも、既存のスキーマ、サンプル、ドキュメントに対する簡単な修正と改善を優先するよう努めています。新しいスキーマを追加する可能性が最も高いのは、何らかの (できれば大規模な) 消費アプリケーションがデータを使用するという証拠がある場合です。使用するアプリケーションは検索エンジンである必要はありません。ソフトウェア ツール (オープンソース、Web 分析へのマークアップを強化したアプローチ、ブラウザー アドオン、クラウド ツールなど) はすべて、探索とコラボレーションのための豊富な領域です。重要なことは、データ利用者が変更をうまく活用するという合理的な期待が必要であるということです。検索エンジンが一般に Schema.org ベースの構造化データを使用しようとしているという理由だけでは、追加を正当化するのに十分ではありません。小さな変更や下位互換性のある変更は、より簡単に組み込むことができます。
注: Schema.org は、Web コンテンツの詳細を完全に取得しようとはしません。それは必然的に、より複雑な現実を単純化したものになります。これは、Schema.org にさらに詳細を追加できる可能性があると思われる多くのケースがあることを意味します。ただし、Schema.org をシンプルでパブリッシャーやウェブマスターにとって使いやすいものに保つために、私たちはそのような詳細を追加しないことを選択することがよくあります。
Schema.org は、JSON-LD、Microdata、RDFa などの Web 標準を使用して、独立した拡張を可能にします (たとえば、GS1 の語彙を参照)。
また、優雅さ、「適切なモデリング」、存在論的な純粋さ、または概念的な統一を考慮することだけが動機である場合、Schema.org の用語の大規模な再編成に取り組む可能性は非常に低いです。プロジェクトの創設者とチームは、そのような懸念の背後にある伝統を熟知しており、尊重していますが、Schema.org の規模、範囲、性質を考えると、優雅さとグローバルな一貫性を引き換えに、段階的な進化と実用的な概念を実現する必要がありました。正式なオントロジーでは場違いとなるスタイルに対する許容度。クロスドメインのロジックベースの知識構造を統合するという提案は、たとえば Ontolog コミュニティでよりよく受け入れられる可能性があります。
単にマークアップの使いやすさの理由から、専用のプロパティ関連付けのない型を導入することがあります。正式なオントロジーでは、これはよくモデリングが不十分であると考えられます。ただし、論理的に同等の構造は、JSON-LD または RDF/S の背後にある基礎となる形式的な概念に精通していない発行者/ウェブマスターによって、より多くのエラーを引き起こす可能性があります。
Schema.org はクローズド システムではなく、他のイニシアチブ (Wikidata や GS1 など) では、schema.org で定義した用語に加えて混合できる他の多くの用語が定義されています。また、Schema.org だけを考慮すると、グローバルな優雅さが損なわれる場合でも、関連する外部の標準やイニシアチブに合わせて設計を調整するよう努めます。たとえば、書誌や文化遺産の文脈では、MARC、BibFrame、FRBR などの取り組みの影響を受ける可能性がありますが、電子商取引では Good Relations や GS1 と協力しました。 Schema.org のニュース関連の用語は、ファクト チェッカーやトラスト プロジェクトなどとのコラボレーションに加えて、IPTC の rNews デザインを組み込むことによって大きな影響を受けました。私たちのテレビと音楽関連の語彙は、音楽オントロジーや MusicBrainz とともに、BBC や欧州放送連合との連携から大きな影響を受けています。私たちのスキーマはこれらの以前の設計を反映しています。私たちは、独自の純粋なモデルを単独で作成するのではなく、このように協力して Schema.org を段階的に改善し、そのような設計を磨き、統合し、融合させることに取り組んでいます。その結果は世界的な優雅さに欠けるかもしれませんが、私たちの取り組みを世界中の関連する取り組みと整合させることができます。
私たちは、使いやすさや読みやすさの問題を追跡する問題を常に歓迎しますが、全体的な哲学的な懸念 (例: 予約またはアクションが「本当に」イベントであるかどうか) ではなく、具体的な状況 (例: 繰り返されるイベントをどのように記述するか) に焦点を当てることをお勧めします。私たちは、グローバルな優雅さ (すべてが合理的な場所にあるというグローバルな理論を持つ) よりも、ローカルな一貫性 (多くの一般的な状況を説明する合理的な方法を持つ) を優先します。これは、クリーンアップをまったく行わないという意味ではありませんが、クリーンアップは他の考慮事項とのバランスが取れています (多くの場合、それが上回ります)。
多くの場合「保留中」領域に用語を追加するときは、新しい用語が他の用語とどのように関連するか、既存のパターンとどのように併用できるかなど、グローバルな視点を考慮したフィードバックを強く推奨します。この統合フェーズはそのような考慮事項を反映していますが、通常は大規模な再構築ではなく、型とプロパティのリンクの文書に対する控えめな言い換え、例、または調整を通じて表現されます。
「私たちの働き方」について詳しく見る
ほとんどの共同作業者にとって、ソフトウェアについて知っておく必要があるのは、その実行方法だけです。このソフトウェアの目的は、潜在的なローカル変更を含む Schema.org サイトの静的コピーを作成し、テストのためにローカル システム上の単純な Web サーバーの背後で検査および実行することです。本番リリースがクラウド サーバーにデプロイされるのと同じ方法で、gcloud を使用してローカル バージョンを仮想マシンにデプロイして、他のユーザーとのコラボレーションを可能にすることができます。
完全な手順は SOFTWARE_README.md で入手でき、使用する最初のローカル コピーを作成し、その後展開して変更をテストする方法が説明されています。基本的に、Python バージョン 3.6 以降がロードされた Linux のような (Mac を含む) 環境が必要です。その後、自分のマシンで実行されている schema.org のテスト ビルドを http://localhost:8080/ としてアクセスできるようにするか、コラボレーションのために appspot.com に投稿することができます。関連する gcloud コマンドの詳細については、Appengine のドキュメントを参照してください。
ソフトウェアとその使用方法の詳細については、SOFTWARE_README.md を参照してください。 Wiki のメモも参照してください: https://github.com/schemaorg/schemaorg/wiki/Contributing
すべてのスキーマと例は、utf-8 でエンコードされたファイルの data/ にあります。
メインのスキーマ ファイルは data/schema.ttl (utf-8) です。
スキーマを開発するときは、data/sdo-somethinghere-schema.ttl を使用すると便利です。
この形式は、RDF/Turtle 形式の W3C RDFS に基づいています。
サンプルは、data/examples.txt (utf-8) およびその他の .txt ファイルに保存されます。
スキーマと同様に、data/examples.txt も読み取られます。個別のファイルを使用して開発すると便利な場合があります。
語彙が最終的にメイン リポジトリに統合されると、スキーマ データは schema.org にマージされます。ただし、例は、git のファイル比較機構でより適切に機能するため、別のファイルに残ります。
data/releases/ 階層は、リリース スナップショット用に予約されています (https://schema.org/version/ を参照)。
ext// 階層は拡張機能用に予約されています (https://schema.org/docs/extension.html を参照)。
進行中の作業には github ブランチを使用しなくなりました。 main/branch が最新の候補です。概念的に一貫した状態であることは保証されていませんが、レビューのためにリリース候補を配布する前に安定化する必要があります。
このドキュメントは、schema.org 自体ではなく、ソフトウェア コードベースに関するものです。ただし、英語のバリエーションを選択する必要がある場合は、ラベル、コメント、ドキュメントでは (コードとスキーマ内で) 米国英語を使用する必要があることに注意してください。可能な限り国際的な英語を目指してください。
参照: https://twitter.com/schemaorg_dev
例:
`
Apache-2.0ライセンス
目次
ダークネットオブジェクト検出フレームワークとYOLO
論文
一般情報
ダークネットバージョン
MSCOCO 事前トレーニング済み重み
建物
Googleコラボ
Linux CMake メソッド
Windows CMake メソッド
ダークネットの使用
CLI
トレーニング
その他のツールとリンク
ロードマップ
短期的な目標
中期目標
長期的な目標
ダークネットオブジェクト検出フレームワークとYOLO
ダークネットとhank.aiのロゴ
Darknet は、C、C++、CUDA で書かれたオープンソースのニューラル ネットワーク フレームワークです。
YOLO (You Only Look Once) は、Darknet フレームワークで実行される、最先端のリアルタイムの物体検出システムです。
Hank.ai がダークネット/YOLO コミュニティをどのように支援しているかを読む
ダークネット V3「ジャズ」を発表
ダークネット/YOLO Web サイトを参照してください。
ダークネット/YOLO FAQ をよく読んでください。
Darknet/YOLO Discord サーバーに参加します
論文
論文YOLOv7
紙のスケール - YOLOv4
論文YOLOv4
論文YOLOv3
一般情報
Darknet/YOLO フレームワークは、他のフレームワークや YOLO バージョンよりも高速かつ正確であり続けます。
このフレームワークは完全に無料であり、オープンソースです。 Darknet/YOLO は、ライセンスや料金を支払うことなく、商用プロジェクトを含む既存のプロジェクトや製品に組み込むことができます。
2024 年 10 月にリリースされた Darknet V3 (「Jazz」) は、NVIDIA RTX 3090 GPU を使用する場合、LEGO データセット ビデオを最大 1000 FPS で正確に実行できます。つまり、各ビデオ フレームは Darknet/YOLO によって 1 ミリ秒以内に読み取られ、サイズ変更され、処理されます。少ない。
サポートが必要な場合、または Darknet/YOLO について議論したい場合は、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 であると考えます。
Alexey Bochkovskiy が 2017 年から 2021 年にかけて管理していた次に人気のある Darknet リポジトリにもバージョン番号がありませんでした。これをバージョン 1.x とみなします。
Hank.ai が後援し、2023 年から Stéphane Charette によって保守されている Darknet リポジトリは、バージョン コマンドを備えた最初のリポジトリでした。 2023 年から 2024 年後半まで、バージョン 2.x「OAK」が返されました。
目標は、コードベースに慣れながら、既存の機能をできるだけ壊さないようにすることでした。
ビルド手順を書き直したので、Windows と Linux の両方で CMake を使用してビルドするための 1 つの統一された方法が得られました。
C++ コンパイラを使用するようにコードベースを変換しました。
トレーニング中の chart.png が強化されました。
バグ修正とパフォーマンス関連の最適化。主にネットワークのトレーニングにかかる時間の削減に関連します。
このコードベースの最後のブランチは、v2 ブランチのバージョン 2.1 です。
開発の次のフェーズは 2024 年半ばに開始され、2024 年 10 月にリリースされました。version コマンドは 3.x "JAZZ" を返すようになりました。
これらのコマンドのいずれかを実行する必要がある場合は、いつでも以前の v2 ブランチをチェックアウトできます。不足しているコマンドを再度追加するよう調査いたしますので、お知らせください。
多くの古いコマンドやメンテナンスされていないコマンドが削除されました。
トレーニング時と推論時の両方で、多くのパフォーマンスが最適化されました。
レガシー C API が変更されました。オリジナルの Darknet API を使用するアプリケーションには若干の変更が必要です: https://darknetcv.ai/api/api.html
新しい Darknet V3 C および C++ API: https://darknetcv.ai/api/api.html
src-examples の新しいアプリとサンプルコード: https://darknetcv.ai/api/files.html
MSCOCO 事前トレーニング済み重み
YOLO のいくつかの一般的なバージョンは、便宜上 MSCOCO データセットで事前トレーニングされました。このデータセットには 80 のクラスがあり、テキスト ファイル cfg/coco.names で確認できます。
Darknet/YOLO のテストに利用できる、LEGO Gears や Rolodex などのより単純なデータセットと事前トレーニングされた重みが他にもいくつかあります。詳細については、ダークネット/YOLO FAQ を参照してください。
MSCOCO の事前トレーニングされた重みは、いくつかの異なる場所からダウンロードできます。また、このリポジトリからもダウンロードできます。
YOLOv2、2016 年 11 月
YOLOv2-小さな
YOLOv2-フル
YOLOv3、2018 年 5 月
YOLOv3-tiny
YOLOv3-フル
YOLOv4、2020 年 5 月
YOLOv4-tiny
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.アビ
人々は自分自身のネットワークをトレーニングすることが期待されていることに注意してください。 MSCOCO は通常、すべてが正しく動作していることを確認するために使用されます。
建物
過去 (2023 年以前) に利用可能だったさまざまなビルド方法が、単一の統合ソリューションに統合されました。 Darknet には C++17 以降の OpenCV が必要で、CMake を使用して必要なプロジェクト ファイルを生成します。
車を運転するのに整備士である必要がないのと同じように、Darknet/YOLO を構築、インストール、実行するために C++ の知識は必要ありません。
Googleコラボ
Linux
窓
より複雑なビルド ステップを含む古いチュートリアルに従っている場合、またはこの Readme の内容と一致しないビルド ステップを実行している場合は注意してください。以下で説明する新しいビルド手順は 2023 年 8 月に開始されました。
ソフトウェア開発者は、https://darknetcv.ai/ にアクセスして、Darknet/YOLO オブジェクト検出フレームワークの内部に関する情報を入手することをお勧めします。
Googleコラボ
Google Colab の手順は Linux の手順と同じです。新しいネットワークのトレーニングなど、特定のタスクの実行方法を示すいくつかの Jupyter ノートブックが利用可能です。
colab サブディレクトリ内のノートブックを参照するか、以下の Linux の手順に従ってください。
Linux CMake メソッド
Linux 用のダークネット ビルド チュートリアル
オプション: 最新の 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 と 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/darknetcd darknet mkdir buildcd build cmake -DCMAKEBUILDTYPE=Release .. make -j4 package sudo dpkg -i darknet-VERSION.deb
古いバージョンの CMake を使用している場合は、上記の cmake コマンドを実行する前に CMake をアップグレードする必要があります。 Ubuntu での CMake のアップグレードは、次のコマンドで実行できます。
sudo apt-get purge 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 (CPACKGENERATOR "DEB")SET (CPACKGENERATOR "RPM")
インストール パッケージの構築が完了したら、インストール パッケージをインストールするには、ディストリビューションの通常のパッケージ マネージャーを使用します。たとえば、Ubuntu などの Debian ベースのシステムでは次のようになります。
sudo dpkg -i darknet-2.0.1-Linux.deb
.deb パッケージをインストールすると、次のファイルがコピーされます。
/usr/bin/darknet は通常の Darknet 実行可能ファイルです。 CLI からダークネット バージョンを実行して、正しくインストールされていることを確認します。
/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/ にインストールされています。これを実行してテストします: ダークネット バージョン。
/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
この時点で、C++ アプリケーションのサポートを含めるように Visual Studio インストールを変更する必要があります。
「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#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.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
cublas64_12.dll などの CUDA または cuDNN 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 インストール ウィザードの各パネルを必ず実行してください。
ダークネットの使用
CLI
以下は、Darknet でサポートされるすべてのコマンドの完全なリストではありません。
Darknet CLI に加えて、Darknet/YOLO の代替 CLI を提供する DarkHelp プロジェクト CLI にも注目してください。 DarkHelp CLI には、Darknet では直接利用できないいくつかの高度な機能もあります。 Darknet CLI と DarkHelp CLI は両方とも一緒に使用できますが、相互に排他的ではありません。
以下に示すほとんどのコマンドでは、対応する .names および .cfg ファイルを含む .weights ファイルが必要です。独自のネットワークをトレーニングすることも (強くお勧めします!)、誰かがすでにトレーニングしてインターネット上で無料で利用できるようにしたニューラル ネットワークをダウンロードすることもできます。事前トレーニングされたデータセットの例は次のとおりです。
レゴ ギア (画像内のオブジェクトの検索)
Rolodex (画像内のテキストの検索)
MSCOCO (標準 80 クラスの物体検出)
実行するコマンドには次のものがあります。
実行可能なコマンドとオプションをいくつかリストします。
ダークネットのヘルプ
バージョンを確認します。
ダークネットバージョン
画像を使用して予測する:
V2: ダークネット ディテクタ テストcars.datacars.cfgcars_best.weights image1.jpg
V3: darknet02displayannotatedimagescars.cfg image1.jpg
DarkHelp: DarkHelp 車.cfg 車.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 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 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
アンカーの再計算は DarkMark で行うのが最適です。これは、DarkMark が 100 回連続して実行され、計算されたすべてのアンカーから最適なアンカーが選択されるためです。ただし、古いバージョンをダークネットで実行したい場合は、次のようにします。
ダークネット検出器 calcanchors 動物.データ -numof_clusters 6 -幅 320 -高さ 256
新しいネットワークをトレーニングします。
darknet detecter -map -dont_show train Animals.data Animals.cfg (以下のトレーニング セクションも参照)
トレーニング
ダークネット/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 列車 = /home/ユーザー名/nn/animals/animalstrain.txt 有効 = /home/ユーザー名/nn/animals/animalsvalid.txt 名前 = /home/ユーザー名/nn/animals/animals.names バックアップ = /home/ユーザー名/nn/動物
画像と注釈を保存するフォルダーを作成します。たとえば、これは ~/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 x クラス数です。この例では、動物が 4 匹なので、4 * 2000 = 8000 となります。つまり、maxbatches=8000 を使用します。
ステップ =.... これは最大バッチの 80% と 90% に設定する必要があることに注意してください。この例では、maxbatches が 8000 に設定されているため、steps=6400,7200 を使用します。
width=... と height=.... に注意してください。これらはネットワークの寸法です。 Darknet/YOLO FAQ では、使用する最適なサイズを計算する方法が説明されています。
行classes=...のすべてのインスタンスを検索し、.namesファイル内のクラスの数で変更します。この例では、classes=4 を使用します。
各 [yolo] セクションの前の [convolutional] セクションで、行 filters=... のすべてのインスタンスを検索します。使用する値は (numberofclasses + 5) 3 です。この例では、(4 + 5) 3 = 27 を意味します。したがって、適切な行で filters=27 を使用します。
トレーニングを始めましょう!次のコマンドを実行します。
cd ~/nn/animals/ darknet detecter -map -dont_show train Animals.data Animals.cfg
我慢して。最適な重みは、animals_best.weights として保存されます。トレーニングの進行状況は、