Sie sind nicht angemeldet.

1

Dienstag, 7. Juli 2009, 14:00

Hugin - Panoramen mit Batches teilweise automatisieren

Moin,

ich habe gestern mal begonnen, mir ein paar Batches zu schreiben, um die Erstellung von Panoramen teilweise zu automatisieren. Ich habe jetzt eine Batch, der mir aus allen Bildern in einem Ordner eine hugin-Projektdatei mit Kontrollpunkten macht. 

Ziel wäre:
- aus allen Bildern in einem Verzeichnis eine hugin-Projektdatei machen mit richtigen Objektivdaten
- Kontrollpunkte suchen
- Optimieren und Kontrollpunkte mit Distanz > 100 löschen
Mit dem entstandenen Projekt arbeite ich dann von Hand weiter, setze zusätzliche Kontrollpunkte und so weiter.

Der nächste Batch soll dann:
- Panorama stitchen
- Mit pano2qtvr die Würfelflächen machen
Dann kommt die Nachbearbeitung vom Nadir und Überprüfung auf Fehler.

Und der letzte Schritt macht aus den Würfelflächen wieder ein Bild und verschiebt das in einen anderen Ordner.

Ich mache oft viele Panoramen einer Location, damit will ich zeitaufwendige und immer gleiche Arbeitsschritte zusammenfassen. Also erst für alle Panoramen Kontrollpunkte berechen lassen, nachher alle Panoramen stichten lassen etc.

Bevor ich da jetzt per try&error und viel google weiter mache - gibt es schon ähnliche Projekte, auf die man aufbauen kann? Oder die das schon alles machen?


2

Dienstag, 7. Juli 2009, 21:14

Hallo Klaus,

sowas habe ich auch :-)

Batch 1 laesst autopano-sift die .pto-Dateien erzeugen.
Batch 2 appliziert die ueblichen Einstellungen (Linse, crop, Stitchparameter) auf diese Dateien.
Dann kann man jede pto-Datei einzeln oeffnen, Senkrechte erzeugen, optimieren falsche Punkte loeschen und speichern
Batch 3 rendert und blendet dann.
Optional kann Batch 4 aus fertigen Panos EXE-Files (mit Deval) machen. Oder man dragt sie auf ein Pano2VR-Droplet um SWFs zu erzeugen.

Das Ganze funktioniert via Drag and Drop der Dateien auf Verknupfungen der Batches (a la enfuse/enblend batches). Allerdings sind meine Batches zugeschnitten auf Panos aus 4 Bildern, die auch noch *_1, *_2, *_3 und *_4.jpg heissen muessen.  Damit das Umbenennen nicht so muehsam ist gibt's noch so einen Batch, der 4 darauf gezogene Dateien entsprechend umbenennt.

Eine Einschraenkung gibt es windowsseitig: Drag and Drop in Batches geht nur bis ~ 30 Dateien - danach gibt's 'ne ziemlich unsinnige Fehlermeldung.
Hugin 0.8* kann schon mit Projekttemplates (nicht nur Lenstemplates) umgehen - ich habe das fuer die 0.7beta3 noch mittels gawk gemacht. Fuer hugin 0.7beta3 kann nona von der kommandozeile aus "Tiff mit Soft Blending" nicht - muss man also "Multiple Tiff" im Projekt einstellen und eine Zeile mit enblend nachlaufen lassen.

iceman_fx

Mega-User

Beiträge: 578

Wohnort: Riesa / Dresden

Beruf: Webdesigner / Webentwickler / Fotograf

  • Nachricht senden

3

Donnerstag, 9. Juli 2009, 08:05

Hi,

das interessiert mich jetzt schon sehr.
Habt da irgendwo eine Anleitung, wie man die Batches aufbauen muss?

Gruß
iceman

4

Donnerstag, 9. Juli 2009, 08:20

Hi,

das interessiert mich jetzt schon sehr.
Habt da irgendwo eine Anleitung, wie man die Batches aufbauen muss?

Gruß
iceman

 

Bissel Geduld bitte.

Auch wenn's sehr gut funktioniert, ist das ziemlich mit der heissen Nadel gestrickt (hab's halt nur fuer mich gemacht). Ich bemuehe mich mal das verstaendlich zusammenzustellen.

Du kannst aber mal gucken, ob Du Binaries fuer Hugin 0.8XXX findest. Dort ist schon ein wirklich schoen gemachter Batcher (fuer's Stitchen) drin und man kann auch Projekttemplates verwenden.


5

Dienstag, 14. Juli 2009, 22:47

Ich habe mal die neue Version 0.8 angeguckt und dabei festgestellt, dass es meine Automatisierungen der 0,7 fast obsolet macht :-)
Aber dazu spaeter mehr, erstmal ein paar generelle Betrachtungen:

