Subscribe RSS

Posts Tagged ‘diary’

A new open access journal : IPSJ Transactions on Computer Vision and Applications

January 4th, 2010 by fmn | No Comments | Filed in Research

This year begins with good news, as a new journal is announced :  IPSJ Transactions on Computer Vision and Applications.

The covered areas are fundamental and applied computer vision. So Classical. But the special feature of the journal is to be on line and open access. Thus every article is available and can be read, downloaded and printed free at no cost. If the point for the reader is obvious, for the editors the objective is to obtain high exposure. I wish them great success (this is why i make some advertising).

In the first issue, i have noted and placed in my lecture list the following articles:

  • Content-based Image Retrieval by Indexing Random Subwindows with Randomized Trees (Raphaël Marée, Pierre Geurts and Louis Wehenkel)
  • A Survey of Manifold Learning for Images (Robert Pless and Richard Souvenir)
  • Partial Similarity of Shapes Using a Statistical Significance Measure (Alexander M. Bronstein, Michael M. Bronstein, Yair Carmon and Ron Kimmel)
  • and Using Context to Recognize People in Consumer Images (Andrew C. Gallagher and Tsuhan Chen)

A quite good selection for this first issue. Nice !

FMN.

Tags: , ,

Une perception grossière est suffisante pour attribuer une catégorie générale

October 15th, 2009 by fmn | 6 Comments | Filed in Research

Translate original post with Google Translate

Je m’étais rendu compte que seule la perception grossière et erronée place tout dans l’objet, quand tout est dans l’esprit – Marcel Proust.

Lorsque nous percevons les objets qui nous entourent, nous attribuons des catégories. Les psychologues cognitivistes étudient depuis longtemps les processus activés lors de cette catégorisation. Ainsi trois niveaux sont distingués :

  • Le niveau de base (basic level) est le niveau le plus abstrait où les objets considérés partagent encore un grand nombre de caractéristiques. Les catégories de ce niveau sont les catégories les plus facile à apprendre pour les enfants. Pour nommer les objets, les adultes utilisent plus spontanément des mots des ces catégories.
  • Les catégories fines spécifiques (subordinate level) correspondent à des catégories plus spécialisées.
  • Les catégories générales (superordinate level) contiennent des abstractions plus fortes.

Par exemple la catégorie “chien” pourrait se situer au niveau de base. Dans ce cas, “animal” serait une catégorie générale et “sharpeï” serait une catégorie fine spécifique. Les études montrent que le niveau des catégories peut varier avec les individus, selon leur expertise du domaine.

(more…)

Tags: , , , , ,

Digital images and arrays : the same thing ?

July 30th, 2009 by fmn | 2 Comments | Filed in Enseignement, Research

Take an image processing book (Morphological Image Analysis by example). The first pages are about defining important concepts. Thus an image is often defined as a mapping from D, a subspace of \mathbb{Z}^2, to a number (0 or 1 in the binary case). The subspace D is the definition domain of the image, defined in this case on a rectangular lattice. The pixel coordinates are thus integers (positives or negatives).

Let’s be practical make some code with a good library (ImageJ by example). Often, the documentation says an image is an bi-dimensional array. The pixel coordinates belongs to [(0, 0), (w-1, h-1)], where w and h are the image dimensions.

The main difference between these two definitions (mathematical and practical)  relies on the definition domain. In Mathematics, the pixel coordinates can be negatives. In practice (via the library), they can’t.  Let’s study the consequences by computing a convolution product in Octave (or Matlab). For simplicity, the product is computed in one dimension :

octave> a = [1 2 3 4 5]
octave> b = [1 0 -1]
octave> conv(a, b)
  ans = 1 2 2 2 24 -5
octave> conv(b, a)
  ans = 1 2 2 2 24 -5

The commutativity is respected, since conv(a, b) = conv(b, a), this is a good thing.  But there is some troubles. What is exactly defined with a=[1 0 –1]? It a (very bad) derivative filter that can be used to detect edges.  But what is the origin of the signal? Is it on the zero ? On the -1 ? We are not sure as for Octave/Matlab it is an array. It is yet a capital information. If the origin is on the zero, there won’t be any offset between an edge and it’s detection. By example, if an edge is at x, the filter response is maximal at x. But if the origin on the -1 (or the 1), the filter response is maxima at x+1 (or x-1). It is not the same filter.

There is generally an usage convention in image processing library : the origin of the filter is on the center of the coefficients.  But this is only a convention. This information is nowhere, unless in the documentation of the library functions.  Practically, it is necessary to manipulate signals and images with offsets. This why the Matlab designers (by example) says in the  conv documention:

C = conv(…,’shape’) returns a subsection of the two-dimensional convolution, as specified by the shape parameter:

full
Returns the full two-dimensional convolution (default).

same
Returns the central part of the convolution of the same size as A.

valid
Returns only those parts of the convolution that are computed without the zero-padded edges. Using this option, C has size [ma-mb+1,na-nb+1] when length(c) is max(length(a)-max(0,length(b)-1),0)

These options are not necessary clear, especially the valid one.  As the manipulation of the offsets is made by the function and not the data structure, errors can appear. I remember, during my Ph.D., some hard bugs due to this imprecision. It is thus mandatory to add comments in the code to retain the offset information. If this information is lost : bug !

I wonder why image or signal processing libraries don’t provide a good data structure? A data structure that can handle negative coordinates. There would be a increase in time costs (a translation for each pixel access), but much errors would be avoided. This why generally high level programming languages are used : to not deal with low-level details.

FMN.

Tags: , , , , ,