VGG畳み込みニューラルネットワークモデル分析

VGG畳み込みニューラルネットワークモデル分析

1: VGGの紹介とモデル構造

VGGはVisual Geometry Groupの略で、オックスフォード大学理工学部に所属しています。VGGを皮切りに、顔認識や画像分類などに応用できる畳み込みネットワークモデルをVGG16からVGG19までシリーズ化してリリースしています。 VGG が畳み込みネットワークの深さを研究した当初の目的は、畳み込みネットワークの深さが大規模な画像分類と認識の精度と正確性にどのように影響するかを解明することでした。当初、VGG-16 は非常に深い畳み込みネットワーク (GG-Very-Deep-16 CNN) として知られていました。ネットワーク層の数を深くする一方で、パラメータが多すぎることを避けるために、VGG はすべての層で小さな 3x3 畳み込みカーネルを使用し、畳み込み層のステップ サイズを 1 に設定しました。 VGG の入力は、サイズが 224x244 の RGB 画像に設定されます。トレーニング セット内のすべての画像の RGB 平均が計算され、その後、画像は 3x3 または 1x1 フィルターを使用して VGG 畳み込みネットワークへの入力として渡され、畳み込みステップ サイズは 1 に固定されます。 VGG には 3 つの完全接続層があります。畳み込み層 + 完全接続層の総数に応じて、VGG11 から VGG19 まであります。最小の VGG11 には 8 つの畳み込み層と 3 つの完全接続層があり、最大の VGG19 には 16 の畳み込み層 + 3 つの完全接続層があります。また、VGG ネットワークは各畳み込み層の後にプーリング層を追従せず、合計 5 つのプーリング層が、異なる畳み込み層の下に分散されています。次の図は、VGG11 ~ VGG19 の構造図です。

ネットワーク全体の簡略化された構造を考慮すると、上記の構造では ReLU 活性化関数は示されていません。上記の構造についての説明:

  • Convは畳み込み層を表す
  • FCは完全接続層を表す
  • conv3は畳み込み層が3x3のフィルタを使用することを意味する
  • conv3-64は深さ64を意味します
  • maxpool は *** プーリングを意味します

上記VGG11〜VGG19のパラメータの総数は、以下の通りです。

実際の処理では、最初の完全接続層を 7x7 畳み込みネットワークに変更し、次の 2 つの完全接続層を 1x1 畳み込みネットワークに変更することができます。VGG 全体が完全畳み込みネットワーク FCN になります。 VGG ネットワーク以前は、畳み込みニューラル ネットワーク (CNN) が 10 層を超えることはほとんどありませんでした。VGG は CNN ネットワークの深度を深めることに最初に貢献しましたが、VGG にも独自の制限があります。ネットワークを継続的に深化させることはできません。ネットワークを一定の層数まで深化させると、トレーニング効果のフェードアウト、勾配消失、勾配爆発などの問題が発生します。一般に、VGG は最初に提案されたときも非常に人気があり、ImageNet コンペティション データセットで良好な結果を達成しました。

その他の同様のデータも良好なパフォーマンスを示します。

2: 事前学習済みモデルの使用(Caffe)

VGG 自体は、誰でも自由に使用できる事前トレーニング済みモデルを提供しています。事前トレーニング済みの VGG-16 および VGG-19 モデルのダウンロード アドレスは、次の場所にあります。

http://www.robots.ox.ac.uk/~vgg/research/very_deep/

VGG-16 モデルをダウンロードしたら、OpenCV DNN モジュール API を使用して、1,000 の画像分類をサポートし、ImageNet 2014-ILSVRC データセットでトレーニングされた画像分類器を実装できます。元の画像:

VGG-16予測分類結果:

少し恥ずかしいことに、OpenCL の初期化に十分なメモリがありません。私のマシンの性能が十分でないとしか言​​えません。

