MATLABによる画像処理・コンピュータービジョン評価キットを使ってみる


目次へのリンク

MATLABによる画像処理・コンピュータービジョン入門目次

MATLAB 画像処理・コンピュータービジョン評価キットとは?

Image Processing Toolbox™やComputer Vision Toolbox™の機能を網羅した例題集です。画像処理やコンピュータービジョンをこれからはじめる方が逆引き的に使用することができます。
下記のようなものが入っています。

  • MATLAB®/Simulink®による画像の取り扱い(DICOM)
  • 各種画像処理例(各種画像データ読み込み/2値化/幾何学変換/位置合わせ/フィルタ/モルフォロジー処理/セグメンテーション)
  • マルチコア/GPUコード生成/FPGA連携機能例/深層強化学習
  • コンピュータービジョン処理例(特徴点マッチング/動体検出/トラッキング/ステレオビジョン/LiDAR点群処理)
  • 画像の機械学習処理例(SVM/線形判別)
  • ディープラーニング処理例(CNN/転移学習/Faster R-CNN/YOLO v2/SegNet/FCN/U-Net/3D CNN)

必要な構成

評価キットを入手

まずは下記のコマンドでGitHubからファイルをダウンロードします。verMatlabはバージョンに合わせて変えてくださいね。Gitに詳しい人はcloneしていただいてもOKです。

verMatlab = "R2019b";
folderName = "MATLAB-IPCV-Eval-Kit-JP-"+verMatlab;
zipFileName = folderName+".zip";
if ~exist(zipFileName,"file")
websave(zipFileName,...
    "https://github.com/mathworks/MATLAB-IPCV-Eval-Kit-JP/archive/"+verMatlab+".zip");
end

解凍する

早速解凍してみましょう。

if ~exist(folderName,"dir")
    unzip(zipFileName)
end

MATLABプロジェクトを開く

プロジェクトファイルを開いてデモファイルのフォルダにパスを通します。

open(fullfile(folderName,"IPCV_Eval_Kit.prj"));

どんな機能があるか資料を見てみる

各機能を紹介するPDFが入っているのでざっと目を通してみましょう。気に入った例題があったら実行してみます。

open("IPCV_Eval_kit.pdf");

いくつか例題を動かしてみる

では例題を動かして動作を確認してみましょう。解説はなしでひたすら実行してみます。どんなデモがあるか見てもらえたらと思います。

歯車の欠けを検出

I2_01_3_myGear_7g_J_short

ワッシャーを種類ごとに数える

I2_09_0_myWashers7s_long

特徴点マッチングによる物体検出

I4_02_1_featureMatching_BRISK

ポイントトラッカーによる顔の追尾

I4_08_4_myFaceTrackingKLT


ステレオカメラのキャリブレーションと距離推定

I4_09_2_myStereoCalibAndSceneReconst

figure_19.png




3次元点群の表示、セグメンテーション、レジストレーション

I4_10_2_myPointCloudsExample




ディープラーニング(YOLO v2)による車両検出

※GPUなしだとかなり時間かかります

I5_06_2_6_trainYOLOv2ObjectDetector
*************************************************************************
次のオブジェクト クラスに対する YOLO v2 オブジェクト検出器の学習:

* vehicle

学習データをチェック中...完了。
単一の CPU で学習中。
入力データの正規化を初期化しています。
|===================================================================|
|  エポック  |  反復  |     経過時間     |  ミニバッチ RMSE  |  ミニバッチ損失  |  基本学習率  |
|        |      |  (hh:mm:ss)  |              |           |         |
|===================================================================|
|      1 |    1 |     00:00:10 |         3.87 |      15.0 |  0.0010 |
|      2 |   30 |     00:02:53 |         0.78 |       0.6 |  0.0010 |
|      4 |   60 |     00:05:40 |         0.60 |       0.4 |  0.0010 |
|      5 |   90 |     00:08:18 |         0.41 |       0.2 |  0.0010 |
|      7 |  120 |     00:10:57 |         0.44 |       0.2 |  0.0010 |
|      9 |  150 |     00:13:29 |         0.33 |       0.1 |  0.0010 |
|     10 |  180 |     00:16:01 |         0.33 |       0.1 |  0.0010 |
|     12 |  210 |     00:18:47 |         0.32 |   9.9e-02 |  0.0010 |
|     14 |  240 |     00:21:19 |         0.29 |   8.6e-02 |  0.0010 |
|     15 |  270 |     00:23:48 |         0.27 |   7.4e-02 |  0.0010 |
|     17 |  300 |     00:26:21 |         0.27 |   7.1e-02 |  0.0010 |
|     19 |  330 |     00:28:58 |         0.22 |   5.0e-02 |  0.0010 |
|     20 |  360 |     00:31:27 |         0.29 |   8.4e-02 |  0.0010 |
|     22 |  390 |     00:34:00 |         0.24 |   5.6e-02 |  0.0010 |
|     24 |  420 |     00:36:33 |         0.20 |   4.0e-02 |  0.0010 |
|     25 |  450 |     00:39:02 |         0.22 |   4.9e-02 |  0.0010 |
|     27 |  480 |     00:41:34 |         0.18 |   3.1e-02 |  0.0010 |
|     29 |  510 |     00:44:05 |         0.23 |   5.3e-02 |  0.0010 |
|     30 |  540 |     00:46:35 |         0.25 |   6.1e-02 |  0.0010 |
|===================================================================|
検出器の学習が完了しました。
*************************************************************************


まとめ

以上がMATLAB 画像処理・コンピュータービジョン評価キットの使い方です。
どんなコードか気になった方はぜひダウンロードして試してみてくださいね。
何か面白いデモを見つけたり、作ったりしたらぜひコメントで教えてください。

謝辞

本記事は@eigsさんのlivescript2markdownを使わせていただいてます。