11

You kind of answered your own question. Object Recognition: which object is depicted in the image? input: an image containing unknown object(s) Possibly, the position of the object can be marked in the input, or the input might be only a clear image of (not-occluded) object. output: position(s) and label(s) (names) of the objects in the image The ...


9

As far as alternatives to SIFT/SURF go, the question you linked provides very good answers. There were two more questions I could read out: "how could I build a useful (e.g. rotation invariant) feature descriptor"? "regarding the statement from the linked question, how does he accomplish free rotational invariance?" Building feature descriptors This is a ...


9

I think what you are asking is about the feasibility of your pedestrian algorithm. There are two general strategies for this kind of problems: (bottom-to-top) Consider it as a pure detection problem, where in each frame you detect only pedestrians. Once you detect them, a) counting their number in a frame is fairly easy; and b) tracking any of them in ...


8

I can see a number of possible problems with this approach. I speak from my own experience here from improving a pedestrian counting system with a very similar approach, so I don't mean to be discouraging. On the contrary, I'd like to warn you of possible hurdles you may have to overcome in order to build an accurate and robust system. Firstly, background ...


7

I would have a look at the so called "bag of words" or "visual words" approach. It is increasingly used for image categorization and identification. This algorithm usually starts by detecting robust points, such as SIFT points, in an image. The region around these found points (the 128 bit SIFT descriptor in your case) is used. In the most simple form, one ...


6

The difference is not so much in the algorithms used, but in the objectives. Object recognition is a problem of naming an object or objects depicted in an image. Content-based Image Retrieval is the problem of finding images in a database which match a user's query, which may be in the form of an image or in form of text. I would say that CBIR is a more ...


6

Alas, optical flow is a difficult problem too ;-) Well, to be more constructive, here are a few algorithms that should be worth trying (or have been tried on this particular sequence) : re-train your bags of features on a databse of vehicles more representative (in size and orientation) to your actual problem in order to obtain better results use the fact ...


5

First, about the USB barcode reader: at my previous job (QA at a label printer company), we had one from Scanology. It worked as a keyboard device, the scanned data is sent to the pc as if it were typed. So you don't need any special software. Code 39 has no error correction, but even a single misread line won't result in wrong data, because it simply won't ...


4

Another way to get rotational invariance for free, is to choose objects that are rotationally invariant. For instance, a circle or a ring is invariant to rotations. Feature extractor: Run edge detection. For each neighborhood of NxN pixels, calculate edge direction and magnitude 2D histogram. Find all points that have high total magnitude, and high angular ...


4

There are many different algorithms or theories to tackle your problem. As suggested in the comments, Kalman filters (in a regular or extended implementation) ore often tried in this case. If you are in a discrete world (I guess so from your question), you can try to solve your problem in a discrete setting with (for example) the Hungarian algorithm. If ...


4

In my experience best method for this is converting it to Lab color space. L represents the light, and a and b are light independent. OpenCV supports Lab color scale conversion.


4

There are two versions of optical flow(OF): Feature based (sparse) or dense. In the dense version OF is applied to all the image pixels, while in the sparse one, only certain characteristic feature points are tracked. However, both approaches depend on the tracking of pixel quantities. This is fundamentally different than tracking the whole patch, because in ...


3

You can use Caffe's deep convulutional net that was trained on the ImageNet DB to extract some very strong features: http://caffe.berkeleyvision.org/ The Caffe framework is implemented in C++ and runs very fast. It enables you to extract features that are much more powerful than LBP or HOG for example. Extract features from a training set and use them to ...


3

I think you would use a 2D Matched Filter. You would convolve your image with a series of rectangles. The peaks in the resulting images would be the location of your books. You could do this quickly in by Fourier transforming your image and using the known function for a rectange in 2D Fourier space (its two sinc functions, multiplied).


3

As far as I understood, by image derivation you mean extracting edges. I would recommend to filter the image by a relatively large Gaussian filter. If computational cost of image derivation is uncritical to your work, I would recommend using canny edge detector. It is less sensitive to noise and does not fool by noise, and finds weak edges along with strong ...


