Main Content

darknet53

DarkNet-53 畳み込みニューラル ネットワーク

  • DarkNet-53 network architecture

説明

DarkNet-53 は、深さが 53 層の畳み込みニューラル ネットワークです。100 万枚を超えるイメージで学習させた事前学習済みのネットワークを、ImageNet データベース[1]から読み込むことができます。この事前学習済みのネットワークは、イメージを 1000 個のオブジェクト カテゴリ (キーボード、マウス、鉛筆、多くの動物など) に分類できます。結果として、このネットワークは広範囲のイメージに対する豊富な特徴表現を学習しています。ネットワークのイメージ入力サイズは 256×256 です。MATLAB® の他の事前学習済みのネットワークについては、事前学習済みの深層ニューラル ネットワークを参照してください。

classify を使用すると、DarkNet-53 モデルを使用して新しいイメージを分類できます。GoogLeNet を使用したイメージの分類の手順に従って、GoogLeNet を DarkNet-53 に置き換えます。

新しい分類タスクでネットワークの再学習を行うには、新しいイメージを分類するための深層学習ネットワークの学習の手順に従い、GoogLeNet の代わりに DarkNet-53 を読み込みます。

DarkNet-53 は、多くの場合、オブジェクト検出問題および YOLO ワークフローの基礎として使用されます[2]。You Only Look Once (YOLO) v2 オブジェクト検出器に学習させる方法の例については、YOLO v2 深層学習を使用したオブジェクトの検出を参照してください。この例では特徴抽出に ResNet-50 を使用します。用途の要件によって、DarkNet-19、DarkNet-53、MobileNet-v2、または ResNet-18 など、その他の事前学習済みのネットワークも使用できます。

net = darknet53 は、ImageNet データ セットで学習させた DarkNet-53 ネットワークを返します。

この関数には、Deep Learning Toolbox™ Model "for DarkNet-53 Network" サポート パッケージが必要です。このサポート パッケージがインストールされていない場合、関数によってダウンロード用リンクが表示されます。

net = darknet53('Weights','imagenet') は、ImageNet データ セットで学習させた DarkNet-53 ネットワークを返します。この構文は、net = darknet53 と等価です。

lgraph = darknet53('Weights','none') は、未学習の DarkNet-53 ネットワーク アーキテクチャを返します。未学習のモデルは、サポート パッケージを必要としません。

すべて折りたたむ

Deep Learning Toolbox Model "for DarkNet-53 Network" サポート パッケージをダウンロードしてインストールします。

コマンド ラインで darknet53 と入力します。

darknet53

Deep Learning Toolbox Model "for DarkNet-53 Network" サポート パッケージがインストールされていない場合、この関数は、必要なサポート パッケージへのリンクをアドオン エクスプローラーに表示します。サポート パッケージをインストールするには、リンクをクリックして、[インストール] をクリックします。コマンド ラインで darknet53 と入力して、インストールが正常に終了していることを確認します。必要なサポート パッケージがインストールされている場合、関数によって DAGNetwork オブジェクトが返されます。

darknet53
ans = 

  DAGNetwork with properties:

         Layers: [184×1 nnet.cnn.layer.Layer]
    Connections: [206×2 table]
     InputNames: {'input'}
    OutputNames: {'output'}

ディープ ネットワーク デザイナーを使用してネットワークを可視化します。

deepNetworkDesigner(darknet53)

ディープ ネットワーク デザイナーで [新規] をクリックし、事前学習済みの他のネットワークを探索します。

Deep Network Designer start page showing available pretrained networks

ネットワークをダウンロードする必要がある場合は、目的のネットワークで一時停止し、[インストール] をクリックしてアドオン エクスプローラーを開きます。

転移学習を使用すると、ネットワークの再学習を行い、新しいイメージ セットを分類することができます。

新しいイメージを分類するための深層学習ネットワークの学習を開きます。元の例では、GoogLeNet の事前学習済みのネットワークを使用しています。別のネットワークを使用して転移学習を実行するには、目的の事前学習済みのネットワークを読み込み、例で示されている手順に従います。

GoogLeNet の代わりに DarkNet-53 ネットワークを読み込みます。

net = darknet53

例で示されている残りの手順に従い、ネットワークに再学習させます。学習を行うには、ネットワークの最後の学習可能な層と分類層を新しい層に置き換えなければなりません。この例では、どの層を置き換えたらよいかを調べる方法を説明します。

出力引数

すべて折りたたむ

事前学習済みの DarkNet-53 畳み込みニューラル ネットワーク。DAGNetwork オブジェクトとして返されます。

未学習の DarkNet-53 畳み込みニューラル ネットワーク アーキテクチャ。LayerGraph オブジェクトとして返されます。

参照

[1] ImageNet. http://www.image-net.org

[2] Redmon, Joseph. “Darknet: Open Source Neural Networks in C.” https://pjreddie.com/darknet.

拡張機能

バージョン履歴

R2020a で導入