Simulinkへの​fasterRCNN​ObjectDete​ctorクラスの読み​込み方法について

1 回表示 (過去 30 日間)
Shuto Higashi
Shuto Higashi 2018 年 9 月 19 日
コメント済み: Shuto Higashi 2018 年 9 月 20 日
上記のようなSimulinkブロックを作成し、matファイルに保存している学習済みのFaster R-CNN(fasterRCNNObjectDetectorクラス)をloadしようとしたのですが、以下のようなエラーが出ます。
そのほかFrom WorkspaceブロックやFrom Fileブロックを用いてロードしようとしても同様にサポートされていないとエラーが表示されます。
こちらのwebセミナーではSimulink上でFaster R-CNNが扱えるといった旨の解説がなされているのですが、具体的な読み込み方法についてご存知の方がいらしたらお教えください。

採用された回答

Tohru Kikawada
Tohru Kikawada 2018 年 9 月 20 日
MATLAB Functionブロックの中ではコード生成可能な関数のみ記述ができます。
fasterRCNNObjectDetector はコード生成に対応していないため、MATLAB Functionブロックの中に直接記述することはできません。 coder.extrinsic を使って外部関数としてMATLAB側で実行するように宣言する必要があります。
具体的には下記のような記述になります。 coder.extrinsic 宣言した関数はコード生成はできませんのでご注意ください。
MATLAB Functionブロックの記述例:
function Iout = myFasterRCNNDetecter(I)
coder.extrinsic('detectFasterRCNN');
Iout = zeros(128,194,3,'uint8');
Iout = detectFasterRCNN(I);
end
MATLAB Functionブロックから呼び出す detectFasterRCNN.m の記述例:
function I = detectFasterRCNN(I)
persistent detector
if isempty(detector)
data = load('fasterRCNNVehicleTrainingData.mat');
detector = data.detector;
end
[bboxes,scores] = detect(detector,I);
if ~isempty(scores)
I = insertObjectAnnotation(I,'rectangle',bboxes,scores);
end
end
  1 件のコメント
Shuto Higashi
Shuto Higashi 2018 年 9 月 20 日
丁寧なご回答誠にありがとうございます。 無事動作を確認することができました。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeコンピューター ビジョンと Simulink についてさらに検索

製品


リリース

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!