このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
事前学習済みのネットワークを使用したモバイル デバイスのカメラからのイメージの分類
モバイル デバイスの設定
この例では、モバイル デバイスのカメラで取得したイメージを、深層学習を使用して分類する方法を説明します。
モバイル デバイス上で MATLAB® Mobile™ をインストールして設定します。次に、MATLAB Mobile の [設定] から MathWorks® Cloud にサインインします。詳細については、お使いのデバイスへの MATLAB Mobile のインストールおよびクラウドへのサインインを参照してください。
デバイス上で MATLAB Mobile を起動します。
モバイル デバイスのカメラへの接続の作成
[コマンド] 画面で、mobiledev オブジェクト m を作成します。
m = mobiledev
m =
mobiledev with properties:
Connected: 1
AvailableCameras: {'back' 'front'}
Logging: 0
InitialTimestamp: ''
AccelerationSensorEnabled: 0
AngularVelocitySensorEnabled: 0
MagneticSensorEnabled: 0
OrientationSensorEnabled: 0
PositionSensorEnabled: 0
Supported functions
AvailableCameras プロパティは、このデバイスに 'back' カメラと 'front' カメラがあることを示しています。'back' カメラへの接続を作成します。
cam = camera(m,'back')cam =
Camera with properties:
Name: 'back'
AvailableResolutions: {'640x480' '1280x720'}
ZoomRange: [1 121.8750]
Resolution: '640x480'
Zoom: 1
Flash: 'off'
Autofocus: 'on'
カメラのプロパティで、イメージの解像度、オートフォーカス、フラッシュの設定に関する情報が提供されます。
事前学習済みのネットワークの読み込みとイメージの取得
Deep Learning Toolbox™ を使用して、[コマンド] 画面から事前学習済みの GoogLeNet ネットワークを読み込みます。
nnet = googlenet;
手動シャッター モードで関数 snapshot を使用して、カメラから 1 つのイメージを取得します。カメラ プレビューが開いたら、モバイル デバイスを移動して、目的の視野をキャプチャできます。この例では、分類するオブジェクトのイメージをキャプチャします。準備ができたら、シャッター ボタンを押してイメージを取得します。
img = snapshot(cam,'manual');
ネットワークの入力サイズに合わせてイメージのサイズを変更します。GoogLeNet の入力サイズは 224 x 224 です。image を使用して、MATLAB Mobile でイメージをプレビューします。
img = imresize(img,[224,224]); image(img)
取得したイメージの分類と表示
Deep Learning Toolbox の classify を使用して、取得したイメージ内のオブジェクトを分類します。
label = classify(nnet,img)
label =
categorical
coffee mug オブジェクトはマグカップとして分類されています。ラベルを Figure のタイトルとして使用して、イメージをプレビューします。
image(img) title(char(label));

イメージを分類する関数の作成
MATLAB Mobile で、前述したイメージの分類手順をすべて実行する関数を作成できます。
[ファイル] 画面で、新しいスクリプトを MATLAB Drive™ フォルダー内に作成します。ファイルに camnet.m という名前を付けます。関数 camnet を以下のように定義して、ファイルを保存します。
function value = camnet(cam,nnet) img = snapshot(cam,'manual'); pic = imresize(img,[224,224]); value = classify(nnet,pic); image(pic) title(char(value)) end
[コマンド] 画面で、mobiledev オブジェクトを作成します。次に camera オブジェクトを作成します。
m = mobiledev;
cam = camera(m,'front');nnet = googlenet;
関数 camnet を呼び出します。
label = camnet(cam,nnet)
モバイル デバイス上でカメラ プレビューが開きます。分類するオブジェクトに向けて、モバイル デバイスのカメラを移動します。シャッター ボタンを押してイメージをキャプチャします。イメージをキャプチャしたら、Figure を表示できます。Figure のタイトルには、オブジェクトの予測されたラベルが表示されます。
