4.3. Gezichtsveld

Een camera ziet een kegel van de wereld voor zich; alles buiten die kegel valt langs de zijkant van de sensor weg. De hoekbreedte van die kegel is het gezichtsveld (FOV), en het wordt bepaald door twee getallen – de sensorgrootte en de brandpuntsafstand van de lens.

4.3.1. De FOV-formule

Een verticale lens met een sensor van breedte S erachter op afstand f. Twee stralen vertrekken vanaf de boven- en onderrand van de sensor, gaan door het midden van de lens, en lopen uiteen de scène in aan de andere kant, waarmee ze een kegel definiëren waarvan de volledige hoek met FOV wordt aangeduid.

Een sensor van breedte \(S\) op afstand \(f\) achter de lens definieert een kegel van inkomende stralen. De volledige hoek van die kegel is het gezichtsveld.

Een sensor van breedte \(S\) bevindt zich op afstand \(f\) achter de lens, loodrecht op de optische as. Het dunne-lensmodel zegt dat een straal door het midden van de lens onafgebogen verdergaat, dus traceer één zo’n straal vanaf elke rand van de sensor: elk gaat recht door het lensmidden en de scène in aan de andere kant. Samen begrenzen ze de lichtkegel die de sensor kan opvangen, en de hoek tussen hen bij de lens is het gezichtsveld.

De helft van die kegel is een rechthoekige driehoek. Eén rechthoekszijde is de optische as vanaf het lensmidden naar het midden van de sensor – lengte \(f\). De andere rechthoekszijde is de halve sensor vanaf het sensormidden tot aan één rand – lengte \(S / 2\). De schuine zijde is de straal zelf, lopend van het lensmidden naar de sensorrand.

De stelling van Pythagoras verbindt de drie zijlengten met elkaar, maar Pythagoras geeft geen hoeken, en de hoek bij de lenstop is wat we zoeken. Trigonometrie is de brug van zijverhoudingen naar hoeken. In elke rechthoekige driehoek is de tangens van een hoek gedefinieerd als de overstaande zijde gedeeld door de aanliggende zijde. Voor de halve-FOV-hoek is de overstaande zijde de halve sensor \(S / 2\) en de aanliggende zijde de optische-asbeen \(f\), dus

\[\tan(\text{half-FOV}) = \frac{S / 2}{f} = \frac{S}{2f}\]

De hoek zelf komt naar voren door de inverse van de tangens – de arctangens-functie – op beide zijden toe te passen:

\[\text{half-FOV} = \arctan \! \left( \frac{S}{2f} \right)\]

De kegel is symmetrisch rond de as, dus de volledige FOV is tweemaal de halve hoek:

\[\text{FOV} = 2 \cdot \arctan \! \left( \frac{S}{2f} \right)\]

Uit de formule volgen twee gevolgen:

  • De brandpuntsafstand van de lens bepaalt de hoek, niet de absolute grootte. Een “groothoeklens” is groothoek omdat de brandpuntsafstand kort is – hoe kleiner \(f\) is, des te groter de verhouding \(S / 2f\) wordt, en des te breder de kegel. Een lange brandpuntsafstand versmalt de kegel (een “telelens”).

  • De sensorgrootte is ook van belang. Dezelfde lens voor een kleinere sensor monteren snijdt de kegel bij – dezelfde lens heeft een smaller gezichtsveld op een kleinere sensor dan op een grotere. Daarom zijn brandpuntsafstanden van verschillende camera’s niet direct vergelijkbaar; de FOV hangt af van zowel \(f\) als \(S\).

4.3.2. Drie lenskeuzes

Neem een sensor van 4,8 mm × 3,6 mm (een gangbaar klein formaat dat ongeveer overeenkomt met wat OpenMV Cam-sensoren leveren) en drie lenskeuzes.

brandpuntsafstand

diagonale FOV

horizontale FOV

verticale FOV

beschrijving

2,8 mm

~94°

~81°

~66°

groothoek

4 mm

~74°

~62°

~48°

normaal

8 mm

~41°

~33°

~25°

smal / tele

Alle drie de kolommen gaan door dezelfde formule. De diagonale FOV gebruikt \(S\) gelijk aan de sensordiagonaal \(\sqrt{W^2 + H^2}\) (6 mm voor deze sensor); de horizontale FOV gebruikt \(S = W = 4.8\) mm; de verticale FOV gebruikt \(S = H = 3.6\) mm. Het halveren van de brandpuntsafstand verdubbelt elke kegel bijna; verdubbeling halveert ze bijna.

Lensdatasheets publiceren gewoonlijk de diagonale FOV als het enkele kerngetal, omdat die de sensor van hoek tot hoek overspant. De horizontale en verticale FOV’s zijn directer nuttig bij het plannen van wat in het frame past, omdat het frame rechthoekig is en een rechthoekig werkgebied wordt begrensd langs de horizontaal en verticaal, niet langs de diagonaal.

4.3.3. Een brandpuntsafstand kiezen

De FOV die de toepassing nodig heeft, wordt bepaald door hoe groot een gebied de camera moet zien en hoe ver de camera verwijderd zal zijn. Als de camera 1 m boven een werkgebied van 0,6 m × 0,6 m zit, is de benodigde hoek-FOV om één rand te bedekken \(2 \cdot \arctan(0.3 / 1) \approx 33°\), en de 8 mm-lens hierboven komt daar dicht bij.

Breder gaan dan de toepassing nodig heeft maakt objecten kleiner in het frame, verspilt pixels aan de achtergrond en vergroot de lensvervorming. Smaller gaan laat delen van de scène langs de zijkant van de sensor wegvallen. De juiste lens is de langste brandpuntsafstand die het werkgebied nog dekt op de beoogde afstand van de camera.