Der Algorithmus ist als einzelner Durchlauf über die Schwellenwerte implementiert, gefolgt von einem Durchlauf über etwaige neue Objekte – wobei jeweils alle gespeicherten Objekte durchlaufen werden, um die Kriterien zu überprüfen. Bei der Überprüfung auf Verschmelzung ergibt sich eine zusätzliche Komplexität, da berücksichtigt werden muss, ob sich der Mittelpunkt eines anderen gespeicherten Objekts innerhalb des neuen Objekts befindet. Hierdurch ist ein weiterer Durchlauf über die gespeicherten Objekte erforderlich. Die wichtigsten Komplexitätsfaktoren sind damit die Anzahl der zu detektierenden Objekte und die Stoppkriterien.
Die ausgegebenen Blobs werden an »std::vector<DetectedObjects<int>>« übertragen. Grundsätzlich enthält ein »DetectedObject« die 2D-Koordinaten des Mittelpunkts, den Disparitätswert und einen Begrenzungsrahmen (»cv::Rect«). Zu beachten ist, dass »cv::Rect_<unsigned short>« für Bilder mit einer Größe von mehr als »ushort« [Pixel] unzureichend definiert ist, da der Intersection-Operator zu einem Pufferüberlauf führen kann – daher wird der Datentyp »int« gewählt. Der implementierte Algorithmus ist iterativ, da er Objekte aus jedem der vorangegangenen Schritte verwendet. Unter bestimmten Umständen (Nullwert des Parameters »numSameIterationsToStop«) besteht die Möglichkeit zur Parallelisierung der CCL-Berechnung beispielsweise mit »cv::parallel_for()«.
Für die übrige Algorithmenlogik müssten nach wie vor alle per CCL detektierten Objekte sequenziell verarbeitet werden. Vor einer Parallelisierung ist es daher wichtig, die CCL-Laufzeit und den Zeitbedarf der Logik zu profilieren. Benötigen beide zu viel Zeit, ist es möglicherweise besser, den Ansatz von Yapa & Harada [4] zu wählen.
Tabelle 1 und Tabelle 2 zeigen die entsprechenden Parameter.
Die übrigen Parameter sind Argumente für die CCL-Methode »cv::connected ComponentsWithStats()«.
Ergebnisse
Exemplarische wurden vier Testfälle für die Segmentierung implementiert. Tabelle 3 zeigt eine Übersicht der resultierenden Bilder mit Rechtecken um die detektierten Objekte in der entsprechenden Reihenfolge.
Der adaptive Algorithmus für die Bildsegmentierung wurde an einem nicht-binären Bild (beispielsweise einem Falschfarben- oder Grauskalen-Disparitätsbild) mithilfe der CCL-Methode angewendet. Die Ergebnisse lassen ein Potenzial erkennen, da sie sich auf Systeme mit beschränkten Ressourcen wie etwa eingebettete Fahrerassistenzsysteme übertragen lassen. Der derzeitige Ansatz liefert qualitativ bessere Ergebnisse als jene des »cv::SimpleBlobDetector« aus OpenCV. Somit ergeben sich durch Einsatz des Algorithmus nachfolgende Möglichkeiten:
Literatur
1. Lifeng He, Xiwei Ren, Qihang Gao, Xiao Zhao, Bin Yao und Yuyan Chao: »The connected-component labeling problem: A review of state-of-the-art algorithms«. Pattern Recognition, Elsevier BV, ISSN: 0031-3203, Vol: 70, Seiten: 25 - 43 (2017), DOI: 10.1016/j.patcog.2017.04.018
2. Martin Peris Martorell, Atsuto Maki, Sarah Martull, Yasuhiro Ohkawa und Kazuhiro Fukui: »Towards a Simulation Driven Stereo Vision System«. ICPR2012, Seiten: 1038 – 1042, 2012.
3. Sarah Martull, Martin Peris Martorell, Kazuhiro Fukui: »Realistic CG Stereo Image Dataset with Ground Truth Disparity Maps«. ICPR2012 workshop TrakMark2012, Seiten: 40 – 42, 2012.
4. Yapa, R.D. und Harada, K.: »Connected component labeling algorithms for gray-scale images and evaluation of performance using digital mammograms«. International Journal of Computer Science and Network Security, 8(6), Seiten: 33 – 41, 2008.
5. Nobuyuki Otsu: »A Threshold Selection Method from Gray-Level Histograms«. IEEE Transactions on Systems, Man, and Cybernetics, Vol: 9, Ausgabe 1, Seiten: 62 – 66, 1979, DOI: 10.1109/TSMC.1979.4310076.
6. Grana Costantino, Bolelli Federico, Baraldi Lorenzo und Vezzani Roberto: »YACCLAB - Yet Another Connected Components Labeling Benchmark«. Proceedings of the 23rd International Conference on Pattern Recognition, Cancun, Mexico, Seiten: 3109 – 3114, 2016, DOI: 10.1109/ICPR.2016.7900112.
Die Autoren
Viktor Mukha
arbeitet als Software-Entwickler für die ADAS-Abteilung bei L4B Automotive. Er hat sein Studium mit dem Master in Visual Computing der Universität des Saarlandes abgeschlossen.
Inon Sharony
ist ADAS-Abteilungsleiter bei L4B Automotive und beschäftigte sich als Doktorand an der Universität Tel-Aviv mit den Inhalten des Artikels.