How to load trained R-CNN model to SIMULINK

조회 수: 24 (최근 30일)
Khai Hong Chin
Khai Hong Chin 2016년 12월 10일
댓글: Cesar García Echeverry 2024년 5월 27일
Below is the MATLAB code that I used to train my R-CNN Object Detector
rcnn = trainRCNNObjectDetector(ROI, cifar10Net, options, ...
'NegativeOverlapRange', [0 0.3], 'PositiveOverlapRange',[0.5 1])
save('C:\Users\PC1\Desktop\rcnn_Model_2.mat','rcnn');
Now my problem is the blocks like 'from File' in SIMULINK can not take any MAT file that are not timeseries object.
Below in the data format that I saved using the codes above,
Name Size Bytes Class Attributes
rcnn 1x1 482631 rcnnObjectDetector
Below is the properties of the model after being loaded,
rcnn =
rcnnObjectDetector with properties:
Network: [1×1 SeriesNetwork]
ClassNames: {'Left' 'Stop' 'Go' 'Right' 'Background'}
RegionProposalFcn: @rcnnObjectDetector.proposeRegions
So, is that any possible way to import the trained network to SIMULINK?

채택된 답변

David Willingham
David Willingham 2021년 10월 18일
As of R2021b, you can simulate and generate code for deep learning object detectors in Simulink®. The Analysis & Enhancement block library from Computer Vision Toolbox™ now includes the Deep Learning Object Detector (Computer Vision Toolbox) block. This block predicts bounding boxes, class labels, and scores for the input image data by using a specified trained object detector. This block enables you to load a pretrained object detector into the Simulink model from a MAT file or a MATLAB function.
For more information about working with the Deep Learning Object Detector block, see Lane and Vehicle Detection in Simulink Using Deep Learning. To learn more about using deep learning with Simulink, see Deep Learning with Simulink.
  댓글 수: 2
Muhammad Faisal Khalid
Muhammad Faisal Khalid 2021년 10월 18일
whats about the LSTM neural network. i have lstm model (time series equence) which i want to load in my simulink model.
how can i proceed with it.
i have seen the lane and vehicle detection in simulink by deep learning. when i assign my model in mat file, it gives error that there is no time series data.
David Willingham
David Willingham 2021년 10월 18일
You can use the Stateful predict, or Stateful classify to for using a trained LSTM with Simulink
Here are some links:

댓글을 달려면 로그인하십시오.

추가 답변 (5개)

Walter Roberson
Walter Roberson 2016년 12월 11일
You could possibly create a Simulink bus object with custom signals. However, I find no evidence that Simulink has any cnn related blocks, so you would have to be doing everything opaquely though a MATLAB Function Block or Level 2 MATLAB function. I suspect that it would not be possible to use it with any accelation mode other than "normal" or "accelerated" (using coder.extrinsic), not rapid accelation or code generation. I have not cross-checked that limitation though.
  댓글 수: 2
Khai Hong Chin
Khai Hong Chin 2016년 12월 11일
I did tried to use MATLAB Function block in order to load the trained model with codes shown below.
function y = fcn
y=load('C:\Users\Acer\Desktop\Progress 18-11\rcnn_Model_2.mat');
y=y.rcnn
end
However, the diagnostic report showed the following error
Found unsupported class for variable using function 'load'.
MATLAB class 'rcnnObjectDetector' found at 'y.rcnn' is unsupported.
Walter Roberson
Walter Roberson 2016년 12월 11일
Nothing in the Neural Network Toolbox is supported by Simulink Coder http://www.mathworks.com/help/simulink/ug/functions-supported-for-code-generation--alphabetical-list.html; not much of the Neural Network Toolbox is supported for MATLAB Compiler; https://www.mathworks.com/products/compiler/supported/compiler_support.html. For MATLAB Coder https://www.mathworks.com/help/coder/ug/functions-supported-for-code-generation--categorical-list.html#buimyq3 see https://www.mathworks.com/help/nnet/ug/deploy-neural-network-functions-and-objects.html which will point you to genFunction which will generate code to deploy an already-trained Neural Network.

댓글을 달려면 로그인하십시오.


De M
De M 2019년 5월 9일
Me too

michael bronnmann
michael bronnmann 2019년 8월 21일
Any news on this topic? I have a similar topic to use a trained model in Simulink. Has anyone an idea how to export the net to e.g. c++ for use within a sfunction?

Jonathan Akorli
Jonathan Akorli 2020년 3월 10일
Try using a MATLAB Interpreted function. You may have to use mapminmax to map the function block but its worth a try
  댓글 수: 1
michael bronnmann
michael bronnmann 2020년 3월 11일
Thanks for your answer. In the meanwhile I took a MATLAB Fcn block for "Shallow Neural Networks". They can be exported to either a m-function or a Simulink model.
Unfortunately there's no conversion possible from a Deep Neural Network.

댓글을 달려면 로그인하십시오.


Cesar García Echeverry
Cesar García Echeverry 2021년 6월 29일
Did you solved the problem? i want to load a .net from Matlab to Simulink, but i'm having the same problem.
Regrads
  댓글 수: 3
nes
nes 2024년 5월 26일
please have you find the solution i'm facing the same problem
Cesar García Echeverry
Cesar García Echeverry 2024년 5월 27일
Yeap, first, when you have your .net created in matlab workspace, you need to use 'load net.mat' and then 'gensim(net)', this will use your created .net in matlab to create an obect in simulink that you can use.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by