Automatisierung von Hugin / Batching.
Dabei geht es NICHT um die automatische Erstellung eines Panoramas (Bilder
laden, Knopfdruck, fertig) sondern um die rationellere Abarbeitung
mehrerer Projekte bzw. Vermeidung von immer wiederkehrenden Klicks und

Zusammenlegung zeitintensiver Prozesse.

Eine typische Panoramaerstellung kann man in folgende Teilschritte
zerlegen:
#1 Projektumfang bestimmen (welche Bilder)
#2 Kontrollpunkte erstellen (normale)
#3 Kontrollpunkte erstellen (senkrechte/waagerechte)
#4 Objektivparameter einstellen
#5 Projektparameter einstellen
#6 Rendering und Stitching
#7 Retusche (Zenith/Nadir/Logo/Mirrorball)
#8 Konvertierung (Flash/MOV/Tiles/Stripes)
#9 Webdarstellung (Erzeugung der notwendigen Files fuer die
Webdarstellung)

Wichtig ist es die zeitintensiven Prozesse (#2 und #6) auszugliedern und
die immer gleichen Schritte (#4, #5, #8) zu automatisieren.


#1
Grundsaetzlich 2 Vorgehensweisen:
a) Einsammeln der Bilder in ein Projekt (z.B. Hugin oeffnen, Bilder
laden, Projekt speichern). Nachfolgende Aktionen (z.B.
Kontrollpunkterstellung mittels Autopano) holen sich dann die
Information, welche Bilder zu

bearbeiten sind aus dem (lesbaren) Projektfile (.pto). Koennte man mit
einem Windows-Batch erledigen, ggf. das lesen des Projektfiles durch
AWK/Perl/Aehnliches.

b) Benennung der Bilder im Stile von <Basisname>_<laufende
Bildnummer>.jpg/tif. Nachfolgende Aktionen (z.B. Kontrollpunkterstellung
mittels Autopano) finden dann zusammengehoerige Files anhand des
gleichen Basisnamens und

erstellen als Resultat ein Projektfile (.pto) inkl. der Kontrollpunkte.
Windows-Batchfile, ggf. DragAndDrop.

#2
Kann durch Tools erfolgen, die mittels Kommandozeile angesprochen werden
koennen (z.B. autopano, autopano-sift, etc.). Windows-Batch, ggf.
DragAndDrop.

#3 Hier sehe ich zunaechst keine moegliche Automation. Allerdings ist das
Setzen der Senkrechten auch nicht sehr zeitintensiv.

#4 Gibt's schon ewig - einmal gespeicherte Lenstemplates koennen geladen
werden. Dringend zu empfehlen, das stabilisiert die Optimierung ungemein!

#5 Neu in Hugin 0.8. Bereits gespeicherte Projekte koennen als Vorlage
benutzt werden, Schritt #4 wird damit ueberfluessig, weil in #5
enthalten.

#6 Nona (Stitcher von Hugin) als auch enblend lassen sich via
Kommandozeile ansprechen. Lediglich ein 'Sammler', der nona und
enblend fuer die zu verarbeitenden Projekte laufen laesst muesste
geschrieben werden.

Windows-Batch, ggf. mit DragAndDrop.
Neu in Hugin 0.8 ist der Hugin-Batcher (mit GUI), der genau das erledigt.
Hierzu muss man lediglich aus Hugin heraus das geoeffnete Projekt an den
Batcher schicken oder aus dem Batcher heraus das gespeicherte Projekt

auswaehlen. Verschiedene Batches koennen gespeichert werden.

#7 Echte Retusche laesst sich wohl nicht automatisieren. Das Erzeugen
eines Mirroballs oder das Einfuegen eines Logos hingegen kann man mit
Gimp-Scripting oder Image-Magick erledigen. Fuer den Start ist es auch
hilfreich

sich ein immer wieder verwendetes Bodenlogo in's equirectangulare Format
zu wandeln (und abzuspeichern), sodass man es in Gimp (oder PS) nur
in's Bild ziehen und ueberlagen muss.

#8 Pano2VR kann sowas prima mit Droplets, die KRPanotools lassen sich via
Kommandozeile ansprechen (Windows-Batch, ggf. DragAndDrop).

#9 Vielfaeltige Moeglichkeiten. Man kann die Galerie von Malum nutzen,
den Pano2VR HTML-Output, Krpano und ein xml als Parameter uebergeben,
...

