PhotonVision / photonvision

PhotonVision is the free, fast, and easy-to-use computer vision solution for the FIRST Robotics Competition.
https://photonvision.org
GNU General Public License v3.0
264 stars 180 forks source link

Add ability to lower filesize and import mrcal cli settings #1244

Open willtoth opened 6 months ago

willtoth commented 6 months ago

Photonvision only allows importing calibrations that are within a certain size limit. Currently that is 50000000 bytes, though even when getting close to that limit, the webUI struggles to import the files.

To mitigate this, a function was added to strip out observations from the json to keep the filesize within a specified limit.

A function was added to import mrcal command line intrinsic values from a camera model file into photonvision json. Note its for a workflow where you do the calibration in PV then re-run it in mrcal.

Marked as a draft for now, I threw this together quick to simplify shrinking file sizes and importing data, but perhaps the CLI or other aspects could be improved here. Figured I'd share either way.

mcm001 commented 6 months ago

Stripping observations could happen in the frontend as well, for files larger than X MB, if that's easier?

willtoth commented 6 months ago

That's not a bad idea. Just set to to the 50000000 bytes or so max that is imposed on import, so your exports are always importable.

On an aside, I know you really want to keep observation data with the calibration, but this also becomes clunky to check into version control. Would you be open to opting in to an option that strips all observations?

mcm001 commented 6 months ago

That was my grand vision, but if there's a workflow that doesn't require that, then I'm open to it. It for sure seems like storing images is problematic -- keeping the corner detections but stripping images might be a middle ground? I think that a design conversation about what teams actually need is in order post champs