10 行の MATLAB コードによる深層学習の例
この例では、わずか 10 行の MATLAB® コードを使用して、深層学習でライブ Web カメラに映ったオブジェクトを特定する方法を説明します。この例を試して、MATLAB でどれほど簡単に深層学習を始めることができるか確認してください。
次のコマンドを実行して (ダウンロードが必要な場合あり)、Web カメラに接続し、事前学習済みのニューラル ネットワークを取得します。
camera = webcam; % Connect to the camera net = squeezenet; % Load the neural network
webcam
アドオンをインストールする必要がある場合は、関数からのメッセージに表示されるリンクから、アドオン エクスプローラーを使用して無料のアドオンをダウンロードできます。または、MATLAB Support Package for USB Webcams を参照してください。SqueezeNet は、100 万個を超えるイメージで学習している事前学習済みの畳み込みニューラル ネットワーク (CNN) で、イメージを 1000 個のオブジェクト カテゴリ (キーボード、マウス、マグ カップ、鉛筆、多くの動物など) に分類できます。
次のコードを実行し、ライブ イメージを表示して分類します。Web カメラをあるオブジェクトに向けると、Web カメラに表示されているオブジェクトのクラスがニューラル ネットワークによって判断されて報告されます。イメージの分類は、Ctrl+C キーを押すまで続行されます。このコードでは、
imresize
を使用して、このネットワーク用にイメージをリサイズしています。while true im = snapshot(camera); % Take a picture image(im); % Show the picture im = imresize(im,[227 227]); % Resize the picture for squeezenet label = classify(net,im); % Classify the picture title(char(label)); % Show the class label drawnow end
この例では、ネットワークはマグ カップを正しく分類しています。身の回りのオブジェクトで実験して、このネットワークの精度を確認してください。
この例のビデオを見るには、Deep Learning in 11 Lines of MATLAB Code を参照してください。
この例を拡張してクラスの確率スコアを表示する方法については、深層学習を使用した Web カメラ イメージの分類を参照してください。
深層学習の次のステップとして、この事前学習済みのネットワークを他のタスクに使用できます。転移学習または特徴抽出を使用して、自分のイメージ データで新しい分類問題を解決してみましょう。例については、転移学習を使用した短時間での深層学習の開始と事前学習済みのネットワークから抽出された特徴を使用した分類器の学習を参照してください。他の事前学習済みのネットワークを試してみるには、事前学習済みの深層ニューラル ネットワークを参照してください。
参考
trainNetwork
| trainingOptions
| squeezenet