Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Dieses Buch ist ein Arbeitsleitfaden für die C++ Open Source Computer Vision Library (OpenCV) Version 3.x und vermittelt ein allgemeines Hintergrundwissen über das Gebiet der Computer Vision, das den Lesern hilft, OpenCV effektiv zu nutzen.

Zweck dieses Buches

Computer Vision ist ein schnell wachsendes Feld, was vor allem an vier Trends liegt:

  • Mit dem Aufkommen der Mobiltelefone wurden Millionen von Kameras in die Hände der Menschen gelegt.

  • Das Internet und die Suchmaschinen bündelten die daraus resultierenden riesigen Ströme von Bild- und Videodaten in riesigen Datenbanken.

  • Die Rechenleistung von Computern wurde zu einer billigen Ware.

  • Die Bildverarbeitungsalgorithmen selbst wurden ausgereifter (jetzt mit dem Aufkommen von tiefen neuronalen Netzen, die OpenCV zunehmend unterstützt; siehe dnn unter opencv_contrib[opencv_contrib]).

OpenCV hat zum Wachstum der Computer Vision beigetragen, indem es Hunderttausenden von Menschen eine produktivere Arbeit in der Bildverarbeitung ermöglicht hat. OpenCV 3.x ermöglicht es Studierenden, Forschern, Fachleuten und Unternehmern, Projekte effizient umzusetzen und die Forschung voranzutreiben, indem es ihnen eine kohärente C++-Computer-Vision-Architektur bietet, die für viele Plattformen optimiert ist.

Das Ziel dieses Buches ist es:

  • OpenCV umfassend dokumentieren, indem wir detailliert erklären, was Funktionsaufrufkonventionen wirklich bedeuten und wie man sie richtig verwendet

  • dem Leser ein intuitives Verständnis für die Funktionsweise der Bildverarbeitungsalgorithmen vermitteln

  • Gib dem Leser ein Gefühl dafür, welchen Algorithmus er wann verwenden sollte.

  • Der Leser wird bei der Implementierung von Algorithmen für Computer Vision und maschinelles Lernen unterstützt, indem er viele funktionierende Code-Beispiele erhält, von denen er ausgehen kann.

  • Schlage vor, wie du einige der fortgeschrittenen Routinen reparieren kannst, wenn etwas schief läuft

Dieses Buch dokumentiert OpenCV auf eine Weise, die es dem Leser ermöglicht, schnell interessante und unterhaltsame Dinge in der Computer Vision zu tun. Es vermittelt ein intuitives Verständnis für die Funktionsweise der Algorithmen, das dem Leser beim Entwerfen und Debuggen von Bildverarbeitungsanwendungen hilft und auch die formalen Beschreibungen von Algorithmen für Computer Vision und maschinelles Lernen in anderen Texten leichter verständlich und erinnerbar macht.

Für wen dieses Buch ist

Dieses Buch enthält Beschreibungen, Arbeitsbeispiele und Erklärungen zu den C++ Computer Vision Tools, die in der OpenCV 3.x Bibliothek enthalten sind. Es sollte daher für viele verschiedene Arten von Nutzern hilfreich sein:

Fachkräfte und Unternehmer
Für Praktiker/innen, die schnell einen Prototyp entwickeln oder professionelle Bildverarbeitungssysteme implementieren müssen, bietet der Beispielcode ein schnelles Grundgerüst, mit dem sie beginnen können. Unsere Beschreibungen der Algorithmen können dem Leser schnell vermitteln oder ihn daran erinnern, wie sie funktionieren. OpenCV 3.x basiert auf einer Hardware-Beschleunigungsschicht (HAL), so dass implementierte Algorithmen effizient laufen und nahtlos die Vorteile einer Vielzahl von Hardware-Plattformen nutzen können.
Studierende
Dies ist der Text, den wir uns schon in der Schule gewünscht hätten. Die intuitiven Erklärungen, die ausführliche Dokumentation und der Beispielcode werden es dir ermöglichen, schneller in die Computer Vision einzusteigen, an interessanteren Unterrichtsprojekten zu arbeiten und schließlich neue Forschungsergebnisse auf diesem Gebiet beizutragen.
Lehrerinnen und Lehrer
Computer Vision ist ein sich schnell entwickelndes Gebiet. Wir haben die Erfahrung gemacht, dass es effektiv ist, wenn die Schüler/innen einen leicht zugänglichen Text zügig durcharbeiten, während der/die Ausbilder/in bei Bedarf formale Erklärungen liefert und diese durch aktuelle Arbeiten oder Gastvorträge von Experten ergänzt. In der Zwischenzeit können die Schüler/innen früher mit Klassenprojekten beginnen und sich an anspruchsvollere Aufgaben wagen.
Hobbyisten
Computer Vision macht Spaß - hier erfährst du, wie du sie hacken kannst.

