23

An interest point (key point, salient point) detector is an algorithm that chooses points from an image based on some criterion. Typically, an interest point is a local maximum of some function, such as a "cornerness" metric. A descriptor is a vector of values, which somehow describes the image patch around an interest point. It could be as simple as the ...


12

Some Features: Mean. Variance. Skewness. Kurtosis. Dominant 3 frequencies in the DFT. Energy of the 3 dominant frequencies. Max Value. Min Value. Median. Total Variation. Usually I'd compute them in running windows. Another great information is the Histogram of the Derivative. Or just all the above of the Derivative.


10

I think it is kind'a similar to soft and hard thresholding using in wavelet de-noising. Have you come across this topic? pywt has already an in-built function for this purpose. Please take a closer look at this code and try to play with it: import pywt import matplotlib.pyplot as plt import numpy as np ts = [2, 56, 3, 22, 3, 4, 56, 7, 8, 9, 44, 23, 1, 4, 6,...


9

I would rather look into KAZE / AKAZE, which perform equally good with significant speed-up. The deformation cases are also tolerated. OpenCV has recently obtained an implementation through GSoC 2014. You can find it here. Its OpenCV tutorial is also present here.


8

Here is what I did for a client (What you are asking is the same). Assuming that you have access to certain type of a pattern on the image (or the center of the hole), you could always detect the template to obtain the location of a possible unwarp: Note that in the transformed image, two region of interests are defined and the region within which we would ...


7

The 1D gabor filter has the following form in the frequency domain: $$G_{b(\sigma,\omega_0)}(\omega) = \text{exp}\left(-\frac{\sigma^2}{2}(\omega - \omega_0)^2\right)$$ The 1D log-gabor filter is: $$G_{l(\sigma,\omega_0)}(\omega) = \text{exp}\left(-\frac{\ln^2(\omega/\omega_0)}{2\ln^2(\sigma)}\right)$$ Log-gabor filters are used because they have 0 DC ...


5

In the robot navigation problem, the localization problem refers to the real time estimation of its position and orientation under various backgrounds. This is usually achieved by some natural landmark selection (laser points, camera views, etc.), and the features in the image (corners, tiny lines with different orientations, etc.). So the localizability ...


5

There are two different concepts: If you think as your signal as a single random variable $X$ that is emitting values, then what you want is to calculate the Entropy of the random variable http://en.wikipedia.org/wiki/Entropy_estimation If you are considering the entire random signal or stochastic process, then you have to estimate the autocorrelation ...


5

In addition to the features mentioned so far I would like to mention measures of complexity such as: Shannon Entropy LZ Complexity Fractal Dimension There are also Fourier Descriptors (as hinted by Drazick already) and their equivalent in Wavelet Analysis and of course simple histogram bins which would return how frequently each gear is engaged en route. ...


5

Unless mentioned otherwise withing the context the classic interpretation of Second Derivative Gaussian Filter is indeed (a) in your question: $$ L \left( x, y, \theta \right) = \cos \left( \theta \right) {g}_{xx} \left( x, y \right) + \sin \left( \theta \right) {g}_{yy} \left( x, y \right) $$


4

The generalisation of the concept of an analytic signal is not straight forward. I'm quite certain however that looking for such a generalisation with quarternions (or even octonions) will not turn out fruitful. Those generalise complex numbers primarily algebraically, attempting to preserve as much of the field structure as possible, and not so much as a ...


4

I'm not into details of this specific case but I can see some logic. A convolution layer can be reformulated as a Matrix Multiplication: $$ y = W x $$ Let's say we trained on Data Set $ {x}^{1} $ which is big and general. Namely we expect the trained weights $ {W}^{1} $ to be good enough for almost any other data set. Let's assume we have another data ...


3