Die Schritte #2 und #6 sind zeitintensiv. Wuenschenswerterweise sollten
diese gebatcht fuer z.B. 20 Panoramen hintereinander ablaufen, sodass
man waehrenddessen etwas Anderes tun kann.



Was ich derzeit mache (fuer Panos aus 4 Bildern a la Sigma 8mm an Crop):
Ich benutze noch Hugin 0.7beta 3.
Die Bilder werden entsprechend benannt (pano1_1.jpg, pano1_2.jpg,
pano1_3.jpg, pano1_4.jpg, pano2_1.jpg, .....).
Ich ziehe alle *_1.jpgs (also immer die ersten Bilder verschiedener
Panoramen) auf einen Windows-Batch. Draufhin erstellt autopano-sift fuer
jedes Projekt eine pto-Datei.
Darin enthalten sind Kontrollpunkte, aber keine Linsen- oder
Projektparameter.
Das dauert etwas, aber man kann solange was Anderes tun.

Nun dragge ich alle so erzeugten pto-Dateien auf einen Windows-Batch, der
mittels AWK alle typischen Projekt- und Linseneinstellungen in das
jeweilige Projekt schreibt. Das dauert kaum Sekunden.

Nun oeffne ich nacheinander jedes Hugin-Projekt und setzte - so moeglich
- fuer jedes Bild eine Senkrechte. Nun optimiere ich "Incremental",
loesche im Kontrollpoint Window (kann man nach Abstand sortieren) ein
paar falsche

Punkte und optimiere erneut. Nach 2-5 Iteration sind alle falschen Punkte
weg und ich optimiere noch einmal "everything". Nun speichere ich das
Projekt und schliesse es wieder. Das dauert pro Projekt ~ 3-5 Minuten.

Wenn ich alle Projekte so abgearbeitet habe, dragge ich alle Projekte
(.pto) auf einen weiteren Windows-Batch, der zunaechst nona und dann
enblend laufen laesst. Das dauert ueblicherweise sehr lange - overnight.
Als

Resultat erhalte ich die fertig gerenderten Panos + die gerenderten
Einzelbilder (falls retuschiert werden muss).

Ein im equirectangularen Format vorliegendes Logo baue ich haendisch mit
Gimp ein. Koennte man automatisieren, war's mir aber bislang nicht
wert, weil ich an dieser Stelle auch individuell schaerfen kann.
Speichern als JPG.

Nun ziehe ich alle fertigen JPGs auf ein Pano2VR-Droplet oder auf ein
weiteres Windows-Batchfile, welches mittels 7Zip eine DevalVR-exe baut.

Alles in allem reduziert sich damit die interaktive Arbeit pro Panorama
auf unter 5 Minuten (ohne individuelle Retusche, die durchaus Stunden
dauern koennte).


Bis auf den Schritt #2 kann man das mit der neuen Hugin 0.8rc4 auch schon
"out-of-the-box" machen. Darum empfehle ich, sich das erstmal mal
anzuschauen.
Ad Huikeshoven hat die letzte Beta fertig fuer Vista kompiliert (rennt
bei mir auf XP32): http://hugin.huikeshoven.org/
Fuer andere Betriebssysteme/Distributionen wuerde ich bei Yuval Levy
http://panospace.wordpress.com/downloads/ gucken.

Edit sagt, dass ihr die Foren-Software maechtig auf den S... geht *grumpfffff*

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »trozzreaxxion« (14. Juli 2009, 22:53)


6

Dienstag, 14. Juli 2009, 23:26

Das hört sich ja sehr interessant an, muss ich mir mal in Ruhe anschauen - im Moment habe ich nur noch diverse Bilder zu bearbeiten und komme nicht recht dazu.

 

Ein Arbeitsschritt, der bei mir auch immer gleich ist: Optimieren und alle Kontrollpunkte mit Distanz > 100 löschen. Wieder optimieren und löschen, bis alle Kontrollpunkte eine Entfernung unter 100 haben, dann bleiben meist noch ein paar übrig, die ich lösche. Oder mit Glück sind alle verbliebenden korrekt. Durch diese Holzhammer-Methode lösche ich vielleicht auch mal richtige Punkte, aber das nehme ich in Kauf.

 

Und das Sammeln der Bilder würde ich am liebsten die Aufnahmezeit nutzen. Die einzelnen Bilder für ein Panorama sind bei mir immer in kurzem Abstand gemacht, bis zum nächsten Panorama ist dann der Abstand größer. Da könnte man den Durchschnittsabstand zwischen den Aufnahmen für die letzten Bilder berechnen und wenn der Abstand zum nächsten Bild dann größer wird, dann beginnt dort das nächste Panorama.