3

Multiscale object detection generally consists in smoothing the image with larger and larger kernels, to check which objects persist across different scales. So, zoom-out, mostly. You now can have access to the scale-space representation of the image, as shown below. One reason is that, without more knowledge, one does not zoom in beyond the pixel width. ...


3

What you are essentially doing is a matched filter. However, thanks to Hough transform, your filter (line) is oriented and therefore I would call it an oriented matched filter. For generating the Bresenham line and sampling the pixels you might want the use the OpenCV line iterator. The simple usage would be similar to: cv::LineIterator it(image, pt1, pt2, ...


2

For this special case, I recommend reading up on LAB Color model. And in regard to the LAB Color model, read up on Delta E. The distance between 2 colors. More details about color space can be found here: http://www.codeproject.com/Articles/613798/Colorspaces-and-Conversions I have never attempted the LAB color model via OpenCV as it's is a hassle to ...


2

The pyramid match kernel does not operate on the sets of feature vectors directly. It operates on multi-level histograms of feature vectors. Let's say you are using the SIFT descriptors, which live in 128-dimensional space. First you divide each dimension into 2 bins, which divides the entire feature space into $2^{128}$ bins. Then you count how many ...


2

One of my friends did this for his undergraduate thesis. What he basically did was encode properties of each gesture. For example,in the first figure, take a rectangular mask over theportions of the hand. The parts where the skin meets the rectangular mask edge should be noted and marked. Then the relative positions of the larger edge and the smaller edge ...


2

According to the book Programming computer vision with Python an interesting approach is to use dense SIFT (a.k.a. HoG) features on your images, and feed these features to a classifier. I didn't try it myself, but it seems quite sound as an approach. Furthermore, the inventor of the HoG feature proposes the Flutter app that worked quite well in my tests, ...


2

You can try looking at Hu invariant moments. They can be constructed from basic moments, and are rotation, scale, reflection, and translation invariant. Calculate them for a set of training contours first, and then apply them to the test contour. There are implementations in Matlab and OpenCV, as far as I remember.


2

As stated already, you can not do much to speed up a comparison between any two chosen patches. What you need to focus on in order to speed up the process is how to reduce the number of patch pairs you need to compare. If the computational process is as expensive as I presume it is, in addition to already mentioned image pyramid, I might have another ...


2

The paper referenced in your link seems to be this one. Of particular interest there is Table 1 (included below). The accuracy rates aren't great, though they are better than other approaches.


2

I share your assumption about depth being useless here. The approach #1 based on point detectors seems also useless, because there is probably a difference in scale between your reference (learning) images and the representation of objects in the real pictures that is so big that point detection becomes useless. Information is not present at the same level. ...


2

You could try using the peak-to-sidelobe ratio, i.e. how many standard deviations above the mean is each point in the correlation output. psr = ${p - \mu }\over\sigma $ Typically you compute the mean and sigma in a window around each point excluding the region nearest to each point.


2

You should use elements which are a power of 2, for easy and faster computation. I'll say, start with 8x8, so you can only scale up. And if you have to look only at some portions of this image, then you can crop the original one.


2

I have used Laplacian of a gaussian filtered image with sigma value of 3. I have thresholded the LoG image with a high-pass filter. I have used gray closing morphologic operator. I have filtered the blobs according to their area. There are several more ways to do it depending on the images, conditions(sea), illumination, ships etc. For this image, non-color ...


2

That's hard. I'm not even sure I can do this myself before I actually try. It is definitely not something that can be described in a DSP.SE answer. About canny edge even if it is precise you will just get an image like a line drawing as an output. The point is what's next. There are many things to try the are many theory about pattern matching from the edge ...


2

A long time ago I have come across a very good advice: research should be problem-oriented, not approach oriented. That means find a problem you want to solve, and then look for appropriate methods. Not the other way around. So, I would recommend starting with a specific problem, such as a real-world application. For example, maybe you want to build a ...


Only top voted, non community-wiki answers of a minimum length are eligible