Skip to main content

A package for making predictions using a pre-trained ONNX floorplan model

Project description

Smart Floorplan Predictor

A Python package for classifying images as EPCs, floorplans, property photos, or exterior shots using a pre-trained ONNX model.

Prerequisites

  • Python 3.7 or higher

Installation

pip install smart-floorplan-predictor

Usage

import os
from smart_floorplan_predictor import FloorplanPredictor, FloorplanPredictorError

# --- Configuration for Private Repositories --- 
# If the model is hosted in a private GitHub repository, 
# you MUST provide a GitHub Personal Access Token (PAT).
# Set it as an environment variable:
# export GITHUB_TOKEN="your_github_pat_here"
# Ensure the token has the 'repo' scope to access private repository content.

github_token = os.environ.get("GITHUB_TOKEN")

try:
    # Initialize the predictor
    # If using a private repo, the token will be read from the environment variable
    # or you can pass it directly: FloorplanPredictor(github_token="your_token")
    predictor = FloorplanPredictor(github_token=github_token)

    # Make a prediction using the path to an image file
    image_path = "path/to/your/image.jpg" 
    predicted_class, confidence = predictor.predict_with_confidence(image_path)

    print(f"Predicted Class: {predicted_class}")
    print(f"Confidence: {confidence:.2%}")

    # Or just get the class name directly
    # predicted_class_only = predictor.predict(image_path)
    # print(f"Predicted Class (direct): {predicted_class_only}")

except FloorplanPredictorError as e:
    print(f"An error occurred: {e}")
    # Handle specific errors, e.g., ModelDownloadError

Model Downloading

  • The package automatically attempts to download the model.onnx file using the GitHub API if it's not found locally within the package directory (src/smart_floorplan_predictor/). This works even for files stored using Git LFS.
  • Private Repositories: Downloading from private GitHub repositories requires a GITHUB_TOKEN environment variable containing a valid Personal Access Token with the repo scope.

Common Errors & Troubleshooting

  • ModelDownloadError: ... 404 Not Found ...:
    • Check if the GITHUB_TOKEN environment variable is set correctly (if accessing a private repo).
    • Verify the token is valid, not expired, and has the repo scope enabled in your GitHub Developer settings.
    • Confirm the repository owner, name, and model file path (REPO_OWNER, REPO_NAME, MODEL_FILE_PATH constants in predictor.py) are correct.
  • ModelDownloadError: ... 403 Forbidden ...:
    • Usually indicates the provided GITHUB_TOKEN lacks the necessary permissions (repo scope) for a private repository.
  • FloorplanPredictorError: GITHUB_TOKEN is required...:
    • You are trying to download from the default private repository location without providing a token. Set the GITHUB_TOKEN environment variable.
  • FileNotFoundError or ImageLoadError:
    • Ensure the image path passed to predict or predict_with_confidence is correct and the file exists.
  • ONNX Runtime Issues:
    • Ensure onnxruntime is installed correctly for your OS and architecture.

Running Tests (Development)

  1. Clone the repository.
  2. Install development dependencies: pip install -r requirements.txt (if available) or pip install pytest requests tqdm Pillow numpy onnxruntime.
  3. Set the GITHUB_TOKEN environment variable if testing against the private repo.
  4. Place test images (like test_image.png) in the root directory.
  5. Run the test script: python test.py

Requirements

  • Python >= 3.7
  • requests
  • numpy
  • Pillow
  • onnxruntime
  • tqdm

License

MIT License

Author

Oliver Brown

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

smart_floorplan_predictor-1.0.0.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

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

smart_floorplan_predictor-1.0.0-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file smart_floorplan_predictor-1.0.0.tar.gz.

File metadata

File hashes

Hashes for smart_floorplan_predictor-1.0.0.tar.gz
Algorithm Hash digest
SHA256 249e5cf96378d2e851930dea8a94d9c86a966f7747bbdefe747aa8b40db54221
MD5 2347e7c5d8fb6672fc803afee6fe0a0a
BLAKE2b-256 95430e682404d740b4cf2b8e6d44bb10409dea02460c4c45d2b81c9d802e9c51

See more details on using hashes here.

File details

Details for the file smart_floorplan_predictor-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for smart_floorplan_predictor-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 22aa68a95a791038c8d129e5560c4a88431db7660498c88a3a92e584eef1a1cd
MD5 35154eec7343c15e4fd132163bc39f4d
BLAKE2b-256 0ba09caf27060303ece70dc6f893f640183aea9fd239e80258f22872d532de07

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