- 15.3.3 Road, Path Following Operators
- 15.3.3.1 Road Following, Depth, Stereo Based, Off-Road, Safe Path
- 15.3.3.2 Ground Plane Detection
- 15.3.3.3 Lane Detection, Lane Following, White Line Detection
- 15.3.3.4 Lane Changing, Lane-Change, Analysis, Control
- 15.3.3.5 Curb Detection, Street Boundaries
- 15.3.3.6 Indoor Navigation Issues, Lines, Walls, Doors, Flat Surfaces
- 15.3.3.6.1 Indoor Localization, Navigation Issues, Non-Image, Wi-Fi, Phone Positioning
- 15.3.3.7 CMU Road Followers, ALVINN YARF MANIAC
- 15.3.3.8 Obstacle Dectection, Objects on the Road
- 15.3.3.8.1 Other Vehicles
- 15.3.3.8.2 Collision Avoidance, Collision Detection, Vehicles, Objects on the Road
- 15.3.3.8.3 Obstacles, Objects on the Road Using Radar, Sonar, Active Vision
- 15.3.3.9 Airplane Obstacles, Collision Detection, Sense and Avoid
- 15.3.3.9.1 Aircraft Landings, Spacecraft Landing
- 15.3.3.10 Road Signs, Traffic Signs
- 15.3.3.11 Traffic Lights, Objects along the Road, Inspections
- 15.3.3.12 Railroads, Inspection, Obstacles
trainingOptions for a RCNN detector with AlexNet
2 views (last 30 days)
Show older comments
Hello everyone!
I would like to train an RCNN network to detect traffic signs. CNN's network (net) is AlexNet, which has already been trained and tested to recognize traffic signs (94% test accuracy).
Below are the options I used to train the RCNN network. During training I obtained an accuracy of 84%, but on the test side it does not find many signs (I have an accuracy of 25% if the score> 0.5).
I would like to have more signs detected and I suspect that the problem is with the options chosen for training. Can someone please help me with the training options?
options = trainingOptions('sgdm', ...
'MiniBatchSize', 128, ...
'InitialLearnRate', 1e-3, ...
'LearnRateSchedule', 'piecewise', ...
'LearnRateDropFactor', 0.1, ...
'LearnRateDropPeriod', 100, ...
'MaxEpochs', 30, ...
'Verbose', true);
rcnn = trainRCNNObjectDetector(DataTrain, net, options, ...
'NegativeOverlapRange', [0 0.3], 'PositiveOverlapRange',[0.5 1]);
[bbox, score, label] = detect(rcnn, img, 'MiniBatchSize', 128);
0 Comments
Answers (1)
Image Analyst
on 25 Jun 2022
Why are you retraining it when you said it has already been trained to recognize stop signs? If that's true, just delete the first two lines of your code and just have the call to detect.
If the accuracy is not high enough, you can do transfer learning (re-train alexnet) for a "stop-sign-only detector" by supplying a ton of stop sign images. It will be better but it won't be able to detect anything else. Is that what you're thinking of doing? How many stop signs do you have? Do you know how many stops signs the original alexnet training had? You should have many, many more than that.
Also, see section 15.3.3.10:
2 Comments
Image Analyst
on 26 Jun 2022
Try training longer, or using more training images, or use higher resolution network. alexnet has only 227x227 which is extremely low spatial resolution especially if the sign takes up only a small fraction of the scene.
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!