Shooting Target Detection
Budget: $10 – $30 USD
I am looking for an experienced Computer Vision Engineer to build a robust Python script that automatically detects and maps the scoring rings on a B27 shooting target from standard smartphone photos.
"i want it in c++"
The End Goal:
Given a photo of a used B27 shooting target (taken at various angles and lighting conditions), the script must automatically correct the perspective, locate the target, and accurately identify/draw the scoring rings (X, 10, 9, 8, 7) so that bullet impacts can eventually be scored.
The Challenges (Why this isn't a basic OpenCV tutorial):
Bullet Holes: The paper is covered in bullet holes. Traditional edge detection (like finding the white rings using Canny/Hough) often fails because the bullet holes destroy the lines.
Perspective Distortion: Photos are taken by users holding their phones, so the paper is often skewed or angled. The algorithm must automatically find the paper boundaries and warp it flat.
Ring Shapes: The B27 rings are not perfect ellipses. They are superellipses (Lamé curves with power n=4). Standard cv2.fitEllipse will fail to match the corners.
What the Algorithm Needs to Do (Scope of Work):
Take an image path as input via CLI.
Step 1: Automatically detect the physical paper boundary and apply perspective correction (homography) to flatten the image.
Step 2: Locate the center of the target (e.g., by finding the human silhouette/shoulders/head, which are rarely destroyed by bullets).
Step 3: Accurately project or detect the scoring boundaries (superellipses) over the image, completely ignoring the noise from bullet holes.
Step 4: Output a new image with the rings perfectly highlighted/drawn
"i want it in c++"
The End Goal:
Given a photo of a used B27 shooting target (taken at various angles and lighting conditions), the script must automatically correct the perspective, locate the target, and accurately identify/draw the scoring rings (X, 10, 9, 8, 7) so that bullet impacts can eventually be scored.
The Challenges (Why this isn't a basic OpenCV tutorial):
Bullet Holes: The paper is covered in bullet holes. Traditional edge detection (like finding the white rings using Canny/Hough) often fails because the bullet holes destroy the lines.
Perspective Distortion: Photos are taken by users holding their phones, so the paper is often skewed or angled. The algorithm must automatically find the paper boundaries and warp it flat.
Ring Shapes: The B27 rings are not perfect ellipses. They are superellipses (Lamé curves with power n=4). Standard cv2.fitEllipse will fail to match the corners.
What the Algorithm Needs to Do (Scope of Work):
Take an image path as input via CLI.
Step 1: Automatically detect the physical paper boundary and apply perspective correction (homography) to flatten the image.
Step 2: Locate the center of the target (e.g., by finding the human silhouette/shoulders/head, which are rarely destroyed by bullets).
Step 3: Accurately project or detect the scoring boundaries (superellipses) over the image, completely ignoring the noise from bullet holes.
Step 4: Output a new image with the rings perfectly highlighted/drawn