# Is there any computer vision technology that can detect any type of object?

Is there any computer vision technology that can detect any type of object? For example, there is a camera fixed, looking in one direction always looking at a similar background. If there is an object, no matter what the object is (person, bag, car, bike, cup, cat) the CV algorithm would notice if there is an object in the frame. It wouldn't know what type of object it is, just that there is an object in the frame.

Something similar to motion detector but that would work on a flat conveyor belt. Even though the conveyor belt moves will look similar between frames. Would something like this be possible? Possibly something to do with extracting differences from the background, with the goal being to not have to train the network with data for every possible object that may pass by the camera.

• If you mean "Is there a CV technology that just labels a whole image e.g. 'contains a cat' or 'contains a dog'" then the simple anser is yes. CV researchers use the term classification for labelling the image as a whole, and detection for locating a class of object within an image. In general detection is harder and more general problem to solve than classification. Maybe search "image classification" and if that is not what you are looking for, please explain the difference - use edit to explain in more detail. – Neil Slater Sep 6 '19 at 20:38

TL;DR

This is possible. You need a correctly labeled dataset. Your dataset has two labels:

$$y\in \{\text{background},\text{object in frame}\}$$ or simply $$y\in \{0,1\}$$

This labelling avoids needing to know what object is in frame only that there is an object in frame.

Examples With Similar Objectives

Here as a paper (link) that was seeking to classify animals in a frame. The first part of their pipeline needed to know whether there was an animal in frame or not. Excerpt:

Task I: Detecting Images That Contain Animals. For this task, our models take an image as input and output two probabilities describing whether the image has an animal or not (i.e. binary classification)

Here is another paper (link) regarding detecting animals in images. Excerpt:

Wildlife detection, which is actually a binary classiﬁer capable of clasifying input images into two classes: “animal” or “no animal”

The methods used in these papers could be adapted to fit the conveyor belt use case.

Here is a system (link) that detects moving objects using background extraction. The method they use to check whether or not the image is a background image or not could be adapted to your use case.

Ideas for Implementation

In the conveyor belt use case, a very simple model might work. Thus, it is recommended that you try a simple model first. For example, you could flatten your inputs to a vector and feed these into a shallow feed forward network. A simple logistic regression classifier might even work on flattened inputs for this use case.

If your desired performance is not reached with a simple model you can analyze their performance using methods like learning curves to decide how to proceed.

If you find that your model has high bias:

You can either use a larger/deeper model like a custom tuned CNN or you can use a pre-trained network like VGG16 and use transfer learning to achieve your goal.

Here is a post that describes using a CNN to classify cats vs dogs (link). Simply replace the cat/dog dataset with your object/no-object dataset. The post even describes using transfer learning with VGG16.

If you find that your model has high variance

More data can help. Furthermore, in the conveyor belt example, hand labeling data would be easy and quick. Thus, it would not take very much time to get many more examples.

I hope this helps.