Wir legen großen Wert darauf, den Lesern genügend Intuition, Dokumentation und funktionierenden Code an die Hand zu geben, um eine schnelle Implementierung von Echtzeit-Vision-Anwendungen zu ermöglichen.

Was dieses Buch nicht ist

Dieses Buch ist kein formaler Text. Wir gehen zwar an verschiedenen Stellen ins mathematische Detail,1 aber all das dient dazu, die Intuition hinter den Algorithmen zu vertiefen oder die Implikationen von Annahmen zu verdeutlichen, die in diese Algorithmen eingebaut sind. Wir haben hier nicht versucht, eine formale mathematische Darstellung zu geben und könnten uns damit sogar den Zorn derjenigen zuziehen, die formale Darstellungen schreiben.

Dieses Buch hat eher einen "angewandten" Charakter. Es ist sicherlich von allgemeinem Nutzen, richtet sich aber nicht an eine der spezialisierten Nischen der Computer Vision (z. B. medizinische Bildgebung oder Fernerkundungsanalyse).

Wir sind jedoch der Meinung, dass die Schüler/innen die Theorie nicht nur besser lernen, sondern sich auch länger daran erinnern, wenn sie die Erklärungen zuerst lesen. Daher ist dieses Buch eine gute Ergänzung zu einem theoretischen Kurs und eignet sich hervorragend für einen Einführungskurs oder einen projektbasierten Kurs.

Über die Programme in diesem Buch

Alle Programmbeispiele in diesem Buch basieren auf OpenCV Version 3.x. Der Code sollte unter Linux, Windows und OS X funktionieren. Laut Online-Referenzen ist OpenCV 3.x auch auf Android und iOS voll funktionsfähig. Der Quellcode für die Beispiele in diesem Buch kann von der Website dieses Buches heruntergeladen werden; der Quellcode für OpenCV ist auf GitHub verfügbar; und vorgefertigte Versionen von OpenCV können von der SourceForge-Seite geladen werden.

OpenCV wird ständig weiterentwickelt und vierteljährlich offiziell veröffentlicht. Um immer auf dem neuesten Stand zu sein, solltest du deine Code-Updates von der oben erwähnten GitHub-Seite beziehen. OpenCV unterhält eine Website unter http://opencv.org; für Entwickler gibt es ein Wiki unter https://github.com/opencv/opencv/wiki.

Voraussetzungen

In den meisten Fällen müssen die Leser nur wissen, wie man in C++ programmiert. Viele der mathematischen Abschnitte in diesem Buch sind optional und werden als solche gekennzeichnet. Die Mathematik umfasst einfache Algebra und grundlegende Matrixalgebra und setzt eine gewisse Vertrautheit mit Lösungsmethoden für Optimierungsprobleme der kleinsten Quadrate sowie einige Grundkenntnisse über Gaußsche Verteilungen, das Bayes'sche Gesetz und Ableitungen einfacher Funktionen voraus.

Die Mathematik in diesem Buch dient dazu, ein Gefühl für die Algorithmen zu entwickeln. Der Leser kann die Mathematik und die Beschreibungen der Algorithmen überspringen und nur die Funktionsdefinitionen und Codebeispiele verwenden, um die Bildverarbeitungsanwendungen zum Laufen zu bringen.

Wie dieses Buch am besten verwendet wird

Dieser Text muss nicht der Reihe nach gelesen werden. Er kann als eine Art Benutzerhandbuch dienen: Schlage die Funktion nach, wenn du sie brauchst, und lies die Beschreibung der Funktion, wenn du wissen willst, wie sie "unter der Haube" funktioniert. Der Zweck dieses Buches ist jedoch ein Lehrgang. Es vermittelt dir ein grundlegendes Verständnis von Computer Vision und zeigt dir, wie und wann du ausgewählte Algorithmen einsetzen kannst.

