I was also reminded of that cat experiment where a kitten was raised in a room full of vertical stripes, and later on had difficulty seeing where tabletops ended because the cat had difficulty seeing horizontal features. But it was really good at vertical things.

If I were to feed a brain still in the plastic stage images of nothing but black text on a white background, what sort of features would die off, and what sort of features would stay? More to the point, what sort of features are even considered?

I found this paper (Young, 2001, The Gaussian Derivative model for spatial-temporal vision: I. Cortical Model) which posited the following:

1. That the initial features were gaussians and derivatives of gaussians.

2. That the initial features could be stretched to provide feature detection at different scales.

3. That the initial features could be rotated to provide feature detection at different angles.

So I wrote a set of filters which look like this. I used scales of 2, 4, 8, and 16, which lead to the coverage area shown. Pixels inside the coverage area count, and outside they don't matter. In the following graph, the approximate range for the filter is circular around the center, with radius about 8 pixels. Also, pixels farther away from the center count for less.

The idea behind the filter is that you place it at all points on the image, and total the result of the filter. A black pixel counts as 1, and a white pixel counts as 0. Multiply each pixel by the value of the filter, determine what the maximum possible value of the filter would be (if all pixels in the coverage area were black), and if the value of the filter exceeds half that maximum, we have a "hit" where the filter registers a positive result.

Here are filters at other scales. The ranges are:

scale 2, radius 8

scale 4, radius 16

scale 8, radius 32

scale 16, radius 64

Filters can be stretched in x or y:

They can also have different angles:

Young found that changing the shape of the filter by taking its derivative in x (before changing the angle) matched the filters found in actual visual neurons. By taking the derivative, we also introduce negative regions, where pixels in that region count

*against*the value of the filter. Here are graphs for the first, second, third, and fourth derivative filters.

You can see that a gaussian filter of derivative N (0, 1, 2, 3, 4) has N+1 coverage areas.

Young also said that the 1st-degree gaussian corresponded to edge detectors, and the 2nd-degree gaussian corresponded to bar detectors (although it seems to me to be a negative bar detector). I'm also calling the 0-degree gaussian a "blob detector".

So I made up a set of filters. Each filter had a derivative number (0, 1, 2, 3, or 4), an x-scale and y-scale number (2, 4, 8, 16), and an angle (64 angles equally spaced around 360 degrees), for a total of 5 x 4 x 4 x 64 = 5120 filters. Then I took a single page of text, ran all the filters against it, and sorted the filters by their number of hits from most to least. The run took 16 hours to complete. What did I find?

The most commonly activated filter was the 0-derivative 2x2 blob detector. The next most common was the 0-derivative 2x4 blob detector at pretty much any angle, with some angles being slightly better than others -- but not significantly so.

Next was the 0-derivative 4x4 blob detector, followed by the 0-derivative 2x8 blob detectors, then the 4x8 detectors, then a few 2x16 detectors at various angles very near horizontal and vertical.

Next came some 1-derivative 4x2 detectors. These have positive and negative regions along the axis of the detector, and is twice as long in that axis. The angles were specifically from 129 to 157 degrees, and from 309 to 331 degrees.

And so on.

Some filters were never activated: Most of the 2nd, 3rd, and 4th derivative filters that were 2x8 or larger were never activated.

How many filters out of the 5120 were activated at least 5% of the time (taking the most common filter as 100%)? 2510 filters, the last of these being the 4th-derivative 8x8 blob.