Python Script (OOP) for Video Color Checker Detection

Job ID: 37992725

Budget: $10 – $150 USD

I'm looking for a seasoned Python developer with specific experience in video analysis to create a script that can process a full mp4 video and identify the positions of a Color Checker card ( https://en.wikipedia.org/wiki/ColorChecker ). The idea is to scan each frame of the video, locate the Color Checker, and log its position.
The final detection shall share the first frame, the intermediate frames and the last frame of ONE color checker card.

Key Requirements:

- The script should be able to read a video in mp4, mkv, mov format.
- The library used for reading the video is not fixed. You can choose from libraries like (e.g. OpenCV, PyAV, or MoviePy, but the solution should be compatible with both Windows and Linux (and mac)
- take a look here: https://github.com/colour-science/colour-checker-detection
- The output should detail the (as a class, ColorCheckerCardPosition)
... - file path
... - file name
... - frame number
... - time code
... - rectangle coords (x1, y1, x2, y2) of the Color Checker card position
... - x,y, z angles of the Color Checker card position
and should be outputed in a JSON file.
The vidoes may have no (0) up to multiple (n) color checker cards, so the

Ideal Skillset:

- Proficiency in Python
- Experience with video processing libraries (like OpenCV, PyAV, or MoviePy)
- Experiences with OOP (classes and lists)
- Familiarity with JSON output format.


Milestones:

MS1:
detect a single color checker board on a video (from first to last frame)
extract coords positions of color checker board, and video position (frame+time)
we will share you testing videos along with the timecodes there the color cards are to be expected per video
2 modes required (demo mode with showing the video and the detected area, and performance mode, which may skip that step)

MS2
detect multiple color checker board on mulitple videos. Each video can have 0..n color cards

MS3
extract angles of rotation of the checker board

MS4:
extract sharpnes / blurry factor of color card too to get the best frame(s) of the color card(s)

Budget?
will not be disclosed, place your best bid to get considered

Payment?
- you estimate in a WBS (optimistic, expected, pessimistic, where optimistic < expected < pessimistic) after getting the task
- we discuss about clearances and effort
- we mutually agree to effort
- we assign you the task after mutually agreed
- you implement, test and deliver
- you provide also unit /integration tests to ensure code is always working
- you document each required step to make interaction of systems to work
- we test on our premise (you maybe help to fix issues)
- we pay
(basically the rules of freelancer)

Closed book vs open book?
We work only on open book.
Closed book means you are unwilling to define a WBS for the work and you add only a price tag to the task.
We are sorry we will not hire you in such a case!

Deliveries?
- in our on premise git (access will be granted to you)
- full sources (NO! Jupyter Notebook)
- multiple samples of videos will be shared via URL to download
- bash to build & run your code
- libs, need prior confirm and we prefer to use mostly latest stable versions
- your code is working on our end too
- your code passes our CI build (with provided maven pom.xml can be checked)
- you may require to help us here on setup
- we require, depending on availability and on complexity 2-4 weeks test time per milestone. Usually clearly less