Photoreceptor Cells, Horizontal Cells and Bipolar Cells

In the past two weeks, I’ve focused on enhancing retinal modeling with mechanisms complimentary to the photoreceptor “cell” functionality. These mechanisms help in refining stimulus, recognizing motion & contrast, and trigger neurotransmitters even before the stimulus reaches the brain. Please find more on that below -

Development Activity - https://github.com/akhil-reddy/beads/graphs/commit-activity
Building the photoreceptors (including opponent processing) - https://github.com/akhil-reddy/beads/blob/main/beads/core/cmu/sequencing/receive/vision.py
Building the horizontal and bipolar cells - https://github.com/akhil-reddy/beads/blob/main/beads/core/cmu/sequencing/combine/vision.py

Please note that some code (class templates, function comments, etc) is AI generated, so that I spend more of my productive time thinking and designing. However, I cross-verify each block of generated code with its corresponding design choice before moving ahead.


Algorithms / Development

Push implementation and transportation

Photoreceptor implementation v3 (includes opponent processing)

  1. Setup the two-dimensional retinal layout / manifold with proportions closely mirroring the human eye
  2. Setup the mechanisms and components for cones
    • High activation threshold (around 100 photon–equivalents) so that low-intensity noise (many false negatives) is ignored
    • They have a nearly one-to-one mapping onto bipolar cells i.e., Push implementation
    • They show distinct spectral sensitivity (using a narrow Govardovskii nomogram). Imagine a friend who considers red and crimson the same colour and someone with better color sensitivity. This difference is primarily due to the stimulus registration in cones
    • They SHOULD have faster activation and deactivation kinetics
    • Opponent channels are produced to emphasize contrast
  3. Setup the mechanisms for rods
  4. Collect the photoreceptor cell objects and store them in memory
Horizontal cell implementation v1

  1. For each photoreceptor, create a horizontal cell
  2. Link the horizontal cells laterally
    • The influence radius is controlled by neurotransmitters
  3. Inhibit center-surround signal
    • Calculate the average surround signal and subtract it from the center stimulus
Bipolar cell implementation v1

  1. ON bipolar cells amplify stimulus if it’s above a certain threshold
  2. OFF bipolar cells inhibit stimulus if it’s under a certain threshold

Next Steps

Push implementation and transportation

  1. Push cell implementation - Enhance horizontal and bipolar cells
  2. Push cell implementation - Amacrine cell implementation
  3. Transportation - Ganglion cell implementation
  4. Neurotransmitters - Fed by bipolar and amacrine cells, to act on contrasting and/or temporal stimulus. Additional neurotransmitters can be added later after ERU development
  5. Overlaying frames from a video onto the retina

Why do we need these mechanisms? Contrasting (R, G, B) values with the stimulus processed by the retina

  1. Consistency with biology - When the arbitrarily sized (R,G,B) values are converted to photoisomerizations per sec, the latter enables the construction of analog mechanisms that are consistent with the human retina
  2. Simultaneous processing of motion (rods + amacrine cells) and colour (cones + horizontal / bipolar cells) dynamics
  3. Temporal and spectral sensitivity dynamics (via Govardovskii diagram) are better captured in the retina
  4. Opponent processing (red–green and blue–yellow) further assists in the detection of sharp contrasts (edges and curves). These contrasts are more valuable to the human brain than consistent stimulus
  5. Unlike (R,G,B) values, the non linear dynamical nature of the retina (influenced by neurotransmitters) helps the brain in adapting to a variety of situations. For example, if the body is under threat, pupils dilate and horizontal cells are influenced by a larger radius of neighboring cells. This enhances the visual fidelity and sharpness that the brain desires, to take appropriate actions


Created Mar 16, 2025