CCTVPLANNER.IO / RESEARCH
Geometrie der CCTV-Kameraabdeckung
Wie eine geneigte, montierte Kamera den Boden abbildet — Frustum-Geometrie, Objektivprojektionen und der DORI-Distanzstandard, von Grund auf hergeleitet und mit demselben Code illustriert, der den Live-Designer antreibt.
1. Vom Frustum zur Bodenabdeckung
Eine Lochkamera (Pinhole) definiert ein Sichtfrustum: eine vierseitige Pyramide, die vom optischen Zentrum der Kamera bis zu den Grenzen ihrer Bildebene reicht. Jedes Pixel ist ein Strahl vom optischen Zentrum durch den entsprechenden Punkt auf der Bildebene. Um die Bodenfläche zu bestimmen, die eine Kamera abdeckt, schneiden wir jeden Strahl mit der Bodenebene und behalten die Punkte, die innerhalb der Reichweite der Kamera liegen.
Für eine Kamera, die in der Höhe h montiert ist, um den Winkel α unter die Horizontale geneigt, mit einem vertikalen Sichtfeld vfov, zeichnen die vier Eckstrahlen des Frustums die äußere Hülle der Bodenabdeckung. In typischen Montagekonfigurationen (wenn α + vfov/2 < 90°) ist die Form ein abgeschnittenes Trapez mit gekrümmten Ecken — kein Dreieck und kein vom Kameramontagepunkt ausgehender Sektor. Wenn α + vfov/2 sich 90° nähert (sehr steile deckenmontierte Dome-Kameras), beginnt die untere Bildkante den Boden direkt am Fuß der Kamera zu treffen, und das Trapez degeneriert in Richtung eines Sektors.
Draufsicht der Bodenabdeckung für eine Kamera mit h = 4 m, tilt = 30°, hfov = 106°. Die untere Bildkante trifft den Boden in geringer Entfernung vor der Kamera; die Seitenkanten fächern sich auf; die ferne Kante wird durch die effektive Kamerareichweite begrenzt.
2. Schnittpunkt von unterer und oberer Kante
Der Strahl der unteren Kante (sV = −1 in Bildebenen-Koordinaten) trifft den Boden bei:
d_near = h / tan(α + vfov/2)
Der Strahl der oberen Kante (sV = +1) trifft bei:
d_far = h / tan(α − vfov/2) wenn α > vfov/2 (vollständig unter Horizont)
unbegrenzt wenn α ≤ vfov/2 (obere Kante über Horizont
— auf renderRange begrenzt)Seitenansicht, h = 4 m, tilt = 15°, vfov = 50°. Die zwei blauen Linien sind die Strahlen der unteren und oberen Frustum-Kante; der dicke blaue Streifen am Boden markiert den Bereich, den die Kamera am Boden abbildet (von d_near bis renderRange). Der rote Keil unter dem Mast ist die geometrische Region, die das Objektiv nicht auflösen kann.
Für die Seitenkanten (sH = ±1) gilt dieselbe Konstruktion in der horizontalen Ebene: jeder seitliche Strahl überstreicht den HFOV der Kamera in jeder Höhe der Bildebene. Bei rektilinearen Objektiven (das vorherrschende CCTV-Optiksystem) projizieren diese als divergierende gerade Linien auf den Boden und erzeugen die schrägen Seiten des Trapezes. Bei Fischaugen-Objektiven ist dieselbe Abbildung gekrümmt und die Bodenabdeckung wird zu einer gekrümmten Scheibe.
3. Der geometrische tote Winkel
Für jede über dem Boden montierte Kamera, die um weniger als 90° − vfov/2 geneigt ist, gibt es einen Bereich direkt unter der Montierung, den kein Strahl des Frustums erreichen kann. Die untere Kante des Bildes zeigt mit α + vfov/2 unter den Horizont; alles näher als d_near liegt vollständig außerhalb des Kamerabilds.
Bei konstantem Neigungswinkel und FOV skaliert der tote Winkel linear mit der Montagehöhe — die Formel reduziert sich auf d_near = h × cot(α + vfov/2), wobei der Kotangens-Term durch das Objektiv festgelegt ist. Eine um 15° geneigte Kamera mit 50° vertikalem FOV hat einen toten Winkel von 4,8 m bei 4 m Montagehöhe und 23,8 m bei 20 m — ein 5×-Verhältnis, das dem Höhenverhältnis entspricht. Das Verhältnis von toter Fläche zu Abdeckungsfläche ist der dominante Constraint bei der Platzierung von Kameras auf hohen Masten.
Dasselbe Objektiv, dieselbe Neigung von 15°, nur höher montiert (h = 20 m): der tote Winkel wächst proportional zur Höhe, unabhängig von Brennweite oder Sensorgröße.
4. DORI-Reichweiten (EN 62676-4)
Der DORI-Standard (Detektieren / Beobachten / Erkennen / Identifizieren) definiert Ziel-Pixeldichten bei spezifischen Reichweiten von der Kamera. Gemäß EN 62676-4 sind diese Reichweiten horizontale Abstände am Boden zwischen Kamera und Ziel — keine Schrägdistanzen entlang der optischen Achse. Die Datenblätter der großen Hersteller (Axis, Hikvision, Dahua, Bosch) folgen dieser Konvention.
Auf einer 2D-Karte sind die vier DORI-Stufen einfach konzentrische Bögen mit Radien gleich ihrer horizontalen Abstände, beschnitten durch das Bodenabdeckungs-Polygon der Kamera. Wo die Abdeckung diesen Radius nicht erreicht, ist der entsprechende Teil des Bogens ausgeblendet — bei Kameras mit schmalem HFOV ist der Kegel zu schmal, um den vollen Kreis zu enthalten, sodass die seitlichen Enden jeder Stufe abgeschnitten werden, und bei Kameras mit kurzer Reichweite fallen die größeren Stufen ganz aus dem Kegel heraus.
DORI-Ringe als Bodenbögen innerhalb der Kameraabdeckung. h = 4 m, tilt = 20°, hfov = 90°, range = 70 m. Die gezeigten Stufenwerte (8 / 16 / 32 / 64 m) sind illustrativ für eine typische 1080p-Kamera bei ~90° HFOV; die tatsächlichen horizontalen Abstände hängen von Sensor und Brennweite ab. EN 62676-4 spezifiziert die Pixeldichten je Stufe (Identifizieren: 250 px/m, Erkennen: 125 px/m, Beobachten: 62 px/m, Detektieren: 25 px/m), woraus die kameraspezifischen horizontalen Reichweiten abgeleitet werden.
Schrägdistanz-Interpretation (wenn anwendbar). Wenn ein bestimmtes Datenblatt die Reichweite als Schrägdistanz vom Objektiv angibt — bei allgemeiner CCTV-Optik selten, gelegentlich bei Wärmebild- oder Teleobjektivspezifikationen — ist die entsprechende horizontale Reichweite am Boden √(d_slant² − h²). Eine in 6 m montierte Kamera mit 8 m Schrägdistanz für Identifizieren deckt einen 5,3 m horizontalen Radius ab (√(64 − 36)). Das Geometriemodul stellt beide Formen zur Verfügung; das Diagramm auf dieser Seite verwendet die standardmäßige horizontale Interpretation.
5. Objektivprojektionstypen
Verschiedene Objektivkonstruktionen bilden den Winkel von der optischen Achse unterschiedlich auf den Bildebenenradius ab. Die drei in CCTV verwendeten Projektionen sind:
| Projektion | r(θ) | Typischer Bereich |
|---|---|---|
| Rektilinear | f · tan θ | HFOV ≲ 120° (die meisten Festbrennweiten- und Varifokal-CCTV-Objektive) |
| Äquidistant | f · θ | HFOV ≳ 140° (Panorama / Fischauge) |
| Äquisolid | 2 f · sin(θ/2) | Fischaugenobjektive mit Erhaltung des Raumwinkels |
θ = Winkel von der optischen Achse (Bogenmaß); f = Brennweite. r(θ) ist der radiale Abstand auf der Bildebene vom Hauptpunkt.
Bei rektilinearen Objektiven überschreitet der seitliche Faktor außerhalb der Achse tan(θ) den Wert 1, sobald θ 45° von der optischen Achse überschreitet (d. h. wenn HFOV 90° überschreitet), und wächst unbegrenzt, wenn sich θ 90° nähert (HFOV nähert sich 180°). In der realen Optik wird die Eckverzerrung deutlich vor der mathematischen Divergenz schwerwiegend — die meisten Objektivdesigner wechseln um 120–140° HFOV zu Quasi-Fischaugen-Glas und verwenden vollständige Fischaugenobjektive über ~170°.
CCTVplanner.io wählt derzeit die rektilineare Projektion bis 170° HFOV; darüber hinaus wird die Eckverzerrung groß genug, dass wir aus Gründen der numerischen Stabilität auf äquidistant umschalten. Kameras zwischen ~140° und 170° HFOV werden daher mit rektilinearer Mathematik modelliert, auch wenn ihr physisches Objektiv eher einem Fischauge gleicht — wir akzeptieren das im Austausch gegen eine einfachere Eckgeometrie. Die äquisolide Projektion wird in der Geometrieebene unterstützt (für Herstellerdaten, die sie explizit angeben), es gibt jedoch noch keinen benutzerseitigen Schalter dafür.
Datenblatt-Vorbehalt: HFOV vs. DFOV
Viele Hersteller — insbesondere die großen asiatischen Marken (Dahua, Hikvision, Uniview, Tiandy) — geben im Datenblatt eine einzelne Sichtfeld-Zahl an, die tatsächlich das diagonale Sichtfeld (DFOV) ist, nicht das horizontale. Wenn ein DFOV-Wert in ein Tool eingegeben wird, das HFOV erwartet, ergibt sich eine Bodenabdeckung, die 10–15 % zu breit ist, wobei der Fehler an den seitlichen Kanten konzentriert ist, wo Pixeldichte am wichtigsten ist.
Für einen Sensor mit horizontalem zu vertikalem Seitenverhältnis a (z. B. 16:9 → a = 16/9) lautet die Umrechnung:
tan(HFOV/2) = tan(DFOV/2) × a / √(a² + 1) tan(VFOV/2) = tan(DFOV/2) × 1 / √(a² + 1)
Die Abbildung ist nichtlinear im Winkel: verlockende lineare Abkürzungen der Form HFOV ≈ k × DFOV funktionieren bei schmalen Objektiven, versagen aber stark bei weiten Sichtfeldern. Für einen 16:9-Sensor sind die exakten Umrechnungen:
| DFOV (16:9) | Exaktes HFOV | Exaktes VFOV | Linear-Abkürzungs-Fehler |
|---|---|---|---|
| 60° | 53,4° | 31,6° | −1,1° |
| 80° | 72,4° | 44,7° | −2,6° |
| 100° | 92,2° | 60,6° | −5,0° |
| 120° | 113,0° | 80,7° | −8,4° |
| 140° | 134,7° | 106,8° | −12,7° |
„Linear-Abkürzungs-Fehler" = HFOV aus der naiven Formel HFOV = (a / √(a²+1)) × DFOV minus dem exakten Wert. Die Abkürzung unterschätzt HFOV um 5–13° im Weitwinkelbereich, der die moderne CCTV-Optik dominiert — weitaus mehr als die in §9 angenommene ±1°-Datenblatt-Toleranz. Verwenden Sie immer die tan-basierte Formel oder die exakten Werte oben.
Die Kameradatenbank von CCTVplanner.io speichert HFOV (die kanonische CCTV-Messgröße) und konvertiert beim Import bei Kameras, deren Datenblätter nur DFOV angeben. Beim manuellen Eintragen einer Kamera prüfen Sie die Einheiten, bevor Sie die Zahl ins HFOV-Feld einfügen — dies falsch zu machen ist einer der zwei häufigsten Gründe, warum Vor-Ort-Vermessungs-Abdeckungen nicht mit der installierten Realität übereinstimmen (der andere ist das Sensor-Seitenverhältnis).
6. Hindernisse, Schatten und die sichtbare Abdeckung
Wände, Zäune und hohe Strukturen blockieren Strahlen von der Kamera. Um die sichtbare Abdeckung zu berechnen, modellieren wir jedes undurchsichtige Hindernis als Polygon (geschlossener Umfang) oder Polylinie (offener Zaun) und projizieren pro Segment ein Schattenviereck: jedes Segment wird von der Kamera weg auf das Mehrfache der Renderreichweite ausgedehnt. Die Vereinigung dieser segmentweisen Schatten ist die Silhouette des Hindernisses plus alles dahinter aus Sicht der Kamera.
Die sichtbare Abdeckung ist dann Abdeckung − ⋃ Schatten, berechnet mit dem Polygon-Differenz-Algorithmus von Martínez–Rueda. Das Ergebnis ist ein Polygon (oder eine Liste disjunkter Polygone, wenn ein Hindernis den Kegel teilt), dessen Kanten sauber mit dem fernen Bogen des Frustums und jeder blockierenden Wand übereinstimmen.
Für 3D-bewusste Analyse blockiert ein Hindernis, das kürzer als die Montagehöhe der Kamera ist, den Strahl nicht vollständig — es wirft einen endlichen Bodenschatten, der sich hinter dem Hindernis erstreckt. Für eine Wand im horizontalen Abstand d von der Kamera, mit Montagehöhe h_cam und Hindernis-Oberkanten-Höhe h_obs, erstreckt sich der Schatten von der Wand bis zu einem horizontalen Abstand:
d_shadow_end = d × h_cam / (h_cam − h_obs) für h_cam > h_obs Bei h_obs ≥ h_cam blockiert das Hindernis die Sichtlinie vollständig — entspricht einem unendlichen Schatten. Der Designer behandelt diesen Fall als vollständig undurchsichtigen Blocker (kein Hinwegsehen) und wendet dieselbe segmentweise Schattenprojektion an wie im 2D-Hindernis-Clipping-Pfad.
Das Umschalten von „Vertikale Höhe (3D) verwenden" auf einem Gebäude oder Zaun im Designer schaltet es auf dieses schattenprojizierende Modell um. Wenn die Kamera niedriger ist als das Hindernis (oder gleich hoch), hat der Schalter keine Wirkung.
7. Mehrgeschossige Projektion
Der Frustum-Boden-Schnittpunkt verallgemeinert sich trivial auf jede horizontale Ebene. Ersetzen Sie die Bodengleichung z = 0 durch z = z_target, lösen Sie dieselbe Strahl-Ebenen-Gleichung für jeden Eckstrahl, und das Ergebnis ist die Abdeckung der Kamera auf dieser Zieletage. Eine im zweiten Stock eines Atriums montierte Kamera deckt das Erdgeschoss durch dieselbe Konstruktion wie eine bodenmontierte Kamera ihr eigenes Geschoss abdeckt, nur mit einem anderen Wert von z_target und einem modifizierten vertikalen Versatz zwischen Kamera und Zielebene.
Die mathematische Schicht für mehrgeschossige Projektion ist heute im Geometriemodul verfügbar; die Etagenwahl-UI und die Three.js-Szenenvorschau sind für eine zukünftige Version eingeplant.
8. Annahmen und Grenzen
Jede Formel oben beruht auf einer Reihe vereinfachender Annahmen. Sie gelten für die meisten festmontierten CCTV-Szenarien, versagen jedoch unter bestimmten Bedingungen; wir dokumentieren sie, damit Praktiker entscheiden können, wann dem Modell zu vertrauen ist.
Modellannahmen
- Flacher Boden (der Boden ist die Ebene
z = 0) — kein Geländegefälle, keine Erdkrümmung. - Statische Kamera im Moment der Aufnahme — keine PTZ-Bewegung während des Bildes, keine Vibration.
- Lochkameramodell — keine Objektivverzerrung. Echte Objektive führen Brown–Conrady-radiale und tangentiale Verzerrung ein (Koeffizienten
k₁, k₂, p₁, p₂), die wir nicht modellieren. - Ideale Kalibrierung — Sensor-Pixelabstand, Brennweite und optisches Zentrum entsprechen exakt den Herstellerangaben.
- Keine Rolling-Shutter-Artefakte; das gesamte Bild wird in einem Moment aufgenommen.
- Keine Kamerarotation um die optische Achse (Roll) — die optische Achse wird nur durch Pan und Tilt rotiert; der Sensor bleibt horizontal.
- Einzelner optischer Pfad — keine Refraktion an Glaskuppeln, keine reflektierenden Oberflächen in der Szene.
- Atmosphärische Refraktion ist bei typischen CCTV-Reichweiten vernachlässigbar (Fehler unter 1 cm bei 50 m).
Wann das Modell versagt
- Geneigtes Gelände. Die Bodenabdeckung verschiebt sich asymmetrisch: die Hangabwärts-Seite reicht weiter als das Modell vorhersagt, die Hangaufwärts-Seite komprimiert sich. Der Fehler beträgt grob
±h · tan(slope)pro Meter horizontalen Abstands. - Verzerrung von Weitwinkelobjektiven. Über ~110° HFOV weicht die rektilineare Projektion von der tatsächlichen Abbildung des Objektivs an den Ecken um 1–5 % ab. Äquidistante / äquisolide Projektionen sind in der Geometrieebene für diese Fälle verfügbar (siehe §5).
- Glaskuppel-Kameras. Die Kuppel führt eine kleine refraktive Verschiebung am Objektiveintritt ein (mm bei typischen Montagehöhen). Für hochpräzise DORI-Arbeit an spiegelglas-basierten Installationen wird dies nicht-trivial; für allgemeine Planung liegt es unter anderen Fehlerquellen.
- Mehrfachreflexionsoptik. Reflexionen von Glaswänden, verspiegelten Decken oder polierten Böden werden nicht verfolgt. Das Modell liefert nur die Sichtlinien-Abdeckung.
- PTZ in Bewegung. Das Modell gibt die momentane Abdeckung bei einer Pan/Tilt-Einstellung an. Die zeitliche Abdeckung einer bewegten PTZ ist die überstrichene Abdeckung, nicht die momentane.
- Installationstoleranz. Reale Installationswinkel weichen vom Design um 1–3° ab (Technikerfehler). Der nächste Abschnitt quantifiziert, wie sich dies auf den Bodenfehler überträgt.
9. Fehlersensitivität
Fehler in den Eingangsparametern (Montagehöhe, Neigungswinkel, FOV) übertragen sich auf Bodenpositionsfehler in der Abdeckung. Für den Schnittpunkt der unteren Kante mit dem Boden d_near = h / tan(α + vfov/2) ergeben die partiellen Ableitungen:
∂d_near/∂h = 1 / tan(α + vfov/2) = d_near / h ∂d_near/∂α = −h / sin²(α + vfov/2) (Bogenmaß) ∂d_near/∂vfov = −h / (2 · sin²(α + vfov/2)) (Bogenmaß)
Die Winkelableitungen sind im Bogenmaß; multiplizieren Sie mit π/180 (≈ 0,01745), um auf pro Grad umzurechnen. Die Tabelle unten wendet die Umrechnung an.
Für eine typische Konfiguration (h = 10 m, tilt = 15°, vfov = 50° → d_near ≈ 11,9 m) erzeugen kleine Fehler in jedem Parameter folgende Abweichungen in d_near:
| Parameter | Eingabefehler | Δ d_near | Anmerkung |
|---|---|---|---|
| tilt α | ±1° | ±0,42 m | typische Inklinometerauflösung |
| tilt α | ±3° | ±1,27 m | Augenmaß-Montage am Halter |
| Höhe h | ±0,5 m | ±0,59 m | Bandmaß, unzugänglicher Mast |
| vfov | ±1° | ±0,21 m | Datenblatt-Rundung |
| alle kombiniert | RMS | ~1,4 m | bei 3° Neigung + 0,5 m Höhe + 1° FOV |
Der dominante Term ist die Unsicherheit des Installationswinkels: in der obigen Konfiguration kostet jedes Grad Neigungsfehler ~42 cm Genauigkeit der Bodenposition bei d_near. Ein Laser-Inklinometer mit 0,1°-Auflösung hält den neigungsbedingten d_near-Fehler unter 5 cm; eine Augenmaß-Montage am Halter ist auf etwa ±1 m genau. Für die DORI-Stufenverifikation (wo der Unterschied zwischen Erkennen- und Identifizieren-Bodenringen 2–3 m betragen kann), sollte die Neigung gemessen, nicht geschätzt werden.
Dieselbe partielle-Ableitungs-Analyse gilt für die seitliche Abdeckungsbreite über HFOV — ein 1°-HFOV-Fehler erzeugt ungefähr 2 · d · tan(½°) ≈ 1,7 % seitlichen Streufehler im Abstand d. Bei 30 m Reichweite sind das ~52 cm seitliche Unsicherheit, weshalb wir Hersteller-HFOV-Werte als ±1° statt als exakt behandeln.
10. Reproduzierbarkeit
Alle Formeln in diesem Artikel sind wörtlich im Geometriemodul implementiert, das mit dem CCTVplanner.io-Designer ausgeliefert wird. Das Modul wird durch eine umfassende Unit-Test-Suite abgedeckt, die rektilineare / äquidistante / äquisolide Projektionen, Grenzfälle des toten Winkels, DORI-Bodenprojektion, Polygon-Boolean-Hindernis-Clipping und die Mehretagen-Erweiterung umfasst. Jedes Diagramm auf dieser Seite wird durch Aufruf derselben Funktionen gerendert, die der Live-Designer verwendet.
Wichtige Einstiegspunkte
buildFrustum(args)— Kamerabasis (forward / right / upCam) + Frustum-MetadatencomputeGroundFootprint(frustum, projection)— abgetastetes Polygon (8 / 32 Punkte pro Kante)slantToGroundRadius(frustum, slantM)— √(slant² − h²) mit ErreichbarkeitsprüfungcomputeSegmentShadow / computePolygonShadow— segmentweise / polygonweise BodenschattenprojektionsubtractObstacleShadows(footprint, shadows)— Martínez–Rueda-PolygondifferenzcomputeFloorFootprint(frustum, z, projection)— Mehretagen-Variante
Standardkonstanten
defaultLensProjection: rektilinear bei HFOV < 170°, sonst äquidistantSAMPLES_PER_EDGE: 8 für rektilinear, 32 für Fischaugenprojektionen- Schatten-Clip-Distanz:
renderRange × 4(deckt das Clipping der Fernkante bei jeder vernünftigen Hindernisentfernung ab) - Horizontale Begrenzung der Fernkante: Strahlen, deren Bodenschnitt
renderRangeim horizontalen Abstand überschreitet, werden aufrenderRangeentlang ihrer horizontalen Richtung zurückprojiziert (verhindert Streifenartefakte am fernen Bogen des Polygons in Horizontnähe).
Reproduktion der Mathematik von Grund auf: Erstellen Sie ein CameraFrustum mit der dokumentierten Form { x, y, h, panDeg, tiltDeg, hfovDeg, vfovDeg, renderRangeM, pixelsPerMeter }; tasten Sie die Bildebenen-Ecken bei sH, sV ∈ [−1, +1] mit 8 Abtastungen pro Kante ab (32 für Fischauge); schneiden Sie jeden Strahl mit der Ebene z = 0; wenden Sie Polygon-Clipping-Differenz für Schatten-Subtraktion an. Modulo IEEE-754-Reihenfolgeneffekte im Polygon-Boolean-Schritt entspricht das Ergebnis dem vom Live-Designer gerenderten Polygon bis auf Gleitkomma-Präzision (Submillimeter bei Eingaben in realer Skala).
Literaturverzeichnis
- IEC 62676-4:2014 (mit Änderungen) — Videoüberwachungssysteme für Sicherheitsanwendungen, Teil 4: Anwendungsrichtlinien (DORI, Zielentfernungen). Identischer Text veröffentlicht als EN 62676-4 in der europäischen Ausgabe.
- Hartley & Zisserman, Multiple View Geometry in Computer Vision, 2. Aufl., Cambridge University Press, 2004 (Kameraprojektionsmodelle, Frustum-Geometrie).
- Kannala & Brandt, „A generic camera model and calibration method for conventional, wide-angle, and fish-eye lenses", IEEE TPAMI, 2006 (Vergleich der rektilinearen / äquidistanten / äquisoliden Projektionen).
- Martínez, Rueda & Feito, „A new algorithm for computing Boolean operations on polygons", Computers & Geosciences, 2009 — ursprünglicher Martínez–Rueda-Algorithmus. Die Folgearbeit von 2013 „A simple algorithm for Boolean operations on polygons" (Advances in Engineering Software) ist die in der hier verwendeten polygon-clipping-Bibliothek implementierte Variante.