$ show kujason/avod
The AVOD repository implements the Aggregate View Object Detection network for 3D object detection from LiDAR and camera data, primarily targeting the KITTI benchmark. It provides a complete pipeline for training, evaluation, and inference, including data loading, model definition (AVOD and RPN variants), feature extraction from bird's-eye view and image modalities, anchor-based proposal generation, and post-processing. The system is structured as a modular Python package with protocol buffer-based configuration. Key architectural features include a multi-sensor fusion approach that combines BEV features from LiDAR data with RGB image features through fully connected layers, and a region proposal network for generating object proposals. The codebase demonstrates strong modularity in certain components such as box encoding/decoding utilities, anchor generators, and feature extractors, which could be reused in other 3D detection projects with minimal modification. However, the core model training and evaluation scripts are tightly coupled to the KITTI dataset format and TensorFlow 1.x specifics. The repository shows signs of technical drift due to its reliance on outdated dependencies (TensorFlow 1.3.0, Python 3.5) and deprecated APIs. While the last commit indicates recent activity, the deep learning framework used is no longer current, which may pose challenges for maintenance and extension. Despite this, the implementation includes well-crafted, reusable geometric utilities and modular design patterns that reflect solid engineering practices for a research codebase.
The LLM identified 5 files worth highlighting for reuse:
Provides conversion between 3D bounding box representations (corner, center, dimensions, rotation) and anchor formats. Self-contained with minimal dependencies (NumPy/TensorFlow ops), demonstrating clean handling of complex geometric transformations essential for 3D detection pipelines.
Implements a lightweight container for batches of bounding boxes with associated metadata. Encapsulates common operations like concatenation, slicing, and masking, offering a reusable abstraction that decouples box manipulation from specific model logic.
Contains optimized implementations of IoU calculation, non-maximum suppression, and box matching algorithms. Designed for batch processing and reuse across different detection stages, showcasing efficient vectorized operations without framework-specific entanglement.
Generates 3D anchor grids in bird's-eye view space with configurable strides, scales, and aspect ratios. Isolates anchor geometry logic from model architecture, allowing reuse in other anchor-based 3D detection systems with minimal adaptation.
Implements a VGG-style convolutional network for processing bird's-eye view feature maps. Features modular layer configuration, reusable weight loading, and clean separation from image processing paths, demonstrating adaptable backbone design for multi-sensor fusion.