ネットワークの読み込みと画像分類を示す OpenCV プログラム コードは次のとおりです。

  1. ネット net = readNetFromCaffe(model_txt_file, model_bin_file);
  2. ネットが空の場合(){
  3. printf( "Caffe モデル データの読み取りに失敗しました...\n" );
  4. -1 を返します
  5. }
  6. Mat inputBlob = blobFromImage(src, 1.0,サイズ(w, h), スカラー (104, 117, 123));
  7. マット問題;
  8. ( int i = 0; i < 10; i++) {
  9. net.setInput(inputBlob, "データ" );
  10. prob = net.forward ( "prob" );
  11. }
  12. マットprobMat = prob.reshape(1, 1);
  13. ポイントクラス番号;
  14. ダブルクラスProb;
  15. minMaxLoc(probMat, NULL , &classProb, NULL , &classNumber);
  16. int classidx = クラス番号.x;
  17. printf( "\n 現在の画像分類: %s、可能性: %.2f" 、ラベル。at ( classidx).c_str()、classProb);
  18.  
  19. putText(src, labels.at (classidx), ポイント(20, 20), FONT_HERSHEY_SIMPLEX, 1.0, スカラー(0, 0, 255), 2, 8);
  20. imshow( "画像分類" , src);

OpenCV ディープラーニングのビデオ チュートリアルを学ぶには、以下をクリックしてください。

OpenCV ディープラーニング モジュール - 「OpenCV ディープ ニューラル ネットワーク チュートリアル」

<<:  誰も教えてくれないAI大規模導入の効率的なプロセス!

>>:  AISpeechは多角的な視点からAIエコロジカルバリアを構築し、AIチップはラストマイルを切り開く

推薦する

Kubernetes 上で生成 AI アプリケーションをデプロイするためのステップバイステップ ガイド

翻訳者 |李睿レビュー | Chonglou今日の急速に変化するテクノロジーと市場環境では、人工知能...

Facebookは人工知能を使ってコンテンツレビューの優先順位を決める

海外メディアによると、フェイスブックは機械学習アルゴリズムの使用を増やし、AIを使ってコンテンツの重...

AutoML が大幅に高速化、Google が最適な ML モデルを自動検索する新しいプラットフォームをオープン ソース化

研究者が最適な機械学習モデルを自動的かつ効率的に開発できるようにするために、Google は特定の分...

AI陣営を理解するためのチャート: AIを学んで間違った側に立つと自滅につながる可能性がある

AIにはさまざまな手法があります。私たちがよく知っている「5大流派」に加え、この記事の著者はAIのさ...

米国の光学半導体ウエハ検査機はAIとビッグデータを統合し動作速度を3倍に向上

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

李開復:「AI+」から「+AI」へ、テクノロジーが中国経済を変革

人工知能カンファレンスでAI業界の変化について語る李開復氏2020年世界人工知能会議において、Sin...

2024年に人工知能はどこへ向かうのでしょうか?

2023年はテクノロジー分野にとって波乱に富んだ年であり、言語学習モデルが爆発的に増加し、人工知能...

クラシック絵文字パッケージにこの「続編」があることが判明しました。ステーブルビデオのクリエイティブなゲームプレイが人気

AI を使って古典的な絵文字を動画にアップグレードする、この創造的な遊び方が最近かなり人気になってい...

...

世紀の奇跡!華中科技大学の師弟が世界で初めて韓国の常温超伝導磁気浮上を再現、アメリカン・スーパーコンダクターは取引セッション中に150%急騰

人類は物質とエネルギーの新しい時代を迎えようとしているのでしょうか?未来のテクノロジーへの扉が開かれ...

「顔認識」は「性格認識」を生み出しました。テクノロジーが善のために使われるようになるまでにはどれくらい時間がかかるのでしょうか?

最近、顔認識の新技術に関する記事が科学誌「サイエンティフィック・リポーツ」に掲載された。ロシアの研究...

人工知能は人類にユートピアをもたらすのか、それともディストピアをもたらすのか?

[[187202]]ロボットはユートピアをもたらすのか、それともディストピアをもたらすのか?作家ピ...

ニューラルネットワークの仕組みを1つの記事で学ぶ

出典: getwallpapers.comディープラーニングは機械学習の重要な分野の 1 つです。そ...