Kameras und Eingabeerweiterungen
Dieser Artikel stellt das Kameramodell, Parameter und weitere Verwendungshinweise für physische Kameras sowie die Erweiterung der Eingabe mit einer custom camera vor.

Input frame
Ein input frame ist eine grundlegende Dateneinheit in AR. Er repräsentiert alle zugehörigen Informationen eines Frames, der von einer Kamera oder einer anderen Datenquelle erfasst wurde. Ein input frame enthält normalerweise:
- Raw image data (camera image)
- Kameraparameter (z. B. intrinsics)
- Timestamp
- Camera transform matrix in Weltkoordinaten
- Tracking status
Diese Informationen liefern AR-Algorithmen die raumzeitlichen Kontextdaten, die für localization, tracking, rendering und andere Aufgaben benötigt werden.
Physische Kamera
Kameras, die derzeit in elektronischen Geräten verwendet werden, bestehen normalerweise aus mehreren Linsen und Spiegeln. In der Regel werden jedoch keine tatsächlichen optischen Strukturen zum Aufbau eines Kameramodells verwendet, sondern vereinfachte Modelle.
Pinhole camera model

Dies ist das einfachste üblicherweise verwendete Modell. Licht fällt durch ein kleines Loch und erzeugt ein um 180 Grad gedrehtes Bild, aber die von der Kamera ausgegebenen Daten richten das Bild auf. Zur Beschreibung dieses Modells werden sechs Parameter benötigt: Pixelbreite und -höhe \(w, h\), Pixelfokallängen \(f_x, f_y\) und Pixelpositionen des principal point \(c_x, c_y\). Wenn Pixelbreite und -höhe skaliert werden, werden auch Pixelfokallängen und principal point-Positionen entsprechend skaliert, sodass die Bildposition unverändert bleiben kann.
OpenCV camera model
Einige Kameras weisen deutliche radiale und tangentiale distortion auf. Das OpenCV camera model ergänzt das pinhole camera model um Parameter höherer Ordnung zur Beschreibung von radial distortion und tangential distortion. Radial distortion wird durch \(k_1, k_2, k_3, \cdots\) beschrieben. Tangential distortion wird durch \(p_1, p_2\) beschrieben.
Anmerkung
Einige trackers unterstützen das OpenCV camera model nicht.
OpenCV fisheye camera model
Eine fisheye camera verwendet perspective projection, um Inhalte mit großem Sichtwinkel in einen kleineren Bildbereich zu komprimieren. Das OpenCV fisheye camera model enthält keine distortion correction. Basierend auf den sechs Parametern des pinhole camera model verwendet es \(k_1, k_2, k_3, k_4, \cdots\) zur Beschreibung.
Anmerkung
Einige trackers unterstützen das OpenCV fisheye camera model nicht.

Kameraausrichtung und Bildausrichtung
Auf Mobiltelefonen wird das von der rückseitigen Kamera ausgegebene Bild auf dem Bildschirm in derselben Richtung wie die reale Szene angezeigt, wenn das Telefon üblicherweise horizontal gehalten wird (90 Grad gegen den Uhrzeigersinn aus der normalen Hochformat-Haltung gedreht) und die Anzeigeausrichtung des Bildschirms ebenfalls horizontal ist. Wenn nur die Anzeigeausrichtung des Bildschirms geändert wird, ohne die physische Bildschirmausrichtung zu ändern, ändert sich die Bildausrichtung, die von der physischen Kamera ausgegeben wird, nicht. Wenn das Telefon normal im Hochformat gehalten wird und die Anzeigeausrichtung des Bildschirms ebenfalls normales Hochformat ist, muss das Bild der rückseitigen Kamera um 90 Grad im Uhrzeigersinn gedreht werden, bevor es auf dem Bildschirm angezeigt wird, damit es mit der realen Szene übereinstimmt. Wenn die Anzeigeausrichtung des Bildschirms rotiert, erfordert das rendering des Kamerabildes eine umgekehrte Rotationskompensation, damit es mit der realen Szene übereinstimmt.
Kameraausrichtung und Bildausrichtung werden normalerweise relativ zur natural orientation des Geräts definiert:
Telefon
Android
Android definiert eine natural orientation, nämlich die Richtung, in der das Telefon normalerweise im Hochformat gehalten wird. Die inertial measurement unit (IMU) verwendet diese Richtung ebenfalls als Referenz. Der Rotationswinkel des Kameraausgabebildes relativ zu dieser Richtung kann als Kameraparameter abgerufen werden.
iOS
Unter iOS ist natural orientation zwar nicht ausdrücklich definiert, die inertial measurement unit verwendet jedoch dieselbe Referenz wie Android.
Tablet
Bei einigen Tablets ist die natural orientation horizontal, bei anderen wie bei Telefonen normales Hochformat.
Brille
Die natural orientation von Brillen ist normalerweise horizontal.
Beim rendering des Kamerabildes werden Kameraausrichtung und Bildschirmausrichtung gemeinsam berücksichtigt.
Kameratyp und camera flip
Mobiltelefone haben im Allgemeinen eine rückseitige und eine frontseitige Kamera. Das von der frontseitigen Kamera ausgegebene Bild muss horizontal gespiegelt werden, bevor es auf dem Bildschirm angezeigt wird, um einen Spiegel zu simulieren. Ohne horizontale Spiegelung wirkt es sehr ungewohnt.
Eingabeerweiterung
EasyAR unterstützt Eingabeerweiterungen über eine custom camera. Eine custom camera kann input frames aus externen Quellen abrufen und an das AR-System übertragen, damit trackers sie verwenden können. Die Erfassung von Bilddaten für die custom camera können Sie selbst implementieren.
Plattformspezifische Anleitungen
Die Verwendung von Kameras und Eingabeerweiterungen ist eng mit der Plattform verbunden. Beachten Sie für Ihre Zielplattform die folgenden Anleitungen: