OpenCV, die freie Bibliothek für Bildverarbeitung und maschinelles Sehen, ändert in Version 4.5.0 unter anderem die BSD-Lizenz in eine Apache-2.0-Lizenz. Die soll das Projekt besser gegen potenzielle Patentverletzungen absichern.
Die BSD-Lizenz bietet sehr viele Freiheiten, dennoch wechselt das OpenCV-Projekt mit Version 4.5.0 auf die Apache-2.0-Lizenz. Das Changelog liefert eine recht ausführliche Begründung dafür. Demnach nutze das OpenCV-Projekt seit dem Jahr 2000 die BSD-Lizenz vor allem deshalb, weil es sich eine breite Adaption in der Industrie wünschte. Die GPL hält das Projekt in diesem Fall für nicht geeignet.
Allerdings scheint auch die BSD-Lizenz an ihre Grenzen zu stoßen. IP-Reinheit (Intellectual Property) des Codes sei ein Thema, heißt es in der Begründung, dass das Projekt, wie viele andere auch, nicht 100-prozentig in den Griff bekomme. So gebe es zwei potenzielle Unsicherheiten: Einerseits seien das inkompatible Lizenzen wie die GPL oder Lizenzen nur für eine nicht-kommerzielle Nutzung, andererseits patentierte Algorithmen. Der erste Fall sei mit Hilfe projekteigener Tools einfacher zu beheben. Der zweite sei aufgrund von Patent-Ansteckungen deutlich schwieriger zu entdecken und zu beheben.
Gegen Trojanische Patente
Zwar glaubt das Projekt, das Problem der IP-Reinheit sei “unmöglich komplett zu lösen”, doch es unternehme verschiedene Schritte, um das Risiko zu minimieren. Pull Request enthalten neuerdings Checkboxen über die Mitarbeiter Verantwortung für ihren Code übernehmen. Zugleich komme hier der Wechsel auf die Apache-2.0-Lizenz zum Tragen. Sie räumt den Nutzern nämlich das Recht ein, auch patentgeschützten Code nicht-exklusiv verwenden zu dürfen. Sollte ein Unternehmen für sich Patente am Code reklamieren, verliert es zudem das Recht, alle anderen Patente in dieser Software zu nutzen. Dies schütze zwar nicht vor Patenttrollen, aber vor Trojanischen Patenten, also mit Absicht in ein offenes Projekt geschmuggelten patentierten Code.
OpenCV-Updates
Unabhängig von der Lizenzänderung bringt Version 4.5.0 aber auch noch einige weitere Updates mit, die eher technischer Natur sind. So fließt etwa Code aus Googles Summer of Code ein, der OpenCV für RISC-V optimiert, Bindings für Julia mitbringt, Single Object Tracking in Echtzeit erlaubt, SIFT verbessert und einiges mehr. Für JPEG2000 setzt das Projekt nun OpenJPEG ein. Es unterstützt mehrere OpenCL-Kontexte, führt eine Hand-Augen-Kalibrierung für Roboter ein und verbessert die DNN-Module (Deep Neural Network). Wer sich den Code anschauen will, findet die Links zur neuen Version ebenfalls in der Ankündigung.