Dieses Buch ist so geschrieben, dass es als Zusatz- oder Hauptlehrbuch für einen Grund- oder Aufbaustudiengang in Computer Vision verwendet werden kann. Die grundlegende Strategie bei dieser Methode besteht darin, dass die Studierenden das Buch lesen, um sich einen schnellen Überblick zu verschaffen, und diese Lektüre dann durch formellere Abschnitte in anderen Lehrbüchern und durch Arbeiten auf dem Gebiet ergänzen. Am Ende jedes Kapitels gibt es Übungen, die helfen, das Wissen der Schüler/innen zu testen und weitere Intuitionen zu entwickeln.

Du kannst diesen Text auf eine der folgenden Arten angehen:

Wundertüte
Lies die Kapitel 1-5 in der ersten Sitzung durch und schlage dann die entsprechenden Kapitel oder Abschnitte ein, wenn du sie brauchst. Das Buch muss nicht der Reihe nach gelesen werden, mit Ausnahme der Kapitel 18 und 19 (über Kamerakalibrierung und Stereobildgebung) und der Kapitel 20, 21 und 22 (über maschinelles Lernen). Unternehmer/innen und Schüler/innen, die projektbasierte Kurse machen, könnten so vorgehen.
Gute Fortschritte
Lies nur zwei Kapitel pro Woche, bis du die Kapitel1-22 in 11 Wochen durchgelesen hast(Kapitel 23 vergeht wie im Flug). Beginne mit Projekten und vertiefe dich in ausgewählte Bereiche des Fachgebiets, indem du zusätzliche Texte und Unterlagen verwendest, wenn es angebracht ist.
Der Sprint
Lies das Buch so schnell durch, wie es dein Verständnis zulässt, und behandle die Kapitel1-23. Danach kannst du mit Projekten beginnen und ausgewählte Bereiche des Fachgebiets mithilfe zusätzlicher Texte und Arbeiten vertiefen. Das ist wahrscheinlich die richtige Wahl für Profis, aber es könnte auch für einen fortgeschrittenen Computer Vision Kurs geeignet sein.

Kapitel 20 ist ein kurzes Kapitel, das den allgemeinen Hintergrund des maschinellen Lernens erläutert. Darauf folgen die Kapitel 21 und 22, in denen die in OpenCV implementierten Algorithmen des maschinellen Lernens und ihre Anwendung näher erläutert werden. Natürlich ist maschinelles Lernen ein wesentlicher Bestandteil der Objekterkennung und ein großer Teil der Computer Vision, aber es ist ein Bereich, der ein eigenes Buch verdient. Fachleute sollten diesen Text als Ausgangspunkt für weitere Erkundungen in der Literatur nutzen - oder einfach nur, um sich mit dem Code in diesem Teil der Bibliothek zu beschäftigen. Die Schnittstelle für maschinelles Lernen wurde in OpenCV 3.x erheblich vereinfacht und vereinheitlicht.

So unterrichten wir Computer Vision: Wir gehen die Kursinhalte so schnell durch, dass die Schüler/innen das Wesentliche verstehen. Dann beginnen wir mit sinnvollen Projekten und vertiefen die Inhalte in ausgewählten Bereichen, indem wir auf andere Texte oder Arbeiten aus dem Fachgebiet zurückgreifen. Diese Methode eignet sich auch für viertel-, halb- oder zweisemestrige Klassen. Die Schüler/innen können schnell mit einem allgemeinen Verständnis ihrer Visionsaufgabe und einem entsprechenden Arbeitscode loslegen. Wenn sie mit anspruchsvolleren und zeitaufwändigeren Projekten beginnen, unterstützt der Ausbilder sie bei der Entwicklung und Fehlersuche in komplexen Systemen.

Bei längeren Kursen können die Projekte selbst zum Lehrstoff in Sachen Projektmanagement werden. Baue zuerst ein funktionierendes System auf und verfeinere es später mit mehr Wissen, Details und Forschung. Das Ziel solcher Kurse ist es, dass jedes Projekt einer Konferenzveröffentlichung würdig ist und dass einige Projektarbeiten im Anschluss an den Kurs veröffentlicht werden. In OpenCV 3.x sind das C++ Code-Framework, die Buildbots, die Nutzung von GitHub, die Überprüfung von Pull Requests, die Unit- und Regressionstests und die Dokumentation zusammen ein gutes Beispiel für die Art von professioneller Software-Infrastruktur, die ein Startup oder ein anderes Unternehmen aufbauen sollte.

In diesem Buch verwendete Konventionen

