ftctechnh / ftc_app

FTC Android Studio project to create FTC Robot Controller app.
761 stars 3.16k forks source link

UVC camera API doesn't support ISO control #632

Closed Windwoes closed 4 years ago

Windwoes commented 6 years ago

As I've been working with the webcam API, I've noticed that while the SDK does support exposure and focus control, it leaves out the other very important control: ISO. Is there any chance this could be implemented in the next release? I was able to use guvcview on my computer to verify that the Logitech C920 does in fact support ISO control.

cc @rgatkinson

Windwoes commented 6 years ago

ISO is important because a higher ISO allows a faster shutter speed, which in low light can improve FPS at the expense of noise. To make the importance of having ISO control more apparent, here are some example screenshots from using guvcview to control the ISO. The first image is taken with ISO all the way down, and the second one is taken with the ISO all the way up. Have a look at the FPS in each of these images (it's in the window title bar):

screenshot_from_2018-11-10_09-24-12 screenshot_from_2018-11-10_09-26-27

I, for one, would gladly take some noise in the image if I can have my pipeline running at a solid 30FPS even in low-light conditions. Also, this affects Vuforia as well as custom pipelines. If a team is using Vuforia to navigate, lower FPS will negatively impact the responsiveness of the control loop.

Windwoes commented 6 years ago

@rgatkinson I'm not totally sure about this, but it seems that whatever ISO the camera was at before it was switched to manual mode is what it's stuck with. Which kinda makes sense, the camera is expecting the driver to control both the ISO and exposure in manual mode.