As Conrad pointed out, a correlator is probably your best bet. The correlation of a signal with itself (also known as its self-similarity) is larger than its correlation with any other signal (except for a constant factor related to the signals' energy). In your case, you would implement two correlators, one for Signal 1 and one for Signal 2. Then, you'd ...


3

Hello I will be brief and I hope you understand, due to the shape of your signal I think it is best treated with wavelet transform base HAAR, the reason for using this transform is that it will give a representation in time and frequency where you can get the relevant information of the signal, now an important parameter is that you use the base HAAR (there ...


3

I don't know if you are familiar with statistical signal processing and therefore will write my answer assuming that you are not. Everything I explain here is much better presented in any book about statistics. I would recommend Kay's book about detection theory. I first summarize your question by reformulating the 2 points you made, first in comprehensive ...


3

Haralick's primal topograhic sketch is the answer to that. Check-out the peak section of : Haralick R., et al. - The Topographic Primal Sketch If you also look at the notation and Hessian parts, you will grasp how to implement peak finding (local-max) as a convolution operator. Regarding your comments below: Of course you get multiple peaks, but ...


3

For a quantized or digital signal, you can get a upper bound on an estimate of information complexity or randomness by attempting to compress the data and/or the data's spectrum using a large variety of compression algorithms.


2

The original question was well posed, while the edit made it wrong. Let's clarify things first: the term scale normalized derivative was introduced (to my knowledge) in Mikolajczyk, K. and Schmid, C. 2001. Indexing based on scale invariant interest points. In Proceedings of the 8th International Conference on Computer Vision, Vancouver, Canada, pp. ...


2

Make use of perceptual hashes. It is very fast to compute and is very lightweight, both in terms of memory and cpu consumption. They are represented by simple long integers and can be indexed using many types of data structures such as VP Trees: http://www.phash.org/ If that doesn't work, you can extract SURF features, quantize them into visual words using ...


2

Log-gabor are filters defined similarly as gabor filters in the sense that their envelope consist in a Gaussian in Fourier space. This is advantageous because this makes them optimal with respect to the compromise between localization (in space) and detection (of the mean frequency). The difference is that log-gabor (as their name implies) are defined in ...


2

Regarding LAB, it is a good way if you are interested in the differences as humans perceive them. About texture, I would suggest taking a look at some proprietary texture descriptors: Gray level co-occurrence matrix. Response to wavelets


2

The mean and standard deviation are two measurements of a distribution. Others you could also use are higher order moments like 'skewness' (how skewed the distribution is) and 'kurtosis' (how 'peaky' the distribution is). However, what I would try is a histogram of the values for each of the channels. For example, if you used a histogram with 16 bins, you ...


2

I think $w$ is a factor that makes the ratio of $D_{xy}$ to $D_{yy}$ the same as $L_{xy}$ to $L_{yy}$. This is so the value of the determinant for the simplified kernel roughly matches that of the continuous version. You could write it that way. But if you leave it as $wD_{xy}$ then if used in other expressions you don't have to muck around with adding ...


2

I have referred to Stage I.D of this tutorial. Hope this helps. http://www.robots.ox.ac.uk/~vgg/practicals/instance-recognition/index.html#stage-id-improving-sift-matching-using-a-geometric-transformation When the features have scale and orientation assigned (e.g. SIFT features have these properties), you can compute similarity transform between each ...


2

When using a randomized pattern in BRIEF, this means that you computed random positions inside the patch once in an offline procedure, then used these random locations every time you computed the descriptors. This makes sense, as it means that when comparing descriptors you will actually compare the same locations, it's simply that the sampling pattern was ...


1

The structure tensor consists of first derivatives of the image. If the first derivative is high in one particular direction (one large eigenvalue of the structure tensor), then you have an edge. It the first derivative is high in two directions (two large eigenvalues), then you have a corner. The Hessian matrix consists of second derivatives. Think of the ...


1

Without being an expert in the image processing field there is something that comes to mind that maybe could point you in the right direction. Usually we express a feature as a number, to which we assign an estimator, which is a random variable, with some probability distribution (for which we normally care about mean value and variance). If we take the ...


1

Well, this is a known problem, so many works exists on that such as Hilbert Huang transform. However, I guess, if you feed these signals (and various shifted versions) directly into a neural network, you should be able to create such a classifier. I guess standard MLP would also work in novelty detection mode, but you would be better of with a deep network....


1

Without exactly seeing your code it is hard to know for certain, but I suspect this is because you are not tracking your maxima well through scale space. The position of the maxima will move in scale space. At the smallest scales you get the 4 small blobs around each circle. These are due to digitization and possibly noise/irregularities in the boundary ...


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