Bei autopano-sift und autopano-sift-c handelt es sich um Tools die zur Erstellung von Panoramen genutzt werden können. So kommen sie zum Beispiel bei Hugin, einem in der OpenSouce-Szene recht bekannten Programm zum Erstellen von Panoramen, zum Einsatz. In diesem Artikel wird die Performance der beiden Tools vergleichen und weiter Vor- und Nachteile aufgezeigt.
Allgemein
Die Programme die in autopano-sift enthalten sind, sind alle in der Programmiersprache C# programmiert. In letzter Zeit ist die Programmiersprache C# jedoch in der OpenSource Gemeinde sehr umstritten. C# Programme laufen zwar unter Windows ohne Probleme, jedoch gibt es Trotz C# Interpreter unter Linux immer noch ein paar Probleme und unter anderen Betriebssystemen gibt es entweder gar keinen Interpreter oder es gibt noch mehr Probleme.
Die Tools die im autopano-sift-c enthalten sind, sind alle komplett in der Programmiersprache C geschrieben. Sie halten sich sehr stark an die Algorithmen der C#-Version und bieten auch gleiche Parameter auf der Kommandozeile. Aus diesem Grund kann die C#-Version auch ohne Probleme gegen die C-Version ausgetauscht werden.
Testumgebung
Um die Tests durchzuführen kam folgende Hardware zum Einsatz:
- AMD Athlon(tm) X2 Dual Core Processor BE-2400
- 4GB DDR2 RAM
- 500GB Raid 5
Auf Softwareseite kam Ubuntu 9.04 64Bit als Betriebssystem, autopano-sift in Version 2.4 und autopano-sift-c in Version 2.5 zum Einsatz.
Durchführung
Die autopano-sift Tools werden für zwei Aktionen verwendet. Zuerst müssen Key-Files (Schlüssel-Dateien) erstellt werden. Dabei durchsucht ein Programm mit dem Namen "generatekeys" alle Bilder nach Besonderheiten und speichert diese in einem sogenannten Key-File. In einem zweiten Schritt werden diese Key-Files mit dem Programm "autopano" nach Übereinstimmungen zwischen den einzelnen Bildern durchsucht.
Das Programm "generatekeys" wurde zum Test nacheinander für jede JPG-Datei mit folgenden Parametern aufgerufen:
$ generatekeys.exe eingabe.jpg ausgabe.key.gz 800
Dabei wurde die Zeit des gesamten Durchgangs gemessen.
Das Programm autopano wurde mit folgenden Parametern aufgerufen:
$ autopano --maxmatches 100 test.pto *.key.gz
Durchgeführt wurden zwei Tests. Im ersten wurden 18 Bilder und im zweiten 14 Bilder mit einer Auflösung von jeweils 12 Megapixeln verwendet.
Ergebnisse
generatekeys | autopano | |
---|---|---|
Test 1: autopano-sift | 1 Minute 58 Sekunden | 2 Minute 7 Sekunden |
Test 1: autopano-sift-c | 46 Sekunden | 50 Sekunden |
Test 2: autopano-sift | 1 Minute 32 Sekunden | 1 Minute 16 Sekunden |
Test 2: autopano-sift-c | 34 Sekunden | 24 Sekunden |
Fazit
Es lässt sich sehr deutlich erkennen, dass autonpano-sift-c wesentlich schneller als autopano-sift ist. In Zahlen ausgedrückt sind es ca. 60% Geschwindigkeitsvorteil. Dies scheint bei 18 bzw. 14 Bildern noch kein großer Unterschied zu sein. Werden jedoch mehrere hundert Bilder für ein Panorama berechnet, so ist der Unterschied deutlich zu merken.
Ein weiterer Vorteil von autopano-sift-c ist, dass keinen X-Server zum Starten gebraucht wird. Dies ist bei autopano-sift nicht der Fall und so ist es nur sehr schwer möglich das Programm zum Beispiel per ssh auf mehrere Computer zu verteilen, wodurch eine Art "Panorama-Cluster" aufgebaut werden könnte.
Links
- Webseite: autopano-sift (englisch)
- Webseite: autopano-sift-c beim Hugin Projekt (englisch)
- Webseite: Hugin (englisch)
- Free Software Foundation: "Why free software shouldn't depend on Mono or C#" (englisch)