DE102021102493A1 - Verfahren und System zum Durchführen einer automatischen Kamerakalibrierung - Google Patents

Verfahren und System zum Durchführen einer automatischen Kamerakalibrierung Download PDF

Info

Publication number
DE102021102493A1
DE102021102493A1 DE102021102493.5A DE102021102493A DE102021102493A1 DE 102021102493 A1 DE102021102493 A1 DE 102021102493A1 DE 102021102493 A DE102021102493 A DE 102021102493A DE 102021102493 A1 DE102021102493 A1 DE 102021102493A1
Authority
DE
Germany
Prior art keywords
lens distortion
estimate
camera
distortion parameter
calibration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021102493.5A
Other languages
English (en)
Inventor
Russell Islam
Xutao Ye
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mujin Inc
Original Assignee
Mujin Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/871,361 external-priority patent/US11508088B2/en
Application filed by Mujin Inc filed Critical Mujin Inc
Publication of DE102021102493A1 publication Critical patent/DE102021102493A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • G06T7/85Stereo camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C25/00Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/002Measuring arrangements characterised by the use of optical techniques for measuring two or more coordinates
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39008Fixed camera detects reference pattern held by end effector
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • G06T2207/30208Marker matrix

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Manufacturing & Machinery (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Studio Devices (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)

Abstract

Ein System und ein Verfahren zum Durchführen einer automatischen Kamerakalibrierung werden bereitgestellt. Das System empfängt ein Kalibrierbild und bestimmt eine Vielzahl von Bildkoordinaten zum Darstellen von jeweiligen Orten, an denen eine Vielzahl von Musterelementen eines Kalibriermusters in einem Kalibrierbild erscheint. Das System bestimmt auf der Basis der Vielzahl von Bildkoordinaten und definierten Musterelementkoordinaten eine Abschätzung für einen ersten Linsenverzerrungsparameter eines Satzes von Linsenverzerrungsparametern, wobei die Abschätzung für den ersten Linsenverzerrungsparameter bestimmt wird, während ein zweiter Linsenverzerrungsparameter des Satzes von Linsenverzerrungsparametern als null abgeschätzt wird, oder bestimmt wird, ohne den zweiten Linsenverzerrungsparameter abzuschätzen. Das System bestimmt, nachdem die Abschätzung des ersten Linsenverzerrungsparameters bestimmt ist, eine Abschätzung für den zweiten Linsenverzerrungsparameter auf der Basis der Abschätzung für den ersten Linsenverzerrungsparameter.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht die Priorität zur vorläufigen US-Anmeldung Nr. 62/969 673 mit dem Titel „A Robotic System with Calibration Mechanism" und eingereicht am 4. Februar 2020, deren ganzer Inhalt durch Verweis in seiner Gesamtheit hierin aufgenommen wird.
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung ist auf ein Verfahren und ein System zum Durchführen einer automatischen Kamerakalibrierung gerichtet.
  • HINTERGRUND
  • Da die Automatisierung üblicher wird, werden Roboter in mehr Umgebungen wie z. B. in Warenlager- und Fertigungsumgebungen verwendet. Roboter können beispielsweise verwendet werden, um Gegenstände in einem Warenlager auf eine oder von einer Palette zu laden oder Objekte von einem Förderband in einem Werk aufzugreifen. Die Bewegung des Roboters kann festgelegt sein oder kann auf einer Eingabe wie z. B. einem durch eine Kamera im Warenlager oder im Werk aufgenommenen Bild basieren. In der letzteren Situation kann eine Kalibrierung durchgeführt werden, um eine Eigenschaft der Kamera zu bestimmen und eine Beziehung zwischen der Kamera und einer Umgebung zu bestimmen, in der der Roboter angeordnet ist. Die Kalibrierung kann als Kamerakalibrierung bezeichnet werden und kann Kamerakalibrierinformationen erzeugen, die verwendet werden, um den Roboter auf der Basis von durch die Kamera erfassten Bildern zu steuern. In einigen Implementierungen kann die Kamerakalibrierung eine manuelle Bedienung durch eine Person wie z. B. eine manuelle Bestimmung einer Eigenschaft der Kamera beinhalten.
  • ZUSAMMENFASSUNG
  • Ein Aspekt der Ausführungsformen hierin bezieht sich auf ein Rechensystem, ein Verfahren, das durch das Rechensystem durchgeführt wird, oder ein nicht flüchtiges computerlesbares Medium mit Befehlen zum Bewirken, dass das Rechensystem das Verfahren durchführt. Das Rechensystem kann eine Kommunikationsschnittstelle umfassen, die dazu eingerichtet ist, mit einer Kamera mit einem Kamerasichtfeld zu kommunizieren, und eine Steuerschaltung umfassen. Die Steuerschaltung kann das Verfahren ausführen, wenn die Kamera ein Kalibrierbild für ein Kalibriermuster im Kamerasichtfeld erzeugt hat und wenn das Kalibriermuster eine Vielzahl von Musterelementen mit jeweiligen definierten Musterelementkoordinaten in einem Musterkoordinatensystem umfasst. Insbesondere kann die Steuerschaltung die Kamerakalibrierung durchführen durch: Empfangen des Kalibrierbildes; Bestimmen einer Vielzahl von Bildkoordinaten zum Darstellen von jeweiligen Orten, an denen die Vielzahl von Musterelementen im Kalibrierbild erscheint; Bestimmen einer Abschätzung für einen ersten Linsenverzerrungsparameter eines Satzes von Linsenverzerrungsparametern auf der Basis der Vielzahl von Bildkoordinaten und der definierten Musterelementkoordinaten, wobei die Abschätzung für den ersten Linsenverzerrungsparameter bestimmt wird, während ein zweiter Linsenverzerrungsparameter des Satzes von Linsenverzerrungsparametern als null abgeschätzt wird, oder ohne Abschätzen des zweiten Linsenverzerrungsparameters bestimmt wird; nachdem die Abschätzung des ersten Linsenverzerrungsparameters bestimmt ist, Bestimmen einer Abschätzung für den zweiten Linsenverzerrungsparameter auf der Basis der Abschätzung für den ersten Linsenverzerrungsparameter; und Bestimmen von Kamerakalibrierinformationen, die jeweilige Abschätzungen für den Satz von Linsenverzerrungsparametern umfassen.
  • Ein Aspekt der Ausführungsformen hierin bezieht sich auf ein Rechensystem, ein Verfahren, das durch das Rechensystem durchgeführt wird, oder ein nicht flüchtiges computerlesbares Medium mit Befehlen zum Bewirken, dass das Rechensystem das Verfahren durchführt. Das Rechensystem kann eine Kommunikationsschnittstelle umfassen, die dazu eingerichtet ist, mit einer ersten Kamera mit einem ersten Kamerasichtfeld und einer zweiten Kamera mit einem zweiten Kamerasichtfeld zu kommunizieren, und umfasst eine Steuerschaltung. Die Steuerschaltung kann das Verfahren durchführen, wenn ein Kalibriermuster mit einer Vielzahl von Musterelementen sich im ersten Kamerasichtfeld und im zweiten Kamerasichtfeld befindet oder befunden hat und wenn die erste Kamera ein erstes Kalibrierbild für das Kalibriermuster erzeugt hat und die zweite Kamera ein zweites Kalibrierbild für das Kalibriermuster erzeugt hat. Insbesondere kann die Steuerschaltung Folgendes durchführen: Empfangen des ersten Kalibrierbildes; Empfangen eines zweiten Kalibrierbildes; Bestimmen einer Abschätzung einer Transformationsfunktion zum Beschreiben einer räumlichen Beziehung zwischen der ersten Kamera und der zweiten Kamera; Bestimmen einer ersten Vielzahl von Koordinaten, die jeweilige Orte der Vielzahl der Musterelemente relativ zur ersten Kamera beschreiben, auf der Basis des ersten Kalibrierbildes; Bestimmen einer zweiten Vielzahl von Koordinaten, die jeweilige Orte der Vielzahl der Musterelemente relativ zur zweiten Kamera beschreiben, auf der Basis des zweiten Kalibrierbildes; Transformieren der zweiten Vielzahl von Koordinaten in eine Vielzahl von transformierten Koordinaten, die relativ zur ersten Kamera sind, auf der Basis der Abschätzung der Transformationsfunktion; Bestimmen eines Fehlerparameterwerts, der jeweilige Differenzen zwischen der ersten Vielzahl von Koordinaten und der Vielzahl von transformierten Koordinaten beschreibt.
  • Figurenliste
  • Die vorangehenden und andere Merkmale, Aufgaben und Vorteile der Erfindung sind aus der folgenden Beschreibung von Ausführungsformen hiervon ersichtlich, wie in den zugehörigen Zeichnungen dargestellt. Die zugehörigen Zeichnungen, die hierin aufgenommen sind und einen Teil der Patentbeschreibung bilden, dienen weiter dazu, die Prinzipien der Erfindung zu erläutern und einem Fachmann auf dem einschlägigen Gebiet zu ermöglichen, die Erfindung durchzuführen und zu verwenden. Die Zeichnungen sind nicht maßstäblich.
    • 1A-1C stellen Blockdiagramme von Systemen, in denen eine Kamerakalibrierung durchgeführt wird, gemäß Ausführungsformen hierin dar.
    • 2 stellt ein Rechensystem, das zum Bestimmen von Kamerakalibrierinformationen dient, gemäß einer Ausführungsform hierin dar.
    • 3A und 3B stellen Modelle einer Kamera, die an der Kamerakalibrierung beteiligt ist, gemäß Ausführungsformen hierin dar.
    • 4A und 4B stellen ein Beispielsystem, in dem eine Kamerakalibrierung durchgeführt wird, gemäß einer Ausführungsform hierin dar.
    • 4C stellt ein Beispiel eines Kalibriermusters gemäß einer Ausführungsform hiervon dar.
    • 5 stellt ein Ablaufdiagramm, das ein Verfahren zum Abschätzen von intrinsischen Kamerakalibrierparametern darstellt, gemäß einer Ausführungsform hierin bereit.
    • 6A-6E stellen Beispielkalibrierbilder gemäß einer Ausführungsform hierin dar.
    • 7A-7B stellen eine Beispiel-Pipeline mit mehreren Stufen zum Abschätzen von Kamerakalibrierparametern gemäß einer Ausführungsform hierin dar.
    • 8 stellt eine Beispiel-Pipeline mit mehreren Stufen zum Abschätzen von Kamerakalibrierparametern gemäß einer Ausführungsform hierin dar.
    • 9A-9C stellen eine Beispiel-Pipeline mit mehreren Stufen, die eine Krümmungsverringerungsstufe umfassen, gemäß einer Ausführungsform hierin dar.
    • 10-11 stellen eine Beispiel-Pipeline mit mehreren Stufen zum Abschätzen von Kamerakalibrierparametern gemäß einer Ausführungsform hierin dar.
    • 12A-12B stellen Beispiel-Pipelines mit mehreren Stufen zum Abschätzen von Kamerakalibrierparametern gemäß einer Ausführungsform hierin dar.
    • 13A-13B stellen ein Beispielsystem zum Durchführen einer Stereokalibrierung gemäß einer Ausführungsform hierin dar.
    • 14 stellt ein Ablaufdiagramm, das ein Verfahren zum Bestimmen von Stereokalibrierinformationen darstellt, gemäß einer Ausführungsform hierin dar.
    • 15A und 15B stellen Beispielkalibrierbilder gemäß einer Ausführungsform hierin dar.
    • 16A und 16B stellen Beispiele von transformierten Koordinaten, die aus einer Abschätzung einer Transformationsfunktion bestimmt werden, gemäß einer Ausführungsform hierin dar.
    • 17A-17C stellen Beispiele des Bestimmens eines Reprojektionsfehlers oder eines Rekonstruktionsfehlers gemäß einer Ausführungsform hierin dar.
    • 18A-18C stellen Beispiele des Bestimmens eines Rekonstruktionsfehlerwinkels gemäß einer Ausführungsform hierin dar.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende ausführliche Beschreibung ist dem Wesen nach lediglich beispielhaft und soll die Erfindung oder die Anwendung und die Verwendungen der Erfindung nicht begrenzen. Ferner besteht keine Absicht, an irgendeine ausdrückliche oder implizite Theorie gebunden zu sein, die im vorangehenden technischen Gebiet, Hintergrund, in der kurzen Zusammenfassung oder in der folgenden ausführlichen Beschreibung dargestellt ist.
  • Ein Aspekt der vorliegenden Anmeldung bezieht sich auf das Verbessern einer Genauigkeit einer Kamerakalibrierung wie z. B. einer intrinsischen Kamerakalibrierung. In einer Aus führungs form kann die intrinsische Kamerakalibrierung das Bestimmen von jeweiligen Abschätzungen für Linsenverzerrungsparameter und/oder Projektionsparameter beinhalten. In einigen Implementierungen können alle Linsenverzerrungsparameter für einen Kamerakalibriervorgang in einer einzelnen Stufe abgeschätzt werden. Das Bestimmen von jeweiligen Abschätzungen für die Linsenverzerrungsparameter in einer einzelnen Stufe kann jedoch eine Genauigkeit solcher Abschätzungen verringern, da die Nicht-Linearität, die durch die Linsenverzerrung eingeführt wird, komplex und schwierig genau anzunähern sein kann. Folglich bezieht sich ein Aspekt der vorliegenden Anmeldung auf das Abschätzen der Linsenverzerrungsparameter in mehreren Stufen (auch als mehrere Runden bezeichnet).
  • In einigen Fällen können die mehreren Stufen als Sequenz von Stufen angeordnet sein und eine durch eine Stufe ausgegebene Abschätzung kann als anfängliche Abschätzung oder andere Eingabe für eine nächste Stufe verwendet werden. In einigen Fällen können eine oder mehrere der mehreren Stufen eine Vereinfachung auf ein Linsenverzerrungsmodell (und/oder Projektionsmodell) anwenden, das bei der Kamerakalibrierung verwendet wird. Eine erste Stufe der mehreren Stufen kann beispielsweise annehmen, dass einige Linsenverzerrungsparameter einen vernachlässigbaren Effekt aufweisen und in dieser Stufe ignoriert werden können, wie z. B. durch Festlegen solcher Linsenverzerrungsparameter auf null in dieser Stufe oder unter Verwendung einer vereinfachten Verzerrungsfunktion. In einigen Fällen können frühere Stufen der mehreren Stufen ein einfacheres Linsenverzerrungsmodell verwenden, um sich auf die Abschätzung z. B. eines Linsenverzerrungsparameters zu konzentrieren, der einen großen Teil oder eine große Komponente der Linsenverzerrung berücksichtigt, während spätere Stufen eine Komplexität des Linsenverzerrungsmodells erhöhen können, um eine größere Anzahl von Linsenverzerrungsparametern abzuschätzen, die einen restlichen Teil der Linsenverzerrung berücksichtigen können. In einigen Fällen kann eine spätere Stufe (einen) spezielle(n) Kamerakalibrierparameter (z. B. einen Linsenverzerrungsparameter oder Projektionsparameter) im Wert festsetzen, um sich auf die Aktualisierung von jeweiligen Abschätzungen für andere Kamerakalibrierparameter (z. B. andere Linsenverzerrungsparameter) zu konzentrieren.
  • Ein Aspekt der vorliegenden Anmeldung bezieht sich auf das Verbessern einer Genauigkeit einer Stereokamerakalibrierung und spezieller auf das Bestimmen eines Fehlerparameterwerts, der ein Ausmaß eines Fehlers bei der Stereokamerakalibrierung charakterisiert, und das Verbessern der Genauigkeit der Stereokamerakalibrierung durch Verringern des Fehlerparameterwerts. In einigen Fällen kann das Durchführen der Stereokamerakalibrierung das Bestimmen einer Abschätzung einer Transformationsfunktion beinhalten, die eine räumliche Beziehung zwischen einer ersten Kamera und einer zweiten Kamera beschreibt. In solchen Fällen kann der Fehlerparameterwert für die Abschätzung der Transformationsfunktion bestimmt werden. In einer Ausführungsform kann die Transformationsfunktion verwendet werden, um eine Vielzahl von transformierten Koordinaten zu bestimmen, die mit einer anderen Vielzahl von Koordinaten verglichen werden können, um einen Fehlerparameterwert zu bestimmen. Wie nachstehend genauer erörtert, kann der Fehlerparameterwert einen Reprojektionsfehler, einen Rekonstruktionsfehler, einen Rekonstruktionsfehlerwinkel und/oder irgendeinen anderen Fehlerparameterwert umfassen.
  • 1A stellt ein Blockdiagramm eines Systems 100 zum Durchführen einer automatischen Kamerakalibrierung dar. Das System 100 umfasst ein Rechensystem 110 und eine Kamera 170. In einer Ausführungsform kann das System 110 ferner ein Kalibriermuster 160 umfassen. In diesem Beispiel kann die Kamera 170 dazu eingerichtet sein, ein Kalibrierbild zu erzeugen, das ein Bild ist, das das Kalibriermuster 160 darstellt, und das Rechensystem 110 kann dazu eingerichtet sein, eine Kamerakalibrierung auf der Basis des Kalibrierbildes durchzuführen. In einer Ausführungsform können das Rechensystem 110 und die Kamera 170 in denselben Räumlichkeiten (z. B. demselben Warenlager) angeordnet sein. In einer Ausführungsform können das Rechensystem 110 und die Kamera 170 entfernt voneinander angeordnet sein. Das Rechensystem 110 kann dazu eingerichtet sein, das Kalibrierbild direkt von der Kamera 170 wie z. B. über eine verdrahtete Verbindung oder indirekt von der Kamera 170 wie z. B. über eine Speichervorrichtung, die zwischen der Kamera 170 und dem Rechensystem 110 angeordnet ist, zu empfangen. In einer Ausführungsform kann die Kamera 170 irgendein Typ von Bilderfassungsvorrichtung sein, die dazu eingerichtet ist, ein Bild (oder allgemeiner Bilddaten) zu erzeugen oder anderweitig zu erfassen, das eine Szene in einem Kamerasichtfeld darstellt. Die Kamera 170 kann z. B. eine Farbbildkamera, eine Graustufenbildkamera, eine Tiefenerfassungskamera (z. B. eine Laufzeit- (TOF) Kamera oder Kamera für strukturiertes Licht) oder irgendeine andere Kamera sein (der Begriff „oder“ in dieser Offenbarung kann verwendet werden, um sich auf „und/oder“ zu beziehen).
  • In einer Ausführungsform kann das System 100 ein Roboterbetriebssystem 100A sein, das in 1B dargestellt ist. Das Roboterbetriebssystem 100A umfasst das Rechensystem 110, die Kamera 170 und einen Roboter 150, an dem das Kalibriermuster 160 angeordnet ist. In einigen Fällen kann das Rechensystem 110 dazu eingerichtet sein, den Roboter 150 zu steuern, und kann in diesen Fällen als Robotersteuersystem oder Robotersteuereinheit bezeichnet werden. In einer Ausführungsform kann das Roboterbetriebssystem 100A innerhalb eines Warenlagers, einer Fertigungsanlage oder anderer Räumlichkeiten angeordnet sein. Wie vorstehend angegeben, kann das Rechensystem 110 dazu eingerichtet sein, eine Kamerakalibrierung durchzuführen, wie z. B. durch Bestimmen von Kamerakalibrierinformationen. In dem Beispiel von 1B können die Kamerakalibrierinformationen später verwendet werden, um den Roboter 150 zu steuern. In einigen Fällen ist das Rechensystem 110 in 1B dazu eingerichtet, sowohl die Kamerakalibrierung durchzuführen als auch den Roboter 150 auf der Basis der Kalibrierinformationen zu steuern. In einigen Fällen kann das Rechensystem 110 für das Durchführen der Kamerakalibrierung zweckgebunden sein und kann die Kalibrierinformationen zu einem anderen Rechensystem übermitteln, das für das Steuern des Roboters 150 zweckgebunden ist. Der Roboter 150 kann beispielsweise auf der Basis von Bildern, die durch die Kamera 170 erzeugt werden, und der Kamerakalibrierinformationen positioniert werden. In einigen Fällen kann das Rechensystem 110 ein Teil eines Sichtsystems sein, das Bilder einer Umgebung erfasst, in der die Kamera 170 angeordnet ist. Der Roboter 150 kann z. B. ein Containerentladungsroboter, ein Entpalettierungsroboter oder irgendein anderer Roboter sein.
  • In einer Ausführungsform kann das Rechensystem 110 von 1B dazu eingerichtet sein, über eine verdrahtete oder drahtlose Kommunikation mit dem Roboter 150 und/oder der Kamera 170 zu kommunizieren. Das Rechensystem 110 kann beispielsweise dazu eingerichtet sein, mit dem Roboter 150 und/oder der Kamera 170 über eine RS-232-Schnittstelle, eine Schnittstelle eines universellen seriellen Busses (USB), eine Ethernet-Schnittstelle, eine Bluetooth®-Schnittstelle, eine Nahfeldkommunikations- (NFC) Schnittstelle, eine IEEE 802.11-Schnittstelle, eine IEEE 1394-Schnittstelle oder irgendeine Kombination davon zu kommunizieren. In einer Ausführungsform kann das Rechensystem 110 dazu eingerichtet sein, mit dem Roboter 150 und/oder der Kamera 170 über einen lokalen Computerbus wie z. B. einen Peripheral Component Interconnect- (PCI) Bus oder einen Kleincomputersystemschnittstellen- (SCSI) Bus zu kommunizieren.
  • In einer Ausführungsform kann das Rechensystem 110 von 1B vom Roboter 150 separat sein und kann mit dem Roboter 150 über die vorstehend erörterte drahtlose oder verdrahtete Verbindung kommunizieren. Das Rechensystem 110 kann beispielsweise ein eigenständiger Computer sein, der dazu eingerichtet ist, mit dem Roboter 150 und der Kamera 170 über eine verdrahtete Verbindung oder drahtlose Verbindung zu kommunizieren. In einer Ausführungsform kann das Rechensystem 110 eine integrale Komponente des Roboters 150 sein und kann mit anderen Komponenten des Roboters 150 über den vorstehend erörterten lokalen Computerbus kommunizieren. In einigen Fällen kann das Rechensystem 110 ein zweckgebundenes Steuersystem (auch als dedizierter Controller bezeichnet) sein, das nur den Roboter 150 steuert. In anderen Fällen kann das Rechensystem 110 dazu eingerichtet sein, mehrere Roboter, einschließlich des Roboters 150, zu steuern. In einer Ausführungsform sind das Rechensystem 110, der Roboter 150 und die Kamera 170 in denselben Räumlichkeiten (z. B. Warenlager) angeordnet. In einer Ausführungsform kann das Rechensystem 110 vom Roboter 150 und von der Kamera 170 entfernt sein und kann dazu eingerichtet sein, mit dem Roboter 150 und der Kamera 170 über eine Netzwerkverbindung (z. B. eine Verbindung eines lokalen Netzwerks (LAN)) zu kommunizieren.
  • In einer Ausführungsform kann das Rechensystem 110 von 1B dazu eingerichtet sein, auf Kalibrierbilder zuzugreifen und diese zu verarbeiten, die Bilder des Kalibriermusters 160 sind. Das Rechensystem 110 kann auf die Kalibrierbilder durch Abrufen oder allgemeiner Empfangen der Kalibrierbilder von der Kamera 170 oder von einer anderen Quelle wie z. B. von einer Speichervorrichtung oder einem anderen nicht flüchtigen computerlesbaren Medium, auf dem die Kalibrierbilder gespeichert sind, zugreifen. In einigen Fällen kann das Rechensystem 110 dazu eingerichtet sein, die Kamera 170 zu steuern, um solche Bilder zu erfassen oder anderweitig zu erzeugen. Das Rechensystem 110 kann beispielsweise dazu eingerichtet sein, einen Kamerabefehl zu erzeugen, der bewirkt, dass die Kamera 170 ein Bild erzeugt, das eine Szene in einem Sichtfeld der Kamera 170 (auch als Kamerasichtfeld bezeichnet) erfasst, und den Kamerabefehl zur Kamera 170 über die verdrahtete oder drahtlose Verbindung zu übermitteln. Derselbe Befehl kann bewirken, dass die Kamera 170 auch das Bild (als Bilddaten) zum Rechensystem 110 oder allgemeiner zu einer Speichervorrichtung zurück übermittelt, die für das Rechensystem 110 zugänglich ist. Alternativ kann das Rechensystem 110 einen anderen Kamerabefehl erzeugen, der bewirkt, dass die Kamera 170 beim Empfangen des Kamerabefehls (ein) Bild(er), das (die) sie erfasst hat, zum Rechensystem 110 übermittelt. In einer Ausführungsform kann die Kamera 170 automatisch ein Bild einer Szene in ihrem Kamerasichtfeld entweder periodisch oder in Reaktion auf eine definierte Auslösebedingung erfassen, ohne einen Kamerabefehl vom Rechensystem 110 zu benötigen. In einer solchen Ausführungsform kann die Kamera 170 auch dazu eingerichtet sein, ohne Kamerabefehl vom Rechensystem 110 automatisch das Bild zum Rechensystem 110 oder allgemeiner zu einer Speichervorrichtung, die für das Rechensystem 110 zugänglich ist, zu übermitteln.
  • In einer Ausführungsform kann das Rechensystem 110 von 1B dazu eingerichtet sein, die Bewegung des Roboters 150 über Bewegungsbefehle zu steuern, die durch das Rechensystem 110 erzeugt werden und über die verdrahtete oder drahtlose Verbindung zum Roboter 150 übermittelt werden. Die Bewegungsbefehle können bewirken, dass der Roboter das Kalibriermuster 160 bewegt. Das Kalibriermuster 160 kann dauerhaft am Roboter 150 angeordnet sein oder kann eine separate Komponente sein, die am Roboter 150 befestigt und von diesem gelöst werden kann.
  • In einer Ausführungsform kann das Rechensystem 110 dazu eingerichtet sein, jeweilige Bilder von mehreren Kameras zu empfangen. 1C stellt beispielsweise ein Roboterbetriebssystem 100B dar, das eine Ausführungsform des Roboterbetriebssystems 100A ist. Das System 100B umfasst mehrere Kameras wie z. B. die Kamera 170 und eine Kamera 180. Die Kameras 170, 180 können derselbe Typ von Kamera sein oder können verschiedene Typen von Kameras sein. In einigen Fällen können die Kameras 170, 180 eine feste relative Position und/oder relative Orientierung aufweisen. Die Kameras 170, 180 können beispielsweise beide starr an einem gemeinsamen Montagerahmen befestigt sein, der bewirken kann, dass die zwei Kameras 170, 180 relativ zueinander stationär bleiben.
  • In einer Ausführungsform kann das Robotersteuersystem 110 von 1C dazu eingerichtet sein, sowohl Bilder von der Kamera 170 zu empfangen als auch Bilder von der Kamera 180 zu empfangen. In einigen Fällen kann das Rechensystem 110 dazu eingerichtet sein, die Bewegung des Roboters 150 auf der Basis der Bilder von den zwei Kameras 170, 180 zu steuern, wie z. B. durch Erzeugen eines Bewegungsbefehls. In einigen Fällen kann die Anwesenheit der zwei Kameras 170, 180 das Rechensystem 110 mit stereoskopischer Sicht versehen. In einigen Fällen kann das Rechensystem 110 dazu eingerichtet sein, ein durch die Kamera 170 erzeugtes Bild und ein durch die Kamera 180 erzeugtes Bild zu verwenden, um Objektstrukturinformationen zu bestimmen, die eine dreidimensionale Struktur eines durch beide Bilder erfassten Objekts beschreiben können. In einigen Fällen kann das Rechensystem 110 dazu eingerichtet sein, eine Kamerakalibrierung für sowohl die Kamera 170 als auch die Kamera 180 durchzuführen, wie nachstehend genauer erörtert. In einer Ausführungsform kann das Rechensystem 110 beide Kameras 170, 180 steuern, um jeweilige Bilder des Kalibriermusters 160 zu erfassen, um die Kamerakalibrierung durchzuführen. In einer solchen Ausführungsform kann das Rechensystem 110 mit der Kamera 180 in einer Weise kommunizieren, die dieselbe wie oder ähnlich dazu ist, wie es mit der Kamera 170 kommuniziert. In einer Ausführungsform kann das Roboterbetriebssystem 100B exakt zwei Kameras aufweisen oder kann mehr als zwei Kameras aufweisen.
  • 2 stellt ein Blockdiagramm des Rechensystems 110 von 1A-1C dar. Wie im Blockdiagramm dargestellt, kann das Rechensystem 110 eine Steuerschaltung 111, eine Kommunikationsschnittstelle 113 und ein nicht flüchtiges computerlesbares Medium 115 (z. B. einen Speicher) umfassen. In einer Ausführungsform kann die Steuerschaltung 111 einen oder mehrere Prozessoren, eine programmierbare Logikschaltung (PLC) oder eine programmierbare Logikanordnung (PLA), ein anwenderprogrammierbares Verknüpfungsfeld (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC) oder irgendeine andere Steuerschaltung umfassen. In einigen Fällen können, wenn die Steuerschaltung 111 mehrere Prozessoren umfasst, sie ein Teil einer einzelnen Vorrichtung sein oder können über mehrere Vorrichtungen verteilt sein. Wenn das Rechensystem 110 beispielsweise durch eine einzelne eigenständige Vorrichtung gebildet ist, können die mehreren Prozessoren alle ein Teil der einzelnen eigenständigen Vorrichtung (z. B. eines Mehrprozessor-Desktop-Computers) sein. Wenn das Rechensystem 110 ein verteiltes System ist, das mehrere Rechenvorrichtungen (z. B. mehrere Desktop-Computer) umfasst, können die mehreren Prozessoren über die mehreren Rechenvorrichtungen verteilt sein.
  • In einer Ausführungsform kann die Kommunikationsschnittstelle 113 eine oder mehrere Komponenten umfassen, die dazu eingerichtet sind, mit der Kamera 170 und dem Roboter 150 zu kommunizieren. Die Kommunikationsschnittstelle 113 kann beispielsweise eine Kommunikationsschaltung umfassen, die dazu eingerichtet ist, eine Kommunikation über ein verdrahtetes oder drahtloses Protokoll durchzuführen. Als Beispiel kann die Kommunikationsschaltung eine RS-232-Port-Steuereinheit, eine USB-Steuereinheit, eine Ethernet-Steuereinheit, eine IEEE 802.11-Steuereinheit, eine IEEE 1394-Steuereinheit, eine Bluetooth®-Steuereinheit, eine NFC-Steuereinheit, eine PCI-Bus- oder SCSI-Steuereinheit, irgendeine andere Kommunikationsschaltung oder eine Kombination davon umfassen.
  • In einer Ausführungsform kann das nicht flüchtige computerlesbare Medium 115 eine Informationsspeichervorrichtung wie z. B. einen Computerspeicher umfassen. Der Computerspeicher kann z. B. einen dynamischen Direktzugriffsspeicher (DRAM), einen integrierten Halbleiterspeicher und/oder ein Festplattenlaufwerk (HDD) umfassen. In einigen Fällen kann die Kamerakalibrierung durch computerausführbare Befehle (z. B. einen Computercode) implementiert werden, die auf dem nicht flüchtigen computerlesbaren Medium 115 gespeichert sind. In solchen Fällen kann die Steuerschaltung 111 einen oder mehrere Prozessoren umfassen, die dazu eingerichtet sind, die computerausführbaren Befehle auszuführen, um die Kamerakalibrierung (z. B. die in 9 dargestellten Schritte) durchzuführen. In einer Ausführungsform kann das nicht flüchtige computerlesbare Medium 115 dazu eingerichtet sein, ein oder mehrere Kalibrierbilder, die durch die Kamera 170 (von 1A-1C) erzeugt werden, und/oder ein oder mehrere Kalibrierbilder, die durch die Kamera 180 erzeugt werden, zu speichern.
  • Wie vorstehend angegeben, bezieht sich ein Aspekt der vorliegenden Anmeldung auf das Bestimmen von Kamerakalibrierinformationen für die Kamera 170/180 von 1A-1C. 3A stellt ein Blockdiagramm einer Kamera 370 dar, die eine speziellere Ausführungsform der Kamera 170/180 von 1A-1C sein kann. In dieser Ausführungsform kann die Kamera 370 eine oder mehrere Linsen 371, einen Bildsensor 373 und eine Kommunikationsschnittstelle 375 umfassen. Die Kommunikationsschnittstelle 375 kann dazu eingerichtet sein, mit dem Rechensystem 110 von 1A-1C zu kommunizieren, und kann zur Kommunikationsschnittstelle 113 von 2 des Rechensystems 110 ähnlich sein.
  • In einer Ausführungsform können die eine oder die mehreren Linsen 371 Licht (z. B. sichtbares Licht oder Infrarotstrahlung), das von außerhalb der Kamera 370 kommt, auf den Bildsensor 373 fokussieren. In einer Ausführungsform kann der Bildsensor 373 eine Anordnung von Pixeln umfassen, die dazu eingerichtet sind, ein Bild über jeweilige Pixelintensitätswerte darzustellen. Der Bildsensor 373 kann einen ladungsgekoppelten Vorrichtungs- (CCD) Sensor, einen komplementären Metalloxid-Halbleiter- (CMOS) Sensor, einen Quantenbildsensor (QIS) oder irgendeinen anderen Bildsensor umfassen. In einer Ausführungsform kann der Bildsensor 373 eine Bildebene definieren, die eine zweidimensionale (2D) Ebene sein kann, die mit einer Oberfläche des Bildsensors übereinstimmt.
  • In einer Ausführungsform können die Kamerakalibrierinformationen einen oder mehrere Kamerakalibrierparameter oder spezieller einen oder mehrere jeweilige Werte für den einen oder die mehreren Kamerakalibrierparameter umfassen. Die Kamerakalibrierparameter können intrinsische Kamerakalibrierparameter (auch einfach als intrinsische Kalibrierparameter bezeichnet) umfassen, die eine oder mehrere intrinsische Eigenschaften der Kamera 170/370 beschreiben können. In einigen Fällen können der eine oder die mehreren intrinsischen Kameraparameter jeweils einen Wert aufweisen, der von einem Ort und einer Orientierung der Kamera 170/370 unabhängig ist. In einer Ausführungsform können die Kamerakalibrierparameter Parameter umfassen, die eine Beziehung zwischen der Kamera 170/370 und ihrer externen Umgebung beschreiben. Diese Parameter können beispielsweise Hand-Auge-Kalibrierparameter und/oder Stereokalibrierparameter umfassen. Hand-Auge-Kalibrierparameter können z. B. eine räumliche Beziehung zwischen der Kamera 170/370 und dem Roboter 150 beschreiben. In einigen Fällen können die Hand-Auge-Kalibrierparameter eine Transformationsfunktion umfassen, die eine relative Position und eine relative Orientierung zwischen einem Koordinatensystem der Kamera 170/370 und einem Weltkoordinatensystem beschreibt, das ein Koordinatensystem sein kann, das auf der Basis des Roboters 150 definiert ist. In einer Ausführungsform können die Stereokalibrierparameter z. B. eine räumliche Beziehung zwischen der Kamera 170/370 und irgendeiner anderen Kamera wie z. B. der Kamera 180 beschreiben. In einigen Fällen können die Stereokalibrierparameter eine Transformationsfunktion umfassen, die eine relative Position und relative Orientierung zwischen einem Koordinatensystem der Kamera 170/370 und einem Koordinatensystem der anderen Kamera 180 beschreibt. In einigen Fällen können die Kamerakalibrierinformationen eine Transformationsfunktion umfassen, die eine räumliche Beziehung zwischen der Kamera 170/370 und dem Kalibriermuster 160 (von 1A-1C) beschreibt oder die eine räumliche Beziehung zwischen der Kamera 180 und dem Kalibriermuster 160 beschreibt.
  • In einer Ausführungsform können die intrinsischen Kamerakalibrierparameter Projektionsparameter umfassen. Die Projektionsparameter können eine Kamerabildprojektion beschreiben, die der Kamera zugeordnet ist. Die Kamerabildprojektion kann sich darauf beziehen, wie ein Ort in einem Kamerasichtfeld auf den Bildsensor (z. B. 373) einer Kamera projiziert wird. 3B stellt beispielsweise einen Ort [X Y Z]T Camera außerhalb einer Kamera 370A und in einem Sichtfeld der Kamera 370A dar (der hochgestellte Index T bezieht sich auf eine Transponierte und der tiefgestellte Index von Camera bezieht sich auf die X-, Y- und Z-Koordinatenkomponenten, die in einem Kamerakoordinatensystem ausgedrückt sind). Insbesondere kann die Kamera 370A eine Ausführungsform der Kamera 370 sein und kann eine oder mehrere Linsen 371A und einen Bildsensor 373A umfassen. Das Kamerakoordinatensystem in diesem Beispiel kann ein Koordinatensystem sein, das in Bezug auf einen Ort und eine Orientierung der Kamera 370A definiert ist. Insbesondere stellt 3B das Kamerakoordinatensystem als durch die orthogonalen Koordinatenachsen X c a m e r a ,   Y c a m e r a ,   Z c a m e r a
    Figure DE102021102493A1_0001
    definiert dar, die auf eine Orientierung von verschiedenen Komponenten der Kamera 370A ausgerichtet sein können. In einer Ausführungsform kann Licht vom Ort [X Y Z]T Camera auf eine Bildkoordinate [u v]T Sensor (z. B. eine Pixelkoordinate) in einem Bildsensorkoordinatensystem projiziert werden. Wie in 3B dargestellt, kann das Bildsensorkoordinatensystem in einem Beispiel durch die Koordinatenachsen U s e n s o r ,   V s e n s o r
    Figure DE102021102493A1_0002

    definiert sein, die auf jeweilige Kanten des Bildsensors 373A ausgerichtet sein können. In einer Ausführungsform kann die Weise, in der der Ort [X Y Z]T Camera auf die Bildkoordinate [u v]T Sensor projiziert wird, durch eine Projektionsmatrix K modelliert werden. Die Projektionsmatrix K kann eine Funktion oder spezieller eine lineare Transformation sein, die den Ort [X Y Z]T Camera in die Bildkoordinate [u v]T Sensor auf der Basis der Beziehung [u v 1]T Sensor= K [X/Z Y/Z 1]T Camera umwandelt. Diese Beziehung kann einen Effekt einer Linsenverzerrung (die Linsenverzerrung wird nachstehend genauer erörtert) unberücksichtigt lassen.
  • In einem Beispiel kann die Projektionsmatrix gleich [ f x 0 C x 0 f y C y 0 0 1 ]
    Figure DE102021102493A1_0003
    sein. In diesem Beispiel kann fx ein erster Skalierungsfaktor auf der Basis der Brennweitef von 3B und einer Pixelgröße des Bildsensors 373A entlang der Achse U s e n s o r
    Figure DE102021102493A1_0004
    sein. Ebenso kann fy ein zweiter Skalierungsfaktor auf der Basis einer Brennweite f der Kamera 370A und einer Pixelgröße des Bildsensors 373A entlang der Achse V s e n s o r
    Figure DE102021102493A1_0005
    sein. In einigen Fällen kann fx als Brennweite der Kamera 370A entlang der Achse U s e n s o r
    Figure DE102021102493A1_0006
    betrachtet werden, während fy als Brennweite der Kamera 370A entlang der Achse V s e n s o r
    Figure DE102021102493A1_0007
    betrachtet werden kann. Sowohl fx als auch fy können eine Einheit von Pixeln pro Millimeter aufweisen und können physikalische Messungen mit einer Anzahl von Pixeln am Bildsensor 373A korrelieren. Der Wert Cx kann ein erster Teil eines Hauptpunktversatzes sein und kann auf einer Distanz entlang der Achse U s e n s o r
    Figure DE102021102493A1_0008
    zwischen einem Ursprung des Bildsensorkoordinatensystems und einem Ursprung des Kamerakoordinatensystems basieren. Der Wert Cy kann ein zweiter Teil eines Hauptpunktversatzes sein und kann auf einer Distanz entlang der Achse V s e n s o r
    Figure DE102021102493A1_0009
    zwischen dem Ursprung des Bildsensorkoordinatensystems und dem Ursprung des Kamerakoordinatensystems basieren. In einigen Fällen können Cx und Cy jeweilige Versätze zwischen einem Zentrum eines Bildes, das durch die Kamera 371A erzeugt wird, und einem Ursprung des Bildsensorkoordinatensystems entlang der Achse U s e n s o r
    Figure DE102021102493A1_0010
    bzw. der Achse V s e n s o r
    Figure DE102021102493A1_0011
    beschreiben.
  • In dem obigen Beispiel kann die Projektionsmatrix K als Projektionsparameter betrachtet werden und jedes von fx, fy, Cx und Cy kann eine Komponente der Projektionsmatrix sein. Ferner können jede der Komponenten fx, fy, Cx, Cy und die Brennweite f auch als Projektionsparameter betrachtet werden. In einem solchen Beispiel kann eine Abschätzung der Projektionsmatrix K eine Matrix sein, während eine Abschätzung (auch als abgeschätzter Wert bezeichnet) von fx, fy, Cx oder Cy ein skalarer Wert sein kann.
  • In einer Ausführungsform können die intrinsischen Kamerakalibrierparameter Linsenverzerrungsparameter umfassen, die eine Linsenverzerrung beschreiben können, die der Kamera 170/370/370A oder der Kamera 180 zugeordnet ist. Der eine oder die mehreren Linsenverzerrungsparameter können beispielsweise einen Effekt einer Linsenverzerrung charakterisieren, die durch die eine oder die mehreren Linsen 371A verursacht wird, wie z. B. eine radiale Linsenverzerrung (z. B. Tonnenverzerrung oder Kissenverzerrung) und/oder eine tangentiale Linsenverzerrung. In einer Ausführungsform kann jeder des einen oder der mehreren Linsenverzerrungsparameter ein Parameter eines Linsenverzerrungsmodells sein, das die Linsenverzerrung charakterisiert oder anderweitig beschreibt. Das Linsenverzerrungsmodell kann beispielsweise ein Polynomverzerrungsmodell, ein rationales Verzerrungsmodell oder ein Sichtfeldverzerrungsmodell sein, die nachstehend genauer erörtert werden.
  • In einer Ausführungsform kann ein Linsenverzerrungsmodell eine oder mehrere Funktionen umfassen, die auch als eine oder mehrere Verzerrungsfunktionen bezeichnet werden, die die Linsenverzerrung charakterisieren. In einer solchen Ausführungsform kann ein Linsenverzerrungsparameter ein Parameter der einen oder der mehreren Verzerrungsfunktionen sein. Insbesondere kann die Linsenverzerrung einer Kamera unter Verwendung von einer oder mehreren Verzerrungsfunktionen modelliert werden, die beschreiben, wie eine oder mehrere Linsen (z. B. 371A) der Kamera verursachen, dass ein Merkmal, das tatsächlich bei [X Y Z]T Camera im Sichtfeld der Kamera angeordnet ist, erscheint, als ob das Merkmal stattdessen bei [X̂̂ Ŷ Z]T Camera angeordnet ist. Die Linsenverzerrung kann verursachen, dass eine Beziehung zwischen Orten in einem Kamerasichtfeld und Pixelorten auf einem Bildsensor (z. B. 373A) nicht-linear wird. Als Beispiel können, wenn ein Pixel [u v]T vorhergesagt wird, auf das ein Ort [X Y Z] T Camera projiziert wird, eine erste Verzerrungsfunktion dx und eine zweite Verzerrungsfunktion dy verwendet werden, um die Linsenverzerrung zu berücksichtigen, wie z. B. unter Verwendung der folgenden Gleichung: [ u v 1 ] = K [ X ^ Y ^ 1 ] = K [ d x ( X ˜ , Y ˜ ) d y ( X ˜ , Y ˜ ) 1 ] = K [ d x ( X / Z , Y / Z ) d y ( X / Z , Y / Z ) 1 ]
    Figure DE102021102493A1_0012
  • In dem obigen Beispiel kann sich X̃ auf X/Z beziehen und Ỹ kann sich auf Y/Z beziehen. Die erste Verzerrungsfunktion dx kann z. B. eine nicht-lineare Funktion sein, die X̂ als Funktion von X̃ und Ỹ bestimmt. Die zweite Verzerrungsfunktion dy kann z.B. eine nicht-lineare Funktion sein, die Ŷ als Funktion von X̃ und Ỹ bestimmt. Die Linsenverzerrung ist in der US-Patentanmeldung Nr. 16/295,940 mit dem Titel „Method und System for Performing Automatic Camera Calibration for Robot Control“, deren ganzer Inhalt durch Verweis hierin in seiner Gesamtheit aufgenommen wird, genauer erörtert.
  • Wie vorstehend angegeben, umfassen Beispiele eines Linsenverzerrungsmodells ein Polynomverzerrungsmodell, ein rationales Verzerrungsmodell oder ein Sichtfeldverzerrungsmodell. In einer Ausführungsform kann das Polynomverzerrungsmodell verwendet werden, um die radiale Linsenverzerrung entweder allein oder zusammen mit irgendeinem anderen Typ von Linsenverzerrung (z. B. tangentiale Linsenverzerrung) zu charakterisieren. In einigen Fällen können die Verzerrungsfunktionen dx und dy für das Polynomverzerrungsmodell sein: X ^ = d x ( X ˜ , Y ˜ ) = X ˜ ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) + 2 p 1 X ˜ Y ˜ + p 2 ( r 2 + 2 X ˜ 2 )
    Figure DE102021102493A1_0013
    Y ^ = d y ( X ˜ , Y ˜ ) = Y ˜ ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) + 2 p 2 X ˜ Y ˜ + p 1 ( r 2 + 2 Y ˜ 2 )
    Figure DE102021102493A1_0014
  • Im obigen Beispiel gilt r2 = X̃2 + Ỹ2. Ferner können k1, k2, k3, p1, p2 jeweils ein Linsenverzerrungsparameter sein. In einigen Fällen können einige oder alle der obigen Linsenverzerrungsparameter einen skalaren Wert aufweisen.
  • In einer Ausführungsform können k1, k2 und k3 jeweilige Koeffizienten sein, die die radiale Linsenverzerrung beschreiben, die ein Typ von Linsenverzerrung sein kann, die durch die eine oder die mehreren Linsen (z. B. 371A) verursacht wird, die Licht biegen oder brechen. Insbesondere können k1, k2 und k3 eine erste Polynomkomponente k1r2, eine zweite Polynomkomponente k2r4 bzw. eine dritte Polynomkomponente k3r6 beschreiben. Diese Polynomkomponenten können als radiale Polynomkomponenten bezeichnet werden, da sie die radiale Linsenverzerrung beschreiben und da sie auf dem Term r basieren. Der Term r kann eine Distanz zwischen einem Ort [X Y Z]T Camera und einer Mittelachse der einen oder der mehreren Linsen (z. B. 371A) der Kamera (z. B. 370A) angeben. Die Mittelachse kann beispielsweise eine optische Achse sein, die durch einen Vektor [0 0 Z]T Camera definiert ist, und der Term r kann gleich einer Distanz zwischen [X Y Z] T Camera und [0 0 Z]T Camera sein oder darauf basieren. Ein zunehmender Wert von r kann angeben, dass Licht, das an [X Y Z] T Camera reflektiert, sich entlang eines Pfades fortpflanzt, der von einem Zentrum der einen oder der mehreren Linsen (z. B. 371A) weiter entfernt ist, was mehr radiale Linsenverzerrung verursachen kann.
  • In einer Ausführungsform können die vorstehend erörterten radialen Polynomkomponenten verschiedene Grade der radialen Linsenverzerrung beschreiben, die auch als verschiedene Ordnungen der radialen Linsenverzerrung bezeichnet werden. Die erste radiale Polynomkomponente k1r2 kann beispielsweise als einen Grad von 2 aufweisend betrachtet werden (aufgrund des r2-Terms) und kann in einigen Fällen als radialer Verzerrungseffekt zweiter Ordnung bezeichnet werden. Die zweite radiale Polynomkomponente k2r4 kann als einen Grad von 4 aufweisend betrachtet werden (aufgrund des r4-Terms) und kann in einigen Fällen als radialer Verzerrungseffekt vierter Ordnung bezeichnet werden. Die dritte radiale Polynomkomponente k3r6 kann als einen Grad von 6 aufweisend betrachtet werden (aufgrund des r6-Terms) und kann in einigen Fällen als radialer Verzerrungseffekt sechster Ordnung bezeichnet werden. In diesem Beispiel kann die erste radiale Polynomkomponente k1r2 eine radiale Polynomkomponente niedrigsten Grades unter den mehreren radialen Polynomkomponenten (k1r2, k2r4, k3r6) sein und kann eine radiale Polynomkomponente niedrigsten Grades beschreiben (auch als einen radialen Verzerrungseffekt niedrigster Ordnung oder eine Komponente niedrigster Ordnung der radialen Linsenverzerrung beschreibend bezeichnet). Die erste radiale Polynomkomponente kann beispielsweise eine Komponente zweiter Ordnung der radialen Linsenverzerrung beschreiben, da sie einen r2-Term aufweist. Die zweite radiale Polynomkomponente k2r4 in diesem Beispiel kann eine Komponente höherer Ordnung (z. B. Komponente vierter Ordnung) der radialen Linsenverzerrung relativ zur ersten radialen Polynomkomponente beschreiben. In diesem Beispiel kann die dritte radiale Polynomkomponente eine Polynomkomponente höchster Ordnung unter den mehreren radialen Polynomkomponenten (k1r2, k2r4, k3r6) sein und kann eine Komponente höchster Ordnung der radialen Linsenverzerrung unter den mehreren radialen Polynomkomponenten beschreiben.
  • In dem obigen Beispiel können p1 und p2 (z. B. Gleichung 2 und Gleichung 3) jeweilige Koeffizienten sein, die eine tangentiale Linsenverzerrung beschreiben, die ein Typ von Linsenverzerrung sein kann, die Merkmale in einem Bild ausdehnt. Die tangentiale Linsenverzerrung kann z. B. durch eine oder mehrere Linsen (z. B. 371A) verursacht werden, die nicht vollständig zu einem Bildsensor (z. B. 373A) der Kamera (z. B. 370A) parallel sind. Mit anderen Worten, die tangentiale Linsenverzerrung kann entstehen, wenn eine optische Achse der einen oder der mehreren Linsen (z. B. 371A) nicht vollständig zu einer Ebene des Bildsensors (z. B. 373A) orthogonal ist. Insbesondere kann der Linsenverzerrungsparameter p1 eine tangentiale Polynomkomponente 2p1X̃Ỹ in der ersten Verzerrungsfunktion dx und eine tangentiale Polynomkomponente p1(r2 + 2Ỹ2) in der zweiten Verzerrungsfunktion dy beschreiben. Der Linsenverzerrungsparameter p2 kann eine tangentiale Polynomkomponente p2(r2 + 2X̃2) in der ersten Verzerrungsfunktion dx beschreiben und eine tangentiale Polynomkomponente 2p2X̃Ỹ in der zweiten Verzerrungsfunktion dy beschreiben.
  • In einer Ausführungsform kann das rationale Polynommodell auch verwendet werden, um die radiale Linsenverzerrung oder irgendeinen anderen Typ von Verzerrung zu charakterisieren, und kann die folgenden Verzerrungsfunktionen dx und dy umfassen: X ^ = d x ( X ˜ , Y ˜ ) = X ˜ ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 1 + k 4 r 2 + k 5 r 4 + k 6 r 6 ) + 2 p 1 X ˜ Y ˜ + p 2 ( r 2 + 2 X ˜ 2 )
    Figure DE102021102493A1_0015
    Y ^ = d y ( X ˜ , Y ˜ ) = Y ˜ ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 1 + k 4 r 2 + k 5 r 4 + k 6 r 6 ) + 2 p 2 X ˜ Y ˜ + p 1 ( r 2 + 2 Y ˜ 2 )
    Figure DE102021102493A1_0016
  • Ähnlich zu dem Beispiel, das das Polynomverzerrungsmodell beinhaltet, gilt r2 = X̃2 + Ỹ2 im rationalen Verzerrungsmodell. Ferner kann jedes von k1, k2, k3, k4, k5, k6, p1 und p2 ein Linsenverzerrungsparameter des rationalen Verzerrungsmodells sein. Die Linsenverzerrungsparameter k1, k2, k3, k4, k5, k6 können die radiale Verzerrung beschreiben, wobei die Linsenverzerrungsparameter p1 und p2 die tangentiale Verzerrung beschreiben können.
  • In einer Ausführungsform kann das Sichtfeldmodell die folgenden Verzerrungsfunktionen umfassen: X ^ = d x ( X ˜ ) = X ˜  tan ( r  tan ( ω ) ) tan ( ω )
    Figure DE102021102493A1_0017
    Y ^ = d y ( Y ˜ ) = Y ˜  tan ( r  tan ( ω ) ) tan ( ω )
    Figure DE102021102493A1_0018
  • Im obigen Beispiel gilt r2 = X̃2 + Ỹ2. Ferner ist ω ein Linsenverzerrungsparameter und kann einen skalaren Wert aufweisen.
  • Wie vorstehend angegeben, kann das Abschätzen von Werten für die intrinsischen Kamerakalibrierparameter wie z. B. die Linsenverzerrungsparameter und/oder Projektionsparameter der Kamera 170/370/370A in 1A-1C und 3A-3B die Verwendung der Kamera 170/370/370A beinhalten, um ein oder mehrere Kalibrierbilder zu erzeugen, die ein Kalibriermuster 160 erfassen oder anderweitig darstellen. 4A und 4B stellen eine speziellere Umgebung dar, in der Kalibrierbilder erzeugt werden. Insbesondere stellen 4A und 4B ein Roboterbetriebssystem 400 dar, das eine Ausführungsform des Roboterbetriebssystems 100A oder 100B (von 1B und 1C) sein kann. Das Roboterbetriebssystem 400 umfasst das Rechensystem 110, einen Roboter 450 und eine Kamera 470. Ferner kann ein Kalibriermuster 460 auf dem Roboter 450 angeordnet sein. Der Roboter 450, die Kamera 470 und das Kalibriermuster 460 können eine Ausführungsform des Roboters 150, der Kamera 170 bzw. des Kalibriermusters 160 (von 1A-1C) sein. In einer Ausführungsform kann, wenn das System 400 eine Kamera zusätzlich zur Kamera 470 umfasst, die Kamera 470 dann als eine erste Kamera 470 bezeichnet werden.
  • In der Ausführungsform von 4A kann der Roboter 450 eine Basis 452 und einen Roboterarm 454, der relativ zur Basis 452 beweglich ist, umfassen. Der Roboterarm 454 kann eine oder mehrere Verbindungen wie z. B. Verbindungen 454A bis zur Verbindung 454E umfassen. In einer Ausführungsform kann die Basis 452 verwendet werden, um den Roboter 450 z. B. an einem Montagerahmen oder einer Montageoberfläche (z. B. Boden eines Warenlagers) zu montieren. In einer Ausführungsform kann der Roboter 450 eine Vielzahl von Motoren oder anderen Aktuatoren umfassen, die dazu eingerichtet sind, den Roboterarm 454 durch Drehen oder anderweitiges Betätigen der Verbindungen 454A-454E zu bewegen. In einigen Fällen kann der Roboter 454 einen Endeffektor wie z. B. eine Roboterhand umfassen, der an einer der Verbindungen 454A-454E befestigt ist. Das Kalibriermuster 460 kann am Endeffektor oder an einer der Verbindungen (z. B. 454E) angeordnet sein. In einer Ausführungsform können die Verbindungen 454A-454E drehbar aneinander befestigt sein und können in Reihe verbunden sein, z. B. um eine kinematische Kette zu bilden, die das Kalibriermuster 460 in verschiedene Posen in einem Kamerasichtfeld 410 der Kamera 470 bewegen kann, wie z.B. durch Drehung der Vielzahl von Motoren. Die verschiedenen Posen können sich auf verschiedene Kombinationen eines jeweiligen Orts und einer jeweiligen Orientierung des Kalibriermusters 460 beziehen. 4A stellt beispielsweise den Roboterarm 454 dar, der das Kalibriermuster 460 in eine erste Pose bewegt, während 4B den Roboterarm 454 darstellt, der das Kalibriermuster 460 in eine zweite Pose bewegt, die von der ersten Pose verschieden ist.
  • In einigen Fällen können jeweilige Abschätzungen der Linsenverzerrungsparameter und/oder Projektionsparameter verwendet werden, um eine Hand-Auge-Kalibrierung durchzuführen, die das Bestimmen von anderen Kamerakalibrierinformationen, wie z. B. einer Transformationsfunktion, die eine Beziehung zwischen der Kamera 470 und dem Roboter 450 beschreibt, beinhalten kann. 4B stellt beispielsweise ein Kamerakoordinatensystem, das durch x C a m e r a ,   y C a m e r a ,   z C a m e r a
    Figure DE102021102493A1_0019
    definiert ist, und ein Weltkoordinatensystem, das durch x w o r l d ,   y w o r l d ,   z w o r l d
    Figure DE102021102493A1_0020
    definiert ist, dar. Das Weltkoordinatensystem kann ein Punkt sein, der relativ zur Basis 452 des Roboters 450 stationär ist. In dem Beispiel von 4B kann die Hand-Auge-Kalibrierung das Bestimmen einer Transformationsmatrix beinhalten, die einen relativen Ort und eine relative Orientierung zwischen dem Kamerakoordinatensystem und dem Weltkoordinatensystem beschreibt.
  • In einer Ausführungsform kann das Kalibriermuster 460 direkt auf den Roboterarm 454 gedruckt sein. In einer Ausführungsform, wie in 4A und 4B dargestellt, kann das Kalibriermuster 460 auf eine flache Kalibrierplatte gedruckt sein. Die Kalibrierplatte kann aus einem Material, das gegen eine durch Temperatur induzierte Verwerfung beständig ist, wie z. B. einer Kohlenstofffaser, ausgebildet sein. 4C stellt ein Beispiel des Kalibriermusters 460 dar, das eine Vielzahl von Musterelementen 4611 bis 46125 umfassen kann, die entlang imaginären geraden Gitterlinien (4631 bis 4635 und 4651 bis 4655 ) eines rechteckigen Gitters angeordnet sind. Die imaginären Gitterlinien können beispielsweise einen ersten Satz von gleichmäßig beabstandeten geraden Linien 4631 bis 4635 und einen zweiten Satz von gleichmäßig beabstandeten geraden Linien 4651 bis 4655 umfassen, wobei der erste Satz von imaginären Gitterlinien 4631 bis 4635 zum zweiten Satz von imaginären Gitterlinien 4651 bis 4655 orthogonal ist. In dem Beispiel von 4C kann jedes der Musterelemente 4611 bis 46125 ein kreisförmiger Punkt sein. In einer Ausführungsform können sich die Musterelemente 4611 bis 46125 in der Größe unterscheiden. Die Musterelemente 4618 , 46113 und 46114 weisen beispielsweise einen ersten Durchmesser auf, während alle restlichen Musterelemente einen zweiten Durchmesser aufweisen, der kleiner ist als der erste Durchmesser. In einer Ausführungsform weist die Vielzahl von Musterelementen 4611 bis 46125 (eine) definierte Größe(n) und einen definierten Abstand zwischen ihnen auf. Der erste Durchmesser und der zweite Durchmesser können beispielsweise Werte sein, die durch einen Hersteller des Kalibriermusters 460 vor oder während der Herstellung davon definiert werden, und können folglich bekannte, vordefinierte Werte während der Kamerakalibrierung sein. Ferner kann die Vielzahl von Musterelementen 4611 bis 46125 eine definierte Distanz Δd1 (die auch eine vordefinierte Distanz sein kann) entlang der Gitterlinien 4651 bis 4655 aufweisen und eine definierte Distanz Δd2 entlang der Gitterlinien 4631 bis 4635 aufweisen, wobei die definierten Distanzen bekannte Werte während der Kamerakalibrierung sein können. In einer Ausführungsform ist Δd1 gleich Δd2. In einer Ausführungsform können die Musterelemente 4611 bis 46125 alle dieselbe Größe (z. B. denselben Durchmesser) aufweisen und das Kalibriermuster 460 kann ferner ein Merkmal (z. B. eine rotationsasymmetrische Form) umfassen, das eine Orientierung des Kalibriermusters 460 angibt.
  • Wie vorstehend angegeben, kann das Musterkoordinatensystem in Bezug auf ein Kalibriermuster wie z. B. das Kalibriermuster 460 definiert sein. In einer Ausführungsform, wie in 4B und 4C dargestellt, kann ein Musterelement an oder nahe einem Zentrum des Kalibriermusters 460 wie z. B. das Musterelement 46113 einen Ursprung des Kalibrierkoordinatensystems definieren. Das heißt, das Musterelement 46113 kann eine Koordinate [0 0 0]T Pattern aufweisen. In dieser Ausführungsform kann die Achse X P a t t e r n
    Figure DE102021102493A1_0021
    auf die imaginären Gitterlinien 4631 bis 4635 ausgerichtet sein, während die Achse Y P a t t e r n
    Figure DE102021102493A1_0022
    auf die imaginären Gitterlinien 4651 bis 4655 ausgerichtet sein kann und die Achse Z P a t t e r n
    Figure DE102021102493A1_0023
    zu einer durch das Kalibriermuster 460 gebildeten Ebene orthogonal ist.
  • Wie vorstehend angegeben, bezieht sich ein Aspekt der vorliegenden Anmeldung auf das Abschätzen von Linsenverzerrungsparametern in verschiedenen Stufen (auch als verschiedene Stufen bezeichnet), um eine Genauigkeit zu verbessern, mit der die Linsenverzerrungsparameter abgeschätzt werden. Die verschiedenen Stufen können z. B. eine Sequenz von Stufen sein, in denen eine Ausgabe einer Stufe in der Sequenz als Eingabe für eine nächste Stufe in der Sequenz (z. B. als anfängliche Abschätzung für die nächste Stufe) verwendet wird. Eine oder mehrere der Stufen können sich auf das Abschätzen eines speziellen Linsenverzerrungsparameters konzentrieren, während andere Linsenverzerrungsparameter als null oder irgendein anderer fester Wert behandelt werden und/oder andere Linsenverzerrungsparameter ignoriert werden. 5 stellt ein Ablaufdiagramm dar, das ein Verfahren 500 zum Abschätzen von Linsenverzerrungsparametern in einer Weise darstellt, die sich auf die vorstehend erörterten Merkmale bezieht.
  • In einer Ausführungsform wird das Verfahren 500 durch die Steuerschaltung 111 des Rechensystems 110 von 1A bis 4 durchgeführt und kann als Teil des Durchführens der Kamerakalibrierung durchgeführt werden. Wie in 2 dargestellt, kann das Rechensystem 110 eine Kommunikationsschnittstelle 113 umfassen, die dazu eingerichtet ist, mit einer Kamera (z. B. 470) und/oder mit einem Roboter (z. B. 450) zu kommunizieren. In einer Ausführungsform kann das Verfahren 500 durchgeführt werden, wenn die Kamera (z. B. 470) ein Kalibrierbild erzeugt hat. Das Kalibrierbild kann ein Kalibriermuster (z. B. 460) erfassen oder anderweitig darstellen, das sich in einem Kamerasichtfeld (z. B. 410) der Kamera (z. B. 470) befindet. Wie vorstehend mit Bezug auf 4C angegeben, kann das Kalibriermuster (z. B. 460) in diesem Beispiel eine Vielzahl von Musterelementen (z. B. 4611 bis 46125 ) umfassen. In einer Ausführungsform kann die Vielzahl von Musterelementen eine definierte räumliche Anordnung aufweisen. Sie können beispielsweise entlang eines orthogonalen Gitters angeordnet sein und benachbarte Musterelemente entlang des Gitters können einen definierten Abstand aufweisen. In einigen Fällen kann der Abstand während oder vor der Herstellung des Kalibriermusters (z. B. 460) definiert werden, in welchem Fall der Abstand als vordefiniert bezeichnet werden kann.
  • In einigen Fällen können die Musterelemente (z. B. 4611 bis 46125 ) jeweilige definierte Musterelementkoordinaten in einem Musterkoordinatensystem aufweisen (das ein Koordinatensystem sein kann, das in Bezug auf einen Ort und eine Orientierung des Kalibriermusters definiert ist). Die definierten Musterelementkoordinaten können auch als definierte Musterelementorte bezeichnet werden und können jeweilige physische Orte der Musterelemente (z. B. 4611 bis 46125 ) in Bezug auf einen Ort und eine Orientierung des Kalibriermusters (z. B. 460) oder spezieller in Bezug auf das Musterkoordinatensystem identifizieren. Die definierten Musterelementorte oder Musterelementkoordinaten können beispielsweise [X Y Z]T-Koordinaten oder spezieller [X1 Y1 Z1]T Pattern bis [X25 Y25 Z25]T Pattem sein, die jeweilige physische Orte der Musterelemente 4611 bis 46125 im Musterkoordinatensystem definieren.
  • In einer Ausführungsform kann das Verfahren 500 von 5 einen Schritt 501 umfassen, in dem das Rechensystem 110 oder spezieller die Steuerschaltung 111 davon das Kalibrierbild empfängt, das durch die Kamera (z. B. 470) erzeugt wird. In einigen Fällen kann Schritt 501 beinhalten, dass das Rechensystem 110 das Kalibrierbild direkt von der Kamera (z. B. 470) wie z. B. über die Kommunikationsschnittstelle 113 von 2 empfängt. In einigen Fällen kann das Kalibrierbild im nicht flüchtigen computerlesbaren Medium 115 (z. B. einem Festplattenlaufwerk) oder auf irgendeiner anderen Vorrichtung gespeichert worden sein und Schritt 501 kann das Empfangen des Kalibrierbildes direkt vom nicht flüchtigen computerlesbaren Medium 115 beinhalten. In einem Beispiel kann das Kalibrierbild, das in Schritt 501 empfangen wird, eines der Kalibrierbilder 680A-680E in 6A-6E sein, die fünf Kalibrierbilder darstellen, die z. B. fünf unterschiedlichen jeweiligen Lagen des Kalibriermusters (z. B. 460) im Kamerasichtfeld (z. B. 410) entsprechen. In einigen Fällen kann das empfangene Kalibrierbild in Schritt 501 einen Effekt einer Linsenverzerrung aufzeigen, der durch eine oder mehrere Linsen der Kamera (z. B. 470) eingeführt wird. Die Linsenverzerrung kann beispielsweise einen Biegungs- oder anderen Verwerfungseffekt erzeugen, der eine Krümmung in ein Bild einführt. Als Beispiel stellen 6A, 6C und 6E Kalibrierbilder 680A, 680C und 680E dar, in denen das Kalibriermuster (z. B. Kalibriermuster 460 von 4C) als gekrümmte Kanten aufweisend erscheint, selbst wenn das Kalibriermuster (z. B. 460) tatsächlich gerade Kanten aufweist.
  • In einer Ausführungsform kann das Verfahren 500 einen Schritt 503 umfassen, in dem das Rechensystem 110 eine Vielzahl von Bildkoordinaten (auch als Bildmusterelementorte bezeichnet) bestimmt, die jeweilige Orte angeben oder anderweitig darstellen, an denen die Vielzahl von Musterelementen im Kalibrierbild erscheint. Wie in 6E dargestellt, kann beispielsweise die Vielzahl von Bildkoordinaten jeweilige Pixelkoordinaten [u1 v1]Tbis [u25 v25]T sein, die angeben, wo die Musterelemente 4611 bis 46125 jeweils im Kalibrierbild erscheinen. In einigen Fällen kann jede der Bildkoordinaten eine Pixelkoordinate [un vn] T sein, die angibt, wo ein Zentrum des jeweiligen Musterelements 461n im Kalibrierbild erscheint. In diesem Beispiel können die Pixelkoordinaten für die Musterelemente 4611 bis 46125 zusammen mit entsprechenden definierten Musterelementkoordinaten für die Musterelemente 4611 bis 46125 verwendet werden, um Kamerakalibrierinformationen zu bestimmen, wie nachstehend mit Bezug auf die Schritte 505 bis 590 genauer erörtert.
  • Insbesondere können die Schritte 505 bis 509 des Verfahrens 500 ein Teil eines Kamerakalibrierprozesses zum Abschätzen eines Satzes von Projektionsparametern und eines Satzes von Linsenverzerrungsparametern sein. In Schritt 505 kann das Rechensystem 110 auf der Basis der Vielzahl von Bildkoordinaten (z. B. [u1 v1]Tbis [u25 v25]T) und der definierten Musterelementkoordinaten (z. B. [X1 Y1 Z1]T Pattern bis [X25 Y25 Z25]T Pattern) eine Abschätzung für einen ersten Linsenverzerrungsparameter des Satzes von Linsenverzerrungsparametern bestimmen, während ein zweiter Linsenverzerrungsparameter des Satzes von Linsenverzerrungsparametern als null abgeschätzt wird, oder ohne den zweiten Linsenverzerrungsparameter abzuschätzen.
  • In einer Ausführungsform kann Schritt 505 ein Teil einer ersten Kalibrierstufe sein, in der der erste Linsenverzerrungsparameter separat vom zweiten Linsenverzerrungsparameter abgeschätzt wird. 7A stellt beispielsweise einen Kamerakalibrierprozess dar, der die erste Stufe (als Stufe 1 bezeichnet), gefolgt von einer zweiten Stufe (als Stufe 2 bezeichnet) umfasst. In einigen Fällen kann die zweite Stufe teilweise oder vollständig an die erste Stufe anschließen. Die erste Kalibrierstufe kann sich auf die Bestimmung einer Abschätzung für den ersten Linsenverzerrungsparameter konzentrieren, während der zweite Linsenverzerrungsparameter auf einen festen Wert (z. B. null) eingeschränkt wird oder der zweite Linsenverzerrungsparameter ignoriert wird. Das Abschätzen des ersten Linsenverzerrungsparameters separat vom zweiten Linsenverzerrungsparameter kann die Genauigkeit einer Abschätzung für den ersten Linsenverzerrungsparameter verbessern. In einigen Fällen kann die Abschätzung des ersten Linsenverzerrungsparameters von der ersten Stufe an die zweite Stufe ausgegeben werden, wie in 7A dargestellt, die die Abschätzung des ersten Linsenverzerrungsparameters verwenden kann, um eine Genauigkeit zu verbessern, mit der der zweite Linsenverzerrungsparameter abgeschätzt wird. Die Ausgabe der ersten Stufe (auch als erste Runde bezeichnet) kann beispielsweise in der zweiten Stufe (auch als zweite Runde bezeichnet) als anfängliche Abschätzung (z. B. anfängliche Vermutung) des ersten Linsenverzerrungsparameters in der zweiten Stufe verwendet werden. Die anfängliche Abschätzung kann verwendet werden, um eine Abschätzung des zweiten Linsenverzerrungsparameters zu bestimmen und/oder eine aktualisierte Abschätzung des ersten Linsenverzerrungsparameters zu bestimmen.
  • Als Beispiel kann das Verfahren 500 das Abschätzen eines Satzes von Linsenverzerrungsparametern beinhalten, die sich auf alle Linsenverzerrungsparameter eines Linsenverzerrungsmodells beziehen können, das für die Kamerakalibrierung des Verfahrens 500 verwendet wird. Wenn beispielsweise das Linsenverzerrungsmodell das Polynomverzerrungsmodell ist, kann der Satz von Linsenverzerrungsparametern k1, k2, k3, p1 und p2 sein. Wenn das Linsenverzerrungsmodell das rationale Polynomverzerrungsmodell ist, kann der Satz von Linsenverzerrungsparametern k1, k2, k3, k4, k5, k6, p1 und p2 sein. In einigen Kamerakalibrierprozessen kann der Satz von Linsenverzerrungsparametern zusammen in einer einzelnen Stufe (auch als einzelne Runde bezeichnet) bestimmt werden. Die einzelne Stufe kann beispielsweise eine Krümmungsverringerungsstufe (auch als Krümmungsverringerungsrunde bezeichnet) sein, in der ein Inverses der Verzerrungsfunktionen dx, dy (das heißt dx -1, dy -1) auf die Bildkoordinaten (z. B. [u1 v1]Tbis [u25 v25] T) oder allgemeiner auf das Kalibrierbild angewendet wird, um eine modifizierte Version des Kalibrierbildes zu erzeugen. In einer solchen Krümmungsverringerungsstufe kann eine Optimierungstechnik (z. B. Levenberg-Marquardt-Algorithmus, Nelder-Mead-Algorithmus oder Broyden-Fletcher-Goldfarb-Shanno- (BFGS) Algorithmus) jeweilige Werte für alle des Satzes von Linsenverzerrungsparametern k1, k2, k3, p1 und p2 und/oder aller der Projektionsparameter fx, fy, cx und/oder cy anpassen, um einen optimalen Satz von Werten für alle der Linsenverzerrungsparameter und/oder Projektionsparameter zu finden, der ein Ausmaß an Krümmung in der modifizierten Version des Kalibrierbildes minimiert, da die Krümmung eine Verwerfung darstellen kann, die durch die Linsenverzerrung verursacht wird. Da jedoch die Verzerrungsfunktionen dx, dy und ihr Inverses nicht-linear sind, kann das Finden von optimalen Werten für alle Linsenverzerrungsparameter k1, k2, k3, p1 und p2 in einer einzelnen Stufe schwierig sein und kann verursachen, dass resultierende Abschätzungen für die Linsenverzerrungsparameter suboptimal sind oder allgemeiner an Genauigkeit verlieren. Wie vorstehend angegeben, beinhaltet folglich eine Ausführungsform der vorliegenden Anmeldung und spezieller von Schritt 505 eine Stufe, die sich auf die Bestimmung einer Abschätzung für einen ersten Linsenverzerrungsparameter wie z. B. k1 konzentriert, während ein oder mehrere andere Linsenverzerrungsparameter auf einen festen Wert (z. B. null) eingeschränkt werden, oder ohne Abschätzung von einem oder mehreren anderen Linsenverzerrungsparametern.
  • In einer Ausführungsform kann der erste Linsenverzerrungsparameter, der in Schritt 505 abgeschätzt wird, einen ersten Typ von Linsenverzerrung beschreiben, während Schritt 505 das Ignorieren von einem oder mehreren anderen Linsenverzerrungsparametern beinhalten kann, die einen zweiten Typ von Linsenverzerrung beschreiben (oder Behandeln des zweiten Typs von Linsenverzerrung als vernachlässigbar), wobei der eine oder die mehreren Linsenverzerrungsparameter, die ignoriert werden, den zweiten Linsenverzerrungsparameter umfassen können. Der erste Linsenverzerrungsparameter, der in Schritt 505 abgeschätzt wird, kann beispielsweise k1 sein, der eine radiale Linsenverzerrung beschreibt. In diesem Beispiel kann das Rechensystem 110 in Schritt 505 einen Effekt der tangentialen Linsenverzerrung ignorieren oder sie als vernachlässigbar behandeln, um sich auf die Abschätzung eines Linsenverzerrungsparameters für die radiale Linsenverzerrung zu konzentrieren. Folglich kann das Rechensystem 110 k1 (das die radiale Linsenverzerrung beschreibt) abschätzen, während p1 und/oder p2 (die die tangentiale Linsenverzerrung beschreiben) als null abgeschätzt werden oder nicht abgeschätzt werden. In einem solchen Beispiel kann der Linsenverzerrungsparameter k1 eine Komponente der Linsenverzerrung beschreiben, die einen viel größeren Effekt als eine durch p1 oder p2 beschriebene Komponente aufweist.
  • In einer Ausführungsform kann der erste Linsenverzerrungsparameter, der in Schritt 505 abgeschätzt wird, den ersten Typ von Linsenverzerrung beschreiben, wie z. B. eine radiale Linsenverzerrung, während dieser Schritt auch das Ignorieren von einem oder mehreren Linsenverzerrungsparametern beinhalten kann, die einen gleichen Typ von Linsenverzerrung beschreiben, wobei der eine oder die mehreren Linsenverzerrungsparameter, die ignoriert werden, den zweiten Linsenverzerrungsparameter umfassen können. Schritt 505 kann beispielsweise das Bestimmen einer Abschätzung für k1 beinhalten, das eine radiale Polynomkomponente niedrigster Ordnung k1r2 (auch als radiale Polynomkomponente niedrigsten Grades oder radialer Verzerrungseffekt niedrigster Ordnung bezeichnet) zum Beschreiben einer radialen Linsenverzerrung unter einem Satz von radialen Polynomkomponenten (z. B. k1r2, k2r4, k3r6) beschreiben kann, die eine radiale Linsenverzerrung beschreiben. Wie vorstehend erörtert, können die Linsenverzerrungsparameter k2 und k3 beide radiale Polynomkomponenten höherer Ordnung (k2r4, k3r6) relativ zum Linsenverzerrungsparameter k1 beschreiben. In einer Ausführungsform kann das Rechensystem 110 in Schritt 505 annehmen, dass die radiale Polynomkomponente niedrigster Ordnung k1r2 einen viel größeren Effekt als die radialen Polynomkomponenten höherer Ordnung wie z. B. k2r4, k3r6 aufweist. Folglich kann das Rechensystem 110 in Schritt 505 (z. B. in Stufe 1) sich auf die Abschätzung von k1 konzentrieren und kann Effekte von radialen Polynomkomponenten höherer Ordnung k2r4, k3r6 ignorieren oder ihre Effekte als vernachlässigbar behandeln. Mit anderen Worten, das Rechensystem 110 kann in Schritt 505 eine Abschätzung für k1 bestimmen, während k2 und/oder k3 als null abgeschätzt werden oder nicht abgeschätzt werden.
  • In einigen Fällen können die obigen Ausführungsformen für Schritt 505 kombiniert werden. Schritt 505 kann beispielsweise eine Abschätzung für k1 bestimmen, das der erste Linsenverzerrungsparameter sein kann, während (i) p1 und/oder p2 als null abgeschätzt werden oder nicht abgeschätzt werden und (ii) während k2 und/oder k3 als null abgeschätzt werden oder nicht abgeschätzt werden. 7B stellt beispielsweise ein spezielleres Beispiel dar, in dem Schritt 505 ein Teil einer ersten Stufe, als Stufe 1 bezeichnet, sein kann, die eine Abschätzung k1, stagel_estimate für den Linsenverzerrungsparameter k1 bestimmt, der ein erster Linsenverzerrungsparameter sein kann. Wie vorstehend angegeben, kann die Abschätzung für den ersten Linsenverzerrungsparameter bestimmt werden, während eine Abschätzung für einen zweiten Linsenverzerrungsparameter als null bestimmt wird, oder ohne Abschätzen der Abschätzung für den zweiten Linsenverzerrungsparameter. In dem Beispiel von 7B kann der zweite Linsenverzerrungsparameter einer von k2, k3, p1 oder p2 sein, so dass k2, stage1_estimate, k3, stage1_estimate, P1, stage1_estimate oder p2, stage1_estimate, als null bestimmt werden oder nicht bestimmt werden. Insbesondere kann das Beispiel von 7B das Bestimmen von k1, stagel_estimate beinhalten, während Abschätzungen für alle restlichen Linsenverzerrungsparameter eines Linsenverzerrungsmodells als null bestimmt werden oder während Abschätzungen für alle restlichen Linsenverzerrungsparameter nicht bestimmt werden. Insbesondere wenn das Linsenverzerrungsmodell das Polynommodell ist, dann werden k2, stage1_estimate, k3, stage1_estimate, p1, stage1_estimate und p2, stage1_estimate in Stufe 1 als null bestimmt oder werden in Stufe 1 nicht bestimmt, wie in 7B dargestellt. Wenn das Linsenverzerrungsmodell das rationale Polynommodell ist, dann werden k2,stage1_estimate; k3,stage1 _estimate; k4,stagel_estimate; k5,stage1_estimate; p1, stagel_estimate und p2, stage1_estimate in Stufe 1 als null bestimmt oder werden nicht bestimmt.
  • In einigen Implementierungen kann das Beispiel in 7B das Lösen der folgenden Gleichungen des Polynommodells für k1 beinhalten, während k2, k3, p1 und p2 auf null eingeschränkt werden. X ^ = d x ( X ˜ , Y ˜ ) = X ˜ ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) + 2 p 1 X ˜ Y ˜ + p 2 ( r 2 + 2 X ˜ 2 ) Y ^ = d y ( X ˜ , Y ˜ ) = Y ˜ ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) + 2 p 2 X ˜ Y ˜ + p 1 ( r 2 + 2 Y ˜ 2 ) [ u v 1 ] = K [ X ^ Y ^ 1 ] = K [ d x ( X ˜ , Y ˜ ) d y ( X ˜ , Y ˜ ) 1 ] = K [ d x ( X / Z , Y / Z ) d y ( X / Z , Y / Z ) 1 ] k = [ f x 0 C x 0 f y C y 0 0 1 ] .
    Figure DE102021102493A1_0024
  • Diese Gleichungen beinhalten die Verzerrungsfunktionen des Polynomverzerrungsmodells und beinhalten die Projektionsmatrix, die vorstehend erörtert sind. In diesem Beispiel können die Werte von [u v 1]T aus dem Kalibrierbild (z. B. 680E von 6E) bestimmt werden, während die Werte von X̃, Ỹ auf der Basis der definierten Musterelementkoordinaten bestimmt werden können. In einigen Fällen können X̃,Ỹ relativ zum Kamerakoordinatensystem (z. B. zum Kamerakoordinatensystem von 3B und 4B) ausgedrückt werden und können aus den definierten Musterelementkoordinaten auf der Basis einer Transformationsfunktion T PATTERN CAMERA bestimmt werden, wie z. B. einer Matrix, die eine räumliche Beziehung zwischen der Kamera (z. B. 470) und dem Kalibriermuster (z. B. 460) beschreibt. In solchen Fällen können Parameterwerte T PATTERN CAMERA über den Perspektive-n-Punkt-Algorithmus oder irgendeine andere Technik bestimmt werden. In einer Ausführungsform können die obigen Gleichungen unter Verwendung irgendeiner Technik gelöst werden, wie z. B. der Techniken, die in „A Flexible New Technique for Camera Calibration,“ Technical Report MSR-TR-98-71, von Zhengyou Zhang (auch als Zhang-Algorithmus bezeichnet) erörtert sind, deren gesamter Inhalt durch Verweis hierin in seiner Gesamtheit aufgenommen wird.
  • In einigen Implementierungen kann Schritt 505 im Beispiel von 7B das Lösen von einer oder mehreren Gleichungen beinhalten, die eine vereinfachte Verzerrungsfunktion dx _simplified oder dy _simplified beinhalten, die durch Festlegen von k2, k3, p1 und p2 auf null erhalten werden kann: d x _ s i m p l i f i e d = X ˜ ( 1 + k 1 r 2 )
    Figure DE102021102493A1_0025
    d y _ s i m p l i f i e d = Y ˜ ( 1 + k 1 r 2 )
    Figure DE102021102493A1_0026
  • Das Rechensystem 110 kann in Schritt 505 beispielsweise die vereinfachten Verzerrungsfunktionen dx _simplified und dy _simplified vom nicht flüchtigen computerlesbaren Medium 115 abrufen oder allgemeiner empfangen und sie zusammen mit den anderen vorstehend erörterten Gleichungen (z. B. Gleichung 9 und Gleichung 10) lösen. In einem solchen Beispiel kann Schritt 505 eine Abschätzung für k1 (das heißt k1, stage1_estimate) bestimmen, während jeweilige Abschätzungen für alle restlichen Linsenverzerrungsparameter des Satzes von Linsenverzerrungsparametern nicht bestimmt werden.
  • In einer Ausführungsform kann Schritt 505 auch das Bestimmen von jeweiligen Abschätzungen für einen oder mehrere Projektionsparameter beinhalten. Diese Bestimmung kann jedoch in einigen Fällen einer oder mehreren Einschränkungen unterworfen sein. Wie in 7B dargestellt, können beispielsweise jeweilige Abschätzungen für die Projektionsparameter fx, fy, cx und cyauch bestimmt werden, können jedoch der Einschränkung unterworfen sein, dass fx,stage1_ estimate= fy,stage1_estimate. Insbesondere kann das Rechensystem 110 annehmen, dass fx und fy sehr ähnliche Werte aufweisen, und kann sie folglich so einschränken, dass sie in der Stufe 1 dieselbe Abschätzung aufweisen, um die Komplexität der Stufe zu verringern. Das Beispiel in 7B kann ferner die Einschränkung auferlegen, dass cx,stagel_estimateund Cy,stage1_estimate jeweilige feste Werte aufweisen. Als Beispiel können Cx,stage1_estimateund cy,stage1_estimatejeweils auf null eingeschränkt werden. In einem anderen Beispiel, wie in 7B dargestellt, kann cx,stage1_estimate auf ein Zentrum des Kalibrierbildes (z. B. 680E) entlang der u Achse
    Figure DE102021102493A1_0027
    von 3B eingeschränkt werden und cy,stage1_estimatekann auf ein Zentrum des Kalibrierbildes entlang einer v Achse
    Figure DE102021102493A1_0028
    von 3B eingeschränkt werden. Wenn beispielsweise das Kalibrierbild eine Größe von a Pixeln mal b Pixeln aufweist, kann cx,stage1_estimate so eingeschränkt werden, dass es gleich a/2 ist, und cy,stage1_estimate kann so eingeschränkt werden, dass es gleich b/2 ist. Die obigen Einschränkungen können die Abschätzung von Parameterwerten in der Stufe 1 vereinfachen. Ferner kann das Einschränken der Abschätzungen der Projektionsparameter ermöglichen, dass sich die Stufe 1 auf das Optimieren einer Abschätzung des Linsenverzerrungsparameters k1 konzentriert, um eine Genauigkeit der Abschätzung zu verbessern.
  • Mit Rückkehr zu 5 kann das Verfahren 500 in einer Ausführungsform einen Schritt 507 umfassen, in dem das Rechensystem 110, nachdem die Abschätzung des ersten Linsenverzerrungsparameters bestimmt ist, eine Abschätzung für den zweiten Linsenverzerrungsparameter auf der Basis der Abschätzung des ersten Linsenverzerrungsparameters bestimmt. 8 stellt beispielsweise ein Beispiel dar, in dem Schritt 507 ein Teil einer zweiten Stufe, als Stufe 2 bezeichnet, sein kann, in der eine Abschätzung k2,stage2_estimate für den Linsenverzerrungsparameter k2, eine Abschätzung p1,stage2_estimate für den Linsenverzerrungsparameter p1 und eine Abschätzung p2,stage2_estimate für den Linsenverzerrungsparameter p2 auf der Basis von abgeschätzten Werten der Stufe 1 bestimmt werden, die die Abschätzung k1,stage1_estimate umfasst. In dem Beispiel von 8 kann der zweite Linsenverzerrungsparameter von Schritt 507 k2, p1 oder p2 sein. In einigen Fällen, wie weiter in 8 dargestellt, kann eine andere Abschätzung für den ersten Linsenverzerrungsparameter k1 (das heißt k1,stage2_estimate) in der Stufe 2 auf der Basis der Abschätzung k1,stage1_estimate aus der Stufe 1 bestimmt werden.
  • Die Stufe 2 in 8 kann beispielsweise auch das Lösen der obigen Gleichungen beinhalten, die dx, dy und die Projektionsmatrix beinhalten. In einer Ausführungsform kann die Abschätzung k1,stage1_estimate als anfängliche Vermutung (oder allgemeiner anfängliche Abschätzung) für k1 verwendet werden, wenn die obigen Gleichungen während der Stufe 2 gelöst werden. Da sich die Stufe 1 auf das Abschätzen von k1 konzentriert, kann ihre Abschätzung k1,stage1_estimate ein hohes Genauigkeitsniveau, was zu mehr Genauigkeit in der Stufe 2 führt, und /oder eine verringerte Rechenzeit aufweisen. Das höhere Genauigkeitsniveau in der Stufe 2 kann für k2,stage2_estimate, p1,stage2_estimate, p2,stage2_estimate sowie für k1,stage2_estimate gelten. In einigen Fällen kann die Stufe 2 ferner eine oder mehrere jeweilige Abschätzungen fx, stage2_estimate, fy, stage2_estimate, cx, stage2_estimate und/oder cy, stage2_estimate für einen oder mehrere Projektionsparameter auf der Basis der abgeschätzten Werte von der Stufe 1 (z. B. auf der Basis von k1,stage1_estimate, fx,stage1_estimate, cx,stage1_estimate und/oder cy,stage1_estimate) bestimmen. Die Stufe 2 kann auch die Genauigkeit der jeweiligen Abschätzungen für einen oder mehrere Projektionsparameter durch Verlassen auf die Ausgabe der Stufe 1 als anfängliche Vermutungen verbessern. In einer Ausführungsform können die jeweiligen Abschätzungen für die Linsenverzerrungsparameter und/oder Projektionsparameter, die in Stufe 2 bestimmt werden (z. B. k2,stage2_estimate, p1,stage2_estimate, p2,stage2_estimate, k1,stage2_estimate, fx,stage2_estimate, fy,stage2_estimate, cx,stage2_estimate und/oder cy,stage2_estimate), ferner auf Abschätzungen der Projektionsparameter basieren, die in der Stufe 1 bestimmt werden (z. B. fx,stage1_estimate, fy,stage1_ estimate, cx,stage1_ estimate und/oder cy,stage1_estimate).
  • In einer Ausführungsform kann Schritt 507 das Abschätzen nur einer Teilmenge der Linsenverzerrungsparameter eines Linsenverzerrungsmodells, das für die Kamerakalibrierung verwendet wird, beinhalten, während ein oder mehrere restliche Linsenverzerrungsparameter als null abgeschätzt werden, oder ohne Abschätzen des einen oder der mehreren restlichen Linsenverzerrungsparameter. Die Abschätzung für den zweiten Linsenverzerrungsparameter kann beispielsweise in Schritt 507 bestimmt werden, während eine Abschätzung für einen dritten Linsenverzerrungsparameter als null bestimmt wird oder nicht abgeschätzt wird. 8 stellt beispielsweise ein Beispiel dar, in dem k2,stage2_estimate, p1,stage2_estimate und p2,stage2_estimate (von denen eines eine Abschätzung für den zweiten Linsenverzerrungsparameter sein kann) und k1,stage2_estimate für k2, p1, p2 bzw. k1 bestimmt werden, während k3,stage2_estimate für den Linsenverzerrungsparameter k3 als null abgeschätzt wird oder nicht bestimmt wird. In diesem Beispiel kann k3 der dritte Linsenverzerrungsparameter sein. In einer Ausführungsform kann der dritte Linsenverzerrungsparameter für Schritt 507 ein Koeffizient sein, der eine Komponente höchster Ordnung unter einem Satz von Komponenten beschreibt, die die Linsenverzerrung oder einen speziellen Typ von Linsenverzerrung beschreiben. Beispielsweise kann k3 eine radiale Polynomkomponente höchster Ordnung k3r6 unter einem Satz von radialen Polynomkomponenten k1r2 , k2r4, k3r6 des Polynommodells beschreiben. Da k3r6 ein Effekt relativ hoher Ordnung ist, kann in einer Ausführungsform die radiale Linsenverzerrung für kleine Änderungen in k3 empfindlich sein, was verursachen kann, dass k3 instabil und schwierig genau abzuschätzen ist. Ferner kann sich ein ungenaues k3 negativ auf eine Genauigkeit von Abschätzungen für k1, k2, p1 und/oder p2 auswirken. Folglich kann Schritt 507 oder spezieller die Stufe 2 der Abschätzung des dritten Linsenverzerrungsparameters k3 vorhergehen oder ihn als null abschätzen, um sich auf die Abschätzung von anderen Linsenverzerrungsparametern (z. B. k1, k2, p1 und/oder p2) zu konzentrieren. Die Linsenverzerrungsparameter, die für die Schritte 505-507 abgeschätzt werden, können beispielsweise ein Satz von Linsenverzerrungsparametern eines Verzerrungsmodells (z. B. Polynomverzerrungsmodells) sein und können in den dritten Linsenverzerrungsparameter (z. B. k3) und eine Teilmenge von anderen Linsenverzerrungsparametern wie z.B. eine Teilmenge von allen anderen Linsenverzerrungsparametern (z. B. k1, k2, p1 und p2) des Satzes von Linsenverzerrungsparametern des Verzerrungsmodells aufgeteilt werden. In einem solchen Beispiel kann die Stufe 2 jeweilige Abschätzungen für alle Linsenverzerrungsparameter der Teilmenge von Linsenverzerrungsparametern (z. B. k1, k2, p1 und p2) bestimmen, während der dritte Linsenverzerrungsparameter (z. B. k3) als null abgeschätzt wird, oder ohne Abschätzen des dritten Linsenverzerrungsparameters. In einigen Fällen kann das Abschätzen des dritten Linsenverzerrungsparameters (z. B. k3) bis zu einer anschließenden Stufe (z. B. Stufe 3) verzögert werden, wie nachstehend genauer erörtert.
  • In einer Ausführungsform kann Schritt 507 das Lösen von Gleichungen beinhalten, die eine andere vereinfachte Version der Verzerrungsfunktionen dx, dy beinhalten. Diese andere vereinfachte Version kann durch Einschränken des dritten Linsenverzerrungsparameters (z. B. k3) auf null erhalten werden, um dx ­­­_simplified2 und dy ­­_simplified2 zu ergeben: d x _ s i m p l i f i e d 2 = X ˜ ( 1 + k 1 r 2 + k 2 r 4 ) + 2 p 1 X ˜ Y ˜ + p 2 ( r 2 + 2 X ˜ 2 )
    Figure DE102021102493A1_0029
    d y _ s i m p l i f i e d 2 = Y ˜ ( 1 + k 1 r 2 + k 2 r 4 ) + 2 p 2 X ˜ Y ˜ + p 1 ( r 2 + 2 Y ˜ 2 )
    Figure DE102021102493A1_0030
  • In einigen Implementierungen kann das Rechensystem 110 in Schritt 507 dx ­­­_simplified2 und dy ­­­­­_simplified2 vom nicht flüchtigen computerlesbaren Medium 115 empfangen und Gleichungen lösen, die die vereinfachten Verzerrungsfunktionen beinhalten und die Projektionsmatrix beinhalten, um nach k1, k2, p1, p2, fx, fy, cx und cy aufzulösen.
  • Mit Rückkehr zu 5 kann das Verfahren 500 in einer Ausführungsform einen Schritt 509 umfassen, in dem das Rechensystem 110 Kamerakalibrierinformationen bestimmt, die jeweilige Abschätzungen für den Satz von Linsenverzerrungsparametern umfassen. Die jeweiligen Abschätzungen für den Satz von Linsenverzerrungsparametern können die Abschätzung des ersten Linsenverzerrungsparameters, der in Schritt 505 bestimmt wird (z. B. k1, stage1_estimate), und/oder die Abschätzung des zweiten Linsenverzerrungsparameters, der in Schritt 507 bestimmt wird (z. B. k2, stage1_estimate), umfassen oder darauf basieren.
  • In einer Ausführungsform kann das Abschätzen von intrinsischen Kamerakalibrierparametern nur die Stufe 1 und Stufe 2 umfassen, in welchem Fall die jeweiligen Abschätzungen für den Satz von Linsenverzerrungsparametern zumindest die Abschätzung des zweiten Linsenverzerrungsparameters, der in Schritt 507 bestimmt wird, umfassen können oder spezieller k1,stage2_estimate, k2,stage2_estimate, k2,stage2_estimate, p1,stage2_estimate, p2,stage2_estimate, fx, stage2_estimate, fy, stage2_estimate, cx,stage2_estimate und cy,stage2_estimate umfassen können. Die jeweiligen Abschätzungen können z. B. direkt verwendet werden, um eine Hand-Auge-Kalibrierung, Stereokalibrierung durchzuführen, oder für irgendeinen anderen Zweck. In einer Ausführungsform kann das Abschätzen von intrinsischen Kamerakalibrierparametern in Schritt 509 zusätzliche Stufen beinhalten, wie z. B. Stufen 3-5, die in 9A bis 12B dargestellt sind. Wie vorstehend angegeben, kann eine Abschätzung von einer Stufe in eine nächste fortlaufende Stufe eingegeben werden, um eine stärker verfeinerte Abschätzung zu erzeugen.
  • 9A stellt ein Beispiel einer Stufe 3 dar, die der Stufe 2 folgt und die stärker verfeinerte Abschätzungen für k1, k2, p1, p2 auf der Basis von Abschätzungen jener Parameter von Stufe 2 erzeugt. Insbesondere kann die Stufe 3 k2,stage3_estimate, p1,stage3_estimate, p2,stage3_estimate, k1,stage3_estimate auf der Basis einer Ausgabe von Stufe 2 erzeugen. Diese in Stufe 3 erzeugten Abschätzungen können als aktualisierte Abschätzungen relativ zu den Abschätzungen von Stufe 2 betrachtet werden.
  • In einer Ausführungsform kann die Stufe 3 eine Krümmungsverringerungsstufe sein. Die Krümmungsverringerungsstufe kann ein Inverses der vorstehend erörterten Verzerrungsfunktionen auf das Kalibrierbild (z. B. 680E in 6E) anwenden (das heißt
    d x 1
    Figure DE102021102493A1_0031
    und d y 1
    Figure DE102021102493A1_0032
    anwenden), um eine modifizierte Version des Kalibrierbildes zu erzeugen, die versucht, einen Effekt der Linsenverzerrung zu entfernen oder zu verringern. Eine inverse Projektionsmatrix K-1 kann beispielsweise auf das Kalibrierbild angewendet werden, um [X̂̂/ZŶ/Z 1]T-Koordinaten zu bestimmen, wobei X̂ und Ŷ z. B. darstellen können, wo ein spezielles Musterelement oder anderes Merkmal in einem Kamerasichtfeld angeordnet ist. Die Koordinaten [X̂/ZŶ/Z 1]T können einen Effekt der Linsenverzerrung umfassen und die inversen Verzerrungsfunktionen können auf X̂ und Ŷ angewendet werden, um X̃und Ỹ oder X und Y zu bestimmen, die Koordinaten sein können, in denen der Effekt der Linsenverzerrung entfernt oder anderweitig verringert wurde. Die Projektionsmatrix K kann auf X̃und Ỹ oder X und Y angewendet werden, um die modifizierte Version des Kalibrierbildes zu erzeugen, die den Effekt der Linsenverzerrung verringert. Das Erzeugen der modifizierten Version des Kalibrierbildes ist in der US-Patentanmeldung Nr. 16/295,940 , mit dem Titel „Method und System for Performing Automatic Camera Calibration for Robot Control,“ deren gesamter Inhalt durch Verweis hierin aufgenommen wird, genauer erörtert. Wie vorstehend angegeben, kann die Linsenverzerrung eine Krümmung in das Aussehen eines Kalibriermusters (z. B. 460) im Kalibrierbild einführen. Die Stufe 3 kann versuchen, Abschätzungen für die Linsenverzerrungsparameter zu finden, so dass die resultierenden inversen Verzerrungsfunktionen eine modifizierte Version des Kalibrierbildes erzeugen können, die die Krümmung entfernt oder verringert.
  • In einer Ausführungsform kann die Stufe 3 eine oder mehrere jeweilige anfängliche Abschätzungen für einen oder mehrere Linsenverzerrungsparameter (z. B. anfängliche Abschätzungen für k1, k2, k3, p1, p2) verwenden. Diese anfänglichen Abschätzungen können angepasst werden, um aktualisierte Abschätzungen für die Stufe 3 zu ergeben. In einigen Fällen können diese anfänglichen Vermutungen gleich jeweiligen Abschätzungen der Linsenverzerrungsparameter von vorherigen Stufen sein oder auf diesen (direkt oder indirekt) basieren. Die anfängliche Abschätzung für k1 in der Stufe 3 kann beispielsweise gleich k1,stage2_estimate und/oder k1,stage1_estimate sein oder darauf basieren. In diesem Beispiel kann k1 ein erster Linsenverzerrungsparameter sein. Ebenso kann die anfängliche Abschätzung für einen zweiten Linsenverzerrungsparameter (z. B. k2, p1, p2) gleich seiner Abschätzung von der Stufe 2 und/oder Stufe 1 sein oder darauf basieren (z. B. k2,stage2_estimate und/oder k2,stage1_estimate). Wie in 9A dargestellt, kann die Krümmungsverringerungsstufe auch eine Abschätzung für k3 bestimmen, das in diesem Beispiel ein dritter Linsenverzerrungsparameter sein kann. In einigen Fällen kann die Stufe 3 eine anfängliche Abschätzung von k3 als null bestimmen.
  • Wie vorstehend angegeben, kann die Krümmungsverringerungsstufe auf der Basis der anfänglichen Abschätzung von k1, k2, k3, p1, und/oder p2 für diese Stufe eine modifizierte Version des Kalibrierbildes erzeugen, die die Linsenverzerrung kompensiert, die der Kamera (z. B. 470) zugeordnet ist. 9B stellt beispielsweise ein Beispiel einer modifizierten Version des Kalibrierbildes 680E dar. Die Krümmungsverringerungsstufe kann ferner das Bestimmen eines Ausmaßes der Krümmung in der modifizierten Version des Kalibrierbildes und das Anpassen der jeweiligen anfänglichen Abschätzungen von k1, k2, k3, p1, und/oder p2 auf der Basis des Ausmaßes der Krümmung in der modifizierten Version des Kalibrierbildes beinhalten, um jeweilige angepasste Abschätzungen für k1, k2, k3, p1 und/oder p2 zu erzeugen, die das Ausmaß der Krümmung verringern. Die Anpassung kann einmal durchgeführt werden oder kann mehrere Male über mehrere Iterationen durchgeführt werden, um die jeweiligen angepassten Abschätzungen zu erzeugen. Die jeweiligen angepassten Abschätzungen können als jeweilige aktualisierte Abschätzungen der Linsenverzerrungsparameter festgelegt werden, die durch die Krümmungsverringerungsstufe erzeugt werden. Das heißt, die jeweiligen angepassten Abschätzungen können als k1,stage3_estimate, k2,stage3_estimate, k3,stage3_estimate, p1,stage3_estimate, p2,stage3_estimate festgelegt werden.
  • In einer Ausführungsform kann eine Linienanpassungstechnik verwendet werden, um ein Ausmaß der Krümmung in einer modifizierten Version des Kalibrierbildes zu bestimmen. Wenn beispielsweise die Vielzahl von Musterelementen im Kalibrierbild (z. B. 460) eine Vielzahl von Punkten (z. B. kreisförmigen Punkten) ist, kann das Ausmaß der Krümmung bestimmt werden durch: Anpassen einer Vielzahl von geraden Linien durch die Vielzahl von Punkten (z. B. durch jeweilige Zentren der Punkte) in der modifizieren Version des Kalibrierbildes und Bestimmen des Ausmaßes der Krümmung auf der Basis einer Distanz zwischen jeder geraden Linie der Vielzahl von geraden Linien und einem jeweiligen Punkt (z. B. einem jeweiligen Zentrum des Punkts) der Vielzahl von Punkten, durch die die gerade Linie angepasst wird. 9C stellt die Linienanpassung dar, die für eine modifizierte Version des Kalibrierbildes (auch als modifiziertes Kalibrierbild bezeichnet) durchgeführt wird, die immer noch einen Grad an Linsenverzerrung aufzeigt. Folglich verlaufen eine oder mehrere der geraden Linien nicht durch jeweilige Zentren aller Musterelemente (z. B. Punkte), durch die diese gerade Linie angepasst ist. Insbesondere zeigt 9C eine Linienanpassung für einen Teil der Punkte von 9B. In 9C ist eine Linie, die durch vier Punkte angepasst ist, abseits von jeweiligen Zentren von drei Punkten aus den vier Punkten. Das Ausmaß der Krümmung kann auf der Basis einer jeweiligen Distanz zwischen einem Zentrum jedes Punkts und der angepassten Linie in 9C berechnet werden, wie durch einen jeweiligen Pfeil angegeben, der von der angepassten Linie stammt. In einer Ausführungsform kann das Ausmaß der Krümmung für die modifizierte Version des Kalibrierbildes durch eine gesamte Krümmungsbewertung dargestellt werden, die z. B. eine Summe von jeweiligen Krümmungsbewertungen für individuelle Linien ist, die an der Linienanpassung beteiligt sind. In einer Ausführungsform kann die Krümmungsverringerungsstufe das Optimieren von jeweiligen abgeschätzten Werten einer Vielzahl von Verzerrungsparametern beinhalten, um eine gesamte Krümmungsbewertung für eine modifizierte Version des Kalibrierbildes zu minimieren, wobei die modifizierte Version auf der Basis der abgeschätzten Werte erzeugt wird. Die Linienanpassungstechnik ist genauer in der US-Patentanmeldung Nr. 16/295,940 , mit dem Titel „Method und System for Performing Automatic Camera Calibration for Robot Control,“ erörtert, deren ganzer Inhalt durch Verweis hierin aufgenommen wird.
  • In einer Ausführungsform können einer oder mehrere der Projektionsparameter oder spezieller die Projektionsmatrix oder inverse Projektionsmatrix im Wert in der Stufe 3 festgesetzt werden. 9A stellt beispielsweise ein Beispiel dar, in dem die Projektionsparameter fx, fy, cx, cy in der Stufe 3 im Wert auf ihre jeweiligen Abschätzungen von Stufe 2 festgesetzt werden. Mit anderen Worten, fx,stage3_estimate = fx,stage2_estimate, fy,stage3_estimate = fy,stage2_estünate; Cx,stage3_estimate = Cx,stage2_estimate; und Cy,stage3_estimate = Cy,stage2_estimate. Die aktualisierten Abschätzungen für die Linsenverzerrungsparameter in Stufe 3 können auf der Basis der jeweiligen Abschätzungen für die Projektionsparameter von Stufe 2 bestimmt werden. In einigen Fällen können die Projektionsparameter eine lineare Transformation zwischen Orten in einem Kamerasichtfeld und Pixelkoordinaten beschreiben. In solchen Fällen können die Projektionsparameter einen geringen bis keinen Effekt auf das Ausmaß der Krümmung in der modifizierten Version des Kalibrierbildes haben, da die Krümmung an einem nicht-linearen Effekt liegen kann. Folglich können die Projektionsparameter im Wert während der Stufe 3 festgesetzt werden, um sich auf die Linsenverzerrungsparameter oder andere Parameter zu konzentrieren, die einen Effekt auf das Ausmaß der Krümmung in der modifizierten Version des Kalibrierbildes haben.
  • In einer Ausführungsform kann das Bestimmen der Kamerakalibrierinformationen in Schritt 509 nur die Stufe 1 bis Stufe 3 beinhalten und die jeweiligen Abschätzungen für den Satz von Linsenverzerrungsparametern können gleich k1, stage3_estimate; k2, stage3_estimate; k3, stage3_estimate; p1, stage3_estimate; p2, stage3-estimate sein, die direkt verwendet werden können, um eine Hand-Auge-Kalibrierung, Stereokalibrierung durchzuführen, oder für irgendeinen anderen Zweck. In einer Ausführungsform, wie in 10 dargestellt, kann das Bestimmen der Kamerakalibrierinformationen in Schritt 509 eine Stufe 4 umfassen, die der Stufe 3 folgt. Die Stufe 4 kann beispielsweise Abschätzungen von der Stufe 3 als Eingabe verwenden, um stärker verfeinerte Abschätzungen für verschiedene Linsenverzerrungsparameter und/oder Projektionsparameter zu erzeugen.
  • In einer Ausführungsform kann die Stufe 4 eine Abschätzung von k3 oder allgemeiner eines dritten Linsenverzerrungsparameters im Wert auf eine Abschätzungsausgabe durch Stufe 3 festsetzen, so dass k3,stage4_estimate gleich k3,stage3_estimate ist. Wie vorstehend angegeben, können die Kamerakalibrierinformationen einen dritten Linsenverzerrungsparameter (z. B. k3) umfassen, der eine radiale Polynomkomponente höchster Ordnung unter einem Satz von radialen Polynomkomponenten eines Linsenverzerrungsmodells (z. B. Polynommodells) beschreibt. In einigen Fällen kann die Stufe 4 einen solchen dritten Linsenverzerrungsparameter im Wert festsetzen, da die Empfindlichkeit des dritten Linsenverzerrungsparameters sich auf eine Genauigkeit der Abschätzungen für die anderen Linsenverzerrungsparameter auswirken kann.
  • In einer Ausführungsform kann die Stufe 4 eine Abschätzung für die Projektionsparameter wie z. B. fx, fy, cx und/oder cy aktualisieren. Insbesondere, wie vorstehend erörtert, können die Projektionsparameter in einigen Fällen im Wert in der Stufe 3 festgesetzt werden, die eine Abschätzung für den dritten Linsenverzerrungsparameter (z. B. k3,stage3_estimate) erzeugt und jeweilige aktualisierte Abschätzungen für andere Linsenverzerrungsparameter erzeugt, wie z. B. die aktualisierte Abschätzung für den ersten Linsenverzerrungsparameter (z. B. k1,stage3_estimate) und die aktualisierte Abschätzung für den zweiten Linsenverzerrungsparameter (z. B. k2,stage3_estimate, p1,stage3_estimate oder p2,stage3_estimate). In der Stufe 3 können die Projektionsparameter den Einschränkungen unterworfen werden, dass fx,stage3_estimate = fx,stage2_estimate; fy,stage3_estimate = fy,stage2_estimate, Cx,stage3_estimate = Cx,stage2_estimate; und Cy,stage3_estimate = Cy,stage2_estimate, wie in 9A dargestellt. Nach der Stufe 3 können die Abschätzungen für die Projektionsparameter in Schritt 4 aktualisiert werden, wie in 10 dargestellt. Das Rechensystem 110 kann beispielsweise in der Stufe 4 fx,stage4_estimate; fy,stage4_estimate; cx,stage4_estimate; cy,stage4_estimate bestimmen. Diese aktualisierten Abschätzungen für die Projektionsparameter, die durch die Stufe 4 erzeugt werden, können auf der Basis der Abschätzung der Linsenverzerrungsparameter bestimmt werden, die aus Stufe 3 bestimmt werden, wie z. B. k1,stage3_estimate, k2,stage3_estimate, k3,stage3_estimate, p1,stage3_estimate und/oder p2,stage3_estimate.
  • In einer Ausführungsform kann das Bestimmen der Kamerakalibrierinformationen in Schritt 509 nur die Stufe 1 bis Stufe 4 beinhalten und die jeweiligen Abschätzungen des Satzes von Linsenverzerrungsparametern können gleich k1,stage4_estimate; k2,stage4_estimate; k3,stage4_estimate, P1,stage4_estimate, p2,stage4_estimate sein und jeweilige Abschätzungen für die Projektionsparameter können gleich fx,stage4_estimate; fy,stage4_estimate; fy,stage4_estimate; cx,stage4_estimate; und Cy, stage4_estimate sein, die verwendet werden können, um direkt eine Hand-Auge-Kalibrierung, Stereokalibrierung durchzuführen, oder für irgendeinen anderen Zweck. In einer Ausführungsform kann Schritt 509 eine Stufe 5 beinhalten, die der Stufe 4 folgt. Wie in 11 dargestellt, kann die Stufe 5 im Anschluss an Stufe 4 oder allgemeiner im Anschluss an Stufe 1 sein.
  • In einigen Fällen können ein erster Linsenverzerrungsparameter und/oder ein zweiter Linsenverzerrungsparameter (z. B. k1 und k2) im Wert in der Stufe 5 festgesetzt werden, während eine Abschätzung für einen zusätzlichen anderen Linsenverzerrungsparameter (z. B. k3, p1, p2) als den ersten Linsenverzerrungsparameter und den zweiten Linsenverzerrungsparameter in dieser Stufe bestimmt wird. In solchen Fällen können die Abschätzungen für k1 und k2 aus Stufe 4 ausreichend genau sein, so dass die Abschätzungen in Stufe 5 nicht weiter verfeinert werden müssen. Ferner kann das Festsetzen von k1 und k2 im Wert eine Stabilität beim genauen Abschätzen von k3 verbessern und kann folglich ermöglichen, dass sich die Stufe 5 auf das Verbessern dieses Parameters konzentriert.
  • Wie in 11 dargestellt, können der erste Linsenverzerrungsparameter und der zweite Linsenverzerrungsparameter (z. B. k1, k2) in Stufe 5 im Wert auf eine Abschätzung festgesetzt werden, die durch die Stufe 4 ausgegeben wird, wie z. B. k1,stage4_estimate und k2,stage4_estimate. In einigen Fällen können, wenn Abschätzungen des ersten Linsenverzerrungsparameters und des zweiten Linsenverzerrungsparameters (z. B. k1,stage1_estimate und k2,stage1_estimate) in einer früheren Stufe (z. B. Stufe 1) bestimmt werden, dann die Abschätzungen des ersten Linsenverzerrungsparameters und des zweiten Linsenverzerrungsparameters von Stufe 4 als aktualisierte Abschätzungen des ersten Linsenverzerrungsparameters bzw. des zweiten Linsenverzerrungsparameters bezeichnet werden. In solchen Fällen kann die Abschätzung für den (die) zusätzlichen Linsenverzerrungsparameter in Stufe 5 als auf der aktualisierten Abschätzung des ersten Linsenverzerrungsparameters und/oder der aktualisierten Abschätzung des zweiten Linsenverzerrungsparameters basierend bezeichnet werden.
  • In einer Ausführungsform kann die Kamerakalibrierung, die in Schritt 509 bestimmt wird, Abschätzungen von der Stufe 5 umfassen, wie z. B. k1,stage5_estimate; k2,stage5_estimate; k3,stage5_estimate; p1,stage5_estimate; p2,stage5_estimate; fx,stage5_estimate; fy,stage5_estimate; cx,stage5_estimate; und Cy,stage5_estimate. In einer Ausführungsform können diese Abschätzungen verwendet werden, um eine Hand-Auge-Kalibrierung und/oder Stereokalibrierung durchzuführen, wie in 12A dargestellt. Die Hand-Auge-Kalibrierung kann eine Beziehung zwischen der Kamera (z. B. 470) und ihrer externen Umgebung bestimmen, wie z. B. eine räumliche Beziehung zwischen der Kamera (z. B. 470 von 4B) und einer Basis eines Roboters (z. B. Basis 452 des Roboters 450). Die Stereokalibrierung kann eine räumliche Beziehung zwischen der Kamera (z. B. 170/370/470) und einer anderen Kamera (z. B. 180) bestimmen. Die Hand-Auge-Kalibrierung und Stereokalibrierung sind in der US-Patentanmeldung Nr. 16/295,940 mit dem Titel „Method und System for Performing Automatic Camera Calibration for Robot Control,“ genauer erörtert, deren ganzer Inhalt durch Verweis hierin in seiner Gesamtheit aufgenommen wird.
  • In einigen Fällen können die Abschätzungen von der Stufe 5 verwendet werden, um weitere Abschätzungen der Linsenverzerrungsparameter zu bestimmen oder um Abschätzungen für andere Linsenverzerrungsparameter zu bestimmen. 12B stellt beispielsweise ein Beispiel dar, in dem die Kamerakalibrierung des Verfahrens 500 ein rationales Modell verwendet, das die Linsenverzerrungsparameter k1, k2, k3, k4, k5, k6, p1 und p2 beinhaltet. In einem solchen Beispiel können die Stufen 1 bis 5 für die Abschätzung von Linsenverzerrungsparametern eines Polynommodells oder spezieller von k1, k2, k3, p1 und p2 zweckgebunden sein, während k4, k5, k6 in diesen Stufen als null abgeschätzt werden oder nicht abgeschätzt werden. In einem solchen Beispiel kann Schritt 509 ferner eine Stufe 6 umfassen, die eine Abschätzung für zumindest k4, k5 oder k6 auf der Basis zumindest der Abschätzungen von k1, k2, k3, p1 und p2 aus Stufe 5 bestimmt.
  • In einer Ausführungsform können eine oder mehrere Stufen von Stufe 1 bis Stufe 6 von 7A bis 12B weggelassen oder umgeordnet werden. Einige Ausführungsformen können beispielsweise die Stufen 3 bis 6 weglassen. Als anderes Beispiel können einige Ausführungsformen die Stufen 4 bis 6 weglassen oder Stufe 2, Stufe 4 oder Stufe 5 weglassen.
  • Mit Rückkehr zu 5 kann das Verfahren 500 einen Schritt 511 umfassen, in dem das Rechensystem 110 ein nachfolgendes Bild empfängt, das durch die Kamera (z. B. 470) erzeugt wird, nachdem die Kamerakalibrierung durchgeführt wurde. Das Bild kann beispielsweise durch die Kamera (z. B. 470) während eines Roboterbetriebs wie z. B. eines Entpalettierungsvorgangs oder eines Behältergreifvorgangs erzeugt werden. In einigen Szenarios kann das Bild ein Objekt erfassen oder anderweitig darstellen, mit dem eine Roboterzusammenwirkung bestehen soll. Das Objekt kann beispielsweise ein zu entpalettisierendes Objekt oder eine zu greifende Komponente sein. In einer Ausführungsform kann das Verfahren 500 einen Schritt 513 umfassen, in dem das Rechensystem 110 einen Bewegungsbefehl zum Steuern der Roboterbewegung erzeugt, wie z. B. einer Bewegung des Roboterarms 454 von 4A-4B. Der Bewegungsbefehl kann auf der Basis des nachfolgenden Bildes und auf der Basis der Kamerakalibrierinformationen (z. B. intrinsischen Kamerakalibrierinformationen und/oder Hand-Auge-Kalibrierinformationen) erzeugt werden und kann verwendet werden, um die Roboterzusammenwirkung durchzuführen. Das Rechensystem 110 kann beispielsweise dazu eingerichtet sein, eine räumliche Beziehung zwischen dem Roboterarm 454 und dem zu greifenden Objekt zu bestimmen, wobei die räumliche Beziehung auf der Basis des nachfolgenden Bildes und auf der Basis von Kamerakalibrierinformationen bestimmt werden kann, wie in der US-Patentanmeldung Nr. 16/295,940 , mit dem Titel „Method und System for Performing Automatic Camera Calibration for Robot Control,“ genauer erörtert, deren ganzer Inhalt durch Verweis hierin in seiner Gesamtheit aufgenommen wird. In einer Ausführungsform können ein oder mehrere Schritte des Verfahrens 500 in 5 wie z. B. die Schritte 511 und 513 weggelassen werden.
  • Wie vorstehend angegeben, bezieht sich ein Aspekt der vorliegenden Offenbarung auf das Verbessern einer Genauigkeit der Stereokamerakalibrierung und insbesondere auf das effektive Messen, wie viel Fehler sich in einer Abschätzung (z. B. abgeschätzten Transformationsfunktion) befindet, die durch die Stereokamerakalibrierung verwendet wird, so dass die Stereokamerakalibrierung durch Verringern des Fehlers in einer solchen Abschätzung verbessert werden kann. Die Stereokamerakalibrierung kann z. B. das Bestimmen einer räumlichen Beziehung zwischen zwei Kameras beinhalten. 13A-13B stellen beispielsweise ein System 1300 dar, das eine erste Kamera 470 und eine zweite Kamera 480 umfasst. Das System 1300 kann eine Ausführungsform des Systems 100B von 1C und/oder des Systems 400 von 4A-4B sein. Ferner kann die Kamera 480 eine Ausführungsform der Kamera 180 sein. Das System 1300 kann einen Montagerahmen 1305 umfassen, an dem die erste Kamera 470 und die zweite Kamera 480 montiert sind. In einigen Fällen kann der Montagerahmen 1305 die zwei Kameras 470, 480 in der Position und/oder Orientierung relativ zueinander fixiert halten.
  • In der Ausführungsform von 13A-13B kann die Stereokamerakalibrierung durchgeführt werden, um eine räumliche Beziehung zwischen der ersten Kamera 470 und der zweiten Kamera 480 zu bestimmen, wie z. B. einen relativen Ort und eine relative Orientierung der zwei Kameras. Die Stereokalibrierung kann beispielsweise das Bestimmen einer Transformationsfunktion dT Camera1 Camera2 oder TCamera2 Camera1 beinhalten, die die räumliche Beziehung beschreibt. Die Transformationsfunktion kann z. B. eine Matrix sein, die eine Drehung und/oder eine Translation zwischen einem Koordinatensystem der ersten Kamera 470 und einem Koordinatensystem der zweiten Kamera 480 beschreibt, wie z. B. in der folgenden Gleichung: T         c a m e r a 2 c a m e r a 1 = [ R         c a m e r a 2 c a m e r a 1 t         c a m e r a 2 c a m e r a 1 0 1 ]
    Figure DE102021102493A1_0033
  • In einer Ausführungsform kann die Stereokamerakalibrierung für das System 1300 von 13A-13B die Verwendung eines Kalibriermusters 460 beinhalten, das an einem Roboter 450 angeordnet sein kann oder an irgendeiner anderen Struktur angeordnet sein kann. Wie vorstehend mit Bezug auf 4C erörtert, kann das Kalibriermuster eine Vielzahl von Musterelementen wie z. B. das Musterelement 4611 aufweisen. In einigen Fällen können sich die Musterelemente an jeweilige Orten befinden, die einen ersten Satz von jeweiligen Koordinaten relativ zur ersten Kamera 470 aufweisen und die einen zweiten Satz von jeweiligen Koordinaten relativ zur zweiten Kamera 480 aufweisen. Insbesondere können die physischen Orte der Musterelemente einen ersten Satz von Koordinaten in einem Koordinatensystem der ersten Kamera 470 aufweisen und einen zweiten Satz von Koordinaten in einem Koordinatensystem der zweiten Kamera aufweisen. Wie in 13B dargestellt, kann beispielsweise ein Ort des Musterelements 4611 eine Koordinate [x1 y1 z1] T Camera1 in einem Koordinatensystem der ersten Kamera 470 aufweisen und eine Koordinate [x'1 y'1 z'1]T Camera2 in einem Koordinatensystem der zweiten Kamera 480 aufweisen. Wie vorstehend mit Bezug auf 4C erörtert, können ferner die jeweiligen Orte der Musterelemente auch definierte Musterelementkoordinaten im Musterkoordinatensystem aufweisen. Das Musterelement 4611 kann sich beispielsweise an einer Koordinate [x''1 y'' 1''1]T Pattern im Musterkoordinatensystem befinden, wobei Werte von x'' 1,y''1 und z''1 vordefiniert sind. In einer Ausführungsform kann die Stereokamerakalibrierung auf der Basis des ersten Satzes von Koordinaten, des zweiten Satzes von Koordinaten und/oder der definierten Musterelementkoordinaten durchgeführt werden, wie nachstehend genauer erörtert.
  • 14 stellt ein Ablaufdiagramm eines Verfahrens 1400 zum Durchführen der Stereokalibrierung dar. In einer Ausführungsform kann das Verfahren 1400 durch das Rechensystem 110 von 1A-1C und von 2 oder spezieller durch die Steuerschaltung 111 des Rechensystems 110 durchgeführt werden. Die Stereokalibrierung kann eine erste Kamera (z. B. 170/470 von 1C und 13A) mit einem ersten Kamerasichtfeld (z. B. 410 von 13A) und eine zweite Kamera (z. B. 180/480) mit einem zweiten Kamerasichtfeld (z. B. 420) beinhalten. Wie vorstehend angegeben, kann das Rechensystem 110 dazu eingerichtet sein, mit der ersten Kamera (z. B. 170/470) und der zweiten Kamera (z. B. 480) zu kommunizieren, wie z. B. über die Kommunikationsschnittstelle 113 (von 2). In einer Ausführungsform kann das Verfahren 1400 durchgeführt werden, wenn ein Kalibriermuster (z. B. 160/460) mit einer Vielzahl von Musterelementen sich im ersten Kamerasichtfeld (z. B. 410) und im zweiten Kamerasichtfeld (z. B. 420) befindet oder befunden hat und ferner, wenn die erste Kamera (z. B. 470) und die zweite Kamera (z. B. 480) ein erstes Kalibrierbild bzw. ein zweites Kalibrierbild erzeugt haben. Das erste Kalibrierbild und das zweite Kalibrierbild können jeweils ein Bild sein, das das Kalibriermuster (z. B. 460) darstellt. 15A und 15B stellen beispielsweise ein erstes Kalibrierbild 1580A und ein zweites Kalibrierbild 1580B dar, die beide ein jeweiliges Bild sind, das das Kalibriermuster 460 von 13A und 13B darstellt. Das erste Kalibrierbild 1580A kann durch die erste Kamera 470 erzeugt werden und das zweite Kalibrierbild 1580B kann durch die zweite Kamera 480 erzeugt werden. Ferner kann das Kalibriermuster 460 relativ zur ersten Kamera 470 und zur zweiten Kamera 480 während einer Periode stationär geblieben sein, in der die Kalibrierbilder 1580A, 1580B erzeugt werden. In einer solchen Situation kann das erste Kalibrierbild 1580A als dem zweiten Kalibrierbild 1580B entsprechend oder umgekehrt bezeichnet werden.
  • Mit Rückkehr zu 14 kann das Verfahren 1400 in einer Ausführungsform einen Schritt 1401 umfassen, in dem das Rechensystem 110 das erste Kalibrierbild (z. B. 1580A) empfängt, das durch die erste Kamera (z. B. 470) erzeugt wird. Das Verfahren kann ferner einen Schritt 1403 umfassen, in dem das Rechensystem 110 das zweite Kalibrierbild (z. B. 1580B) empfängt, das durch die zweite Kamera (z. B. 480) erzeugt wird. In einigen Fällen kann das Rechensystem 110 das erste Kalibrierbild (z. B. 1580A) und/oder das zweite Kalibrierbild (z. B. 1580B) direkt von der ersten Kamera (z. B. 470) und/oder der zweiten Kamera (z. B. 480) empfangen. In einigen Fällen können das erste Kalibrierbild (z. B. 1580A) und/oder das zweite Kalibrierbild (z. B. 1580B) im nicht flüchtigen computerlesbaren Medium 115 von 2 (z. B. ein Halbleiterlaufwerk) gespeichert worden sein und das Rechensystem 110 kann das erste und/oder das zweite Kalibrierbild vom Halbleiterlaufwerk empfangen.
  • In einer Ausführungsform kann das Verfahren 1400 einen Schritt 1405 umfassen, in dem das Rechensystem eine Abschätzung einer Transformationsfunktion zum Beschreiben einer räumlichen Beziehung zwischen der ersten Kamera und der zweiten Kamera bestimmt, wie z. B. die Matrix TCamera1 Camera2 oder TCamera2 Camera1, die vorstehend erörtert ist. Die Matrix kann beispielsweise eine Drehung und/oder eine Translation zwischen einem Koordinatensystem der ersten Kamera 470 und einem Koordinatensystem der zweiten Kamera 480 beschreiben. In einer Ausführungsform kann die Abschätzung der Transformationsfunktion unter Verwendung eines Acht-Punkt-Algorithmus oder irgendeiner anderen Technik bestimmt werden.
  • Wie vorstehend angegeben, bezieht sich ein Aspekt der vorliegenden Offenbarung auf das Bestimmen eines Ausmaßes eines Fehlers in der aus Schritt 1405 bestimmten Transformationsfunktion. In einigen Fällen kann der Fehler auf der Basis des Vergleichs einer ersten Vielzahl von Koordinaten, die aus dem ersten Kalibrierbild (z. B. 1580A) bestimmt werden, und einer Vielzahl von transformierten Koordinaten, die aus dem zweiten Kalibrierbild (z. B. 1580B) bestimmt werden, bestimmt werden. Wie nachstehend genauer mit Bezug auf die Schritte 1407 bis 1413 erörtert, kann der Vergleich das Bestimmen eines Versatzes zwischen der ersten Vielzahl von Koordinaten und der Vielzahl von transformierten Koordinaten (z. B. jeweilige Distanzen zwischen den Koordinaten) und/oder das Bestimmen von Winkelwerten auf der Basis der Koordinaten beinhalten. Wie nachstehend weiter erörtert, kann das Rechensystem einen Reprojektionsfehler, einen Rekonstruktionsfehler und/oder einen Rekonstruktionsfehlerwinkel bestimmen, um das Ausmaß des Fehlers in der Transformationsfunktion zu charakterisieren. Obwohl die nachstehend erörterten Schritte verwendet werden können, um einen Fehler in der Transformationsfunktion zu bestimmen, können sie in einigen Fällen auch verwendet werden, um die Transformationsfunktion zu bestimmen. Die in Schritten 1407 und 1409 bestimmten Koordinaten, die nachstehend genauer erörtert werden, können in einigen Fällen beispielsweise verwendet werden, um die Abschätzung der Transformationsfunktion in Schritt 1405 zu bestimmen.
  • Insbesondere kann das Verfahren 1400 einen Schritt 1407 umfassen, in dem das Rechensystem 110 auf der Basis des ersten Kalibrierbildes (z. B. 1580A von 15A) eine erste Vielzahl von Koordinaten bestimmt, die jeweilige Orte der Vielzahl von Musterelementen (z. B. 4611 bis 46125 von 4C) relativ zur ersten Kamera (z. B. 470) beschreiben oder anderweitig darstellen. In einer Ausführungsform kann das Verfahren 1400 einen Schritt 1409 umfassen, in dem das Rechensystem 110 auf der Basis des zweiten Kalibrierbildes (z. B. 1580B von 15B) eine zweite Vielzahl von Koordinaten bestimmt, die jeweilige Orte der Vielzahl von Musterelementen (z. B. 4611 bis 46125 von 4C) relativ zur zweiten Kamera (z. B. 480 von 13A und 13B) beschreiben. Wie nachstehend genauer erörtert (mit Bezug auf die Schritte 1411 und 1413), kann die zweite Vielzahl von Koordinaten in eine Vielzahl von transformierten Koordinaten unter Verwendung der Abschätzung der Transformationsfunktion transformiert werden, die eine Abschätzung einer räumlichen Beziehung zwischen der ersten Kamera (z. B. 470) und der zweiten Kamera (z. B. 480) ist. Wenn die Abschätzung der Transformationsfunktion ein hohes Genauigkeitsniveau aufweist, können die erste Vielzahl von Koordinaten und die Vielzahl von transformierten Koordinaten im Wesentlichen oder exakt gleich sein. Wenn die Abschätzung der Transformationsfunktion an Genauigkeit verliert, können die erste Vielzahl von Koordinaten und die Vielzahl von transformierten Koordinaten größere Differenzen voneinander aufzeigen.
  • Mit Rückbezug auf die Schritte 1407 und 1409 können die erste Vielzahl von Koordinaten und/oder die zweite Vielzahl von Koordinaten, die in diesen Schritten bestimmt werden, in einigen Fällen Bildkoordinaten oder spezieller Pixelkoordinaten sein. Als Beispiel kann die erste Vielzahl von Koordinaten eine erste Vielzahl von Pixelkoordinaten [u1 v1] T ... [u25 v25]T sein, die in 15A dargestellt sind. Diese Pixelkoordinaten können jeweilige Orte beschreiben, an denen die Vielzahl von Musterelementen 4611 bis 46125 des Kalibriermusters 460 (von 4C) im ersten Kalibrierbild 1580A von 15A erscheint. Wie vorstehend angegeben, kann überdies die erste Vielzahl von Pixelkoordinaten [u1 v1]T ... [u25 v25]T relativ zur ersten Kamera (z. B. 470) ausgedrückt werden. Die erste Vielzahl von Koordinaten kann beispielsweise in einem Koordinatensystem eines Bildsensors (z. B. 373/373A von 3A) der ersten Kamera (z. B. 470) ausgedrückt werden. In einem in 15B dargestellten Beispiel kann die zweite Vielzahl von Koordinaten eine zweite Vielzahl von Pixelkoordinaten [u'1 v'1]T ... [u'25 v'25]Tsein, die jeweilige Orte beschreiben, an denen die Vielzahl von Musterelementen 4611 bis 46125 des Kalibriermusters 460 (von 4C) im zweiten Kalibrierbild 1580B erscheint. Die zweite Vielzahl von Pixelkoordinaten [u'1 v'1]T ... [u'25 v'25]T kann relativ zur zweiten Kamera (z. B. 480) ausgedrückt werden. Die zweite Vielzahl von Koordinaten kann beispielsweise in einem Koordinatensystem eines Bildsensors der zweiten Kamera (z. B. 480) ausgedrückt werden.
  • In einigen Fällen können die erste Vielzahl von Koordinaten, die in Schritt 1407 bestimmt werden, und/oder die zweite Vielzahl von Koordinaten, die in Schritt 1409 bestimmt werden, 3D-Koordinaten sein. Als Beispiel kann die erste Vielzahl von Koordinaten die erste Vielzahl von 3D-Koordinaten [X1 Y1 Z1]T Camera1 ... [X25 Y25 Z25] T Camera1 sein, die in 13B dargestellt sind, die jeweilige physische Orte der Vielzahl von Musterelementen 4611-46125 des Kalibriermusters 460 relativ zur ersten Kamera 470 von 13B beschreiben oder anderweitig darstellen können. Die erste Vielzahl von 3D-Koordinaten [X1 Y1 Z1]T Camera1 ... [X25 Y25 Z25] T Camera1 kann relativ zu einem Koordinatensystem der ersten Kamera 470 ausgedrückt werden (das auch als erstes Kamerakoordinatensystem bezeichnet werden kann), das ein Koordinatensystem sein kann, das in Bezug auf einen Ort und eine Orientierung der ersten Kamera 470 definiert ist. Wie weiter in 13B dargestellt, kann die zweite Vielzahl von Koordinaten die zweite Vielzahl von 3D-Koordinaten [X'1 Y'1 Z'1]T Camera2 ... [X'25 Y'25 Z'25]T Camera2 sein, die jeweilige physische Orte der Vielzahl von Musterelementen 4611-46125 des Kalibriermusters 460 relativ zur zweiten Kamera 480 beschreiben können. Insbesondere kann die zweite Vielzahl von 3D-Koordinaten [X'1 Y'1 Z'1]T Camera2 ... [X'25 Y'25 Z'25] T Camera2 relativ zu einem Koordinatensystem der zweiten Kamera 480 ausgedrückt werden (das auch als zweites Kamerakoordinatensystem bezeichnet werden kann), das ein Koordinatensystem sein kann, das in Bezug auf einen Ort und eine Orientierung der zweiten Kamera 480 definiert ist.
  • In einer Ausführungsform können, wenn die erste Vielzahl von Koordinaten und/oder die zweite Vielzahl von Koordinaten 3D-Koordinaten sind, sie in einigen Fällen auf der Basis von Bildkoordinaten bestimmt werden. Wenn beispielsweise die erste Vielzahl von Koordinaten von Schritt 1407 die 3D-Koordinaten [X1 Y1 Z1] T Camera1 ... [X25 Y25 Z25]T Camera1 ist, können diese 3D-Koordinaten auf der Basis der Pixelkoordinaten [u1 v1] T ... [u25 v25]T aus dem ersten Kalibrierbild (z. B. 1580A) bestimmt werden. In solchen Fällen können die 3D-Koordinaten [X1 Y1 Z1] T Camera1 ... [X25 Y25 Z25] T Camera1 jeweilige physische Orte der Musterelemente 4611-46125 angeben, wenn das Kalibriermuster 460 durch die erste Kamera 470 photographiert wurde. Die 3D-Koordinaten [X1 Y1 Z1] T Camera1 ... [X25 Y25 Z25]T Camera1 können in einem solchen Beispiel auf der Basis des Perspektive-n-Punkt-Algorithmus, auf der Basis von Kamerakalibrierinformationen (z. B. vom Verfahren 500) und/oder auf der Basis von irgendeiner anderen Technik bestimmt werden. Wenn die zweite Vielzahl von Koordinaten von Schritt 1409 die 3D-Koordinaten [X'1 Y'1 Z'1]T Camera2 ... [X'25 Y'25 Z'25]T Camera2 ist, können ebenso diese 3D-Koordinaten auf der Basis der Pixelkoordinaten [u'1 v'1] T ... [u'25 v'25]T aus dem zweiten Kalibrierbild 1580B von 15B bestimmt werden.
  • In einer Ausführungsform kann das Verfahren 1400 einen Schritt 1411 umfassen, in dem das Rechensystem 110 die zweite Vielzahl von Koordinaten in eine Vielzahl von transformierten Koordinaten auf der Basis der Abschätzung der Transformationsfunktion transformiert, wobei die Vielzahl von transformierten Koordinaten relativ zur ersten Kamera (z. B. 470) ist. In einigen Fällen kann Schritt 1411 das Anwenden der Abschätzung der Transformationsfunktion auf die zweite Vielzahl von Koordinaten (die relativ zur zweiten Kamera wie z. B. zur Kamera 480 ausgedrückt sind) beinhalten, um transformierte Koordinaten zu erzeugen, die relativ zur ersten Kamera (z. B. 470) ausgedrückt werden sollen. Wie vorstehend angegeben, kann eine Genauigkeit der Abschätzung der Transformationsfunktion dadurch beurteilt werden, wie nahe die transformierten Koordinaten an der ersten Vielzahl von Koordinaten (die auch relativ zur ersten Kamera ausgedrückt sind) liegen.
  • In einer Ausführungsform kann die Vielzahl von transformierten Koordinaten eine Vielzahl von Bildkoordinaten sein. Wenn die erste Vielzahl von Koordinaten auch eine Vielzahl von Bildkoordinaten ist, dann kann die Vielzahl von transformierten Koordinaten als zusätzliche Vielzahl von Bildkoordinaten bezeichnet werden. Wenn die transformierten Koordinaten Bildkoordinaten sind, können sie verwendet werden, um einen Reprojektionsfehler zu bestimmen, der nachstehend genauer erörtert wird. Als Beispiel stellt 16A ein Beispiel dar, in dem die Vielzahl von transformierten Koordinaten Bildkoordinaten oder spezieller Pixelkoordinaten [q'1 r'1] T ... [q'25 r'25]T ist, die abschätzen können, z. B. wo die Musterelemente 4611 bis 46125 im zweiten Kalibrierbild erscheinen sollten, wenn das zweite Kalibrierbild durch die erste Kamera (z. B. 470) anstelle der zweiten Kamera erzeugt worden wäre. Das heißt, die Pixelkoordinaten [q'1 r'1] T ... [q'25 r'25]T können ungefähr dort sein, wo physische Orte der Musterelemente 4611 bis 46125 auf den Bildsensor der ersten Kamera (z. B. 470) projiziert werden würden.
  • In einer Ausführungsform können, wenn die Vielzahl von transformierten Koordinaten Bildkoordinaten sind, sie auf der Basis von 3D-Koordinaten erzeugt werden. Die 3D-Koordinaten können beispielsweise physische Orte der Musterelemente 4611 bis 46125 beschreiben und können in Bildkoordinaten unter Verwendung einer Projektionsmatrix wie z. B. einer Projektionsmatrix unter Verwendung der Projektionsparameter vom Verfahren 500 projiziert werden. 16B stellt beispielsweise eine Vielzahl von 3D-Koordinaten [a'1 b'1 c'1]T Camera1 ... [a'25 b'25 c'25]T Camera1 dar, die unter Verwendung der Abschätzung der Transformationsfunktion erzeugt werden und die relativ zu oder ungefähr relativ zu der ersten Kamera (z. B. 470) ausgedrückt werden. In einigen Fällen können die Bildkoordinaten [q'1 r'1] T ... [q'25 r'25]T durch Anwenden einer Projektionsmatrix und/oder von Linsenverzerrungsparametern der ersten Kamera (z. B. 470) auf die 3D-Koordinaten [a'1 b'1 c'1]T Camera1 ... [a'25 b'25 c'25]T Camera1 bestimmt werden, wie vorstehend mit Bezug auf Gleichung 1 oder Gleichungen 7-10 erörtert. Wie vorstehend erörtert, kann die Projektionsmatrix verwendet werden, um zu bestimmen, wie Orte im Sichtfeld (z. B. 410) der ersten Kamera oder spezieller die 3D-Koordinaten [a'1 b'1 c'1]T Camera1 ... [a'25 b'25 c'25]T Camera1 auf eine Bildebene für die erste Kamera (z. B. 470) projiziert werden. Die 3D-Koordinaten in diesem Beispiel können auf der Basis der Beziehung (in homogener Form angegeben) bestimmt werden: [ a ' n b ' n c ' n 1 ] T C a m e r a 1 = T                 C a m e r a 1 C a m e r a 2 [ X ' n Y ' n Z ' n 1 ] T C a m e r a 2
    Figure DE102021102493A1_0034
  • Im obigen Beispiel kann TCamera2 Camera1 eine Matrix sein, die eine Abschätzung der in Schritt 1405 bestimmten Transformationsfunktion ist, während [X'n Y'n Z'n] T Camera2 3D-Koordinaten sein können, die physische Orte der Musterelemente 4611 bis 46125 mit Bezug auf die zweite Kamera (z. B. 480) beschreiben, wie vorstehend mit Bezug auf 3B erörtert. Die 3D-Koordinaten [X'1 Y'1 Z'1] T Camera2 ... [X'25 Y'25 Z'25]T Camera2 können z. B. auf der Basis des zweiten Kalibrierbildes (z. B. 1580B) und von definierten Musterelementkoordinaten (z. B. [X'' Y''1 Z''1]T Pattern ... [X''25 Y''25 Z''25]T Pattern) bestimmt werden. Insbesondere kann eine Technik wie z. B. der Perspektive-n-Punkt-Algorithmus oder Zhang-Algorithmus beim Bestimmen der 3D-Koordinaten [X'1 Y'1 Z'1] T Camera2 ... [X'25 Y'25 Z'25]T Camera2 verwendet werden. Da ein Ergebnis der obigen Gleichung (Gleichung 15) in einigen Fällen verwendet werden kann, um die Bildkoordinaten [q'1 r'1] T ... [q'25 r'25]T zu bestimmen, basieren die Bildkoordinaten in diesen Fällen auf der Abschätzung der Transformationsfunktion und können folglich verwendet werden, um eine Genauigkeit der Abschätzung der Transformationsfunktion zu bestimmen, wie nachstehend genauer erörtert.
  • In einer Ausführungsform kann die Vielzahl von transformierten Koordinaten, die in Schritt 1411 bestimmt werden, eine Vielzahl von 3D-Koordinaten sein, die physische Orte der Musterelemente 4611 bis 46125 relativ zur ersten Kamera (z. B. 470) wie z. B. relativ zum ersten Kamerakoordinatensystem abschätzen. Die Vielzahl von transformierten Koordinaten in einer solchen Ausführungsform kann beispielsweise 3D-Koordinaten [a'n b'n c'n 1]T Camera1 sein, die unter Verwendung der Abschätzung der Transformationsfunktion bestimmt werden, wie vorstehend in Gleichung 15 erörtert. Wenn die erste Vielzahl von Koordinaten auch eine Vielzahl von 3D-Koordinaten ist, dann kann die Vielzahl von transformierten Koordinaten als Vielzahl von transformierten Koordinaten bezeichnet werden.
  • Mit Rückkehr zu 14 kann das Verfahren 1400 in einer Ausführungsform einen Schritt 1413 umfassen, in dem das Rechensystem 110 einen Fehlerparameterwert bestimmt, der jeweilige Differenzen zwischen der ersten Vielzahl von Koordinaten und der Vielzahl von transformierten Koordinaten beschreibt.
  • In einer Ausführungsform kann der Fehlerparameterwert auf Werten basieren, die jeweilige Distanzen (oder allgemeiner einen Versatz) zwischen der ersten Vielzahl von Koordinaten und der Vielzahl von transformierten Koordinaten darstellen. Wenn die erste Vielzahl von Koordinaten und die Vielzahl von transformierten Koordinaten Bildkoordinaten (z. B. Pixelkoordinaten) sind, dann kann der Fehlerparameterwert ein Reprojektionsfehler sein, wie nachstehend erörtert. Wenn die erste Vielzahl von Koordinaten und die Vielzahl von transformierten Koordinaten 3D-Koordinaten sind, kann der Fehlerparameterwert ein Rekonstruktionsfehler oder Rekonstruktionsfehlerwinkel sein, wie auch nachstehend erörtert.
  • 17A stellt beispielsweise ein Beispiel dar, in dem eine erste Vielzahl von Koordinaten die erste Vielzahl von Pixelkoordinaten [u1 v1] T ... [u25 V25] T ist (wie in 15A dargestellt) und die Vielzahl von transformierten Koordinaten eine zusätzliche Vielzahl von Pixelkoordinaten [q'1 r'1] T ... [q'25 r'25]T ist (wie in 16A dargestellt). In einem solchen Beispiel kann der Fehlerparameterwert auf jeweiligen Distanzen d_pixeln zwischen der ersten Vielzahl von Pixelkoordinaten und der zusätzlichen Vielzahl von Pixelkoordinaten basieren (auch als Bilddistanzen oder spezieller als Pixeldistanzen bezeichnet): d _ p i x e l n = ( u n q ' n ) 2 + ( v n r ' n ) 2
    Figure DE102021102493A1_0035
  • In einigen Fällen kann der Fehlerparameterwert ein Mittelwert der jeweiligen Pixeldistanzen (z. B. d_pixel1 bis d_pixel25) oder irgendeine andere statistische Metrik auf der Basis der jeweiligen Pixeldistanzen sein. Ein solcher Fehlerparameterwert kann als Reprojektionsfehler bezeichnet werden.
  • Als anderes Beispiel stellt 17B eine Situation dar, in der die erste Vielzahl von Koordinaten die erste Vielzahl von 3D-Koordinaten [X1 Y1 Z1] T Camera1 ... [X25 Y25 Z25]T Camera1 (wie in 13A dargestellt) ist und die Vielzahl von transformierten Koordinaten eine Vielzahl von 3D-Koordinaten [a'1 b'1 c'1]T Camera1 ... [a'25 b'25 c'25] T Camera1 (wie in 16B dargestellt) ist. In einem solchen Beispiel kann der Fehlerparameterwert auf jeweiligen Distanzen d_physicaln zwischen der ersten Vielzahl von 3D-Koordinaten und der zusätzlichen Vielzahl von 3D-Koordinaten basieren (auch als 3D-Distanzen oder physische Distanzen bezeichnet): d _ p h y s i c a l n = ( x n a ' n ) 2 + ( y n b ' n ) 2 + ( z n c ' n ) 2
    Figure DE102021102493A1_0036
  • In einigen Fällen kann der Fehlerparameterwert ein Mittelwert der jeweiligen 3D-Distanzen (z. B. d_physical1 bis d_physical25) oder irgendeine andere statistische Metrik auf der Basis der jeweiligen 3D-Distanzen sein. Ein solcher Fehlerparameterwert kann als Rekonstruktionsfehler bezeichnet werden.
  • In einer Ausführungsform kann ein Nutzen des Reprojektionsfehlers oder des Rekonstruktionsfehlers von einer Distanz zwischen der ersten Kamera (z. B. 470) oder der zweiten Kamera (z. B. 480) und dem Kalibriermuster (z. B. 460), das erfasst (z. B. photographiert) wird, abhängen. Der Reprojektionsfehler kann beispielsweise mehr Nutzen haben, wenn das Kalibriermuster (z. B. 460) näher an der ersten Kamera (z. B. 470) und/oder der zweiten Kamera (z. B. 480) liegt. Wenn beispielsweise die erste Kamera (z. B. 470) und/oder die zweite Kamera (z. B. 480) eine begrenzte Auflösung aufweisen, können Distanzen zwischen der ersten Vielzahl von Pixelkoordinaten und der zusätzlichen Vielzahl von Pixelkoordinaten kleiner werden und/oder an Granularität verlieren, wenn das Kalibriermuster (z. B. 460) weiter von den Kameras entfernt erfasst wird. 17C stellt beispielsweise ein Beispiel eines Kalibrierbildes des Kalibriermusters 460 dar, das durch die erste Kamera 470 von 13A und 13B erzeugt wird, wobei das Kalibriermuster 460 weiter von der ersten Kamera 470 entfernt relativ zu einer Situation angeordnet ist, in der das Kalibrierbild von 17A erzeugt wird. Das Kalibriermuster 460 erscheint kleiner im Kalibrierbild von 17C relativ zu seinem Aussehen im Kalibrierbild von 17A. Das kleinere Aussehen des Kalibrierbildes in 17C kann verursachen, dass [un vn]T und [q'n r'n]T näher zusammen erscheinen, und kann folglich die Pixeldistanzen d_pixeln verkleinern. In einigen Fällen können die verkleinerten Pixeldistanzen verursachen, dass der Fehler der Abschätzung der Transformationsfunktion unterschätzt oder abwärts gewichtet wird.
  • Wie vorstehend angegeben, kann der Rekonstruktionsfehler auch von einer Distanz zwischen dem Kalibriermuster (z. B. 460) und der ersten Kamera (z. B. 470) und/oder der zweiten Kamera (z. B. 480) abhängen. 17D stellt beispielsweise das Kalibriermuster 460 dar, das in einer Distanz von den Kameras erfasst wird, die relativ zum Szenario in 17B weiter ist. In diesem Beispiel kann, wenn sich das Kalibriermuster 460 weiter von der ersten Kamera 470 und/oder der zweiten Kamera 480 bewegt, die Abschätzung der Transformationsfunktion verursachen, dass die zusätzliche Vielzahl von 3D-Koordinaten [a'1 b'1 c'1]T Camera1 ... [a'25 b'25 c'25]T Camera1 einen größeren Versatz von der ersten Vielzahl von 3D-Koordinaten [X1 Y1 Z1]T Camera1 ... [X25 Y25 Z25]T Camera1 aufweist. Der größere Versatz kann die Distanzen d_physical vergrößern, was verursachen kann, dass der Fehler der Abschätzung der Transformationsfunktion überschätzt oder übergewichtet wird.
  • In einer Ausführungsform kann Schritt 1413 das Bestimmen eines Fehlerparameterwerts beinhalten, der ein Rekonstruktionsfehlerwinkel ist, der keine Abhängigkeit oder weniger Abhängigkeit von einer Distanz zwischen der Kamera (z. B. 470) und einem Kalibriermuster (z. B. 460) oder einem anderen Objekt, das durch die Kamera erfasst wird, haben kann. Insbesondere kann der Fehlerparameterwert in einer solchen Ausführungsform auf Werten basieren, die jeweilige Winkel darstellen, die zwischen jeweiligen Paaren von imaginären Linien gebildet sind, die sich von einem Ort, der der ersten Kamera (z. B. 470) zugeordnet ist, zur ersten Vielzahl von 3D-Koordinaten und zur zusätzlichen Vielzahl von 3D-Koordinaten erstrecken. Jedes der Paare von imaginären Linien kann eine erste imaginäre Linie, die sich zu einer der ersten Vielzahl von 3D-Koordinaten erstreckt, umfassen und eine zweite imaginäre Linie, die sich zu einer entsprechenden der Vielzahl von transformierten Koordinaten oder spezieller der zusätzlichen Vielzahl von 3D-Koordinaten erstreckt, umfassen. 18A und 18B stellen beispielsweise einen ersten Winkel 1811 dar, der zwischen einem ersten Paar von imaginären Linien 1801A, 1801B gebildet ist. Insbesondere kann das erste Paar von imaginären Linien eine erste imaginäre Linie 1801A umfassen, die sich von der ersten Kamera 470 zu einer 3D-Koordinate [X1 Y1 Z1]T Camera1 der ersten Vielzahl von 3D-Koordinaten erstreckt, und eine zweite imaginäre Linie umfassen, die sich von der ersten Kamera 470 zu einer entsprechenden 3D-Koordinate [a'1 b'1 c'1]T der zusätzlichen Vielzahl von 3D-Koordinaten erstreckt. In einigen Fällen kann sich das erste Paar von imaginären Linien von einem Brennpunkt der ersten Kamera (z. B. 470) erstrecken.
  • Wie vorstehend angegeben, kann der Rekonstruktionsfehlerwinkel weniger Abhängigkeit von einer Distanz zwischen dem Kalibriermuster 460 und der ersten Kamera 470 und/oder der zweiten Kamera 480 haben. 18C stellt beispielsweise eine Situation dar, in der das Kalibriermuster 460 näher zur ersten Kamera 470 relativ zu dem Szenario, das in 18B dargestellt ist, bewegt ist. In diesem Beispiel kann die Abschätzung der Transformationsfunktion verursachen, dass die transformierte Koordinate [a'1 b'1 c'1]T Camera1 näher an eine entsprechende Koordinate [X1 Y1 Z1]T Camera1 gelangt, so dass sie einen kleineren Versatz aufweist. Der Rekonstruktionsfehlerwinkel 1811 kann jedoch einen Wert aufweisen, der trotz der Änderung der Distanz zwischen dem Szenario in 18B und 18C gleich bleibt.
  • Als anderes Beispiel des Rekonstruktionsfehlerwinkels stellt 18D einen zweiten Winkel 1812 dar, der zwischen einem zweiten Paar von imaginären Linien 1802A, 1802B gebildet ist. Die imaginäre Linie 1802A kann sich von der ersten Kamera 470 zu einer anderen 3D-Koordinate [X2 Y2 Z2]T Camera1 der ersten Vielzahl von 3D-Koordinaten erstrecken. Die imaginäre Linie 1802B kann sich von der ersten Kamera 470 zu einer anderen 3D-Koordinate [a'2 b'2 c'2] T der Vielzahl von transformierten Koordinaten erstrecken. In einigen Fällen kann der Rekonstruktionsfehlerwinkel ein Winkelwert sein, der ein Mittelwert oder ein anderes statistisches Maß der jeweiligen Winkel (z. B. 1811, 1812 usw.) ist, die durch die jeweiligen Paare von imaginären Linien zwischen der ersten Vielzahl von 3D-Koordinaten und der Vielzahl von transformierten Koordinaten gebildet werden.
  • Mit Rückkehr zu 14 kann das Verfahren 1400 in einer Ausführungsform einen Schritt 1415 umfassen, in dem das Rechensystem 110 die Abschätzung der Transformationsfunktion auf der Basis des Fehlerparameterwerts aktualisiert, um eine aktualisierte Abschätzung der Transformationsfunktion zu erzeugen. Wenn beispielsweise die Transformationsfunktion eine Matrix ist, die den relativen Ort und die relative Orientierung zwischen der ersten Kamera (z. B. 470) und der zweiten Kamera (z. B. 480) beschreibt, kann Schritt 1415 einen der vorstehend erörterten Optimierungsalgorithmen verwenden, um Parameterwerte der Matrix anzupassen, um den Projektionsfehler, den Rekonstruktionsfehler, den Rekonstruktionsfehlerwinkel und/oder irgendeinen anderen Fehlerparameterwert zu verringern.
  • In einer Ausführungsform kann das Verfahren 1400 einen Schritt 1417 umfassen, in dem das Rechensystem 110 Stereokalibrierinformationen bestimmt, die die aktualisierte Abschätzung der Transformationsfunktion umfassen oder darauf basieren. Die Stereokalibrierinformationen können beispielsweise gleich der aktualisierten Abschätzung der Transformationsfunktion sein.
  • In einer Ausführungsform kann, wenn ein anderes Objekt als das Kalibriermuster (z. B. 460) sich im ersten Kamerasichtfeld (z. B. 410) und im zweiten Kamerasichtfeld (z. B. 420) befindet, wie z. B. ein Paket in einem Warenlager, das Rechensystem 110 dazu eingerichtet sein, in einem Schritt 1417 ein erstes nachfolgendes Bild, das durch die erste Kamera erzeugt wird, und ein zweites nachfolgendes Bild, das durch die zweite Kamera erzeugt wird, zu empfangen. Das Verfahren 1400 kann ferner einen Schritt 1419 umfassen, in dem das Rechensystem 110 dazu eingerichtet sein kann, Objektstrukturinformationen für das Objekt auf der Basis des ersten nachfolgenden Bildes, des zweiten nachfolgenden Bildes und der Stereokalibrierinformationen zu bestimmen.
  • In einer Ausführungsform können einer oder mehrere Schritte des Verfahrens 1400 weggelassen werden. Die Schritte 1417 und 1419 können beispielsweise weggelassen werden. In einer Ausführungsform können einer oder mehrere Schritte vom Verfahren 1400 mit einem oder mehreren Schritten des Verfahrens 500 kombiniert werden. In einigen Fällen können beispielsweise die Schritte 501-513 durchgeführt werden, um intrinsische Kamerakalibrierinformationen zu bestimmen, die einer Kamera (z. B. 470) zugeordnet sind, und die intrinsische Kamerakalibrierung kann verwendet werden, um eine Abschätzung der Transformationsfunktion in Schritt 1405 zu bestimmen und/oder die zweite Vielzahl von Koordinaten in eine zweite Vielzahl von transformierten Koordinaten in Schritt 1411 zu transformieren.
  • Kurzgefasste Beschreibung von verschiedenen Ausführungsformen
  • Die Ausführungsform A1 umfasst ein Rechensystem oder ein Verfahren, das durch das Rechensystem durchgeführt wird. Das Rechensystem in dieser Ausführungsform umfasst eine Kommunikationsschnittstelle, die dazu eingerichtet ist, mit einer Kamera mit einem Kamerasichtfeld zu kommunizieren, und umfasst eine Steuerschaltung. Die Steuerschaltung kann das Verfahren ausführen (z. B. wenn Befehle ausgeführt werden, die in einem nicht flüchtigen computerlesbaren Medium gespeichert sind). In dieser Ausführungsform ist die Steuerschaltung dazu eingerichtet, wenn die Kamera ein Kalibrierbild für ein Kalibriermuster im Kamerasichtfeld erzeugt hat, und wenn das Kalibriermuster eine Vielzahl von Musterelementen mit jeweiligen definierten Musterelementkoordinaten in einem Musterkoordinatensystem umfasst, eine Kamerakalibrierung durchzuführen durch: Empfangen des Kalibrierbildes, wobei das Kalibrierbild ein Bild ist, das das Kalibriermuster darstellt; Bestimmen einer Vielzahl von Bildkoordinaten zum Darstellen von jeweiligen Orten, an denen die Vielzahl von Musterelementen im Kalibrierbild erscheint; Bestimmen einer Abschätzung für einen ersten Linsenverzerrungsparameter eines Satzes von Linsenverzerrungsparametern, die eine Linsenverzerrung beschreiben, die der Kamera zugeordnet ist, auf der Basis der Vielzahl von Bildkoordinaten und der definierten Musterelementkoordinaten, wobei die Abschätzung für den ersten Linsenverzerrungsparameter bestimmt wird, während ein zweiter Linsenverzerrungsparameter des Satzes von Linsenverzerrungsparametern als null abgeschätzt wird, oder ohne Abschätzen des zweiten Linsenverzerrungsparameters bestimmt wird; Bestimmen, nachdem die Abschätzung des ersten Linsenverzerrungsparameters bestimmt ist, einer Abschätzung für den zweiten Linsenverzerrungsparameter auf der Basis der Abschätzung für den ersten Linsenverzerrungsparameter; und Bestimmen von Kamerakalibrierinformationen, die jeweilige Abschätzungen für den Satz Linsenverzerrungsparametern umfassen, wobei die jeweiligen Abschätzungen für den Satz von Linsenverzerrungsparametern die Abschätzung für den ersten Linsenverzerrungsparameter und die Abschätzung für den zweiten Linsenverzerrungsparameter umfassen oder darauf basieren. In dieser Ausführungsform ist die Steuerschaltung ferner dazu eingerichtet ist, wenn die Kommunikationsschnittstelle mit der Kamera und mit einem Roboter in Kommunikation steht, ein nachfolgendes Bild zu empfangen, das durch die Kamera erzeugt wird, nachdem die Kamerakalibrierung durchgeführt wurde, und einen Bewegungsbefehl zum Steuern einer Roboterbewegung zu erzeugen, wobei der Bewegungsbefehl auf dem nachfolgenden Bild basiert und auf den Kamerakalibrierinformationen basiert.
  • Die Ausführungsform A2 umfasst das Rechensystem der Ausführungsform A1, wobei die Steuerschaltung dazu eingerichtet ist, die Abschätzung für den ersten Linsenverzerrungsparameter zu bestimmen, während alle anderen Linsenverzerrungsparameter des Satzes von Linsenverzerrungsparametern als null abgeschätzt werden, oder dazu eingerichtet ist, die Abschätzung für den ersten Linsenverzerrungsparameter ohne Abschätzen von irgendeinem anderen Linsenverzerrungsparameter des Satzes von Linsenverzerrungsparametern zu bestimmen.
  • Die Ausführungsform A3 umfasst das Rechensystem der Ausführungsform A1 oder A2, wobei der erste Linsenverzerrungsparameter einen ersten Typ von Linsenverzerrung beschreibt, die der Kamera zugeordnet ist, und der zweite Linsenverzerrungsparameter einen zweiten Typ von Linsenverzerrung beschreibt, die der Kamera zugeordnet ist.
  • Die Ausführungsform A4 umfasst das Rechensystem der Ausführungsform A3, wobei der erste Typ von Linsenverzerrung eine radiale Linsenverzerrung ist und der zweite Typ von Linsenverzerrung eine tangentiale Linsenverzerrung ist.
  • Die Ausführungsform A5 umfasst das Rechensystem der Ausführungsformen A1 oder A2, wobei der erste Linsenverzerrungsparameter und der zweite Linsenverzerrungsparameter einen gleichen Typ von Linsenverzerrung, die der Kamera zugeordnet ist, beschreiben.
  • Die Ausführungsform A6 umfasst das Rechensystem der Ausführungsform A5. In dieser Ausführungsform umfasst der Satz von Linsenverzerrungsparametern mehrere Linsenverzerrungsparameter, die mehrere jeweilige radiale Polynomkomponenten beschreiben, die ein Teil eines Modells einer radialen Linsenverzerrung sind, die der Kamera zugeordnet ist, und wobei der erste Linsenverzerrungsparameter einer der mehreren Linsenverzerrungsparameter ist und eine radiale Polynomkomponente niedrigsten Grades unter den mehreren jeweiligen radialen Polynomkomponenten beschreibt.
  • Die Ausführungsform A7 umfasst das Rechensystem der Ausführungsform A6, wobei der Satz von Linsenverzerrungsparametern einen dritten Linsenverzerrungsparameter umfasst, wobei der dritte Linsenverzerrungsparameter eine radiale Polynomkomponente höchsten Grades unter den mehreren jeweiligen radialen Polynomkomponenten beschreibt. In dieser Ausführungsform wird die Abschätzung für den zweiten Linsenverzerrungsparameter auf der Basis der Abschätzung für den ersten Linsenverzerrungsparameter bestimmt und wird bestimmt, während der dritte Linsenverzerrungsparameter als null abgeschätzt wird, oder ohne Abschätzen des dritten Linsenverzerrungsparameters.
  • Die Ausführungsform A8 umfasst das Rechensystem der Ausführungsform A7, wobei die Abschätzung für den ersten Linsenverzerrungsparameter eine erste Abschätzung davon ist und während einer ersten Kamerakalibrierstufe bestimmt wird, und wobei die Abschätzung für den zweiten Linsenverzerrungsparameter während einer anschließenden Kamerakalibrierstufe bestimmt wird, die der ersten Kamerakalibrierstufe folgt. In dieser Ausführungsform umfasst der Satz von Linsenverzerrungsparametern den dritten Linsenverzerrungsparameter und eine Teilmenge mit anderen Linsenverzerrungsparametern des Satzes. Ferner ist die Steuerschaltung dazu eingerichtet, während der anschließenden Kamerakalibrierstufe Linsenverzerrungsparameter der Teilmenge von Linsenverzerrungsparametern abzuschätzen, während der dritte Linsenverzerrungsparameter als null abgeschätzt wird, oder ohne Abschätzen des dritten Linsenverzerrungsparameters. Außerdem umfasst das Abschätzen der Linsenverzerrungsparameter der Teilmenge das Bestimmen der Abschätzung des zweiten Linsenverzerrungsparameters und das Bestimmen einer zweiten Abschätzung des ersten Linsenverzerrungsparameters.
  • Die Ausführungsform A9 umfasst das Rechensystem von irgendeiner der Ausführungsformen A1-A8, wobei die Kamerakalibrierinformationen einen Satz von Projektionsparametern beschreiben, die eine Kamerabildprojektion beschreiben, die der Kamera zugeordnet ist, wobei die Steuerschaltung dazu eingerichtet ist: jeweilige Abschätzungen für den Satz von Projektionsparametern zu bestimmen; nachdem die Abschätzung für den ersten Linsenverzerrungsparameter und die Abschätzung für den zweiten Linsenverzerrungsparameter bestimmt sind, eine aktualisierte Abschätzung für den ersten Linsenverzerrungsparameter und eine aktualisierte Abschätzung für den zweiten Linsenverzerrungsparameter auf der Basis der jeweiligen Abschätzungen für den Satz von Projektionsparametern zu bestimmen. In dieser Ausführungsform werden die aktualisierte Abschätzung für den ersten Linsenverzerrungsparameter und die aktualisierte Abschätzung für den zweiten Linsenverzerrungsparameter bestimmt, während der Satz von Projektionsparametern im Wert auf die jeweiligen Abschätzungen davon festgesetzt wird.
  • Die Ausführungsform A10 umfasst das Rechensystem der Ausführungsform A9, wobei die aktualisierte Abschätzung des ersten Linsenverzerrungsparameters und die aktualisierte Abschätzung des zweiten Linsenverzerrungsparameters mit einer Krümmungsverringerungsstufe bestimmt werden, in der die Steuerschaltung dazu eingerichtet ist, Folgendes durchzuführen: (a) Bestimmen einer anfänglichen Abschätzung für den ersten Linsenverzerrungsparameter und einer anfänglichen Abschätzung für den zweiten Linsenverzerrungsparameter für die Krümmungsverringerungsstufe auf der Basis der Abschätzung des ersten Linsenverzerrungsparameters und auf der Basis der Abschätzung des zweiten Linsenverzerrungsparameters; (b) Erzeugen einer modifizierten Version des Kalibrierbildes, die die Linsenverzerrung kompensiert, die der Kamera zugeordnet ist, auf der Basis der anfänglichen Abschätzung des ersten Linsenverzerrungsparameters, der anfänglichen Abschätzung des zweiten Linsenverzerrungsparameters und des Kalibrierbildes, (c) Bestimmen eines Ausmaßes der Krümmung in der modifizierten Version des Kalibrierbildes, (d) Anpassen der anfänglichen Abschätzung des ersten Linsenverzerrungsparameters und der anfänglichen Abschätzung des zweiten Linsenverzerrungsparameters auf der Basis des Ausmaßes der Krümmung in der modifizierten Version des Kalibrierbildes, um eine angepasste Abschätzung für den ersten Linsenverzerrungsparameter und eine angepasste Abschätzung für den zweiten Linsenverzerrungsparameter zu erzeugen, die das Ausmaß der Krümmung verringern, wobei die angepasste Abschätzung für den ersten Linsenverzerrungsparameter die aktualisierte Abschätzung davon ist und die angepasste Abschätzung für den zweiten Linsenverzerrungsparameter die aktualisierte Abschätzung davon ist. In dieser Ausführungsform ist die Steuerschaltung dazu eingerichtet, die Kamerakalibrierinformationen auf der Basis der aktualisierten Abschätzung des ersten Linsenverzerrungsparameters und der aktualisierten Abschätzung des zweiten Linsenverzerrungsparameters zu bestimmen.
  • Die Ausführungsform A11 umfasst das Rechensystem der Ausführungsform A9 oder A10, wobei der Satz von Linsenverzerrungsparametern einen dritten Linsenverzerrungsparameter umfasst, wobei eine Abschätzung des dritten Linsenverzerrungsparameters in der Krümmungsverringerungsstufe zusammen mit der aktualisierten Abschätzung für den ersten Linsenverzerrungsparameter und der aktualisierten Abschätzung für den zweiten Linsenverzerrungsparameter bestimmt wird. In dieser Ausführungsform ist die Steuerschaltung dazu eingerichtet, nachdem die aktualisierte Abschätzung des ersten Linsenverzerrungsparameters und die aktualisierte Abschätzung des zweiten Linsenverzerrungsparameters bestimmt wurden, jeweilige aktualisierte Abschätzungen für den Satz von Projektionsparametern auf der Basis der aktualisierten Abschätzung des ersten Linsenverzerrungsparameters, der aktualisierten Abschätzung des zweiten Linsenverzerrungsparameters und der Abschätzung des dritten Linsenverzerrungsparameters zu bestimmen, während die Abschätzung des dritten Linsenverzerrungsparameters im Wert auf die Abschätzung davon festgesetzt wird.
  • Die Ausführungsform A12 umfasst das Rechensystem von irgendeiner der Ausführungsformen A1-A11, wobei der Satz von Linsenverzerrungsparametern einen zusätzlichen anderen Linsenverzerrungsparameter als den ersten Linsenverzerrungsparameter und den zweiten Linsenverzerrungsparameter umfasst. In dieser Ausführungsform ist die Steuerschaltung dazu eingerichtet: (a) eine aktualisierte Abschätzung für den ersten Linsenverzerrungsparameter auf der Basis der Abschätzung des ersten Linsenverzerrungsparameters und auf der Basis der Abschätzung des zweiten Linsenverzerrungsparameters zu bestimmen, und (b) eine Abschätzung für den zusätzlichen Linsenverzerrungsparameter auf der Basis der aktualisierten Abschätzung für den ersten Linsenverzerrungsparameter zu bestimmen, wobei die Abschätzung für den zusätzlichen Linsenverzerrungsparameter bestimmt wird, während der erste Linsenverzerrungsparameter im Wert auf die aktualisierte Abschätzung davon festgesetzt wird.
  • Die Ausführungsform A13 umfasst das Rechensystem von irgendeiner der Ausführungsformen A1-A12, wobei die Kamera, mit der die Kommunikationsschnittstelle zu kommunizieren eingerichtet ist, eine erste Kamera ist, wobei das Kalibrierbild ein erstes Kalibrierbild ist und das Kamerasichtfeld ein erstes Kamerablickfeld ist, und wobei die Kommunikationsschnittstelle ferner dazu eingerichtet ist, mit einer zweiten Kamera mit einem zweiten Kamerasichtfeld zu kommunizieren. In dieser Ausführungsform ist die Steuerschaltung dazu eingerichtet, wenn das Kalibriermuster sich im ersten Kamerasichtfeld und im zweiten Kamerasichtfeld befindet oder befunden hat: ein zweites Kalibrierbild zu empfangen, wobei das zweite Kalibrierbild ein zweites Bild ist, das das Kalibriermuster darstellt und durch die zweite Kamera erzeugt wird; eine Abschätzung einer Transformationsfunktion zum Beschreiben einer räumlichen Beziehung zwischen der ersten Kamera und der zweiten Kamera zu bestimmen; auf der Basis des ersten Kalibrierbildes eine erste Vielzahl von Koordinaten zu bestimmen, die jeweilige Orte der Vielzahl der Musterelemente relativ zur ersten Kamera beschreiben; auf der Basis des zweiten Kalibrierbildes eine zweite Vielzahl von Koordinaten zu bestimmen, die jeweilige Orte der Vielzahl der Musterelemente relativ zur zweiten Kamera beschreiben; auf der Basis der Abschätzung der Transformationsfunktion die zweite Vielzahl von Koordinaten in eine Vielzahl von transformierten Koordinaten zu transformieren, die zur ersten Kamera relativ sind; einen Fehlerparameterwert zu bestimmen, der jeweilige Differenzen zwischen der ersten Vielzahl von Koordinaten und der Vielzahl von transformierten Koordinaten beschreibt; und die Abschätzung der Transformationsfunktion auf der Basis des Fehlerparameterwerts zu aktualisieren, um eine aktualisierte Abschätzung der Transformationsfunktion zu erzeugen.
  • Die Ausführungsform A14 umfasst das Rechensystem der Ausführungsform A13. In dieser Ausführungsform ist die erste Vielzahl von Koordinaten die Vielzahl von jeweiligen Bildkoordinaten, die jeweilige Orte darstellen, an denen die Vielzahl von Musterelementen im ersten Kalibrierbild erscheint. In dieser Ausführungsform ist die Vielzahl von transformierten Koordinaten eine zusätzliche Vielzahl von jeweiligen Bildkoordinaten, die die Vielzahl von Musterelementen darstellen, und wobei die Steuerschaltung dazu eingerichtet ist, die zusätzliche Vielzahl von jeweiligen Bildkoordinaten auf der Basis der Kamerakalibrierinformationen zum Beschreiben der Kalibrierung für die erste Kamera zu bestimmen.
  • Die Ausführungsform A15 umfasst das Rechensystem der Ausführungsform A13. In dieser Ausführungsform ist die erste Vielzahl von Koordinaten eine Vielzahl von 3D-Koordinaten für die Musterelemente in einem ersten Kamerakoordinatensystem, das ein Koordinatensystem für die erste Kamera ist. In dieser Ausführungsform ist die Vielzahl von transformierten Koordinaten eine zusätzliche Vielzahl von 3D-Koordinaten für die Musterelemente im ersten Kamerakoordinatensystem.
  • Die Ausführungsform A16 umfasst das Rechensystem der Ausführungsform A15. In dieser Ausführungsform basiert der Fehlerparameterwert auf Werten, die jeweilige Distanzen zwischen der ersten Vielzahl von 3D-Koordinaten und der zusätzlichen Vielzahl von 3D-Koordinaten darstellen.
  • Die Ausführungsform A17 umfasst das Rechensystem der Ausführungsform A15. In dieser Ausführungsform basiert der Fehlerparameterwert auf Werten, die jeweilige Winkel darstellen, die zwischen jeweiligen Paaren von imaginären Linien gebildet sind, die sich von einem Ort, der der ersten Kamera zugeordnet ist, erstrecken, wobei jedes der jeweiligen Paare von imaginären Linien eine jeweilige erste imaginäre Linie aufweist, die sich zu einer jeweiligen 3D-Koordinate der ersten Vielzahl von 3D-Koordinaten erstreckt, und eine jeweilige zweite imaginäre Linie aufweist, die sich zu einer jeweiligen 3D-Koordinate der zusätzlichen Vielzahl von 3D-Koordinaten erstreckt.
  • Die Ausführungsform B1 bezieht sich auf ein Rechensystem oder ein Verfahren, das durch das Rechensystem durchgeführt wird. Das Verfahren kann durchgeführt werden, wenn z. B. das Rechensystem Befehle ausführt, die auf einem nicht flüchtigen computerlesbaren Medium gespeichert sind. In dieser Ausführungsform umfasst das Rechensystem eine Kommunikationsschnittstelle, die dazu eingerichtet ist, mit einer ersten Kamera mit einem ersten Kamerasichtfeld und einer zweiten Kamera mit einem zweiten Kamerasichtfeld zu kommunizieren, und umfasst eine Steuerschaltung. Die Steuerschaltung ist dazu eingerichtet, wenn ein Kalibriermuster mit einer Vielzahl von Musterelementen sich im ersten Kamerasichtfeld und im zweiten Kamerasichtfeld befindet oder befunden hat, und wenn die erste Kamera ein erstes Kalibrierbild für das Kalibriermuster erzeugt hat und die zweite Kamera ein zweites Kalibrierbild für das Kalibriermuster erzeugt hat: das erste Kalibrierbild zu empfangen, wobei das erste Kalibrierbild ein erstes Bild ist, das das Kalibriermuster darstellt; ein zweites Kalibrierbild zu empfangen, wobei das zweite Kalibrierbild ein zweites Bild ist, das das Kalibriermuster darstellt; eine Abschätzung einer Transformationsfunktion zum Beschreiben einer räumlichem Beziehung zwischen der ersten Kamera und der zweiten Kamera zu bestimmen; auf der Basis des ersten Kalibrierbildes eine erste Vielzahl von Koordinaten zu bestimmen, die jeweilige Orte der Vielzahl der Musterelemente relativ zur ersten Kamera beschreiben; auf der Basis des zweiten Kalibrierbildes eine zweite Vielzahl von Koordinaten zu bestimmen, die jeweilige Orte der Vielzahl der Musterelemente relativ zur zweiten Kamera beschreiben; auf der Basis der Abschätzung der Transformationsfunktion die zweite Vielzahl von Koordinaten in eine Vielzahl von transformierten Koordinaten zu transformieren, die zur ersten Kamera relativ sind; einen Fehlerparameterwert zu bestimmen, der jeweilige Differenzen zwischen der ersten Vielzahl von Koordinaten und der Vielzahl von transformierten Koordinaten beschreibt; die Abschätzung der Transformationsfunktion auf der Basis des Fehlerparameterwerts zu aktualisieren, um eine aktualisierte Abschätzung der Transformationsfunktion zu erzeugen; und Stereokalibrierinformationen zu bestimmen, die die aktualisierte Abschätzung der Transformationsfunktion umfassen oder darauf basieren. In dieser Ausführungsform ist die Steuerschaltung ferner dazu eingerichtet, wenn ein anderes Objekt als das Kalibriermuster sich im ersten Kamerasichtfeld und im zweiten Kamerasichtfeld befindet, ein erstes nachfolgendes Bild, das durch die erste Kamera erzeugt wird, und ein zweites nachfolgendes Bild, das durch die zweite Kamera erzeugt wird, zu empfangen und Objektstrukturinformationen, die das Objekt darstellen, auf der Basis des ersten nachfolgenden Bildes, des zweiten nachfolgenden Bildes und der Stereokalibrierinformationen zu bestimmen.
  • Die Ausführungsform B2 umfasst das Rechensystem der Ausführungsform B1. In dieser Ausführungsform ist die erste Vielzahl von Koordinaten eine erste Vielzahl von jeweiligen Bildkoordinaten zum Darstellen von jeweiligen Orten, an denen die Vielzahl von Musterelementen im ersten Kalibrierbild erscheint. In dieser Ausführungsform ist, wenn die Kommunikationsschnittstelle mit der ersten Kamera in Kommunikation steht oder gestanden hat, die Steuerschaltung dazu eingerichtet, intrinsische Kamerakalibrierinformationen zu bestimmen, die beschreiben, wie Orte im ersten Kamerasichtfeld auf eine Bildebene für die erste Kamera projiziert werden. Ferner ist in dieser Ausführungsform die Vielzahl von transformierten Koordinaten eine zusätzliche Vielzahl von jeweiligen Bildkoordinaten, die die Vielzahl von Musterelementen darstellen, und wobei die Steuerschaltung dazu eingerichtet ist, die zusätzliche Vielzahl von jeweiligen Bildkoordinaten auf der Basis der intrinsischen Kamerakalibrierinformationen zu bestimmen.
  • Die Ausführungsform B3 umfasst das Rechensystem der Ausführungsform B1. In dieser Ausführungsform ist die erste Vielzahl von Koordinaten eine Vielzahl von 3D-Koordinaten, die die Musterelemente in einem ersten Kamerakoordinatensystem darstellen, das ein Koordinatensystem für die erste Kamera ist. In dieser Ausführungsform ist die Vielzahl von transformierten Koordinaten eine zusätzliche Vielzahl von 3D-Koordinaten, die die Musterelemente im ersten Kamerakoordinatensystem darstellen.
  • Die Ausführungsform B4 umfasst das Rechensystem der Ausführungsform B3. In dieser Ausführungsform basiert der Fehlerparameterwert auf Werten, die jeweilige Distanzen zwischen der ersten Vielzahl von 3D-Koordinaten und der zusätzlichen Vielzahl von 3D-Koordinaten darstellen.
  • Die Ausführungsform B5 umfasst das Rechensystem der Ausführungsform B3. In dieser Ausführungsform ist der Fehlerparameterwert ein Winkelwert, der auf Werten basiert, die jeweilige Winkel darstellen, die zwischen jeweiligen Paaren von imaginären Linien gebildet sind, die sich von einem Ort erstrecken, der der ersten Kamera zugeordnet ist, wobei jedes der jeweiligen Paare von imaginären Linien 1) eine jeweilige erste imaginäre Linie, die sich zu einer jeweiligen 3D-Koordinate der ersten Vielzahl von 3D-Koordinaten erstreckt, und 2) eine jeweilige zweite imaginäre Linie, die sich zu einer jeweiligen 3D-Koordinate der zusätzlichen Vielzahl von 3D-Koordinaten erstreckt, aufweist.
  • Die Ausführungsform B6 umfasst das Rechensystem der Ausführungsform B5. In dieser Ausführungsform ist der Ort, von dem sich die jeweiligen Paare von imaginären Linien erstrecken, ein Brennpunkt für die erste Kamera.
  • Die Ausführungsform B7 umfasst das Rechensystem von irgendeiner der Ausführungsformen B1-B6. In dieser Ausführungsform ist die Transformationsfunktion eine Transformationsmatrix, die einen relativen Ort und eine relative Orientierung zwischen der ersten Kamera und der zweiten Kamera beschreibt, und wobei das Aktualisieren der Abschätzung der Transformationsfunktion das Aktualisieren der Transformationsmatrix umfasst, um den Fehlerparameterwert zu verringern.
  • Die Ausführungsform B8 umfasst das Rechensystem von irgendeiner der Ausführungsformen B1-B7. In dieser Ausführungsform ist, wenn die Vielzahl von Musterelementen des Kalibriermusters jeweilige definierte Musterelementkoordinaten aufweist, die Steuerschaltung dazu eingerichtet: auf der Basis der ersten Vielzahl von Koordinaten und der definierten Musterelementkoordinaten eine Abschätzung für einen ersten Linsenverzerrungsparameter eines Satzes von Linsenverzerrungsparametern zu bestimmen, die eine Linsenverzerrung beschreiben, die der ersten Kamera zugeordnet ist, wobei die Abschätzung für den ersten Linsenverzerrungsparameter bestimmt wird, während ein zweiter Linsenverzerrungsparameter des Satzes von Linsenverzerrungsparametern als null abgeschätzt wird, oder bestimmt wird, ohne den zweiten Linsenverzerrungsparameter abzuschätzen; nachdem die Abschätzung des ersten Linsenverzerrungsparameters bestimmt ist, eine Abschätzung für den zweiten Linsenverzerrungsparameter auf der Basis der Abschätzung für den ersten Linsenverzerrungsparameter zu bestimmen; und Kamerakalibrierinformationen zu bestimmen, die die Kalibrierung für die erste Kamera beschreiben und die jeweilige Abschätzungen für den Satz von Linsenverzerrungsparametern umfassen. In dieser Ausführungsform umfassen die Abschätzungen für den Satz von Linsenverzerrungsparametern die Abschätzung für den ersten Linsenverzerrungsparameter und die Abschätzung für den zweiten Linsenverzerrungsparameter oder basieren auf diesen.
  • Obwohl verschiedene Ausführungsformen vorstehend beschrieben wurden, sollte selbstverständlich sein, dass sie nur als Erläuterungen und Beispiele der vorliegenden Erfindung und nicht zur Begrenzung dargestellt wurden. Für Fachleute auf dem relevanten Gebiet ist ersichtlich, dass verschiedene Änderungen in der Form und im Detail darin durchgeführt werden können, ohne vom Gedanken und Schutzbereich der Erfindung abzuweichen. Folglich sollten der Umfang und der Schutzbereich der vorliegenden Erfindung nicht durch irgendeine der vorstehend beschriebenen beispielhaften Ausführungsformen begrenzt werden, sondern sollten nur gemäß den beigefügten Ansprüchen und ihren Äquivalenten definiert werden. Es ist auch selbstverständlich, dass jedes Merkmal jeder hierin erörterten Ausführungsform und jeder hierin angeführten Bezugnahme in Kombination mit den Merkmalen irgendeiner anderen Ausführungsform verwendet werden kann. Alle hierin erörterten Patente und Veröffentlichungen werden durch Verweis hierin in ihrer Gesamtheit aufgenommen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62/969673 [0001]
    • US 16295940 [0030, 0069, 0072, 0080, 0083]
  • Zitierte Nicht-Patentliteratur
    • Titel „A Robotic System with Calibration Mechanism“ und eingereicht am 4. Februar 2020 [0001]

Claims (15)

  1. Rechensystem, das umfasst: eine Kommunikationsschnittstelle, die dazu eingerichtet ist, mit einer Kamera mit einem Kamerasichtfeld zu kommunizieren; eine Steuerschaltung, die dazu eingerichtet ist, wenn die Kamera ein Kalibrierbild für ein Kalibriermuster im Kamerasichtfeld erzeugt hat und wenn das Kalibriermuster eine Vielzahl von Musterelementen mit jeweiligen definierten Musterelementkoordinaten in einem Musterkoordinatensystem umfasst, die Kamerakalibrierung durchzuführen durch: Empfangen des Kalibrierbildes, wobei das Kalibrierbild ein Bild ist, das das Kalibriermuster darstellt; Bestimmen einer Vielzahl von Bildkoordinaten zum Darstellen von jeweiligen Orten, an denen die Vielzahl von Musterelementen im Kalibrierbild erscheint; Bestimmen einer Abschätzung für einen ersten Linsenverzerrungsparameter eines Satzes von Linsenverzerrungsparametern, die eine Linsenverzerrung beschreiben, die der Kamera zugeordnet ist, auf der Basis der Vielzahl von Bildkoordinaten und der definierten Musterelementkoordinaten, wobei die Abschätzung für den ersten Linsenverzerrungsparameter bestimmt wird, während ein zweiter Linsenverzerrungsparameter des Satzes von Linsenverzerrungsparametern als null abgeschätzt wird, oder ohne Abschätzen des zweiten Linsenverzerrungsparameters bestimmt wird; Bestimmen, nachdem die Abschätzung des ersten Linsenverzerrungsparameters bestimmt ist, einer Abschätzung für den zweiten Linsenverzerrungsparameter auf der Basis der Abschätzung für den ersten Linsenverzerrungsparameter, und Bestimmen von Kamerakalibrierinformationen, die jeweilige Abschätzungen für den Satz von Linsenverzerrungsparametern umfassen, wobei die jeweiligen Abschätzungen für den Satz von Linsenverzerrungsparametern die Abschätzung für den ersten Linsenverzerrungsparameter und die Abschätzung für den zweiten Linsenverzerrungsparameter umfassen oder auf diesen basieren, wobei die Steuerschaltung ferner dazu eingerichtet ist, wenn die Kommunikationsschnittstelle mit der Kamera und mit einem Roboter in Kommunikation steht, ein nachfolgendes Bild zu empfangen, das durch die Kamera erzeugt wird, nachdem die Kamerakalibrierung durchgeführt wurde, und einen Bewegungsbefehl zum Steuern einer Roboterbewegung zu erzeugen, wobei der Bewegungsbefehl auf dem nachfolgenden Bild basiert und auf den Kamerakalibrierinformationen basiert.
  2. Rechensystem nach Anspruch 1, wobei die Steuerschaltung dazu eingerichtet ist, die Abschätzung für den ersten Linsenverzerrungsparameter zu bestimmen, während alle anderen Linsenverzerrungsparameter des Satzes von Linsenverzerrungsparametern als null abgeschätzt werden, oder dazu eingerichtet ist, die Abschätzung für den ersten Linsenverzerrungsparameter ohne Abschätzen irgendeines anderen Linsenverzerrungsparameters des Satzes von Linsenverzerrungsparametern zu bestimmen.
  3. Rechensystem nach Anspruch 1, wobei der erste Linsenverzerrungsparameter einen ersten Typ von Linsenverzerrung beschreibt, die der Kamera zugeordnet ist, und der zweite Linsenverzerrungsparameter einen zweiten Typ von Linsenverzerrung beschreibt, die der Kamera zugeordnet ist.
  4. Rechensystem nach Anspruch 3, wobei der erste Typ von Linsenverzerrung eine radiale Linsenverzerrung ist und der zweite Typ von Linsenverzerrung eine tangentiale Linsenverzerrung ist.
  5. Rechensystem nach Anspruch 1, wobei der erste Linsenverzerrungsparameter und der zweite Linsenverzerrungsparameter einen gleichen Typ von Linsenverzerrung beschreiben, die der Kamera zugeordnet ist.
  6. Rechensystem nach Anspruch 5, wobei der Satz von Linsenverzerrungsparametern mehrere Linsenverzerrungsparameter umfasst, die mehrere jeweilige radiale Polynomkomponenten beschreiben, die ein Teil eines Modells einer radialen Linsenverzerrung sind, die der Kamera zugeordnet ist, und wobei der erste Linsenverzerrungsparameter einer der mehreren Linsenverzerrungsparameter ist und eine radiale Polynomkomponente niedrigsten Grades unter den mehreren jeweiligen radialen Polynomkomponenten beschreibt.
  7. Rechensystem nach Anspruch 6, wobei der Satz von Linsenverzerrungsparametern einen dritten Linsenverzerrungsparameter umfasst, wobei der dritte Linsenverzerrungsparameter eine radiale Polynomkomponente höchsten Grades unter den mehreren jeweiligen radialen Polynomkomponenten beschreibt, und wobei die Abschätzung für den zweiten Linsenverzerrungsparameter auf der Basis der Abschätzung für den ersten Linsenverzerrungsparameter bestimmt wird und bestimmt wird, während der dritte Linsenverzerrungsparameter als null abgeschätzt wird, oder ohne Abschätzen des dritten Linsenverzerrungsparameters.
  8. Rechensystem nach Anspruch 7, wobei die Abschätzung für den ersten Linsenverzerrungsparameter eine erste Abschätzung davon ist und während einer ersten Kamerakalibrierstufe bestimmt wird, und wobei die Abschätzung für den zweiten Linsenverzerrungsparameter während einer anschließenden Kamerakalibrierstufe bestimmt wird, die der ersten Kamerakalibrierstufe folgt, wobei der Satz von Linsenverzerrungsparametern den dritten Linsenverzerrungsparameter und eine Teilmenge mit anderen Linsenverzerrungsparametern des Satzes umfasst, wobei die Steuerschaltung dazu eingerichtet ist, während der anschließenden Kamerakalibrierstufe Linsenverzerrungsparameter der Teilmenge von Linsenverzerrungsparametern abzuschätzen, während der dritte Linsenverzerrungsparameter als null abgeschätzt wird, oder ohne Abschätzen des dritten Linsenverzerrungsparameters, wobei die Abschätzung der Linsenverzerrungsparameter der Teilmenge das Bestimmen der Abschätzung des zweiten Linsenverzerrungsparameters und das Bestimmen einer zweiten Abschätzung des ersten Linsenverzerrungsparameters umfasst.
  9. Rechensystem nach Anspruch 1, wobei die Kamerakalibrierinformationen einen Satz von Projektionsparametern beschreiben, die eine Kamerabildprojektion beschreiben, die der Kamera zugeordnet ist, wobei die Steuerschaltung dazu eingerichtet ist: jeweilige Abschätzungen für den Satz von Projektionsparametern zu bestimmen; nachdem die Abschätzung für den ersten Linsenverzerrungsparameter und die Abschätzung für den zweiten Linsenverzerrungsparameter bestimmt sind, eine aktualisierte Abschätzung für den ersten Linsenverzerrungsparameter und eine aktualisierte Abschätzung für den zweiten Linsenverzerrungsparameter auf der Basis der jeweiligen Abschätzungen für den Satz von Projektionsparametern zu bestimmen, und wobei die aktualisierte Abschätzung für den ersten Linsenverzerrungsparameter und die aktualisierte Abschätzung für den zweiten Linsenverzerrungsparameter bestimmt werden, während der Satz von Projektionsparametern im Wert auf die jeweiligen Abschätzungen davon festgesetzt wird.
  10. Rechensystem nach Anspruch 9, wobei die aktualisierte Abschätzung des ersten Linsenverzerrungsparameters und die aktualisierte Abschätzung des zweiten Linsenverzerrungsparameters mit einer Krümmungsverringerungsstufe bestimmt werden, in der die Steuerschaltung dazu eingerichtet ist, Folgendes durchzuführen: (a) Bestimmen einer anfänglichen Abschätzung für den ersten Linsenverzerrungsparameter und einer anfänglichen Abschätzung für den zweiten Linsenverzerrungsparameter für die Krümmungsverringerungsstufe auf der Basis der Abschätzung des ersten Linsenverzerrungsparameters und auf der Basis der Abschätzung des zweiten Linsenverzerrungsparameters; (b) Erzeugen einer modifizierten Version des Kalibrierbildes, die die Linsenverzerrung kompensiert, die der Kamera zugeordnet ist, auf der Basis der anfänglichen Abschätzung des ersten Linsenverzerrungsparameters, der anfänglichen Abschätzung des zweiten Linsenverzerrungsparameters und des Kalibrierbildes, (c) Bestimmen eines Ausmaßes an Krümmung in der modifizierten Version des Kalibrierbildes, (d) Anpassen der anfänglichen Abschätzung des ersten Linsenverzerrungsparameters und der anfänglichen Abschätzung des zweiten Linsenverzerrungsparameters auf der Basis des Ausmaßes der Krümmung in der modifizierten Version des Kalibrierbildes, um eine angepasste Abschätzung für den ersten Linsenverzerrungsparameter und eine angepasste Abschätzung für den zweiten Linsenverzerrungsparameter zu erzeugen, die das Ausmaß der Krümmung verringern, wobei die angepasste Abschätzung für den ersten Linsenverzerrungsparameter die aktualisierte Abschätzung davon ist, und die angepasste Abschätzung für den zweiten Linsenverzerrungsparameter die aktualisierte Abschätzung davon ist, und wobei die Steuerschaltung dazu eingerichtet ist, die Kamerakalibrierinformationen auf der Basis der aktualisierten Abschätzung des ersten Linsenverzerrungsparameters und der aktualisierten Abschätzung des zweiten Linsenverzerrungsparameters zu bestimmen.
  11. Rechensystem nach Anspruch 9, wobei der Satz von Linsenverzerrungsparametern einen dritten Linsenverzerrungsparameter umfasst, wobei eine Abschätzung des dritten Linsenverzerrungsparameters in der Krümmungsverringerungsstufe zusammen mit der aktualisierten Abschätzung für den ersten Linsenverzerrungsparameter und der aktualisierten Abschätzung für den zweiten Linsenverzerrungsparameter bestimmt wird, wobei die Steuerschaltung dazu eingerichtet ist, nachdem die aktualisierte Abschätzung des ersten Linsenverzerrungsparameters und die aktualisierte Abschätzung des zweiten Linsenverzerrungsparameters bestimmt wurden, jeweilige aktualisierte Abschätzungen für den Satz von Projektionsparametern auf der Basis der aktualisierten Abschätzung des ersten Linsenverzerrungsparameters, der aktualisierten Abschätzung des zweiten Linsenverzerrungsparameters und der Abschätzung des dritten Linsenverzerrungsparameters zu bestimmen, während die Abschätzung des dritten Linsenverzerrungsparameters im Wert auf die Abschätzung davon festgesetzt wird.
  12. Rechensystem nach Anspruch 1, wobei der Satz von Linsenverzerrungsparametern einen zusätzlichen anderen Linsenverzerrungsparameter als den ersten Linsenverzerrungsparameter und den zweiten Linsenverzerrungsparameter umfasst, wobei die Steuerschaltung dazu eingerichtet ist: (a) eine aktualisierte Abschätzung für den ersten Linsenverzerrungsparameter auf der Basis der Abschätzung des ersten Linsenverzerrungsparameters und auf der Basis der Abschätzung des zweiten Linsenverzerrungsparameters zu bestimmen, und (b) eine Abschätzung für den zusätzlichen Linsenverzerrungsparameter auf der Basis der aktualisierten Abschätzung für den ersten Linsenverzerrungsparameter zu bestimmen, wobei die Abschätzung für den zusätzlichen Linsenverzerrungsparameter bestimmt wird, während der erste Linsenverzerrungsparameter im Wert auf die aktualisierte Abschätzung davon festgesetzt wird.
  13. Rechensystem nach Anspruch 1, wobei die Kamera, mit der die Kommunikationsschnittstelle zu kommunizieren eingerichtet ist, eine erste Kamera ist, wobei das Kalibrierbild ein erstes Kalibrierbild ist und das Kamerasichtfeld ein erstes Kamerasichtfeld ist, und wobei die Kommunikationsschnittstelle ferner dazu eingerichtet ist, mit einer zweiten Kamera mit einem zweiten Kamerasichtfeld zu kommunizieren, wobei die Steuerschaltung dazu eingerichtet ist, wenn das Kalibriermuster sich im ersten Kamerasichtfeld und im zweiten Kamerasichtfeld befindet oder befunden hat: ein zweites Kalibrierbild zu empfangen, wobei das zweite Kalibrierbild ein zweites Bild ist, das das Kalibriermuster darstellt und durch die zweite Kamera erzeugt wird; eine Abschätzung einer Transformationsfunktion zum Beschreiben einer räumlichen Beziehung zwischen der ersten Kamera und der zweiten Kamera zu bestimmen; auf der Basis des ersten Kalibrierbildes eine erste Vielzahl von Koordinaten zu bestimmen, die jeweilige Orte der Vielzahl von Musterelementen relativ zur ersten Kamera beschreiben; auf der Basis des zweiten Kalibrierbildes eine zweite Vielzahl von Koordinaten zu bestimmen, die jeweilige Orte der Vielzahl von Musterelementen relativ zur zweiten Kamera beschreiben; auf der Basis der Abschätzung der Transformationsfunktion die zweite Vielzahl von Koordinaten in eine Vielzahl von transformierten Koordinaten zu transformieren, die relativ zur ersten Kamera sind; einen Fehlerparameterwert zu bestimmen, der jeweilige Differenzen zwischen der ersten Vielzahl von Koordinaten und der Vielzahl von transformierten Koordinaten beschreibt, und die Abschätzung der Transformationsfunktion auf der Basis des Fehlerparameterwerts zu aktualisieren, um eine aktualisierte Abschätzung der Transformationsfunktion zu erzeugen.
  14. Nicht flüchtiges computerlesbares Medium mit Befehlen darauf, die, wenn sie durch eine Steuerschaltung eines Rechensystems ausgeführt werden, bewirken, dass die Steuerschaltung: ein Kalibrierbild empfängt, wobei das Kalibrierbild vom nicht flüchtigen computerlesbaren Medium oder über eine Kommunikationsschnittstelle des Rechensystems empfangen wird, wobei die Kommunikationsschnittstelle dazu eingerichtet ist, mit einer Kamera mit einem Kamerasichtfeld zu kommunizieren, wobei das Kalibrierbild durch die Kamera erzeugt wird, wenn sich ein Kalibriermuster im Kamerasichtfeld befindet, wobei das Kalibrierbild ein Bild ist, das das Kalibriermuster darstellt, wobei das Kalibriermuster eine Vielzahl von Musterelementen mit jeweiligen definierten Musterelementkoordinaten in einem Musterkoordinatensystem aufweist; eine Vielzahl von Bildkoordinaten bestimmt, die zum Darstellen von jeweiligen Orten dienen, an denen die Vielzahl von Musterelementen im Kalibrierbild erscheint; auf der Basis der Vielzahl von Bildkoordinaten und der definierten Musterelementkoordinaten eine Abschätzung für einen ersten Linsenverzerrungsparameter eines Satzes von Linsenverzerrungsparametern bestimmt, die eine Linsenverzerrung beschreiben, die der Kamera zugeordnet ist, wobei die Abschätzung für den ersten Linsenverzerrungsparameter bestimmt wird, während ein zweiter Linsenverzerrungsparameter des Satzes von Linsenverzerrungsparametern als null abgeschätzt wird, oder bestimmt wird, ohne den zweiten Linsenverzerrungsparameter abzuschätzen; nachdem die Abschätzung des ersten Linsenverzerrungsparameters bestimmt ist, eine Abschätzung für den zweiten Linsenverzerrungsparameter auf der Basis der Abschätzung des ersten Linsenverzerrungsparameters bestimmt; und Kamerakalibrierinformationen bestimmt, die jeweilige Abschätzungen für den Satz von Linsenverzerrungsparametern umfassen, wobei die jeweiligen Abschätzungen für den Satz von Linsenverzerrungsparametern die Abschätzung für den ersten Linsenverzerrungsparameter und die Abschätzung für den zweiten Linsenverzerrungsparameter umfassen oder darauf basieren, wobei die Befehle, wenn sie durch die Steuerschaltung ausgeführt werden, und wenn die Kommunikationsschnittstelle mit der Kamera und mit einem Roboter in Kommunikation steht, ferner bewirken, dass die Steuerschaltung ein nachfolgendes Bild empfängt, das durch die Kamera erzeugt wird, nachdem die Kamerakalibrierung durchgeführt wurde, und einen Bewegungsbefehl zum Steuern einer Roboterbewegung erzeugt, wobei der Bewegungsbefehl auf dem nachfolgenden Bild basiert und auf den Kamerakalibrierinformationen basiert.
  15. Verfahren, das durch ein Rechensystem für die Kamerakalibrierung durchgeführt wird, das umfasst: Empfangen eines Kalibrierbildes durch das Rechensystem, wobei das Rechensystem eine Kommunikationsschnittstelle umfasst, die dazu eingerichtet ist, mit einer Kamera mit einem Kamerasichtfeld zu kommunizieren, wobei das Kalibrierbild durch die Kamera erzeugt wird, wenn ein Kalibriermuster sich im Kamerasichtfeld befindet, wobei das Kalibrierbild ein Bild ist, das das Kalibriermuster darstellt, wobei das Kalibriermuster eine Vielzahl von Musterelementen mit jeweiligen definierten Musterelementkoordinaten in einem Musterkoordinatensystem aufweist; Bestimmen einer Vielzahl von Bildkoordinaten zum Darstellen von jeweiligen Orten, an denen die Vielzahl von Musterelementen im Kalibrierbild erscheint; Bestimmen einer Abschätzung für einen ersten Linsenverzerrungsparameter eines Satzes von Linsenverzerrungsparametern, die eine Linsenverzerrung beschreiben, die der Kamera zugeordnet ist, auf der Basis der Vielzahl von Bildkoordinaten und der definierten Musterelementkoordinaten, wobei die Abschätzung für den ersten Linsenverzerrungsparameter bestimmt wird, während ein zweiter Linsenverzerrungsparameter des Satzes von Linsenverzerrungsparametern als null abgeschätzt wird, oder bestimmt wird, ohne den zweiten Linsenverzerrungsparameter abzuschätzen; Bestimmen, nachdem die Abschätzung des ersten Linsenverzerrungsparameters bestimmt ist, einer Abschätzung für den zweiten Linsenverzerrungsparameter auf der Basis der Abschätzung des ersten Linsenverzerrungsparameters; Bestimmen von Kamerakalibrierinformationen, die jeweilige Abschätzungen für den Satz von Linsenverzerrungsparametern umfassen, wobei die jeweiligen Abschätzungen für den Satz von Linsenverzerrungsparametern die Abschätzung für den ersten Linsenverzerrungsparameter und die Abschätzung für den zweiten Linsenverzerrungsparameter umfassen oder darauf basieren; Empfangen eines nachfolgenden Bildes, das durch die Kamera erzeugt wird, nachdem die Kamerakalibrierung durchgeführt wurde, und Erzeugen eines Bewegungsbefehls zum Steuern einer Roboterbewegung, wobei der Bewegungsbefehl auf dem nachfolgenden Bild basiert und auf den Kamerakalibrierinformationen basiert.
DE102021102493.5A 2020-02-04 2021-02-03 Verfahren und System zum Durchführen einer automatischen Kamerakalibrierung Pending DE102021102493A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062969673P 2020-02-04 2020-02-04
US62/969,673 2020-02-04
US16/871,361 US11508088B2 (en) 2020-02-04 2020-05-11 Method and system for performing automatic camera calibration
US16/871,361 2020-05-11

Publications (1)

Publication Number Publication Date
DE102021102493A1 true DE102021102493A1 (de) 2021-08-05

Family

ID=73741086

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102020118790.4A Pending DE102020118790A1 (de) 2020-02-04 2020-07-16 Verfahren und system zum durchführen einer automatischen kamerakalibrierung
DE102021102493.5A Pending DE102021102493A1 (de) 2020-02-04 2021-02-03 Verfahren und System zum Durchführen einer automatischen Kamerakalibrierung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE102020118790.4A Pending DE102020118790A1 (de) 2020-02-04 2020-07-16 Verfahren und system zum durchführen einer automatischen kamerakalibrierung

Country Status (3)

Country Link
US (1) US20230025684A1 (de)
JP (2) JP6800506B1 (de)
DE (2) DE102020118790A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354787B2 (en) * 2018-11-05 2022-06-07 Ultrahaptics IP Two Limited Method and apparatus for correcting geometric and optical aberrations in augmented reality

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0990896B1 (de) * 1998-09-10 2012-01-25 Wallac Oy Analysegerät für ein grossflächiges Bild
JP4825980B2 (ja) * 2007-03-06 2011-11-30 国立大学法人岩手大学 魚眼カメラの校正方法。
JPWO2012056982A1 (ja) * 2010-10-25 2014-05-12 コニカミノルタ株式会社 画像処理方法、画像処理装置及び撮像装置
JP5832278B2 (ja) * 2011-12-26 2015-12-16 三菱重工業株式会社 カメラ計測システムのキャリブレーション方法
JP2015530276A (ja) * 2012-10-05 2015-10-15 ベックマン コールター, インコーポレイテッド カメラベースの自動アライメントのシステム及び方法
WO2018179039A1 (ja) * 2017-03-27 2018-10-04 日本電気株式会社 カメラパラメータ推定装置、方法およびプログラム
WO2019227079A1 (en) * 2018-05-25 2019-11-28 Aquifi, Inc. Systems and methods for multi-camera placement
US11657535B2 (en) * 2019-10-15 2023-05-23 Nvidia Corporation System and method for optimal camera calibration
US11508088B2 (en) * 2020-02-04 2022-11-22 Mujin, Inc. Method and system for performing automatic camera calibration

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Titel „A Robotic System with Calibration Mechanism" und eingereicht am 4. Februar 2020

Also Published As

Publication number Publication date
JP2021125224A (ja) 2021-08-30
DE102020118790A1 (de) 2021-08-05
US20230025684A1 (en) 2023-01-26
JP2021124487A (ja) 2021-08-30
JP6800506B1 (ja) 2020-12-16

Similar Documents

Publication Publication Date Title
DE102020105655B4 (de) Verfahren und System zum Durchführen einer automatischen Kamerakalibrierung zur Robotersteuerung
CN111429532B (zh) 一种利用多平面标定板提高相机标定精确度的方法
DE102015104732B4 (de) Informationsverarbeitungsvorrichtung, verfahren zum steuern einer informationsverarbeitungsvorrichtung, greifsystem und speichermedium
DE102015015194A1 (de) Bildverarbeitungsvorrichtung und -verfahren und Programm
DE102015011914A1 (de) Konturlinienmessvorrichtung und Robotersystem
EP3195264B1 (de) Vorrichtung und verfahren zur dreidimensionalen abbildung eines objekts
DE102013205762B4 (de) Informationsverarbeitungsvorrichtung, die eine dreidimensionale Formvermessung durchführt, Informationsverarbeitungsverfahren und Speichermedium
EP2598836B1 (de) Ermittlung von defokussierten reflexionskarten für die robuste bestimmung von "shape from focus" in mikroskopbildern
DE102016013274A1 (de) Bildverarbeitungsvorrichtung und verfahren zur erkennung eines bilds eines zu erkennenden objekts aus eingabedaten
DE102016114337A1 (de) System und verfahren zum verknüpfen von koordinatenräumen maschinellen sehens in einer umgebung angeleiteten zusammenbaus
DE102013216902A1 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Programm
US11508088B2 (en) Method and system for performing automatic camera calibration
DE102014000982A1 (de) Positions- und Orientierungsmessvorrichtung, Informationsverarbeitungsvorrichtung und Informationsverarbeitungsverfahren
DE102009046295A1 (de) Optische Abweichungskorrektur für maschinelle Sichtinspektionssysteme
DE102020131267A1 (de) Kalibrieren von kameras und berechnen von punktprojektionen unter verwendung eines eine axiale blickpunktverschiebung aufweisenden nicht zentralen kameramodells
DE102019001038B4 (de) Simulationsvorrichtung, die den Arbeitsablauf eines Roboters simuliert
DE102017116853A1 (de) System und Verfahren zur automatischen Auswahl von 3D-Ausrichtungsalgorithmen in einem Sehsystem
EP4094897B1 (de) Hand-auge-kalibrierung von kamerageführten apparaturen
DE102019104310A1 (de) System und Verfahren zur simultanen Betrachtung von Kanten und normalen bei Bildmerkmalen durch ein Sichtsystem
DE102021102493A1 (de) Verfahren und System zum Durchführen einer automatischen Kamerakalibrierung
CN113327295A (zh) 一种基于级联全卷积神经网络的机器人快速抓取方法
DE102020214301A1 (de) Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen
EP1098268A2 (de) Verfahren zur dreidimensionalen optischen Vermessung von Objektoberflächen
DE102020214300A1 (de) Vorrichtung und verfahren zum trainieren eines maschinellen lernmodells zum erkennen einer objekttopologie eines objekts aus einem bild des objekts
DE102017221853A1 (de) Anordnung und Verfahren zum dreidimensionalen optischen Vermessen eines Objekts