Googlenet 深層学習ネットワークに基づく顔認識の Matlab シミュレーション

目次

1. アルゴリズム操作レンダリングのプレビュー

2.アルゴリズム実行ソフトウェアバージョン

3. いくつかのコアプログラム

4. アルゴリズム理論の概要

5. アルゴリズム完全プログラムエンジニアリング


1. アルゴリズム操作レンダリングのプレビュー

2.アルゴリズム実行ソフトウェアバージョン

マットラボ2022a

3. いくつかのコアプログラム

.....................................................................
% 定义修改的范围
Pixel_Range = [-30 30];
Scale_Range = [0.9 1.1];

% 现在修改图像
Image_Augmenter = imageDataAugmenter(...
    'RandXReflection', true, ...
    'RandXTranslation', Pixel_Range, ...
    'RandYTranslation', Pixel_Range,... 
     'RandXScale', Scale_Range, ...
     'RandYScale', Scale_Range);

% 调整图像以适应Googlenet的第1层
Augmented_Training_Image = augmentedImageDatastore(Input_Layer_Size(1:2), Training_Dataset, ...
    'DataAugmentation', Image_Augmenter);

Augmented_Validation_Image = augmentedImageDatastore(Input_Layer_Size(1:2),Validation_Dataset);



% 指定训练选项
Size_of_Minibatch = 5;
Validation_Frequency = floor(numel(Augmented_Training_Image.Files)/Size_of_Minibatch);
Training_Options = trainingOptions('sgdm',...
    'MiniBatchSize', Size_of_Minibatch, ...
    'MaxEpochs', 10,...
    'InitialLearnRate', 3e-4,...
    'Shuffle', 'every-epoch', ...
    'ValidationData', Augmented_Validation_Image, ...
    'ValidationFrequency', Validation_Frequency, ...
    'Verbose', false, ...
    'Plots', 'training-progress');

% 开始训练
net = trainNetwork(Augmented_Training_Image, Layer_Graph, Training_Options);
54

4. アルゴリズム理論の概要

      VGG は、2014 年にオックスフォード大学の有名な研究グループ vGG (Visual Geometry Group) によって提案され、その年の imageNet コンペティションで Localization Task (測位タスク) で 1 位、Classification Task (分類タスク) で 2 位を獲得しました。 。分類タスクの最初の場所は GoogleNet です。GoogleNet は Google によって開発されたディープ ネットワーク構造です。「GoogLeNet」と呼ばれる理由は、「LeNet」に敬意を表してです。人間の行動と行動の認識は、コンピュータ ビジョンとディープ ラーニングの分野における重要なアプリケーションの 1 つです。近年、深層学習ネットワークは人間の行動や行動の認識において目覚ましい成果を上げています。

1. 原理
1.1 ディープラーニングと畳み込みニューラルネットワーク (CNN)
       ディープラーニングは、多層ニューラルネットワークを構築することで人間の脳のニューロン間の結合を模擬し、データ学習と特徴抽出を実現する機械学習技術です。畳み込みニューラル ネットワーク (CNN) は、深層学習における重要な構造であり、特に画像認識タスクに適しています。畳み込み層、プーリング層、全結合層を通じて層ごとに画像の特徴を抽出して学習します。

1.2 GoogLeNet
       GoogLeNet は、2014 年に Google によって提案されたディープ畳み込みニューラル ネットワークです。ディープネットワークにおける多すぎるパラメータと大量の計算の問題を解決するために、Inception モジュールを導入します。インセプション モジュールは、さまざまなサイズのコンボリューション カーネルとプーリング操作を使用して特徴を並行して抽出し、それらをつなぎ合わせてより豊富な特徴表現を取得します。

GoogLenet ネットワークのハイライト
1. インセプション構造の導入 (異なるスケールの特徴情報の融合)
2. 次元削減とマッピング処理に 1x1 畳み込みカーネルを使用
3. トレーニングを支援する 2 つの補助分類器を追加
4. 全結合層を破棄し、平均プーリング層 (モデルパラメータを大幅に削減)

2. 実装プロセス
2.1 データの前処理
      鉱石の種類認識タスクでは、まず、さまざまな挙動の画像やビデオ フレームを含む、マークされたデータ セットを準備する必要があります。次に、画像は深層学習ネットワークに入力されるように、画像サイズの調整、正規化、その他の操作を含む前処理が行われます。

2.2 ネットワーク モデルの構築
       GoogLeNet モデルは、TensorFlow や PyTorch などの深層学習フレームワークによって構築できます。モデルの基本構造には、畳み込み層、プーリング層、インセプション モジュール、および全結合層が含まれます。ネットワークは、特定のタスクに応じて変更およびカスタマイズできます。

2.3 データ入力とトレーニング
       前処理された画像が入力として使用され、ネットワークの出力は順伝播によって取得されます。次に、ラベルとの比較、損失関数の計算、逆伝播によってネットワークの重みパラメータが更新されます。トレーニングを複数回繰り返すことで、ネットワークは徐々に特徴を学習し、認識能力を向上させます。

2.4 モデルの評価と調整
        トレーニング プロセス中に、データ セットをトレーニング セット、検証セット、およびテスト セットに分割する必要があります。検証セットを通じてモデルのパフォーマンスを監視し、検証セットのパフォーマンスに基づいてモデルを調整します。テスト セットで評価して、目に見えないデータに対するモデルの認識精度を取得します。

5. アルゴリズム完全プログラムエンジニアリング

おおおお

ああ

おすすめ

転載: blog.csdn.net/aycd1234/article/details/132587726