top | item 41230027

(no title)

dwrodri | 1 year ago

> Some laptops solve but I don't think their methods apply here as the top of my monitor ends up being quite a bit higher than what would look "good" for simple eye correction.

I appreciate the pragmatism of buying another thing to solve the problem but I am hoping to solve this with stuff I already own.

I’d be lying if the nerd cred of overengineering the solution wasn’t attractive as well.

discuss

order

jvanderbot|1 year ago

If you want overengineered and some street cred, instead of chaging the image to make it seem like you're looking in a new place, how about creating a virtual camera exactly where you want to look, from a 3D reconstruction??

Here's how I'd have done it in grad school a million years ago (my advisor was the computer vision main teacher at my uni)

If you have two webcams, you can put them on either side of your monitor at eye level (or half way up the monitor), do stereo reconstruction in real time (using e.g., opencv), create an artificial viewpoint between the two cameras and re-project the construction to the point that is the average of the two camera positions to create a new image. Then, feed that image to a virtual camera device. The zoom call connects to the virtual camera device. (on linux this might be as simple as setting up a /dev/ node)

It's much easier to reconstruct a little left / right of a face when you have both left and right images, than it is to reconstruct higher / lower when you have only above or below. This is because faces are not symmetric up/down.

This would work, it would be kinda janky, but it can be done realtime with modern hardware using cheap webcams, python, and some coding.

The hardest part is creating the virtual webcam device that the zoom call would connect to, but my guess is there's a pip for that.

Any imager would do, but quality would improve with:

* Synchronized capture - e.g., an edge triggered camera with, say, a rasp pi triggering capture

* Additional range information, say, from a kinnect or cell phone lidar

* A little delay to buffer frames so you can do time-series matching and interpolation