Are modern CNN (convolutional neural network) as D

2019-03-15 23:45发布

As known nVidia DetectNet - CNN (convolutional neural network) for object detection is based on approach from Yolo/DenseBox: https://devblogs.nvidia.com/parallelforall/deep-learning-object-detection-digits/

DetectNet is an extension of the popular GoogLeNet network. The extensions are similar to approaches taken in the Yolo and DenseBox papers.

And as shown here, DetectNet can detects objects (cars) with any rotations: https://devblogs.nvidia.com/parallelforall/detectnet-deep-neural-network-object-detection-digits/

enter image description here

Are modern CNN (convolutional neural network) as DetectNet rotate invariant?

Can I train DetectNet on thousands different images with one the same rotation angle of object, to detect objects on any rotation angles?

enter image description here

And what about rotate invariant of: Yolo, Yolo v2, DenseBox on which based DetectNet?

2条回答
Anthone
2楼-- · 2019-03-16 00:21

Adding on to Rob's answer, in general CNN itself is translation invariant, but not rotation and scale. However, it is not compulsory to include all possible rotations into your training data. A max pooling layer would introduce rotation invariant.

This image posted by Franck Dernoncourt here might be what you're looking for.

Secondly, regarding Kershaw's comment on Rob's answer which says:

A CNN is invariant to small horizontal or vertical movements in your training data mainly because of max pooling.

The main reason CNNs are translation invariant is the convolution. The filter would extract the feature regardless of where it is in the image since the filter will be moving across the entire image. It is when the image is rotated or scaled that the filter would fail because of the difference in pixel representation of the features.

Source: Aditya Kumar Praharaj's answer from this link.

查看更多
Lonely孤独者°
3楼-- · 2019-03-16 00:43

No

CNNs are not rotate invariant. You need to include in your training set images with every possible rotation.

You can train a CNN to classify images into predefined categories (if you want to detect several objects in a image as in your example you need to scan every place of a image with your classifier).

A CNN is invariant to small horizontal or vertical movements in your training data.

查看更多
登录 后发表回答