2009-07-17 8 views
27

Ich möchte Fotos automatisch drehen, auch wenn EXIF-Metadaten über die Bildausrichtung nicht verfügbar sind.Algorithmus zum Erkennen von Fotoausrichtung

Gibt es irgendwelche guten Algorithmen zur Erkennung der Ausrichtung eines Fotos? Die Bilder sind Fotografien von einer Digitalkamera. Der Algorithmus muss nicht perfekt funktionieren, aber eine Verringerung der Menge an menschlicher Interaktion, die erforderlich ist, um Fotos richtig zu drehen, wäre ein Vorteil.

Zeiger auf andere Forschung und vor allem sind Implementierungen geschätzt:

Ich habe diese beiden Papiere auf dem Thema gefunden.

+0

Es scheint nicht ein Algorithmus für automatische vertikale/horizontale Ausrichtung zu sein, aber es ist der nächste Algorithmus, den ich mit einigen Implementierungen da draußen finden konnte: Schräglagenkorrektur. Überprüfen Sie ImageMagick deskew, oder: http://www.google.com/codesearch/p?ct=rc#f0yt7jaEG7A/raster/deskewer.cpp –

+3

Sie könnten auch daran interessiert sein, dass Leute den Trick in Betracht ziehen, Bilder als neue zu drehen Stil von CAPTCHA. Ein kleines kreisförmiges Bild wird mit einem offensichtlichen (für uns) Objekt dargestellt, aber kein klarer Horizont. Ich weiß, das hilft dir nicht, aber es unterstreicht die Tiefe des Problems. http://www.richgosweisler.com/projects/rotcaptcha/rotcaptcha.pdf – Omniwombat

+0

@Luke Francl, ich möchte eine ähnliche Sache machen, also was hat schließlich für dich geklappt? – Lazer

Antwort

9

Viele Fotos von Consumer-Digitalkameras sind von Menschen, die zur Orientierung verwendet werden könnten. Gesichtserkennung ist ein gut untersuchtes Forschungsgebiet. Grundlegende Gesichtserkennung würde Ihnen ein Rechteck geben, dessen längere Seite die vertikale Dimension sein sollte. Wenn Sie die Augen/den Mund erkennen können, sollten Sie in der Lage sein, die richtige Ausrichtung des Rechtecks ​​auszuwählen.

Viele andere Fotografien sind touristische Schnappschüsse, wo der Himmel ist und blau, und der Boden ist unten und grün.

+3

Viele Gesichtserkennungsalgorithmen finden keine Gesichter, die auf dem Kopf stehen, so dass Sie nach Gesichtern in allen vier möglichen Richtungen suchen müssen. – Janusz

+2

Dies ist etwas, was ich seit der Untersuchung der Artikel, die ich oben verlinkt habe, in Erwägung gezogen habe, weil mindestens einer von ihnen die Gesichtserkennung als Teil des Algorithmus verwendet. Da die überwiegende Mehrheit meines Fotokorpus Gesichter enthalten wird, denke ich, dass es gut funktionieren könnte (vorausgesetzt, ich kann ein Gesichtserkennungsprogramm finden, das Orientierung erkennen kann, nach Janusz). –

-2

Wenn die Bilder nicht quadratisch sind, können Sie möglicherweise davon ausgehen, dass die Standardbilder breiter als hoch sind. Wenn das der Fall ist, der bestimmt, ob Sie drehen müssen, ist nur eine Frage des Vergleichens des Seitenverhältnisses und des Drehens, um zum Standard zu reorientieren. Obwohl Sie möglicherweise mit umgedrehten Bildern enden.

+2

Dies gilt nur für Standardbilder. Personen, die Fotos von Gesichtern oder Personen machen, werden die Kamera drehen ... – Janusz

+0

Richtig, aber wenn die Leute die Kamera drehen, um solche Bilder zu machen, außer wenn die Gesichter seitwärts oder auf dem Kopf stehen, können Sie das Seitenverhältnis für mindestens verwenden ein Hinweis. – bdbaddog

3

Ich konnte nur http://sourceforge.net/projects/rotator/ finden.

Ich benutzte einen Testsatz von Urlaubsfotos mit 70 Bildern, von denen etwa 18 eine Rotation erforderten.

Nach der Verarbeitung mit den Standardeinstellungen gab es 20, die entweder gedreht oder nicht falsch gedreht wurden.

Nicht so ein tolles Ergebnis.