In diesem Buch werden die folgenden typografischen Konventionen verwendet:

Kursiv
Zeigt neue Begriffe, URLs, E-Mail-Adressen, Dateinamen, Dateierweiterungen, Pfadnamen, Verzeichnisse und Unix-Dienstprogramme an.
Constant width
Bezeichnet Befehle, Optionen, Schalter, Variablen, Attribute, Schlüssel, Funktionen, Typen, Klassen, Namensräume, Methoden, Module, Eigenschaften, Parameter, Werte, Objekte, Ereignisse, Ereignishandler, XMLtags, HTMLtags, den Inhalt von Dateien oder die Ausgabe von Befehlen.
Constant width bold
Zeigt Befehle oder anderen Text an, der vom Benutzer wörtlich eingegeben werden sollte. Wird auch zur Hervorhebung in Codebeispielen verwendet.
Constant width italic
Zeigt Text an, der durch vom Benutzer eingegebene Werte ersetzt werden soll.
[...]
Zeigt einen Verweis auf das Literaturverzeichnis an.
Hinweis

Dieses Symbol steht für einen Tipp, eine Anregung oder einen allgemeinen Hinweis.

Warnung

Dieses Symbol weist auf eine Warnung oder Vorsicht hin.

Code-Beispiele verwenden

Zusätzliches Material (Code-Beispiele, Übungen usw.) steht unter https://github.com/oreillymedia/Learning-OpenCV-3_examples zum Download bereit .

