Collaboration with libcamera to create callibration data for phones' cameras' sensors
As part of improving the image quality of cameras on phones, there is a lot of work that needs to be done. One of the important bits is: Calibration / creating tuning files needs standardized raw test images
(from pmaports#3235).
To make that possible, we need to build a database of standardized captured images for each device and sensor. And store them long-term, as it's possible that software analysis might need to be re-run on them depending on how the software pipelines develop. This would also make it possible to share the images with other camera projects like megapixels or libobscura. One of limitations of building such a database, however, is access to hardware. Both the specialized hardware needed to do the calibration, and the phones themselves. The libcamera people have the first part, our community has the second one. So I reached out to Kieran Bingham, one of the libcamera maintainers. We came to one possible collaboration agreement:
- postmarketOS creates a small web application (of course, FOSS!) that allows to upload images with associated metadata. The images uploaded are run through a series of scripts and provide an output in a form of a yaml file that is provided to the user. We will host the app and the images. We probably need some kind of math to see how expensive might that become in terms of data storage, etc.
- As a exchange, we can get phones shipped to libcamera maintainers, and they will create reference photos for the sensors of our devices, upload those, and commit calibration matrices in their codebase. We still own the devices and should get them back.
This probably a sensible tradeoff between initial investment (web app vs. specialized HW and libcamera tooling), and long-term maintenance (infra maintenance vs. keep taking pictures on new phones as more cameras become available). However, I'm not in the infra team, so this might want some discussion. At least we have somewhere from where to start discussing if this is something we want, and how to achieve it.
CC @rmader for cameras @lucaweiss @ollieparanoid on the infra side