Encontrar la distancia focal a partir del tamaño de la imagen y el FOV

Me he topado con esta afirmación en una revista de Ingeniería. La declaración se menciona en el ejemplo del lado derecho.

Una imagen de 640x480 con un FOV horizontal de 47 grados da una distancia focal f = 740 píxeles.

Por favor, hágame saber los cálculos detrás de esto, ya que soy muy nuevo en la visión por computadora.

La distancia focal generalmente no se mide en píxeles.
¿Qué tipo de sensor de visión es? y esta oración no tiene mucho sentido, porque la unidad de distancia focal es una distancia. así que aquí faltan algunas informaciones
Su sensor MobilEye Vision. Por favor, eche un vistazo a este papel en el lado derecho. yumpu.com/es/document/view/49159361/…
@Horitsu, editó la pregunta con un enlace al diario. Puede usted ayudar.
la fórmula 5 parece dar la distancia donde ocurre un cierto error (el error de 1px), pero han mezclado la distancia focal y los píxeles. intenta escribir todas sus fórmulas con las unidades y obtendrás una mejor comprensión. también es posible que se hayan equivocado
Voto para cerrar esta pregunta como fuera de tema porque se trata de la visión artificial en un contexto que no es aplicable a la fotografía creativa.
De acuerdo. Publicó esta pregunta en la comunidad de desbordamiento de pila.
De hecho, no es fotografía creativa , sino fotografía fija. Y podría ser útil para ayudar a comprender lo que sucede en una cámara. así que lo respondí

Respuestas (4)

Es geometría básica: tienes un triángulo de ángulo recto, con la mitad del FOV como uno de los ángulos (a), y la mitad del tamaño de tu imagen como el lado opuesto ( A ). Para calcular la distancia focal F , use tan( a ) = A / F ,
lo que da F = A/tan(a).

El artículo especifica que el FOV horizontal es de 47°, por lo que tenemos que usar
A = 640/2 = 320, a = 47°/2 = 23,5°, lo que da F = 736 píxeles.

Como el tamaño de su sensor se da en píxeles (¡píxeles cuadrados asumidos!), su distancia focal también estará en píxeles. Para obtenerlo en una unidad más habitual (m), necesita saber el tamaño del píxel.

"triángulo rectangular"...?? Tal vez necesito volver a tomar la clase de geometría...
No 100% es el término correcto: me refiero a un triángulo donde uno de los ángulos es de 90 °
@remco Muchas gracias por la ayuda. Ayudó mucho. Una explicación con una imagen hubiera sido más útil para aclarar la confusión del 'triángulo rectangular',
@remco Eso es un triángulo rectángulo .
@mattdm gracias, ese tipo de cosas me recuerdan que el inglés es mi segundo idioma ;)

Usaré esa imagen para ilustrar por qué la distancia focal se puede medir en píxeles y qué significan esos números:

ingrese la descripción de la imagen aquí

Los triángulos (grande y pequeño) son semejantes, es decir, los ángulos son iguales. Entonces, el ángulo de visión será el mismo que el ángulo superior (en la lente) del triángulo más pequeño. A partir de eso, dado que sabe cuál es el tamaño del sensor y el ángulo de visión, puede calcular la distancia focal en píxeles, como lo calculó @remco para usted.

De hecho, las unidades del tamaño del sensor deben ser exactamente las mismas que las unidades de la distancia focal para que tenga sentido F=A/tan(a). Lo que puede obtener de eso es que si tiene píxeles más grandes (en cm), necesitará una distancia focal mayor (en cm) para el mismo campo de visión y número de píxeles.

Eso podría ser aplicable solo si se habla de manera muy relativa, pero cualquier número calculado a partir de píxeles generalmente no es aplicable a los tamaños de sensor en mm. Los píxeles pueden variar (por diseño de tamaño de píxel o sensor o por remuestreo), por lo que la misma distancia focal tendría varios números en píxeles, ninguno de los cuales refleja nada real. ¿Por qué usaríamos píxeles cuando podemos permanecer en el mundo real? Incluso si se trata de calcular el tamaño del objeto en la imagen a partir de píxeles, lo que hace que los dos triángulos sean similares es que el tamaño del sensor y la distancia focal están en mm, y la distancia de trabajo y el tamaño del campo o del objeto están en pies o metros.
Muchas gracias por la explicación pictórica. Dado que ha utilizado el término tamaño del sensor en lugar de tamaño de la imagen, ¿ambos son iguales? ¿No se pueden configurar diferentes tamaños de imagen desde un mismo sensor de imagen?
El tamaño del sensor @Code_Kid es de 300 píxeles o 500 mm puede ser cierto al mismo tiempo. Puede ampliar la imagen del sensor de 300 píxeles a 5000 píxeles, se llama interpolación
@WayneF Distancia focal en mm Fx(mm) = distancia focal fx(en píxeles)*(Ancho del sensor de imagen (en mm) / Ancho de la imagen (en píxeles)); Del mismo modo, Fy (en mm) = distancia focal (en píxeles) * (Altura del sensor de imagen (en mm)/Altura de la imagen (en píxeles)). Espero que esto tenga sentido y lo que remco mencionó en la última declaración de su respuesta.
Los factores son la distancia y el tamaño del campo (tanto en pies como en metros), y el tamaño del sensor y la distancia focal (ambos en mm). Esto hace que los ángulos opuestos iguales de los dos triángulos. Podemos calcular cualquiera si conocemos los otros tres. La distancia focal relativa en píxeles no se puede especificar como un dato, solo se puede calcular a partir de los otros tres, pero los píxeles diferirán con cada sensor o tamaño de píxel. ¿Qué posible uso podría tener? La distancia focal relativa en píxeles nunca se ve en el mundo real, solo se puede aplicar a una situación específica. La distancia focal en mm es el parámetro válido, es el mismo en cualquier situación.
@WayneF sí, seguro

Es lo que dijo Hermann, la distancia focal NO se mide en píxeles. Dudo mucho que la revista de ingeniería dijera que la distancia focal era píxeles.

Lo que necesita saber para el campo de visión es el tamaño del sensor de la cámara (o tamaño de la película) medido en mm . Debe calcular con las dimensiones del sensor en mm.

Hay una calculadora que hará esto en https://www.scantips.com/lights/fieldofview.html (Opción 6). La geometría se muestra en la parte inferior de esa página, sin embargo, debe usar Trig para ángulos.

En realidad, el artículo citado indicó la distancia focal en píxeles. Y un píxel es una unidad de longitud perfectamente aceptable en este contexto (no muy diferente de la pulgada, el enlace o Å). Y, por ejemplo, CSS/HTML también permite 'píxeles' como una unidad y puede mezclarlos libremente con otras unidades como pica o em, consulte la función 'calc()'.

El ángulo de visión se calcula por trigonometría.

Generalmente, la distancia focal será un valor conocido, al igual que las medidas de la imagen rectangular.

Para calcular el ángulo de visión: Encuentre ATAN (arco tan) de ½ de la medida dividida por la distancia focal, luego multiplíquela por 2.

Resuelva para la dimensión 640 ATAN (640 ÷ 740 X 0.5) X 2 = ATAN (0.4324) X 2 = 23.3852 X 2 = 46.77°