I've got a CNN which is trained supervised and calculates if a specific object is present in an image. Since I am interested in the object's position in the image I tried to alter my architecture so that it not only calculates the presence of an object but also its location.

However, as I am very new to this field, I am not sure if my attempt is a "good" idea or even sufficient for my interests.

My architecture simply "grids" the image into $n * n$ grids, so rather than always classifying the whole image, the CNN only gets one grid at a time as input. Hence, I can take the grid with the highest probability and it's location for locating an object.

The CNN is a "standard" CNN: 5 layers with convolution and max pooling layers. I am using ReLUs for each layer as well as dropout. This is followed by a fully-connected layer at the end for classification.

Since training my network takes quite a lot of time I have no "complete" results so far. First experiments showed a moderate object detection performance. Especially when the object is relatively small or too big (and therefore overlapping on several grids) the performance is bad.

Are there any tricks to boost the performance? Since I am a beginner I guess there are multiple ways to improve my architecture?

Or would another architecture be a better way? Is shifting the input grid even a good idea for locating an object?

  • $\begingroup$ These two papers may be useful: 1) Is object localization for free? Weakly-supervised learning with convolutional neural networks, and 2) Learning and Transferring Mid-Level Image Representations using Convolutional Neural Networks $\endgroup$ – Sobi Jan 6 '16 at 1:22
  • $\begingroup$ Thanks! Will check them tomorrow. Any specific ideas to this problem or my architecture/setup? Feedback is highly appreciated (: $\endgroup$ – daniel451 Jan 6 '16 at 1:24
  • $\begingroup$ CNNs trained on whole objects already capture (and preserve) some level of spatial information, however, the retained spatial information is not enough to localize the objects precisely; I mean, the performance will be far from CNNs trained specifically to do object detection (which, of course, use object bounding box information during training, unlike your model). $\endgroup$ – Sobi Jan 6 '16 at 1:35
  • $\begingroup$ I must add that, what you are asking is an active (and hot) area of research. So, if you are doing research then I recommend pushing on it more, but if you are trying to use it for a product or something, then I recommend changing direction. BTW, this is another closely related paper: Self-Taught Object Localization with Deep Networks. GL! $\endgroup$ – Sobi Jan 6 '16 at 1:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.