How two flat photographs become depth — and how to solve the
NP‑hard problem hiding inside, ten times faster.
Igor Gridchyn & Vladimir Kolmogorov · IST Austria · ICCV 2013
scroll
Sie haben zwei Augen, etwa sechs Zentimeter voneinander entfernt. Jedes schickt Ihrem
Gehirn ein leicht anderes flaches Bild, und aus den winzigen Abweichungen dazwischen
rekonstruiert Ihr visuelles System Tiefe — mühelos, fortlaufend, bevor es Ihnen
überhaupt bewusst wird.
Einem Computer dasselbe beizubringen ist einer der saubersten Wege, geradewegs in ein
NP-schweres Problem zu laufen. Dies ist die Geschichte einer Publikation,
die ich mit Vladimir Kolmogorov am IST Austria darüber geschrieben habe, es trotzdem zu
tun — und zwar rund zehnmal schneller als der damalige Stand der Technik. Ohne
Vorwissen: Wir bauen jede Idee von einem Bild aus auf, an dem Sie herumspielen können.
Was das zeigt
Diskrete Optimierung & Graph-Cuts auf einem NP-schweren Labeling-Problem
Ein neuer Algorithmus — Komplexität von O(k) auf O(log k) gesenkt
Rund 10× schneller als der damalige Stand der Technik
Begutachtet auf einer Spitzenkonferenz (ICCV 2013, mit V. Kolmogorov)
Sechs kurze Kapitel, jedes mit etwas zum Ausprobieren:
Igor Gridchyn & Vladimir Kolmogorov, „Potts model, parametric maxflow and
k-submodular functions“ (IST Austria, ICCV 2013). Das vollständige PDF ist
hier verfügbar
(auf Englisch). Die Ergebnisbilder weiter unten stammen aus der Publikation selbst; die
interaktiven Spielzeuge sind illustrativ — gebaut, um jede Idee zu vermitteln, nicht
um die exakten publizierten Zahlen zu reproduzieren.
§
Kapitel 01
Zwei Augen, eine Frage
Halten Sie einen Finger auf Armeslänge vor sich und betrachten Sie ihn, während Sie erst das
eine, dann das andere Auge schließen. Der Finger springt seitlich gegen den Hintergrund. Bringen
Sie ihn näher, und der Sprung wird größer. Dieser Sprung — die Uneinigkeit Ihrer beiden
Augen darüber, wo etwas ist — ist der gesamte Rohstoff der Tiefenwahrnehmung.
Ein Computer sieht genauso, sofern er zwei Kameras wenige Zentimeter voneinander entfernt hat.
Die Kameras sind so ausgerichtet, dass jeder Punkt der realen Welt in beiden Bildern in
derselben horizontalen Zeile landet; er verschiebt sich immer nur nach links oder
rechts. Diese horizontale Verschiebung heißt Disparität. Nahe Dinge verschieben
sich stark, ferne kaum, und der Zusammenhang ist einfach: Die Tiefe ist proportional zum Kehrwert
der Disparität. Rekonstruieren Sie die Disparität an jedem Pixel, und Sie haben die Form der
Szene rekonstruiert.
Damit fällt die ganze Aufgabe auf eine einzige, immer wiederholte Frage zusammen: Wie weit
muss ich für dieses Pixel im linken Bild schieben, um seinen Zwilling im rechten Bild zu
finden? Die möglichen Verschiebungen — 0, 1, 2, … bis zu einem Maximum —
sind die Labels. Für jedes Pixel ein Label zu wählen, ist das Labeling-Problem
im Herzen dieser Publikation.
Wie erkennt ein Pixel seinen Zwilling?
Indem es seine Nachbarschaft betrachtet. Wir nehmen einen kleinen Ausschnitt um das linke Pixel,
schieben ihn über die möglichen Positionen im rechten Bild und messen bei jeder Verschiebung, wie
verschieden die beiden Ausschnitte sind — wir summieren die quadrierten
Helligkeitsunterschiede. Die Verschiebung, bei der die Ausschnitte am besten passen (niedrigste
Kosten), ist unsere Antwort. Diese Zahl pro Pixel und pro Label sind die
Datenkosten: wie sehr es „wehtut“, einem bestimmten Pixel eine bestimmte
Disparität zuzuweisen.
Interaktiv · ziehen Sie die Marke im linken Bild
Linke Ansicht — wählen Sie ein Pixel
Rechte Ansicht — die Übereinstimmung wandert entlang der Zeile
Matching-Kosten über Disparität — der tiefste Punkt gewinnt
Gewählte Disparität
–
Implizierte Tiefe
Kostenkurve
–
Ziehen Sie herum, und Ihnen fallen zwei Regime auf. Auf den strukturierten Flächen hat die
Kostenkurve ein scharfes, eindeutiges Minimum — der Ausschnitt passt an genau eine Stelle.
Parken Sie die Marke aber auf der glatten, nahezu gleichförmigen Region oben, wird die Kurve
flach: Dutzende Verschiebungen passen fast gleich gut. Die Daten haben keine Meinung. Wenn Sie
dann trotzdem den tiefsten Punkt wählen, raten Sie im Grunde.
Das ist der Riss, der durch das ganze Problem läuft. Für jedes Pixel unabhängig das
kostengünstigste Label zu wählen, ergibt eine klare Antwort dort, wo das Bild reich an Struktur
ist, und reines Rauschen dort, wo es das nicht ist. Um es besser zu machen, müssen die Pixel
aufhören, allein zu entscheiden — und genau dort setzt das nächste Kapitel an.
Für Neugierige
Die Kameras so auszurichten, dass Übereinstimmungen in einer Zeile bleiben, heißt
Rektifizierung; sie folgt aus der Epipolargeometrie und macht aus einer 2-D-Suche eine
billige 1-D-Suche. Der Ausschnittsvergleich hier ist die Summe der quadrierten Differenzen
(SSD); die Publikation verwendet SSD, aggregiert über ein 9×9-Fenster, was jene flachen
Kurven erheblich schärft. Schreibt man fi(a) für die Datenkosten, dem Pixel
i das Disparitätslabel a zu geben, so baut alles Folgende auf diesen Zahlen
auf. Der Standard-Benchmark für diese Aufgabe ist der Middlebury-Stereo-Datensatz (Scharstein
& Szeliski, 2002–2007), den die Experimente der Publikation verwenden.
§
Kapitel 02
Das Tauziehen
Lässt man jedes Pixel sein eigenes Lieblingslabel wählen, erhält man eine Tiefenkarte, die
aussieht wie Fernsehrauschen — im Mittel richtig, überall dort falsch, wo es zählt. Die
Abhilfe kommt aus einer Tatsache über die Welt: Reale Oberflächen sind überwiegend glatt. Ihr
Schreibtisch ändert seine Tiefe nicht alle Millimeter. Benachbarte Pixel gehören fast immer
zusammen.
Also fügen wir eine zweite Kostenart hinzu, die in die Gegenrichtung zieht. Jedes Mal, wenn zwei
benachbarte Pixel verschiedene Labels erhalten, verlangen wir eine feste Strafe —
nennen wir sie λ. Es spielt keine Rolle, ob sich die Labels um eins oder
um zwanzig unterscheiden; jede Uneinigkeit kostet denselben pauschalen Betrag. (Diese Regel
„alle Uneinigkeiten sind gleich“ macht daraus das Potts-Modell, entlehnt aus
der statistischen Physik.) Die Gesamtkosten eines Labelings sind dann die Summe zweier
konkurrierender Kräfte:
Jetzt entscheidet kein Pixel mehr allein. Dreht man λ hoch, muss das Labeling für
Uneinigkeit zahlen, sodass es das Rauschen bereinigt, indem selbstsichere Nachbarn verrauschte
überstimmen. Dreht man zu weit hoch, beginnt es echte Details zu tilgen und kleine Objekte in
ihre Umgebung einzuebnen, weil ihr Erhalt zu viele Randstrafen kostet. Irgendwo dazwischen liegt
der Sweet Spot.
Interaktiv · ziehen Sie den Glättungsregler
Labeling bei diesem λ — Karmesin = gezahlte Glattheitsstrafe
Grundwahrheit
Fehler über λ
den Daten trauender Glattheit trauen
Fehler gegen Wahrheit
–
Uneinige Kanten
–
Datenkosten
Glattheitskosten
Achten Sie auf die karmesinroten Linien — sie markieren jedes Nachbarpaar, das uneinig ist,
also genau dort, wo die Glattheitskosten anfallen. Bei λ = 0 ist die Karte von
ihnen durchzogen, und der Fehler ist hoch. Schieben Sie λ nach oben: Das Rauschen löst
sich auf, das Karmesin wird dünner, und der Fehler fällt auf sein Minimum. Schieben Sie weiter,
und sehen Sie zu, wie der Fehler wieder steigt, während die kleine helle Region ganz verschluckt
wird. Die Fehler-über-λ-Kurve hat ein klares Tal — eine Vorschau auf ein Diagramm,
dem wir am Ende wiederbegegnen, gezeichnet aus den echten Experimenten.
Hier ist der Haken, der daraus ein Forschungsproblem macht statt einer Hausaufgabe. Das Labeling
zu finden, das diese Energie wirklich minimiert — den echten Grund der Landschaft —,
ist NP-schwer, sobald man drei oder mehr Labels hat. Das Spielzeug oben tut nur
mit einer schnellen lokalen Heuristik so, als ob. Um es richtig und schnell zu machen, brauchen
wir ein schärferes Werkzeug.
Für Neugierige
Formal lautet die Energie
f(x) = Σi fi(xi) +
Σ{i,j}∈E λij[xi≠xj],
wobei [·] die Iverson-Klammer ist (1 wenn wahr, 0 wenn falsch). Ihre Minimierung ist
äquivalent zu einem Multiway-Cut-Problem und für ≥ 3 Labels NP-schwer (Boykov, Veksler
& Zabih, 2001), deren Algorithmus α-Expansion die
Standard-Approximation ist. Die Interaktion verwendet Iterated Conditional Modes — einen
einfachen gierigen Optimierer, der sich leicht live ausführen lässt, aber beweisbar schwach
ist; die Algorithmen der nächsten drei Kapitel sind die eigentliche Maschinerie.
§
Kapitel 03
Ein Schnitt ist eine Antwort
Das vorige Kapitel endete an einer Wand: Die Energie zu minimieren ist NP-schwer, sobald es drei
oder mehr Labels gibt. Doch in diesem schweren Problem verbirgt sich ein viel leichteres —
und es erweist sich als das nützlichste Werkzeug des ganzen Feldes. Gehen Sie auf nur
zwei Labels herunter, und das Unmögliche wird nicht nur lösbar, sondern schnell.
Stellen Sie sich die einfachste Version der Aufgabe vor: Jedes Pixel ist entweder
Objekt oder Hintergrund. Jedes Pixel hat Datenkosten für jede
Wahl (dunkle Pixel wären lieber Hintergrund, helle lieber Objekt), und Nachbarn zahlen weiterhin
die Potts-Strafe, wenn sie uneinig sind. Wir wollen die günstigste Aufteilung. Es gibt
2(Anzahl der Pixel) mögliche Aufteilungen — astronomisch viele — und
dennoch finden wir die allerbeste im Handumdrehen. Hier ist der Kniff, der das möglich macht.
Verwandeln Sie das Bild in ein Rohrleitungsnetz
Bauen Sie einen Graphen. Fügen Sie zwei besondere Knoten hinzu: eine Quelle für
„Hintergrund“ und eine Senke für „Objekt“. Verbinden Sie jedes Pixel mit beiden,
mit Rohrdurchmessern gleich seinen zwei Datenkosten. Verbinden Sie dann benachbarte Pixel
untereinander mit Rohren der Weite λ. Und nun stellen Sie eine Frage, die unverwandt
klingt: Was ist die billigste Menge von Rohren, die man durchtrennen könnte, um die
Quelle vollständig von der Senke zu trennen?
Dieser minimale Schnitt ist die Antwort. Jedes Pixel landet auf der Quellenseite oder der
Senkenseite — und diese Partition ist ein Labeling. Die Kosten des Schnitts sind
exakt die Energie dieses Labelings: durchtrennte Datenrohre sind die Datenkosten, die
Sie zahlen, und jedes durchtrennte Nachbarrohr ist eine uneinige Grenze. Der billigste Schnitt
ist also das Labeling niedrigster Energie, und ein jahrhundertealtes Resultat (Max-Flow gleich
Min-Cut) erlaubt uns, ihn in Polynomialzeit zu finden.
Interaktiv · ziehen Sie den Glättungsregler
Verrauschte Eingabe — heller = eher „Objekt“
Min-Cut-Segmentierung — Karmesin = der Schnitt
Der Graph dahinter — ein Schnitt ist ein Labeling
den Daten trauender Glattheit trauen
Gesamtkosten (Min-Cut)
–
Grenzlänge
–
Garantie
globales Optimum ✓
Schieben Sie λ von null hoch. Bei null folgt der Schnitt einfach der Vorliebe jedes
einzelnen Pixels, und die Grenze ist zerfranst und jagt jedem Rauschfleck hinterher. Erhöhen Sie
λ, und die Grenze zahlt für Länge, sodass sie sich enger um das echte Objekt legt und das
Rauschen überstimmt wird — dasselbe Tauziehen wie zuvor, nun aber exakt gelöst.
Die Zahl, die dabei ausgegeben wird, ist nicht die beste Schätzung einer Heuristik; sie ist
beweisbar das globale Minimum. Es gibt keine bessere Aufteilung.
Zwei Labels sind also ein gelöstes Problem. Der Haken ist natürlich, dass Stereo sechzig hat. Der
Schnitt kann nur eine Grenze zwischen zwei Regionen ziehen, und echte Tiefenkarten haben viele.
Der naheliegende Zug — und der, den das Feld gegangen ist — besteht darin, diese
Zwei-Label-Superkraft als wiederholten Zug einzusetzen: immer wieder zu fragen „Sollte
irgendeines dieser Pixel zu Label α wechseln?“ und einen Min-Cut entscheiden zu lassen. Das
ist α-Expansion. Die nächsten beiden Kapitel gehen mit demselben Werkzeug einen anderen,
schärferen Weg.
Für Neugierige
Die Konstruktion funktioniert, wann immer der paarweise Term submodular ist —
für zwei Labels ist die Potts-Strafe das immer, sodass ein einziger Min-Cut das exakte globale
Optimum liefert (Greig, Porteous & Seheult, 1989; Kolmogorov & Zabih, 2004). Die
Interaktion führt Dinics Max-Flow auf dem echten Graphen aus; die ausgegebenen Kosten sind der
Max-Flow-Wert, der nach dem Max-Flow-Min-Cut-Theorem dem minimalen Schnitt entspricht. Bei mehr
als zwei Labels wird das Problem wieder NP-schwer, und α-Expansion (Boykov, Veksler &
Zabih, 2001) wendet diesen binären Schnitt iterativ an — jede Iteration optimal, das
Ganze nur approximativ.
§
Kapitel 04
Antworten umsonst
Hier ist ein Gedanke, der zu schön klingt, um wahr zu sein. Das vollständige Problem ist
NP-schwer — aber was, wenn Sie, bevor Sie den teuren Löser bezahlen, das korrekte Label für
die meisten Pixel beweisen könnten, allein mit den billigen Zwei-Label-Schnitten aus dem
letzten Kapitel? Nicht raten. Beweisen. Und was, wenn „die meisten“ achtzig oder neunzig Prozent
des Bildes hieße?
Genau das leistet Persistenz — auch partielle Optimalität genannt. Die
Idee, die auf Ivan Kovtun zurückgeht, ist entwaffnend einfach. Wählen Sie ein Label, sagen wir
„Disparität 7“, und stellen Sie dem ganzen Bild eine einzige binäre Frage:
Label 7 oder alles außer 7? Das ist ein Zwei-Label-Problem, ein Min-Cut beantwortet
es also exakt. Die Pixel, die der Schnitt der „7“ zuweist, kommen mit einer Garantie: Es
existiert ein globales Optimum des vollständigen Problems, in dem diese Pixel wirklich 7
sind.
Sie sind persistent. Sie können sie festschreiben und nie wieder anschauen.
Stellen Sie diese binäre Frage einmal pro Label, und Sie schälen jedes Mal ein zertifiziertes
Stück der optimalen Lösung heraus — für den Preis von je einem Max-Flow.
Interaktiv · führen Sie die Hilfsschnitte aus
Bisher zertifiziert — grau = noch nicht bewiesen
Vollständige Lösung — gratis + gelöst
0%
gratis zertifiziert
Ausgeführte Max-Flows
0 / 6
Rest für den teuren Löser
100%
Garantie
beweisbar optimal ✓
In der echten Publikation — gratis zertifizierter Anteil auf Middlebury-Stereo
Gehen Sie es Schritt für Schritt durch. Jeder Klick führt einen Hilfsschnitt aus und friert die
Pixel ein, die er beweisen kann, indem er sie einfärbt. Nach allen sechs ist das Grau nahezu
verschwunden: Der weit überwiegende Teil des Bildes ist gelöst und als optimal
zertifiziert, während nur ein hartnäckiger Rest — die wirklich mehrdeutigen Pixel,
überwiegend entlang der Objektkanten — an den teuren Löser übergeben wird. Genau darum geht
es: das NP-schwere Problem zu verkleinern, bevor man je dafür bezahlt.
Und das ist kein Effekt im Spielzeugmaßstab. Auf dem üblichen Middlebury-Stereo-Benchmark reichte
der Anteil, den die Methode kostenlos zertifiziert, von etwa 50 % bis 93 % des
Bildes (die Balken oben sind die tatsächlichen Zahlen der Publikation). Die teure zweite Phase
muss dann nur noch lösen, was übrig bleibt — und deshalb ist die gesamte Pipeline am Ende
rund zehnmal schneller als der bisherige Stand der Technik. Diese Laufzeiten sehen wir im letzten
Kapitel.
Doch etwas ist hier noch verschwenderisch. Wir haben einen Schnitt pro Label ausgeführt
— sechzig Schnitte für ein Stereo-Problem mit sechzig Disparitäten. Der zentrale Beitrag
der Publikation besteht in der Einsicht, dass man keine sechzig braucht. Man braucht ungefähr
sechs. Das ist das nächste Kapitel.
Für Neugierige
Die Persistenz für das „Eines-gegen-alle“-Hilfsproblem ist Kovtuns Resultat (Kovtun, 2003); die
Hilfsenergie ist so konstruiert, dass sich ihre Min-Cut-Lösung garantiert zu einem globalen
Optimum des ursprünglichen Problems fortsetzen lässt — und genau das macht die
beschrifteten Pixel sicher fixierbar. Die Interaktion führt die echten Hilfs-Max-Flows aus; die
Tafel „vollständige Lösung“ ist die zweiphasige Pipeline — persistente Labels fixiert,
dann α-Expansion auf dem nicht persistenten Rest, genau wie in der Publikation —,
sodass die zertifizierten Pixel stets eine Teilmenge davon sind. Die Publikation untersucht
auch Wege, den persistenten Anteil zu vergrößern (die „MP“-Prozedur), mit den größten
Gewinnen bei λ = 0.
§
Kapitel 05
Von k Schnitten zu log k
Das vorige Kapitel brauchte einen Min-Cut pro Label. Das ist der verschwenderische Teil, und ihn
zu beheben ist das Herz der Publikation. Die Lösung ist eine Idee, die Sie täglich verwenden,
ohne sie zu benennen: Um eine Zahl zwischen 1 und 60 zu finden, prüfen Sie nicht alle sechzig
— Sie fragen „höher oder tiefer?“ und halbieren jedes Mal den Bereich. Binäre Suche. Der
Kniff besteht darin, diese Suche für alle Pixel gleichzeitig durchzuführen, wobei bei
jedem Schritt ein einziger Min-Cut über das ganze Bild entscheidet.
Legen Sie die möglichen Labels als Blätter eines balancierten Binärbaums aus. Die Wurzel hält den
ganzen Bereich; ihre zwei Kinder teilen ihn in Hälften; deren Kinder teilen erneut, und so weiter
hinunter bis zu einzelnen Labels. Nun gehen Sie den Baum Ebene für Ebene hinab. Auf jeder Ebene
wird dem gesamten Bild eine einzige binäre Frage gestellt — Liegt dein Label in der
unteren Hälfte deines aktuellen Bereichs oder in der oberen? —, und weil das ein
Zwei-Label-Problem ist, beantwortet ein Min-Cut sie exakt für alle Pixel gleichzeitig. Jede
Antwort halbiert den Bereich jedes Pixels.
Halbieren Sie sechzehn Labels viermal, und Sie sind bei einem. Die Tiefenkarte löst sich aus
einer flachen Leere in grobe Bänder auf, dann in feinere, dann in volle Detailschärfe — in
vier Schnitten statt sechzehn.
Interaktiv · Schnitte ausführen und beim Auflösen zusehen
Labelbaum — jeder Schnitt geht eine Ebene tiefer (16 Labels → Tiefe 4)
Tiefenkarte löst sich auf — der Kandidatenbereich halbiert sich pro Schnitt
SPLIT (diese Publikation)
0
Naives Kovtun
16
Max-Flows zum Beschriften des Bildes
Ausgeführte Schnitte
0 / 4
Kandidaten / Pixel
16
Bei einem Stereo-Problem mit 60 Disparitäten ist die Ersparnis noch krasser: 7 Schnitte statt 60 — das ist die Schranke ⌈1 + log₂ k⌉.
Die Rechnung ist die Pointe. Kovtuns ursprüngliche Methode brauchte k Max-Flows; diese
braucht die Tiefe des Baums, also etwa log₂ k. Die Schnitte einer Ebene wirken
auf disjunkte Pixelmengen — jedes Pixel steckt in genau einem Teilproblem —, sodass
eine ganze Ebene nicht mehr kostet als ein einziger Max-Flow auf dem Originalbild. Sechzehn
Labels: vier Schnitte. Sechzig Labels: sieben. Je größer die Labelmenge, desto größer der Gewinn
— und genau deshalb zählt es für Stereo, wo k groß ist.
Das ist der Beitrag in einem Satz: dieselbe zertifizierte Antwort, die Kovtun in k
Max-Flows liefert, gewonnen in ⌈1 + log₂ k⌉ davon.
Kombinieren Sie ihn mit der Persistenz des letzten Kapitels — den größten Teil des Bildes
umsonst beschriften, in logarithmisch wenigen Schnitten, dann den kleinen Rest einem schnellen
Löser übergeben —, und Sie haben die gesamte Pipeline. Das Schlusskapitel zeigt, was das an
tatsächlicher Laufzeit einbringt, und ein Ergebnis, das uns wirklich überrascht hat.
Für Neugierige
Die Konstruktion führt die Minimierung der Potts-Energie auf die Minimierung einer Funktion mit
einer Baummetrik auf der Labelmenge zurück — einem Sterngraphen, verwurzelt in
einem Hilfslabel —, deren unäre Terme T-konvex sind. Die Publikation
verallgemeinert den Tree-Metrics-Algorithmus von Felzenszwalb et al. auf diese allgemeineren
unären Terme; den Stern zu einem Binärbaum auszubalancieren (ein Kanteneinfügeschritt) ist es,
was jede Teilung gleichmäßig macht und die Tiefe
⌈1 + log₂ k⌉ ergibt. Nach der Coarea-Formel sind die
binären Schnitte über alle Ebenen geschachtelt und konsistent, sodass sie sich äquivalent aus
einem einzigen parametrischen Max-Flow gewinnen lassen (Gallo, Grigoriadis &
Tarjan, 1989). Die Publikation fasst das Ganze zudem über k-submodulare Funktionen
und verallgemeinert damit Bisubmodularität und Roof Duality (QPBO) auf mehr als zwei Labels.
§
Kapitel 06
Die Auszahlung
Theorie ist nur begrenzt viel wert; die Frage, die eine Praktikerin stellt, lautet „wie schnell
und wie gut?“. Also haben wir es auf dem üblichen Prüfstand für dieses Problem laufen lassen
— dem Middlebury-Stereo-Benchmark —, gegen die schnellste publizierte Methode für
dieselbe Aufgabe. Das kam zurück.
Tatsächliche Laufzeit auf dem Middlebury-Stereo-Benchmark (Millisekunden; kürzer ist besser). Phase 1 der neuen Methode — k-sub Kovtun — ist rund zehnmal schneller als der bisherige Stand der Technik („Reduce“, Alahari et al. 2010); die vollständige Pipeline mit FastPD bleibt deutlich vorn. Die Zahlen stammen aus Tabelle 1 der Publikation.
Die erste Phase — den größten Teil des Bildes umsonst zu beschriften, in logarithmisch
wenigen Schnitten — läuft rund zehnmal schneller als der bisherige Stand
der Technik („Reduce“). Selbst die vollständige Pipeline, die anschließend den nicht persistenten
Rest mit einem schnellen Löser bereinigt, bleibt komfortabel vorn. Bei den leichten Bildern, wo
fast alles zertifiziert ist, ist das Ganze in ein paar hundert Millisekunden fertig.
Geschwindigkeit war aber erwartbar. Das Ergebnis, das uns wirklich überrascht hat, betraf die
Qualität. Schauen Sie sich die tatsächlichen Disparitätskarten an — wechseln Sie
zwischen dem billigen zertifizierten Labeling und der vollständigen Optimierung:
Interaktiv · zwischen billigem und vollem Ergebnis wechseln
ConesTeddyTsukubaVenus
Showing: Kovtun’s certified labeling
Sie sind kaum zu unterscheiden. Und als wir den Fehler gegen die Grundwahrheit maßen, war das
billige Kovtun-Labeling in der Mehrzahl der Fälle genauer als die vollständige
α-Expansions-Lösung — obwohl α-Expansion eine niedrigere Energie erreicht. Das
klingt paradox, bis man sich erinnert, was Energie ist: ein Modell der Welt, nicht die
Welt selbst. Die Energie auf ihr absolutes Minimum zu treiben, optimiert das Modell härter
— und mit ihm dessen kleine Verzerrungen. Die zertifizierten Pixel sind genau jene, bei
denen die Daten von vornherein sicher waren — der Teil, den wir beweisen können, ist also
zugleich der Teil, der am häufigsten stimmt.
Der Teil der Antwort, den wir umsonst beweisen können, erweist sich als der Teil, der am ehesten
korrekt ist.
Die praktische Lesart ist befreiend: Für ein zeitkritisches System — einen Roboter, eine
Kamera, irgendetwas mit einer Frist — können Sie nach der billigen Phase aufhören und ein
Labeling ausliefern, das schnell und, auf diesen Benchmarks, oft besser ist. Das teure
globale Optimum ist optional.
Warum eine Stereo-Publikation in ein KI-Portfolio gehört
Diese Arbeit ist älter als die Deep-Learning-Ära, und Stereo-Tiefe ist heute weitgehend ein
gelerntes Problem. Ich behalte sie hier für das, was sie darüber zeigt, wie ich denke
— und das ist nicht veraltet. Drei Gewohnheiten ziehen sich durch sie und durch alles, was
ich seither gebaut habe. Erstens: die Struktur finden, die ein schweres Problem leicht
macht — die ganze Publikation dreht sich um die Beobachtung, dass in einem
k-wertigen Labeling eine binäre Suche steckt. Zweitens: Garantien verdienen, statt auf
sie zu hoffen — Persistenz ist ein Beweis, keine Heuristik, und zu wissen,
welche Ausgaben zertifiziert sind, ist genau die kalibrierte Zuversicht, um die sich
moderne ML-Systeme immer noch bemühen. Drittens: den Abstand zwischen Zielfunktion und
Ziel respektieren — die Überraschung in dieser Publikation ist eine kleine,
freundliche Fassung der Reward-Hacking- und Überoptimierungsprobleme, die heute viel an der
Front der KI-Arbeit ausmachen.
Schnellere Algorithmen, beweisbare Teilantworten und ein gesundes Misstrauen gegenüber der
Zielfunktion, die man minimiert: Das ist ein Werkzeugkasten, und er lässt sich übertragen. Wenn
Ihr Team an Problemen arbeitet, bei denen diese Instinkte helfen würden, spreche ich gern
darüber.
Die vollständige Pipeline ist „k-sub Kovtun“ für Phase 1 (die log k-Persistenz), gefolgt
von FastPD (Komodakis et al.) auf den nicht persistenten Pixeln für Phase 2; FastPD
aus Kovtuns Labeling zu initialisieren beschleunigte Phase 2 zusätzlich um rund 14 % gegenüber
der Standardinitialisierung. Der Fehlerratenvergleich ist gegen die Middlebury-Grundwahrheit
gemessen (Scharstein & Szeliski); der Fehler über der persistenten Teilmenge ist noch
niedriger als über dem gesamten Bild. Bilder und Laufzeiten stammen aus der Publikation
— Gridchyn & Kolmogorov, ICCV 2013.