R-CNN を実行できる関数が複数がありますが、どう使い分ければ良いですか?
2 views (last 30 days)
Show older comments
MathWorks Support Team
on 3 Apr 2017
Edited: MathWorks Support Team
on 9 Mar 2021
CNN (Convolutional Neural Network; 畳み込みニューラルネットワーク) のように、画像と物体ラベルが1対1対応ではなく、画像の中からどこに何が写っているのかを検出するアルゴリズムを使いたいと思っています。
R-CNN (Regions with CNN; 領域ベース畳み込みニューラルネットワーク) で実現できるようですが、R2017a のバージョンでは3つの R-CNN の関数が入っています。それぞれどう使い分ければよいか教えてください。
Accepted Answer
MathWorks Support Team
on 9 Mar 2021
Edited: MathWorks Support Team
on 9 Mar 2021
R2016b の Computer Vision System Toolbox では
https://www.mathworks.com/help/vision/ref/trainrcnnobjectdetector.html 関数しかありませんでしたが、R2017a では新たに https://www.mathworks.com/help/vision/ref/trainfastrcnnobjectdetector.html と https://www.mathworks.com/help/vision/ref/trainfasterrcnnobjectdetector.html が追加されています。
R-CNN は選択的探索 (Selective Search) を使って似た領域をグルーピングすることで各画像から大量の候補領域 (Region Proposal) を抽出し、それに対して画像のリサイズと CNN をかけることで、一枚の画像から複数の物体の特徴を抽出しています。場合によっては一枚の画像に対して何度も画像の切り出しと CNN を行うため、膨大な計算量がかかることが知られており、リアルタイムの物体検出に適用するには非現実的となっています。
そこで、画像に対して一度だけ CNN をかけて Feature Map を計算し、その中からプーリングを行うことで注目領域の特徴を抽出します。その後、領域ベースの特徴を分類する方法が Fast R-CNN として提案されました。R-CNN と比較して、最大160倍の処理演算となっています。
しかし、Fast R-CNN を含む CNN ベースのアルゴリズムでは、物体の候補領域をあらかじめ求めておく必要があります。このように二段階になっているために、計算量がかかっています。そこで提案されたのが、さらに処理速度の早い Faster R-CNN になります。このアルゴリズムでは、物体の候補領域の検出も CNN で一括で行う候補領域ネットワーク (Region Proposal Network) を使用しています。
実際に MATLAB で関数を使用する場合は、物体の識別速度、識別器の学習時間、カスタム化した候補領域が使用できるかどうかの三点に着目し、以下の表を基準にして trainRCNNObjectDetector, trainFastRCNNObjectDetector, trainFasterRCNNObjectDetector の三つの関数を使い分けてください。
なお、候補領域のカスタム化の利点としては、カスタム化することで実行速度や検出精度が向上する場合がある点になります。
[参考]
0 Comments
More Answers (0)
See Also
Categories
Find more on インストール、ライセンスおよびアクティベーション in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!