Skip to main content

A PyPI package for object detection using advanced vision models

Project description

Spatial Reasoning

A powerful Python package for object detection using advanced vision and reasoning models, including OpenAI's models and Google's Gemini.

Example Results Comparison of detection results across different models - showing the superior performance of the advanced reasoning model

Features

  • Multiple Detection Models:

    • Advanced Reasoning Model (OpenAI) - Reasoning model that leverages tools and other foundation models to perform object detection
    • Vanilla Reasoning Model - Directly using a reasoning model to perform object detection
    • Vision Model - GroundingDino + SAM
    • Gemini Model (Google) - Fine-tuned LMM for object detection
  • Tool-Use Reasoning: Our advanced model uses innovative grid-based reasoning for precise object detection

    Internal Workings How the advanced reasoning model works under the hood - using grid cells for precise localization

  • Simple API: One function for all your detection needs

  • CLI Support: Command-line interface for quick testing

Installation

pip install spatial-reasoning

Or install from source:

git clone https://github.com/QasimWani/spatial-reasoning.git
cd spatial_reasoning
pip install -e .

Optional: Flash Attention (for better performance)

For improved performance with transformer models, you can optionally install Flash Attention:

pip install flash-attn --no-build-isolation

Note: Flash Attention requires CUDA development tools and must be compiled for your specific PyTorch/CUDA version. The package will work without it, just with slightly reduced performance.

Setup

Create a .env file in your project root:

# .env
OPENAI_API_KEY=your-openai-api-key-here
GEMINI_API_KEY=your-google-gemini-api-key-here

Get your API keys:

Quick Start

Python API

from spatial_reasoning import detect

# Detect objects in an image
result = detect(
    image_path="https://ix-cdn.b2e5.com/images/27094/27094_3063d356a3a54cc3859537fd23c5ba9d_1539205710.jpeg",  # or image-path
    object_of_interest="farthest scooter in the image",
    task_type="advanced_reasoning_model"
)

# Access results
bboxes = result['bboxs']
visualized_image = result['visualized_image']
print(f"Found {len(bboxes)} objects")

# Save the result
visualized_image.save("output.jpg")

Command Line

# Basic usage
spatial-reasoning --image-path "image.jpg" --object-of-interest "person"  # "advanced_reasoning_model" used by default

# With specific model
spatial-reasoning --image-path "image.jpg" --object-of-interest "cat" --task-type "gemini"

# From URL with custom parameters
vision-evals \
  --image-path "https://example.com/image.jpg" \
  --object-of-interest "text in image" \
  --task-type "advanced_reasoning_model" \
  --task-kwargs '{"nms_threshold": 0.7}'

Available Models

  • advanced_reasoning_model (default) - Best accuracy, uses tool-use reasoning
  • vanilla_reasoning_model - Faster, standard detection
  • vision_model - Uses GroundingDino + (optional) SAM2 for segmentation
  • gemini - Google's Gemini model

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spatial_reasoning-0.1.6.tar.gz (38.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spatial_reasoning-0.1.6-py3-none-any.whl (47.2 kB view details)

Uploaded Python 3

File details

Details for the file spatial_reasoning-0.1.6.tar.gz.

File metadata

  • Download URL: spatial_reasoning-0.1.6.tar.gz
  • Upload date:
  • Size: 38.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for spatial_reasoning-0.1.6.tar.gz
Algorithm Hash digest
SHA256 498671da2511418eb1f8a3cc020aa63b0033247d0ce2553025cfa9ebe4aaef3c
MD5 a03a6bbea3b9119bffd34542b59cbf15
BLAKE2b-256 50bc4f4cd8de5c33fddb99178645857249af0d43993e1ca9c7c22cc083c586ac

See more details on using hashes here.

File details

Details for the file spatial_reasoning-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for spatial_reasoning-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 99d0f96722d5f5f6d61953ead04baf08fe42e8ed86d7c0baed59856dbd18f904
MD5 71bbd1876f874f6329f5fbe461db99b6
BLAKE2b-256 7ea021b30cd4657f99b942c66d3f910440016c64e9fd76184b6f4b5cdf5cacf4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page