Skip to content
View AlexanderHaritonov's full-sized avatar

Block or report AlexanderHaritonov

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
AlexanderHaritonov/README.md

πŸ‘‹ Alexander Haritonov

Algorithm & Software Engineer | Computer Vision & 3D Depth | Evaluation & Benchmarking


πŸ§ͺ Projects

⭐ Mask2PolyMin (released on PyPI)

Mask2PolyMin turns noisy segmentation masks into clean polygons with a minimal number of segments and sub-pixel corners.
Benchmarked against OpenCV's approxPolyDP: comparable IoU and Hausdorff distance, without corner-cutting bias.
pip install mask2polymin
If you find it useful, a star helps others discover it!

GitHub stars

OpenCV: faster convexHull via a measured sort dispatcher

cv::convexHull spent most of its time in std::sort (O(n log n)), even though the hull algorithm itself is linear. A mentee from Kamatech replaced it with a bucket sort; I extended that into a dispatcher that picks the fastest method for each input:

  • Counting sort when the coordinate range is small relative to the point count
  • Radix sort (stable, 8-bit digits) when there are enough points per pass
  • std::sort otherwise
Input Speedup vs. std::sort
Noisy closed contours, 16–50,000 points up to 6.4x
Dense random points, up to 50,000 up to 66x
Tiny contours (16–32 points) ~1x (no regression beyond noise)

Issue #28846
PR #28868 (mentee's bucket sort; fixes and improvements by me)
PR #30196 (my follow-up: dispatcher, radix sort, float support)
Both PRs are under review.

Depth evaluation: stereo vs. mono vs. LiDAR (KITTI)

How far can you trust camera-based depth? I compared stereo (OpenCV SGBM) and monocular depth (Depth Anything V2) against LiDAR ground truth on KITTI drives. Built during the 3D Ascension program by Think Autonomous.

  • bev_from_depth: bird's-eye occupancy maps from each source, scored by IoU per distance band. Stereo reaches 0.59 IoU at 0–20 m but drops to 0.23 at 40–70 m; mono stays below 0.25.
  • mono_vs_stereo_vs_lidar: per-frame RMSE and nearest distance per detected person or car, compared with LiDAR.

πŸš€ Highlights

  • πŸ“Š Expertise in computer vision, 3D/depth, computational geometry, combinatorics, graph and route planning
  • πŸ’‘ Worked on Excel Copilot at Microsoft (2024–25)
  • πŸ† Winner of RWTH Aachen Programming Competition for Students (sponsored by Sun Microsystems)

πŸ› οΈ Tech Stack

  • Languages: Python, C, C++, C#, TypeScript
  • Domains: Computer Vision, 3D/Stereo Depth, Computational Geometry, Graph Algorithms, Maps
  • Frameworks & Tools: OpenCV, NumPy, PyTorch, Depth Anything, YOLO, pytest, Docker, Linux, Git

πŸ“« Connect with Me

Popular repositories Loading

  1. Mask2PolyMin Mask2PolyMin Public

    turn noisy raster segmentation masks into clean polygons with a minimal number of segments

    Python 12 2

  2. bev_from_depth bev_from_depth Public

    Python 7 2

  3. mono_vs_stereo_vs_lidar mono_vs_stereo_vs_lidar Public

    Python 3

  4. AlexanderHaritonov AlexanderHaritonov Public

  5. opencv opencv Public

    Forked from TamiShaks-2/opencv

    Open Source Computer Vision Library

    C++