- Updated the play notebook to reset execution counts and remove unnecessary output displays for clarity.
- Introduced a new `undistort_points` function in the camera module to handle point undistortion using OpenCV.
- Added a `keypoints_undistorted` property to the `Detection` class for lazy evaluation of undistorted keypoints.
- Improved documentation to clarify the usage of keypoints and their undistorted counterparts.
- Added JAX Just-In-Time (JIT) compilation to the `distortion` function for improved performance.
- Reorganized variable unpacking and calculations for better readability and efficiency.
- Enhanced comments to clarify the steps involved in the distortion process, including normalization and radial/tangential distortion calculations.
- Updated the return values to directly reflect pixel coordinates after distortion.
- Enhanced docstrings for `distortion` and `project` functions to clarify input expectations and output formats, emphasizing pixel coordinates.
- Improved variable naming for distortion calculations to enhance readability.
- Added checks for valid points in the `project` function, ensuring proper handling of distortion parameters.
- Introduced a new method `project_ideal` in the `Camera` class for projecting 3D points without distortion, improving usability.
- Updated play notebook to include new tracking and clustering functionalities.
- Introduced `distortion` and `project` functions for applying distortion to 2D points and projecting 3D points to 2D, respectively.
- Enhanced `CameraParams` and `Camera` classes with methods for distortion and projection, improving usability.
- Cleaned up execution counts in the notebook for better organization.
- Updated play notebook with additional imports and new functions for point triangulation and undistortion.
- Introduced `triangulate_one_point_from_multiple_views_linear` and `triangulate_points_from_multiple_views_linear` for batch triangulation of points.
- Added `triangle_from_cluster` function to facilitate triangulation from detection clusters.
- Enhanced `CameraParams` and `Detection` dataclasses with a projection matrix property for improved usability.
- Cleaned up imports and execution counts in the notebook for better organization.
- Added new TypedDict classes for camera parameters, including Resolution, Intrinsic, and Extrinsic.
- Updated dataset reading logic to accommodate new camera parameters structure.
- Introduced functions for reading datasets by port and visualizing whole body keypoints.
- Improved the affinity matrix calculation logic in the camera module.
- Updated dependencies in pyproject.toml to include Plotly and SciPy for enhanced functionality.
- Reorganized imports for better clarity and consistency.
- Renamed variables in distance calculation functions for improved readability.
- Enhanced `compute_affinity_epipolar_constraint_with_pairs` function with detailed docstring explaining its purpose and parameters.
- Updated function signature to accept both list and dictionary formats for detections, improving flexibility.
- Adjusted affinity calculation logic to ensure consistent naming conventions for parameters.
- Introduced dataclass structures for CameraParams and Camera to improve type safety and clarity.
- Added Detection dataclass to encapsulate detection data, including keypoints and timestamps.
- Implemented classify_by_camera function to organize detections by camera.
- Added utility functions for converting points to homogeneous coordinates and calculating distances to lines.
- Updated dependencies in pyproject.toml to include new libraries for enhanced functionality.
- Add beartype dependency to pyproject.toml and uv.lock
- Replace typeguard with beartype in type checking
- Create camera module with type-safe camera parameter definitions
- Migrate utility function to use beartype and JAX numpy
- Reformatted text for better clarity and structure
- Preserved original content and technical details
- Enhanced visual separation of key points
- Maintained consistent markdown formatting
- Improved LaTeX formatting for mathematical equations
- Added bold notation for vectors and matrices
- Corrected superscript and subscript formatting
- Enhanced readability of mathematical expressions in the paper
Implemented a utility function `calculate_perpendicular_distance` in the `app/utils/__init__.py` module. The function calculates the perpendicular distance between a point and a line using NumPy, with type hints and runtime type checking using jaxtyping and typeguard.
- Rename `_wrap` to `_cvx_opt_wrap` for consistency
- Update import paths in solver module
- Add type hints to `solution_mat_clusters` method
- Improve type annotations in `solve` method