# FoundationPose Tests This directory contains test scripts for the FoundationPose HuggingFace API. ## Test Data Reference images for test objects are stored in `reference/target_cube/`. ## Running Tests ### Test Against HuggingFace Space ```bash cd /path/to/foundationpose /path/to/training/.venv/bin/python tests/test_estimator.py ``` The test uses the Gradio client to connect to the deployed API. ## Test Coverage **test_estimator.py** tests: 1. API client initialization 2. Object initialization via API (reference-based) 3. Pose estimation on query images ## Current Status **CAD-Based Mode**: ✅ Fully Implemented - Requires a 3D mesh file (.obj, .stl, .ply) - Provides accurate 6D pose estimation - Use the CAD-Based initialization tab in the Gradio interface **Model-Free Mode**: ⚠️ Not Yet Implemented - Would require 3D reconstruction from reference images (photogrammetry) - For now, use photogrammetry tools (Meshroom, COLMAP) to create a mesh first - Then use CAD-Based mode with the generated mesh ## API Usage The deployed Space provides two Gradio API endpoints: ### CAD-Based Initialization ```python from gradio_client import Client, handle_file client = Client("https://gpue-foundationpose.hf.space") result = client.predict( object_id="my_object", mesh_file=handle_file("object.obj"), reference_files=[handle_file(f) for f in image_files], # Optional fx=500.0, fy=500.0, cx=320.0, cy=240.0, api_name="/gradio_initialize_cad" ) ``` ### Pose Estimation ```python result = client.predict( object_id="my_object", query_image=handle_file("query.jpg"), fx=500.0, fy=500.0, cx=320.0, cy=240.0, api_name="/gradio_estimate" ) ``` ## Known Issues 1. **Model-Free Mode**: Reference-only initialization is not yet supported. A 3D mesh is required. 2. **Test Results**: Current tests will return "No poses detected" because they don't provide a mesh file.