JavaからMatlabを使ってDeepLearning(画像認識)をやってみます。
(1) 画像の準備
今回は下記の画像を使いました。
http://gahag.net/010175-french-bulldog/
画像の取り込みは、
ml.eval("img1 = imread('img/dog01.jpg');");
で直接やりました。
(2) DeepLearningの準備
今回はMatlabのAlexという学習済みネットワークを使います。
https://jp.mathworks.com/help/nnet/ref/alexnet.html
途中画像のトリミングをしないといけないので、
ml.eval("sz = deepnet.Layers(1).InputSize"); //ネットワークの最初の層の InputSize プロパティを使用して、ネットワークの入力サイズを求めます。
ml.eval("img = imresize(img1,[227 227]);");
のようにします。
https://jp.mathworks.com/help/images/ref/imresize.html
(3) Test
実際に画像が何かをテストします。scoreが0.01以上のものだけ出力します。
ml.eval("pred1 = classify(deepnet,img)");
ml.eval("categorynames = deepnet.Layers(end).ClassNames;");
ml.eval("[pred,scores] = classify(deepnet,img);");
ml.eval("highscores = scores > 0.01;");
精度も良さそうです。
(4)課題
hscoreがベクトルでJava側に渡す方法がわかりませんでした。
ソースコード
Thanks for sharing, nice post! Post really provice useful information!
返信削除Giaonhan247.vn chuyên dịch vụ gửi hàng đi nhật, gửi hàng đi canada hay dịch vụ vận chuyển hàng đi campuchia và vận chuyển gửi hàng đi úc và gửi vận chuyển hàng đi lào cùng với bảng giá cước gửi hàng đi mỹ và giải đáp gửi hàng đi Mỹ bao nhiêu 1kg hiện nay.