3
$\begingroup$

It seems that deep learning based approaches are currently more superior to the more "traditional" methods in the domain of object detection. Methods like YOLO, for example, seem to be doing something magical that can't be replicated by the other methods. However, these deep neural networks are trained on hundreds of classes and require a huge amount of computational power. So I have been wondering if we limit the object detection algorithm to a single class of objects (cats or a bicycle for example) can methods based on feature detectors(SIFT, SURF...) and machine learning algorithms (SVM, ANN...) perform similarly to deep learning algorithms?

$\endgroup$
  • $\begingroup$ You only need large amounts of data to train a deep learning model from scratch. Transfer learning goes a long way to reduce the required number of observations. $\endgroup$ – Frans Rodenburg Jul 15 '19 at 9:51
  • $\begingroup$ What I am trying to understand, is in the case of specific objectives ( such as one particular object) can classical methods perform as well as deep learning algorithms? $\endgroup$ – Mac Sat Jul 15 '19 at 10:47
  • $\begingroup$ A DNN excels at image recognition because of its ability to make abstractions from clusters of pixels by convolution. Reducing the number of classes doesn't make an image somehow easier to interpret, it just means the model has to learn less complicated details to discern between classes, but the abstractions still need to be made. $\endgroup$ – Frans Rodenburg Jul 15 '19 at 10:55
  • $\begingroup$ But can classical methods achieve the same or should I just give up and switch to CNN/FastRCNN? $\endgroup$ – Mac Sat Jul 15 '19 at 11:21
  • 1
    $\begingroup$ I'm sure it depends on your problem and how complex and large the images are, but in general, image recognition is dominated by convolutional neural network based approaches. $\endgroup$ – Frans Rodenburg Jul 15 '19 at 11:47
3
$\begingroup$

Object detection is completely dominated by deep learning. Essentially it is now down to one-stage detectors (e.g., YOLO) when you want speed and two-stage detectors (e.g., faster-RCNN) when you want accuracy. Check out any recent survey on object detection, like this one or this one.

However, these deep neural networks are trained on hundreds of classes and require a huge amount of computational power.

This is often true, but not strictly so. Many networks focus exclusively on humans (detecting pedestrians, or estimating human pose) for example. And modern hardware is quite capable of running high speed detectors like YOLO9000 in at least near real-time, even on cell phones (especially network weight quantizations).

If we limit the object detection algorithm to a single class of objects (cats or a bicycle for example) can methods based on feature detectors(SIFT, SURF...) and machine learning algorithms (SVM, ANN...) perform similarly to deep learning algorithms?

It's possible, sure. One case where you might do well is when there is very little training data available. Another is for objects that you can describe very well at multiple scales with a hand-crafted feature. However, I suspect that even with a relatively small amount of labeled training data, a deep CNN can do better, especially if it is via transfer learning or using low-shot/few-shot learning techniques.

Anecdotally, however, I know of a recent commercial/industrial object detection task in a production setting that was only designed to target a very small number of categories for a single class of objects (i.e., "fine-grained recognition and detection"). Their starting point was RetinaNet, I believe.

As to your comment

Do you think then, that a combination of CNN and images descriptors can be worth pursuing

I am not sure that it is worth it to look into image descriptors (i.e., hand-crafted feature extraction), since CNNs already do this very well. What you should look into are ways to combine classical techniques with deep learning methods. Much useful knowledge from traditional computer vision has been forgotten and is waiting for rediscovery, I suspect. For example, take the recent "attention" work from CVPR by Ramachandran et al, which obtains state-of-the-art performance with fewer FLOPs and no convolutions at all, by taking advantage of so-called self-attention. Yet, this approach is simply a form of learned non-local means and/or parameterized bilateral filtering - both old computer vision techniques. In other words, while feature extraction may be done very well by deep models, there is still plenty of room for the use of classical methods in other areas I think.

| cite | improve this answer | |
$\endgroup$
0
$\begingroup$

Deep learning outperforms classical machine learning methods in terms of quality of solutions, it's also less complicated to implement universal solutions. Since DL was born you don't need to focus on features, because you expect that model will recognize the most useful of them from the data by itself (this is the strongest point). You should only provide the exact capability of the model to catch all needed features and don't allow to catch noises or overfit. It's much simpler. You can try preparing models with features descriptors and then use SVM, however SVM computation complexity is high, memory consumption is extremely high and it's hard to processing data in parallel. On the other hand computation of DNN are matrix-based and is relatively simple, finally can be easily done in parallel. Because of that SVM can't handle a large amount of data, it's much faster to do it on GPU-based DNN. The amount of training data is key to the quality of a solution. Many papers confirm that the classical approach performs worse than DL.

Finally, you can prepare DNN for less class and much simpler tasks.

| cite | improve this answer | |
$\endgroup$

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.