Feature Detectors


The first row of pictures shows a border that crosses a small patch of a (simulated) camera image at various orientations.. If the mouse cursor hovers over an image, it will show a short animation. ( CSS ). Image sequences of moving edges like these are by far the most frequent. A rotating edge is rare, because there is only one center of rotation. All the peepholes surrounding it show edges moving at various speeds and orientations.
The second row shows the same images and animations, but resolution has been reduced to 4×4 pixels. The third row shows the result after a threshold operation.

30° 60° 90° 120°

The bi-level images of size 4×4 are small enough to serve as address inputs of a pattern engine. The index [i] that distinguishes the different functions hi is replaced by temporal variation itself. There is only one memory unit that takes a time-varying bitmap as input. The output is time-varying too. Majority and veto may be calculated by comparing adjacent output values and temporal integration. If the output symbol stays constant for some time, the integrated comparator output reaches a threshold ( majority) and activates the feedback path. Any change will reset the integrator, serving as a veto. The following lines illustrate a possible output sequence:
⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥
The input is a sequence of bit patterns, ( 30° animation above, row 3 ).
If the outputs stays undefined for an extended period, a new symbol is spontaneously created. It has no meaning as such, it is distinguishable from other symbols and identical to itself.
⊥ ⊥ ⊥ ⊥ ⊥ a a a a a a a a a ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥
The newly created symbol spreads to memory cells that are adjacent in the temporal sequence. ( Spreading the ‚a‘ to all memory cells is undesirable. It is easy to add a self-limiting mechanism. Maybe feedback occurs only during a part of the gamma cycle.)
Other edges will move through the receptive patch with different orientations.
If the difference is large enough, other symbols will form and spread.
If the difference is small, an already established symbol will spread.
⊥ ⊥ ⊥ ⊥ ⊥ a a a a a a a a a ⊥ ⊥ ⊥ b b b ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ ⊥
The small memory — address size is only 16 bit — will fill up rapidly until ⊥ becomes rare and frequent vetoes inhibit all further growth.
The result is a small circuit that is tuned to moving edges of varying orientation. It is a locally constant — both spatial and temporal — function into a small discrete space. This mechanism for the creation of orientation sensitive detection circuitry is much simpler than any of the proposed models of V1, for example those presented in Natural Image Coding in V1: How Much Use Is Orientation Selectivity?

In fact, there are many such pattern engines, all operating in parallel. Their output spaces, or a variety of different products that may be formed from them, are the input for the next layer of processing.
It should be noted that this layering may be very irregular. Raw input ( the raw 16-bit addresses from above ) may be mixed with output from a nearby pattern engine, up to a degree where the layering blurs beyond recognition. Still, majority, veto and feedback will reliably create a reliable pattern detector.

 Date Posted: 13 Aug 2009 @ 07 36 AM
Last Modified: 24 Okt 2010 @ 09 26 AM
Posted By: Hardy

Responses to this post » (None)


Post a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

\/ More Options ...
Change Theme...
  • Users » 3
  • Posts/Pages » 40
  • Comments » 3
Change Theme...
  • VoidVoid
  • LifeLife « Default
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight

On Digital Memory

    No Child Pages.