近年ディープラーニングによって画像認識技術が発展し、さらに日に日に簡単に利用できるようになっています。Viyaを利用して実装していきます。インターフェースはPythonを使用します。画像の準備まず画像を準備します。今回はcifar10を使用します。cifar10は10クラスのラベルが付いた画像データで、train_dataは50000画像あります。画像は以下から入手することができます。https://www.cs.toronto.edu/~kriz/cifar.htmlでは、cifar10を使用できる状態にしましょう。必要なモジュールをインポートします。tqdm_notebook設定を行います。dirpathには任意のフォルダ名を入れてください。"truck"}cifar10をダウンロードします。'r:gz').extractall(dirpath)trainフォルダを作成します。Image.fromarray(img).save(dirpath+"/traincifar/{0}/{1}".format(label,name))次のようなフォルダ構成になっていたら成功です。Viyaに画像を取りこみましょう。Viyaの環境に移してください。画像の読み込みに戻ります。必要なswatやdlpyモジュールを読み込みます。Viyaにアクセスしましょう。Viyaに接続する」と同様ですので、そちらと合わせてご覧ください。Setを読み込みます。Viyaによる画像の読み込みを行います。今回はtrainのみを使用します。recurse=True)読み込んだテーブルをImageTableに変換します。ImageTableを使用することにより、画像処理を行うことができます。trainとvalidに分割します。seed=12345)ここで、traindataの画像の中身を見てみましょう。traindata.show()32×32の画像なので荒いですが、何が映っているかは分かります。この画像を入力として、何が映っているかを予測することを目指します。Viyaでモデル構築、トレーニング今回はConv→Conv→Pool→Conv→Conv→Pool→dense→softmaxというシンプルなCNNを構築します。簡単に言うと、小さいフィルターを移動させて特徴量を作成し、それをもとにラベルを予測するディープラーニングの手法の一つです。物体が映っている場所によらずに特徴を探すことができます。以下のブログが分かりやすかったので詳しくは参考にしてください。n=10))さらに、Optimizerも定義します。mini_batch_sizeやmax_epochsは実行時間やマシンスペックによって変えることをお勧めします。viyaでは、作成したモデルの可視化ができます。複雑なモデルはコードを見ただけでは分からないので、この機能はありがたいですね。(以下の出力結果は一部抜粋しております。)model1.plot_network()次にトレーニングを行います。今回はCPUで演算していますが、もしGPUが使用できるのであれば、ここでgpuの引数を加えてください。log_level=2)トレーニング時間は50epochで約21分でした。CPUにしてはかなり早いのではないでしょうか。学習をしたら、まずは正しく学習されているかを確認する必要があります。traindataのlossと正解率を見てみましょう。model1.plot_training_history()一部lossが上がっていますが、全体としてはlossが下がっていますね。validdataと合わせて、lossと正解率を見てみます。20plt.ylim([0,1])plt.show()正解率も上昇傾向にありますね。結果を確認したので、予測を行いましょう。validdataに対して、ラベルを予測します。model1.evaluate(data=validdata)次に、正解ラベルと不正解ラベルの予測確率を確認します。n_images=2)またこれもすごいのですが、CNNの中間層を取り出して、CNNがどの部分が分類において重要かの可視化を行ってくれます。値が高い(=青い)部分を重要としているらしいです。(参考:https://arxiv.org/pdf/1311.2901.pdf)予測した結果を保存しましょう。予測したテーブルはmodel1.valid_res_tblに入っています。Viyaで画像分類を行いました。Viyaはモデルや結果の可視化が綺麗で、わかりやすいですね。RCNNやYOLOなどのオブジェクト認識も紹介していきたいと思います。画像認識コメント投稿者名メールアドレス※投稿されたコメントは、管理者によって承認された後に掲載されます。Homeお問い合わせ当サイトをご覧いただきありがとうございます。当社のサービス・製品に関するご意見、ご質問等はお電話、または下記のメールフォームより受け付けております。お気軽にお問い合わせください。9:30~18:30※お掛け間違いの無いようにお気をつけください。