Skip to main content

A package for discourse-level scene graph parsing and evaluation.

Project description

DualTaskSceneGraphParser Usage Guide

Installation

pip install discosg

Quick Start

Basic Import

from discosg import DualTaskSceneGraphParser

Initialize Model

# Create parser instance
model = DualTaskSceneGraphParser(
    model_path="sqlinn/DiscoSG-Refiner-Large-t5-only",  # Model path
    device="cuda",          # Device: "cuda" or "cpu"
    lemmatize=False,        # Whether to lemmatize text
    lowercase=True          # Whether to convert to lowercase
)

Prepare Input Data

1. Image Descriptions

descriptions = [
    "The image captures a bustling urban scene, likely in a European city...",
    "In the image, a man is seated at a desk, engrossed in his work on a computer..."
]

2. Scene Graphs to Fix (Optional)

graph_to_fix = {
    "description_text_1": "( subject , predicate , object ) , ( subject2 , predicate2 , object2 ) , ...",
    "description_text_2": "( subject , predicate , object ) , ( subject2 , predicate2 , object2 ) , ..."
}

Execute Parsing

outputs = model.parse(
    descriptions=descriptions,           # List of image descriptions
    graph_to_fix=graph_to_fix,          # Dictionary of scene graphs to fix (optional)
    batch_size=2,                       # Batch size for processing
    task="delete_before_insert"         # Task type
)

Complete Example

from discosg.parser.DualTaskSceneGraphParser import DualTaskSceneGraphParser

def main():
    # Initialize model
    model = DualTaskSceneGraphParser(
        model_path="sqlinn/DiscoSG-Refiner-Large-t5-only", 
        device="cuda", 
        lemmatize=False, 
        lowercase=True
    )
    
    # Prepare image descriptions
    descriptions = [
        "The image captures a bustling urban scene, likely in a European city. The setting appears to be a pedestrian-friendly square or plaza. There are numerous people of various ages and attire walking around, some carrying bags, suggesting shopping or a day out. A few individuals are seated, possibly enjoying a meal or resting. The square is adorned with a decorative fountain in the center, surrounded by potted plants. Overhead, there are power lines and cables, hinting at an urban environment. The architecture of the surrounding buildings suggests a historic or older part of the city.",
        "In the image, a man is seated at a desk, engrossed in his work on a computer. He's wearing a blue shirt and glasses, and his hand is raised to his forehead in a gesture that suggests deep thought or concentration. The desk, cluttered with various items, houses a computer monitor, keyboard, and mouse. The room around him is dimly lit, creating an atmosphere of focus and seriousness. In the background, a window can be seen, adding depth to the scene. The image captures a moment of intense concentration and productivity."
    ]
    
    # Prepare scene graphs to fix
    graph_to_fix = {
        descriptions[0]: "( city , is , bustling ) , ( city , is , european ) , ( setting , is , pedestrian-friendly ) , ( setting , is , square ) , ( people , carry , bags ) , ( people , is , walking ) , ( individuals , is , seated ) , ( fountain , in center of , square ) , ( fountain , is , decorative ) , ( plants , is , potted ) , ( plants , surround , fountain ) , ( cables , is , overhead ) , ( power lines , is , overhead ) , ( buildings , surround , city ) , ( city , is , historic ) , ( city , is , older )",
        descriptions[1]: "( man , sit at , desk ) , ( man , work on , computer ) , ( hand , lift to , forehead ) , ( man , have , hand ) , ( man , wear , glasses ) , ( shirt , is , blue ) , ( desk , house , monitor ) , ( desk , house , mouse ) , ( desk , is , cluttered ) , ( monitor , is , computer ) , ( man , in , room ) , ( room , is , dimly lit ) , ( window , in , background ) , ( image , capture , concentration ) , ( image , capture , productivity ) , ( productivity , is , intense )"
    }
    
    # Execute parsing
    outputs = model.parse(
        descriptions=descriptions,
        graph_to_fix=graph_to_fix,
        batch_size=2,
        task="delete_before_insert"
    )
    
    # View results
    print("Parsing results:")
    print(outputs)
    print("\nOutput keys:")
    print(outputs.keys())

if __name__ == "__main__":
    main()

Parameters

DualTaskSceneGraphParser Initialization Parameters

  • model_path (str): Path to the pre-trained model
  • device (str): Computing device, either "cuda" or "cpu"
  • lemmatize (bool): Whether to lemmatize the text
  • lowercase (bool): Whether to convert text to lowercase

parse Method Parameters

  • descriptions (List[str], required): List of image description texts
  • graph_to_fix (Dict[str, str], required): Scene graphs to fix, where keys are description texts and values are scene graph strings
  • batch_size (int): Batch size for processing
  • task (str): Task type, e.g., "insert_delete", "delete_before_insert", "insert", "delete"

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

discosg-0.0.3.tar.gz (37.5 kB view details)

Uploaded Source

Built Distribution

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

discosg-0.0.3-py3-none-any.whl (40.7 kB view details)

Uploaded Python 3

File details

Details for the file discosg-0.0.3.tar.gz.

File metadata

  • Download URL: discosg-0.0.3.tar.gz
  • Upload date:
  • Size: 37.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.0

File hashes

Hashes for discosg-0.0.3.tar.gz
Algorithm Hash digest
SHA256 c9e79e77cbbae8bb0d8ada56aed311859ac22f78a851251a176175ed02486e14
MD5 14d11d4d723f9ae2c83fe55bb8d2904c
BLAKE2b-256 8a267e9565c662ed6bfc137a0ad0c84777d2fb217a4daf4844f88dafbeaab5b8

See more details on using hashes here.

File details

Details for the file discosg-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: discosg-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 40.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.0

File hashes

Hashes for discosg-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 09829dc65ddc2d25aea0dce4457961581596c39909112313464f587074f7b484
MD5 cc225f3d2a1d5eca150840d43f4c71ee
BLAKE2b-256 ab8c331a6552306a011454f7ce6c6a56e66d1232ba2bb759a8742e10b8502538

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