Skip to content
View abhishek-gola's full-sized avatar

Organizations

@opencv

Block or report abhishek-gola

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
abhishek-gola/README.md

Abhishek Gola

Senior Computer Vision Engineer · OpenCV Maintainer

I build 3D perception systems and make inference engines faster. My work spans SLAM, reconstruction, camera–IMU calibration, ONNX operator coverage, and CPU/CUDA optimization.

Selected impact

  • OpenCV: Maintainer working on the DNN engine, graph architecture, ONNX coverage, and CPU/CUDA performance.
  • 3D perception: Built a multi-room reconstruction and localization system with under 1° rotation error and 1.5 cm position error across a full home.
  • Inference: Improved ResNet50 from 14 ms to 7.6 ms, BERT from 26.3 ms to 9.15 ms, and CRNN LSTM from 17.5 ms to 2.8 ms.
  • ONNX: Helped raise OpenCV's conformance pass rate from 37% to 87%.
  • Calibration: Created calibsense, which translates calibration uncertainty into task-space error in millimetres.

Across both areas, I work the same way: measure the result, publish it, and state clearly when the evidence does not support a claim.

So far that's 137 merged pull requests across the OpenCV organisation and 258 more reviewed.


3D perception

Reconstruction, localization and sensor calibration

Indoor reconstruction and localization. I architected a room-by-room system that registers independently reconstructed sub-maps into one metric world frame by solving inter-room SE(3) extrinsics. ArUco ground truth and multi-view fusion keep drift measurable at every merge step.

Visual-inertial tracking. I fuse monocular video with IMU streams for scale-consistent, gravity-aligned tracking, including camera-to-IMU extrinsics and time synchronization. I also use VGGT and Pi-Long in low-texture scenes where feature-based tracking fails.

Sensor and calibration feasibility. Before implementation, I evaluate whether a proposed camera and IMU configuration can meet the required accuracy, then validate its calibration against reprojection error and fiducial ground truth.

Video to simulation. I turn road footage into metric, navigable simulations using recovered camera geometry, 3D Gaussian splats, collision meshes, physics, and generated assets.

Hands-on stack: ORB-SLAM3, COLMAP, MASt3R, VGGT, Pi-Long, LightGlue, Open3D, ElasticFusion, ACE Zero, Depth Pro, and Kalibr—built, modified, and evaluated on EuRoC and proprietary captures.

calibsense

Source · PyPI · Documentation

A reprojection error does not tell you whether a system can measure a part to half a millimetre. calibsense retains the full factored parameter covariance, identifies unconstrained directions through null-space analysis, and propagates uncertainty into task space. A 100 mm feature at 800 mm, for example, may read 0.199 mm expected error and ±0.485 mm at 95% confidence. When the evidence is insufficient, it reports that no defensible forecast can be made.

It supports hand-eye calibration, ChArUco, checkerboard and circle-grid input, and JSON, PDF, and self-contained HTML reports.

OpenCV 3D work

  • Added the DISK learned feature extractor, including regression tests and test data.
  • Review and merge work across point clouds, SLAM, visual odometry, loop closure, bundle adjustment, surface reconstruction, and 3D visualization.
  • GSoC 2026 mentor for Modular SLAM, a lightweight 3D viewer, and a learned feature extraction and LightGlue matching pipeline.

Inference engine and performance

Architecture

  • #29286: Split graph nodes from executors, added per-operator backend dispatch, and brought CUDA into the new engine with on-device residency. ResNet50 runs end to end at 1.17 ms FP16.
  • #29341: Removed the legacy DNN engine and made the new graph engine the default.
  • #30081: Added a unified N-dimensional data-movement engine in core.
  • Also added custom-layer support and ONNX Runtime as an optional execution engine.

Performance

Work Result
Convolution block layout ResNet50: 14 → 7.6 ms
INT8 block layout ResNet50-QDQ: 11.5 → 6.6 ms
Attention fusion and thin GEMM BERT: 26.3 → 9.15 ms
FlashAttention graph fusion OWL-v2: 1078 ms, versus ONNX Runtime at 1411 ms
LSTM optimization CRNN: 17.5 → 2.8 ms
reserveKVCache() Qwen2.5-0.5B: 4.25 → 21.03 tok/s at 512 tokens

CPU results were measured on an i9-14900KS with threads pinned to P-cores. Each result is reproducible from its linked pull request.

ONNX coverage

OpenCV currently passes 87% of the 1792-test ONNX conformance suite (1552 of 1792),

up from 37% in September 2025, when I imported the complete suite and exposed the cases the earlier test set had skipped.

The work included control flow (If, Loop, Scan), attention, and low-bit numeric formats.


Writing and talks

I publish negative results as well as wins: failed optimizations, benchmark regressions, and cases where the available data cannot support a reliable claim.

📫 abhishekg5422@gmail.com

Pinned Loading

  1. calibsense/calibsense calibsense/calibsense Public

    Measurement uncertainty for camera calibration: covariance, diagnosis and task-space error, not just a reprojection number

    Python 1

  2. opencv/opencv opencv/opencv Public

    Open Source Computer Vision Library

    C++ 91.2k 57k

  3. opencv/COOL-Benchmark opencv/COOL-Benchmark Public

    Benchmark for Graviton-based AWS Cloud Optimized OpenCV Library (COOL)

    Python 2 2

  4. Lightglue_slam Lightglue_slam Public

    Python 2

  5. system-design-playbook system-design-playbook Public

    System design interview preparation for low-level design (LLD) and high-level design (HLD), with runnable dependency-free Java for every pattern, plus concurrency and timed machine-coding drills.

    Java 4