主要内容

深層学習を使用したWebカメラメジの分類

この例では,事前学習済みの深層畳み込みニューラルネットワークGoogLeNetを使用して,Webカメラのイメージをリアルタイムで分類する方法を説明します。

MATLAB®,シンプルなWebカメラ,および深層ニューラルネットワークを使用して,身の回りの物を識別します。この例では,GoogLeNetを使用します。この事前学習済みの深層畳み込みニューラルネットワーク(CNNまたは事先)は,100多万枚を超えるイメージについて学習済みであり,イメージを1000個のオブジェクトカテゴリ(キーボード,マグカップ,鉛筆,多くの動物など)に分類できます。GoogLeNetをダウンロードし,MATLABを使用してカメラのイメージをリアルタイムで連続的に処理できます。

GoogLeNetは広範囲のaapl . exeメ。入力としてイメージを取り,イメージ内のオブジェクトのラベルと各オブジェクトカテゴリの確率を表示します。身の回りの物で実験して,GoogLeNetによってイメージがどの程度正確に分類されるかを確認できます。ネットワークによるオブジェクト分類の詳細を確認するには,最終的なクラスの判定だけでなく,上5位クラスのスコアをリアルタイムで表示します。

カメラおよび事前学習済みのネットワ,クの読み込み

カメラを接続し,事前学習済みのGoogLeNetネットワ,クを読み込みます。この手順では任意の事前学習済みのネットワ,クを使用できます。この例には,MATLAB支金宝app持包USB网络摄像头,および深度学习工具箱™模型为GoogLeNet网络が必要です。必要なサポトパッケジがンストルされていない場合,ダウンロド用リンクが表示されます。

摄像头=网络摄像头;Net = googlenet;

例をもう一度実行する場合は,まずコマンド清晰的相机を実行します。ここで,相机はWebカメラへの接続です。そうしない場合,同じWebカメラへの新しい接続は作成できないため,エラ,が表示されます。

カメラのスナップショットの分類

イメージを分類するには,ネットワークの入力サイズに合わせてイメージのサイズを変更しなければなりません。ネットワクのメジ入力層のInputSizeプロパティから最初の2の要素を取得します。。

inputSize = net.Layers(1).InputSize(1:2)
inputSize = 224 224

カメラの。分类を呼び出す前に,ネットワクの入力サズに合わせてメジのサズを変更しなければなりません。

图im =快照(相机);image(im) im = imresize(im,inputSize);[label,score] = category (net,im);标题({char(标签),num2str (max(分数),2)});

カメラの▪▪メ▪▪ジの連続的な分類

カメラのメジを連続的に分類するには,前の手順をルプ内に含めます。图が開いている間,ル,プを実行します。ラ▪▪ブ予測を停止するには、単に图を閉じます。反復が終了するたびにdrawnowを使用して图を更新します。

H =数字;Ishandle (h) im =快照(相机);image(im) im = imresize(im,inputSize);[label,score] = category (net,im);标题({char(标签),num2str (max(分数),2)});drawnow结束

上位の予測の表示

予測されるクラスは急速に変化する可能性があります。そのため,上位の予測を一緒に表示すると便利な場合があります。予測の最高スコアを使用してクラスをプロットすることで,上位5の予測とその確率を表示できます。

カメラのスナップショットを分類します。カメラの。関数分类分数出力を使用して,上位5の予測にいて確率のヒストグラムを表示します。

图ウィンドウを作成します。まず,幅が2倍になるようにウィンドウのサ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪

H =数字;h.位置(3)= 2*h.位置(3);Ax1 = subplot(1,2,1);Ax2 = subplot(1,2,2);

左のサブプロットに,。

Im =快照(相机);image(ax1,im) im = imresize(im,inputSize);[label,score] = category (net,im);标题(ax₁,{char(标签),num2str (max(分数),2)});

スコアの高いクラスを選択して,上位5の予測を選択します。

[~,idx] = sort(分数,“下”);Idx = Idx (5:-1:1);classes = net.Layers(end).Classes;classNamesTop = string(类(idx));scoreTop = score(idx);

上位5の予測をヒストグラムとして表示します。

barh(ax2,scoreTop) xlim(ax2,[0 1]) title(ax2, [0 1])“五大”)包含(ax2,“概率”) yticklabels(ax2,classNamesTop)YAxisLocation =“对”

メ,ジの連続的な分類と上位の予測の表示

カメラのメジを連続的に分類して上位の予測を表示するには,前の手順をルプ内に含めます。图が開いている間,ル,プを実行します。ラ▪▪ブ予測を停止するには、単に图を閉じます。反復が終了するたびにdrawnowを使用して图を更新します。

图ウィンドウを作成します。まず,幅が2倍になるようにウィンドウのサ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪座標軸のサ电子邮箱ズが変更されないようにするには,PositionConstraintプロパティを“innerposition”に設定します。

H =数字;h.位置(3)= 2*h.位置(3);Ax1 = subplot(1,2,1);Ax2 = subplot(1,2,2);ax2。PositionConstraint =“innerposition”

上位5の予測のヒストグラムをメジと共に連続的に表示して分類します。

ishandle (h)显示和分类图像Im =快照(相机);image(ax1,im) im = imresize(im,inputSize);[label,score] = category (net,im);标题(ax₁,{char(标签),num2str (max(分数),2)});选择前五个预测[~,idx] = sort(分数,“下”);Idx = Idx (5:-1:1);scoreTop = score(idx);classNamesTop = string(类(idx));绘制直方图barh (ax2 scoreTop)标题(ax2,“五大”)包含(ax2,“概率”) xlim(ax2,[0 1]) yticklabels(ax2,classNamesTop) ax2。YAxisLocation =“对”;drawnow结束

参考

||

関連するトピック