OpenCV ist für die kommerzielle oder wissenschaftliche Nutzung kostenlos, und das gilt auch für die Codebeispiele in diesem Buch. Du kannst sie nach Belieben für Hausaufgaben, Forschungszwecke oder für kommerzielle Produkte verwenden! Wir würden es sehr begrüßen, wenn du dabei auf dieses Buch verweisen würdest, aber das ist nicht erforderlich. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel:"Learning OpenCV 3 " von Adrian Kaehler und Gary Bradski (O'Reilly). Copyright 2017 Adrian Kaehler, Gary Bradski, 978-1-491-93799-0."

Abgesehen davon, dass wir gerne hören würden, wie es dir bei deinen Hausaufgaben geholfen hat (was am besten geheim gehalten wird), würden wir auch gerne hören, wie du Computer Vision in der akademischen Forschung, in Lehrveranstaltungen und in kommerziellen Produkten einsetzt, wenn du OpenCV als Hilfsmittel verwendest. Auch hier gilt: Es ist keine Pflicht, aber du bist immer eingeladen, uns eine Nachricht zu schicken.

O'Reilly Online Learning

Hinweis

Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.

Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter http://oreilly.com.

Wir würden gerne von dir hören

Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Nord
  • Sebastopol, CA 95472
  • 800-998-9938 (in den Vereinigten Staaten oder Kanada)
  • 707-829-0515 (international oder lokal)
  • 707-829-0104 (Fax)

Wir haben eine Webseite für dieses Buch, auf der wir Beispiele und alle Pläne für zukünftige Ausgaben auflisten. Du kannst auf diese Informationen zugreifen: http://bit.ly/learningOpenCV3.

Wenn du Kommentare oder technische Fragen zu diesem Buch stellen möchtest, sende eine E-Mail an bookquestions@oreilly.com.

Weitere Informationen zu unseren Büchern, Kursen, Konferenzen und Neuigkeiten findest du auf unserer Website unter http://www.oreilly.com.

Finde uns auf Facebook: http://facebook.com/oreilly

Folge uns auf Twitter: http://twitter.com/oreillymedia

Schau uns auf YouTube: http://www.youtube.com/oreillymedia

Danksagungen

Bei einem langfristigen Open-Source-Projekt kommen und gehen viele Menschen, die auf unterschiedliche Weise dazu beitragen. Die Liste derer, die an dieser Bibliothek mitgewirkt haben, ist viel zu lang, um sie hier aufzuführen, aber sie ist in der Datei .../opencv/docs/HTML/Contributors/doc_contributors.html zu finden, die mit OpenCV geliefert wird.

Danke für die Hilfe zu OpenCV

Intel ist der Geburtsort der Bibliothek und verdient großen Dank für die Unterstützung dieses Projekts, als es begann und wuchs. Von Zeit zu Zeit finanziert Intel immer noch Wettbewerbe und steuert Arbeit zu OpenCV bei. Intel hat auch den Code für die eingebauten Performance Primitives gespendet, der für eine nahtlose Beschleunigung auf Intel-Architekturen sorgt. Vielen Dank dafür.

Google hat die Entwicklung von OpenCV kontinuierlich gefördert, indem es im Rahmen des Google Summer of Code-Projekts Praktikantinnen und Praktikanten für OpenCV gesponsert hat; durch diese Finanzierung wurde viel großartige Arbeit geleistet. Willow Garage hat die Entwicklung von OpenCV von der Version 2.x bis zur Version 3.0 mehrere Jahre lang unterstützt. In dieser Zeit hat das Computer-Vision-Forschungsunternehmen Itseez (das kürzlich von der Intel Corporation aufgekauft wurde) umfangreiche technische Unterstützung geleistet und Webdienste gehostet. Intel hat mündlich zugesagt, diese Unterstützung fortzusetzen (danke!).

Auf der Softwareseite sind einige Personen besonders hervorzuheben, vor allem im russischen Softwareteam. Allen voran der russische Chefprogrammierer Vadim Pisarevsky, der den größten Einzelbeitrag zur Bibliothek geleistet hat. Vadim hat die Bibliothek auch durch die mageren Zeiten geführt und gepflegt, als der Boom in eine Pleite und die Pleite in einen Boom überging; er ist der wahre Held der Bibliothek. Seine technischen Kenntnisse waren auch beim Schreiben dieses Buches eine große Hilfe. In der Geschäftsführung wurde er von Victor Eruhimov unterstützt, einem Mitbegründer von Itseez[Itseez] und jetzt CEO von Itseez3D.

Bei den wöchentlichen Treffen helfen immer wieder mehrere Personen bei der Verwaltung der Bibliothek mit: Grace Vesom, Vincent Rabaud, Stefano Fabri und natürlich Vadim Pisarevsky. Die Entwicklernotizen für diese Treffen kannst du unter https://github.com/opencv/opencv/wiki/Meeting_notes einsehen.

Viele Menschen haben im Laufe der Zeit zu OpenCV beigetragen; eine Liste der jüngeren Mitglieder ist hier zu finden: Dinar Ahmatnurov, Pablo Alcantarilla, Alexander Alekhin, Daniel Angelov, Dmitriy Anisimov, Anatoly Baksheev, Cristian Balint, Alexandre Benoit, Laurent Berger, Leonid Beynenson, Alexander Bokov, Alexander Bovyrin, Hilton Bristow, Vladimir Bystritsky, Antonella Cascitelli, Manuela Chessa, Eric Christiansen, Frederic Devernay, Maria Dimashova, Roman Donchenko, Vladimir Dudnik, Victor Eruhimov, Georgios Evangelidis, Stefano Fabri, Sergio Garrido, Harris Gasparakis, Yuri Gitman, Lluis Gomez, Yury Gorbachev, Elena Gvozdeva, Philipp Hasper, Fernando J. Iglesias Garcia, Alexander Kalistratov, Andrey Kamaev, Alexander Karsakov, Rahul Kavi, Pat O'Keefe, Siddharth Kherada, Eugene Khvedchenya, Anna Kogan, Marina Kolpakova, Kirill Kornyakov, Ivan Korolev, Maxim Kostin, Evgeniy Kozhinov, Ilya Krylov, Laksono Kurnianggoro, Baisheng Lai, Ilya Lavrenov, Alex Leontiev, Gil Levi, Bo Li, Ilya Lysenkov, Vitaliy Lyudvichenko, Bence Magyar, Nikita Manovich, Juan Manuel Perez Rua, Konstantin Matskevich, Patrick Mihelich, Alexander Mordvintsev, Fedor Morozov, Gregory Morse, Marius Muja, Mircea Paul Muresan, Sergei Nosov, Daniil Osokin, Seon-Wook Park, Andrey Pavlenko, Alexander Petrikov, Philip aka Dikay900, Prasanna, Francesco Puja, Steven Puttemans, Vincent Rabaud, Edgar Riba, Cody Rigney, Pavel Rojtberg, Ethan Rublee, Alfonso Sanchez-Beato, Andrew Senin, Maksim Shabunin, Vlad Shakhuro, Adi Shavit, Alexander Shishkov, Sergey Sivolgin, Marvin Smith, Alexander Smorkalov, Fabio Solari, Adrian Stratulat, Evgeny Talanin, Manuele Tamburrano, Ozan Tonkal, Vladimir Tyan, Yannick Verdie, Pierre-Emmanuel Viel, Vladislav Vinogradov, Pavel Vlasov, Philipp Wagner, Yida Wang, Jiaolong Xu, Marian Zajko, Zoran Zivkovic.

Weitere Mitwirkende tauchen mit der Zeit unter https://github.com/opencv/opencv/wiki/ChangeLog auf. Schließlich hilft Arraiy[Arraiy] jetzt auch bei der Pflege von OpenCV.org (der freien und offenen Codebasis).

Danke für die Hilfe zu diesem Buch

Bei der Vorbereitung dieses Buches und der vorherigen Version dieses Buches möchten wir John Markoff, Wissenschaftsreporter bei der New York Times, für seine Ermutigung, seine wichtigen Kontakte und seine allgemeinen Ratschläge zum Schreiben danken, die er uns in jahrelanger Arbeit gegeben hat. Wir danken auch unseren vielen Redakteuren bei O'Reilly, vor allem Dawn Schanafelt, die die Geduld hatte, weiterzumachen, wenn Ausrutscher zur Norm wurden, während die irren Autoren versuchten, ein Startup zu gründen. Dieses Buch war ein langes Projekt, das von OpenCV 2.x bis zur aktuellen Version OpenCV 3.x reichte. Vielen Dank an O'Reilly, dass sie uns während all dieser Zeit zur Seite gestanden haben.

Adrian fügt hinzu...

In der ersten Ausgabe(Learning OpenCV) habe ich einige der großartigen Lehrerinnen und Lehrer hervorgehoben, die mir geholfen haben, den Punkt zu erreichen, an dem ein Werk wie dieses möglich wurde. In den vergangenen Jahren ist mir der Wert der Ratschläge, die ich von ihnen erhalten habe, nur noch deutlicher geworden. Ich möchte mich bei jedem einzelnen von ihnen bedanken. Ich möchte dieser Liste von außergewöhnlichen Mentoren Tom Tombrello hinzufügen, dem ich viel verdanke und dem ich meinen Beitrag zu diesem Buch widmen möchte. Er war ein Mann von außergewöhnlicher Intelligenz und großer Weisheit, und ich fühle mich geehrt, dass ich die Gelegenheit hatte, in seine Fußstapfen zu treten. Abschließend möchte ich der OpenCV-Gemeinschaft dafür danken, dass sie die erste Ausgabe dieses Buches willkommen geheißen hat, und für ihre Geduld während der vielen aufregenden, aber vielleicht auch ablenkenden Unternehmungen, die während der Erstellung dieser Ausgabe stattgefunden haben.

Auf diese Ausgabe des Buches habe ich lange gewartet. In den vergangenen Jahren hatte ich das Glück, mit Dutzenden von Unternehmen zusammenzuarbeiten, sie zu beraten und ihnen beim Aufbau ihrer Technologie zu helfen. Als Vorstandsmitglied, Beiratsmitglied, technischer Mitarbeiter, Berater, technischer Mitarbeiter und Gründer hatte ich das Glück, jede Dimension des Technologieentwicklungsprozesses kennen und lieben zu lernen. Viele dieser Jahre habe ich bei Applied Minds, Inc. verbracht, wo ich unsere Robotikabteilung aufgebaut und geleitet habe, oder bei Applied Invention Corporation, einer Ausgründung von Applied Minds, als Fellow. Es hat mich immer wieder gefreut, dass OpenCV im Mittelpunkt herausragender Projekte stand, die von der Gesundheitsfürsorge über die Landwirtschaft bis hin zu Luftfahrt, Verteidigung und nationaler Sicherheit reichten. Ebenso erfreut war ich darüber, dass die erste Ausgabe dieses Buches in fast jeder Institution auf dem Schreibtisch lag. Die Technologie, mit der Gary und ich Stanley gebaut haben, ist seitdem in unzählige Projekte eingeflossen, nicht zuletzt in die vielen Projekte für selbstfahrende Autos, die derzeit laufen - und von denen jedes einzelne, vielleicht sogar alle, das tägliche Leben unzähliger Menschen verändern und verbessern wird. Was für eine Freude ist es, ein Teil davon zu sein! Die unglaublichen Menschen, die ich im Laufe der Jahre kennengelernt habe und die mir erzählt haben, wie sehr sie von der ersten Ausgabe profitiert haben - in den Kursen, die sie besucht haben, in den Kursen, die sie unterrichtet haben, in den Karrieren, die sie aufgebaut haben, und in den großen Leistungen, die sie vollbracht haben - sind eine ständige Quelle der Freude und des Staunens. Ich hoffe, dass diese neue Ausgabe des Buches euch allen weiterhilft und eine neue Generation von Wissenschaftlern, Ingenieuren und Erfindern inspiriert und befähigt.

Während sich das letzte Kapitel dieses Buches schließt, beginnen wir neue Kapitel in unserem Leben, in denen wir in den Bereichen Robotik, KI, Vision und darüber hinaus arbeiten. Ich persönlich bin all den Menschen zutiefst dankbar, die mit ihren zahlreichen Werken diesen nächsten Schritt in meinem Leben ermöglicht haben: Lehrer, Mentoren und Buchautoren. Ich hoffe, dass diese neue Ausgabe unseres Buches anderen dabei hilft, den nächsten wichtigen Schritt in ihrem eigenen Leben zu machen, und ich hoffe, wir sehen uns dort!

Gary fügt hinzu...

Ich gründete OpenCV im Jahr 1999 mit dem Ziel, Computer Vision und künstliche Intelligenz zu beschleunigen und jedem die Infrastruktur zur Verfügung zu stellen, die ich damals nur in den Top-Laboren sah. Es gibt nur wenige Ziele im Leben, die tatsächlich erreicht werden, und ich bin dankbar, dass dieses Ziel 17 (!) Jahre später erreicht wurde. Einen großen Teil des Verdienstes für das Erreichen dieses Ziels verdanke ich der jahrelangen Hilfe vieler Freunde und Mitarbeiter, die ich hier nicht alle aufzählen kann.2 Besonders hervorheben möchte ich die russische Gruppe, mit der ich bei Intel anfing zu arbeiten und die ein erfolgreiches Computer Vision Unternehmen (Itseez.com) leitete, das schließlich von Intel aufgekauft wurde; wir begannen als Kollegen, sind aber inzwischen enge Freunde geworden.

Mit drei Teenagern zu Hause hat meine Frau, Sonya Bradski, mehr Arbeit in dieses Buch gesteckt als ich. Vielen Dank und liebe Grüße an sie. Die Teenager liebe ich, aber ich kann nicht sagen, dass sie das Buch beschleunigt haben :)