7

Mittwoch, 15. Juli 2009, 08:10

Ein Arbeitsschritt, der bei mir auch immer gleich ist: Optimieren und alle Kontrollpunkte mit Distanz > 100 löschen. Wieder optimieren und löschen, bis alle Kontrollpunkte eine Entfernung unter 100 haben, dann bleiben meist noch ein paar übrig, die ich lösche. Oder mit Glück sind alle verbliebenden korrekt. Durch diese Holzhammer-Methode lösche ich vielleicht auch mal richtige Punkte, aber das nehme ich in Kauf.

 

Das ist auch nicht schlimm, wenn Dir da ein paar Punkte flitzen gehen.

Es gibt auch Tools, die solche falschen Punkte automatisiert loeschen. Die machen nichts anderes (optimieren, loeschen, optimieren, loeschen, ...). In Hugin 0.8 ist celeste integriert - kannst du mal ausprobieren.

 

Mal kurz der Grund, warum es falsche Punkte gibt:

Tools wie autopano, etc. enthalten Plausibilitaetschecks und Filter, um solche falschen Punkte zu vermeiden. Das fuehrt insbesondere bei Fisheyebildern meist dazu, dass die uebriggebliebenen Punkte zwar (bis auf Ausnahmen) korrekt sind, allerdings befinden sich diese Punkte alle recht mittig. So ein Projekt kann ich sehr gut optimieren und trotzdem bleiben u.U. deutliche Ueberlappungsfehler an den Aussenbereichen. Schaltet man solche Checks ab bleiben auch Punkte erhalten, die weiter aussen liegen, aber leider auch falsche.

Durch die Methode "optimieren, loeschen, ..." findet man diese Blindgaenger recht schnell. 


8

Freitag, 17. Juli 2009, 23:51

Ich habe - trotz der Tatsache, dass es in hugin 0.8 einiges schon drin ist - heute mal begonnen, ein Java-Programm zu schreiben, das meinen Vorstellungen entspricht. Und nach etwas Gebastel sortiert mir das Programm die Bilder automatisch in Ordner und ruft in jedem Ordner autopano-sift-c auf und erstellt mir eine Projektdatei.

Ich werde morgen dann mal die Objektivdaten eintragen und schauen, ob ich die Optimierung auch mit rein kriege


9

Mittwoch, 22. Juli 2009, 09:20

Ja cool - das ist doch genau das, was dem neuen Hugin noch fehlt :-)

10

Mittwoch, 22. Juli 2009, 20:35

Ich bin jetzt soweit, dass auch die Panoramen erstellt werden und die Würfelflächen zur Nadirretusche. Sehr praktisch, ich hab eben in kurzer Zeit Kontrollpunkte für sechs Panoramen korrigiert (2-4 Minuten pro Panorama) und jetzt arbeitet der Rechner fleissig und baut mir die zusammen.

Ich muss das Programm noch etwas verbessern und dokumentieren, dann kann ich es für Interessierte auch bereitstellen.


11

Donnerstag, 23. Juli 2009, 07:32

Das hört sich phantastisch an. Bin Interessierter
Grüße aus dem Schelderwald


Wolfgang

--------------------------------
Eos 400d, Kit-Objektiv 18-55, Peleng 8mm Fischauge, Giottos 3-Bein, Giottos 1-Bein, Nodalpunktadapter Pano-Maxx (neu 21.10.08), NP-Adapterring für Peleng Eigenbau

12

Donnerstag, 23. Juli 2009, 11:26

Ich hab gestern auch noch die Rückumwandlung aus Würfelflächen in ein Panorama eingebaut, damit habe ich fast alle Schritte drin. Nur das automatische Optimieren funktioniert noch nicht.

Und eine Startbatch muss ich noch machen und die Integration in den Explorer. Ich möchte das über Rechtsklick auf ein Verzeichnis und dann 'Senden an ..' integrieren und dann soll sich das Programm den jeweils letzten Status merken und an der richtigen Stelle weitermachen.

Das ganze wird von mir keine Oberfläche bekommen, mir geht es ganz egoistisch nur um ein Tool, das meinen Workflow unterstützt. Ich gebe aber gerne Quellcodes raus, dann das erweitert werden

iceman_fx

Mega-User

Beiträge: 578

Wohnort: Riesa / Dresden

Beruf: Webdesigner / Webentwickler / Fotograf

  • Nachricht senden

13

Freitag, 24. Juli 2009, 08:30

Also interessiert bin ich auch. Klingt auf jeden Fall sehr interessant.