Vision
Authors: Linas Vepstas + Adrian Borucki (two-author)
Repo: opencog/vision @ dbaf2fe (main, last commit 2025-06-10)
Status: [SCAFFOLDING-NOT-PIPELINE]. Minimal AtomSpace-OpenCV type-wrapper layer; demonstrates the wrapping pattern but is not an end-to-end perception pipeline. ~38 commits. Identified by the Perception/Neural-Symbolic cluster pilot Source 4 (2026-04-30).
What Vision Is
opencog/vision is a thin type-wrapper layer that exposes selected OpenCV image operations as AtomSpace atom types. It provides the smallest sufficient surface to call OpenCV from Atomese -- two support types and four operation Links -- plus end-to-end runner glue for the simplest use case (blur an image, write it to disk). It is NOT a perception pipeline: there is no controller, no learning loop, no temporal-sequence handling, no integration with downstream reasoners. The repo positions itself as an experimental scaffolding effort.
Wired Types (verified at dbaf2fe)
Six atom-types are wired into the build at opencog/atoms/vision/CMakeLists.txt:48-64:
| Type | Category | Role |
|---|---|---|
ImageNode | Support | Atomspace handle for an image (file-path or in-memory). |
ImageValue | Support | Carries the OpenCV cv::Mat through Atomese evaluation. |
ImageBlurLink | Operation | Gaussian blur / box blur. |
ImageWriteLink | Operation | Write image to disk. |
ImageFilter2DLink | Operation | 2D convolution with arbitrary kernel. |
ImageHalfSizeLink | Operation | Downsample by 2x. |
Stub Not Wired (1)
ImageRectangleLink -- IMAGE_RECTANGLE_LINK is declared at atom_types.script:13 and the implementation files ImageRectangleLink.cpp/.hpp exist in opencog/atoms/vision/, but the type is excluded from the CMake source/header lists at CMakeLists.txt:48-64. The class compiles in isolation but is not part of any built target. [STUB-NOT-WIRED] per the cluster-pilot 3-state classification.
Unimplemented "More Plans and Ideas"
README.md:45-69 lists planned but unimplemented future operations: thresholding, HaarWaveletLink, and additional filter/edge-detection types. None have source files; none have atom_types.script entries. [UNIMPLEMENTED].
End-to-End Demo
The single end-to-end demo is examples/blur_and_write.py:24-35: load an image into an ImageNode, apply ImageBlurLink, route through ImageWriteLink to save. This demo verifies the AtomSpace ↔ OpenCV bridge works at all -- it does not demonstrate any nontrivial perception pipeline.
(Note: the Perception cluster pilot resolved a phantom-file claim against this demo. Gemini's reviewer initially cited examples/python/vision_example.py -- that file does not exist; the actual demo is at examples/blur_and_write.py:24-35 as Codex correctly cited. See V4-3 in the cluster-pilot reconciliation for details.)
Stack Identity: AtomSpace-Scheme/Python
opencog/vision sits on the AtomSpace-Scheme/Python stack -- C++ atom-type implementations + Python demo glue. No .metta files; no hyperon-experimental bindings. It is part of the broader Vepstas Hyperon-era research portfolio (sensory + agents + motor + evidence + atomese-simd are sole-authored by Vepstas; vision is co-authored with Adrian Borucki, ~25 of 38 commits).
What It Is NOT
- NOT a perception pipeline. No camera capture loop, no temporal frame sequence, no downstream reasoner integration. Each operation is invoked imperatively per-call.
- NOT a perception controller. No attention/gaze model, no salience, no foveation. It is an Atomese view onto OpenCV operations.
- NOT a ECAN consumer. Pickaxe verification: zero
STI/LTI/AttentionValue/AttentionBanktoken references. No attention-allocation hooks. - NOT a 2013 DeSTIN-FISHGRAM revival. Pickaxe verification: zero
fishgram/sushigram/DeSTINtokens at HEAD or in git history. - NOT wired to opencog/sensory. Bidirectional cross-grep confirmed zero references between vision and sensory at the cluster-pilot snapshot.
Cluster-Narrative Position
opencog/vision is a thin scaffolding within the broader Hyperon-era perception/embodiment tradition (Tradition 8 candidate per Sensory's trilateral framing). It demonstrates the AtomSpace-OpenCV wrapping pattern but does not build out a complete vision system. The cluster-pilot 2013 DeSTIN-FISHGRAM-PLN architecture revival check returned [PARTIAL-FRAGMENTED-REVIVAL]: vision contributes a perception fragment that is not connected to any downstream miner or reasoner.
Quick Start
# Build (requires AtomSpace + cogutil + OpenCV)
cd vision && mkdir build && cd build && cmake .. && make && sudo make install
# Run the blur+write demo (Python; requires opencog Python bindings)
python examples/blur_and_write.py
Open Questions
- Does the scaffolding pattern generalize? The 6 wired types validate the AtomSpace-OpenCV wrapping pattern but cover only the simplest OpenCV operations. Whether the pattern scales to the broader OpenCV API (multi-frame, machine-learning pipelines, calibration) is not yet demonstrated.
- Why is
ImageRectangleLinkstubbed? The[STUB-NOT-WIRED]state suggests in-progress work; whether this is a deliberate hold or simply abandoned scaffolding is not documented in the repo. - Bridge to opencog/sensory? Vision and sensory both belong to the Vepstas portfolio but operate independently. Whether they should be unified -- ImageValue flowing through OllamaNode, or sensor inputs producing ImageValues -- is an open architectural question.
References
- Cluster-pilot extraction archive:
scripts/archive/perception_pilot/source4_hyperon_neural_perception/(Surface B reconciliation, R4.6). - Sister cards: Sensory (broader Hyperon-era perception bridge); Neural Pattern Mining (Tradition 7 candidate); Attention and Motivation (Vepstas role upgrade context).
- Editorial-terminology context: 2013 FISHGRAM paper.
Tags
Discussion