Diese Version des Buches entstand in dem von mir mitgegründeten Startup Industrial Perception Inc., das 2013 an Google verkauft wurde. Seitdem habe ich immer wieder an zufälligen Wochenenden und spätabends daran gearbeitet. Irgendwie ist es jetzt 2016 - die Zeit vergeht wie im Flug, wenn man überwältigt ist! Einige der Spekulationen, die ich gegen Ende von Kapitel 23 anstelle, wurden durch die Art des Roboterdenkens inspiriert, die ich mit dem PR2, einem zweiarmigen Roboter, der von Willow Garage gebaut wurde, und mit dem Stanley-Projekt in Stanford erlebt habe - dem Roboter, der die DARPA Grand Challenge mit 2 Millionen Dollar gewonnen hat.

Wir hoffen, dass wir dich zum Abschluss dieses Buches in Start-ups, Forschungslabors, akademischen Einrichtungen, auf Konferenzen, Workshops, in VC-Büros und bei coolen Unternehmensprojekten wiedersehen werden. Du kannst gerne Hallo sagen und über coole neue Sachen plaudern, die du machst. Ich habe OpenCV ins Leben gerufen, um Computer Vision und KI für das Gemeinwohl zu unterstützen und zu beschleunigen; was bleibt, ist dein Part. Wir leben in einem kreativen Universum, in dem jemand einen Topf erschafft, der nächste diesen Topf in eine Trommel verwandelt, und so weiter. Erschaffe! Nutze OpenCV, um etwas ungewöhnlich Gutes für uns alle zu schaffen!

1 Immer mit einer Warnung für Gelegenheitsnutzer, dass sie solche Abschnitte überspringen können.

2 Wir haben jetzt viele Mitwirkende, wie du sehen kannst, wenn du an den Aktualisierungen in den Änderungsprotokollen auf https://github.com/opencv/opencv/wiki/ChangeLog vorbeiscrollst . Wir bekommen so viele neue Algorithmen und Anwendungen, dass wir jetzt die besten in selbstpflegenden und in sich geschlossenen Modulen in opencv_contrib) speichern.

Get OpenCV 3 lernen now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.