目次へのリンク
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)
必要な構成
- MATLAB R2019b以降 (必須)
- Image Processing Toolbox (必須)
- Computer Vision Toolbox (必須)
- Deep Learning Toolbox (ディープラーニング系に必要)
- Parallel Computing Toolbox (GPU実行に必要)
- Statistics and Machine Learning Toolbox (機械学習系に必要)
評価キットを入手
まずは下記のコマンドで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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14336/ca09ac1b-7ba7-b5fd-e6a4-d553a20476fa.png =250x)
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を使わせていただいてます。