https://github.com/georgepearse/visionchain
Framework to support stitching together multiple models to create effective Computer Vision systems, as accurate or fast as you need them to be.
https://github.com/georgepearse/visionchain
active-learning computer-vision heuristics object-detection
Last synced: 10 months ago
JSON representation
Framework to support stitching together multiple models to create effective Computer Vision systems, as accurate or fast as you need them to be.
- Host: GitHub
- URL: https://github.com/georgepearse/visionchain
- Owner: GeorgePearse
- License: apache-2.0
- Created: 2023-06-11T20:44:22.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-06-18T20:26:40.000Z (10 months ago)
- Last Synced: 2025-06-19T04:06:12.339Z (10 months ago)
- Topics: active-learning, computer-vision, heuristics, object-detection
- Language: Python
- Homepage: https://georgepearse.github.io/VisionChain/
- Size: 49.9 MB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# VisionChain
Framework to support common preprocessing and postprocessing steps, along with computer vision heuristics built with opencv, and voting systems ontop of those heuristic-model combos.
Could add a hyperparameter optimizer for things like setting the confidence at which to intervene.
Constraining artificial stupidity and giving AI some hand rails.
To Do:
- [ ] Create some templates, e.g. cascade model
- [ ] Support VQA models on crops or similar
- [ ] Support NN Classifiers based on the embeddings of multiple models.
- [ ] Support Segmentation models
- [ ] Support more from https://github.com/IDEA-Research/Grounded-Segment-Anything/tree/main
- [ ] Integrate TaskMatrix a bit https://github.com/microsoft/TaskMatrix
```python
model = vc.ModelChain(
[
vc.ConditionalDetector(
model=yolov8,
),
vc.ConditionalDetector(
model=grounded_sam,
frame_level_condition = lambda predictions: any([score < 0.5 for score in predictions.scores]),
prediction_level_condition = lambda pred: 'cat' in pred.label,
),
vc.ConditionalClassifier(
model=nn_classifier,
prediction_level_condition = lambda pred: 'dog' in pred.label,
),
],
log_level = 'verbose',
)
```