OpenCV 3.0 mit besserer Performance veröffentlicht

1500 Patches, die Ergebnisse zweier Summer of Codes und Beiträge von Unternehmen wie Intel und ARM sind unter anderem in das aktuelle Release der Computer-Vision-Bibliothek geflossen, dessen Fokus auf Geschwindigkeit zu liegen scheint.

In Pocket speichern vorlesen Druckansicht
OpenCV 3.0 mit besserer Performance veröffentlicht
Lesezeit: 2 Min.
Von
  • Julia Schmidt

Die unter einer BSD-Lizenz geschützte Computer-Vision-Bibliothek OpenCV steht nach knapp siebenmonatiger Beta-Phase in Version 3.0 zum Download bereit. Sie zeichnet sich der Bekanntmachung zufolge vor allem durch Beiträge und Unterstützung großer Unternehmen wie Intel, AMD, Google und Microsoft aus, die unter anderem die Berechnungsgeschwindigkeit vieler Funktionen verbessern sollen. So ist nun etwa eine Untermenge von Intels Integrated Performance Primitives (IPP) in OpenCV enthalten, und lässt sich standardmäßig ohne Lizenzkosten für private und kommerzielle Projekte einsetzen.

Außerdem steht nun erstmals die sogenannte T-API (transparent API) zur Verfügung, die eine transparente Schicht zur GPU-Beschleunigung von Algorithmen darstellt. Die Entwickler haben zudem etwa vierzig der in OpenCV enthaltenen Funktionen mit ARMs NEON Intrinsics (intrinsische Funktionen mit zusätzlichen Features) beschleunigt. Viele davon waren wohl eher grundlegender Natur, sodass auch einige komplexere Funktionen von der Überarbeitung profitieren dürften. Bei NEON handelt es sich um eine Implementierung der in ARMv7 eingeführten SIMD-Erweiterung (Advanced SIMD extension). Um das Erstellen von NEON-optimierten Code zu erleichtern, gibt es in OpenCV 3.0 zusätzlich eine sogenannte HAL-Schicht, die als Grundlage für OpenCV-Beschleuniger dienen soll.

Darüber hinaus wurden die Programmierschnittstellen vieler komplexer Algorithmen überarbeitet, Support für Android und WinRT sowie die Bindings für Java und Python verbessert und eines für MATLAB ergänzt, dass sich allerdings noch in der Alpha-Phase befindet. Weitere Neuerungen wie Line-Deskriptoren oder Ergänzungen im Bereich der Tracking- und Optical-Flow-Algorithmen sind wohl unter anderem auch den erfolgreichen Summer-of-Code-Projekten der letzten Jahr zu verdanken. Mehr dazu findet sich in der Bekanntmachung.

Zwar sollte Version 3.0 weitestgehend kompatibel zu 2.4.x sein, ein Blick auf den Transition Guide lohnt sich für Nutzer der älteren Varianten trotzdem, wurden doch einige veraltete und instabile Algorithmen entfernt sowie einige andere Elemente zwischen Modulen verschoben. Mit der Freigabe der dritten Hauptversion soll sich das Versionierungsschema des Projekts ändern: Statt wie bisher eine dreistellige Versionsnummer einzusetzen beziehungsweise vier Stellen zu nutzen, sollten zwischendurch kleinere Änderungen nötig sein, will man ab sofort nur noch zwei (bzw. drei für Zwischenversionen) Stellen verwenden. (jul)