Mam pytanie dotyczące dopasowania kwadratowego do zbioru punktów i odpowiadających normalnych (lub równoważnie stycznych). Dopasowanie kwadratowych powierzchni do danych punktowych jest dobrze zbadane. Niektóre prace są następujące:
Bezpośrednie dopasowanie powierzchni kwadratowych o ograniczonym typie , James Andrews, Carlo H. Sequin Komputerowe projektowanie i zastosowania, 10 (a), 2013, bbb-ccc
Algebraiczne dopasowanie kwadratowych powierzchni do danych , I. Al-Subaihi i GA Watson , University of Dundee
Dopasowywanie do konturów rzutowych jest również objęte niektórymi pracami, takimi jak ten .
Z tych wszystkich prac uważam, że metoda Taubina do dopasowania Quadric jest dość popularna:
- G. Taubin, „Oszacowanie krzywych planarnych, powierzchni i krzywych przestrzeni nieplanarnej określonych przez niejawne równania, z zastosowaniem do segmentacji obrazu krawędzi i zakresu ”, IEEE Trans. PAMI, t. 13, 1991, str. 1115-1138.
Pozwól, że krótko podsumuję. Quadric można zapisać w formie algebraicznej:
gdzie to wektor współczynnika, a to współrzędne 3D. Dowolny punkt leży na kwadracie jeśli , gdzie:
Dopasowanie algebraiczne Zasadniczo chcielibyśmy rozwiązać parametry, które minimalizują sumę kwadratowych odległości geometrycznych między punktami a kwadratową powierzchnią. Niestety okazuje się, że jest to niewypukły problem optymalizacji bez znanych rozwiązań analitycznych. Zamiast tego standardowym podejściem jest rozwiązanie algebraicznego dopasowania, czyli rozwiązanie dla parametrów które minimalizują:
Zauważ, że taka bezpośrednia minimalizacja dałaby trywialne rozwiązanie z na początku. To pytanie zostało szeroko zbadane w literaturze. Jednym z rozwiązań, które okazało się dobrze sprawdzać w praktyce, jest metoda Taubina (cytowana powyżej), wprowadzająca ograniczenie:
Można to rozwiązać w następujący sposób: Niech:
gdzie indeksy dolne oznaczają pochodne. Rozwiązaniem jest uogólniony rozkład Eigen, . Wektor parametru najlepszego dopasowania jest równy wektorowi własnemu odpowiadającemu najmniejszej wartości własnej.
Główne pytanie W wielu aplikacjach normalne chmury punktów są dostępne (lub obliczone). Normalne kwadratu można również obliczyć, różnicując i normalizując ukrytą powierzchnię:
Jednak metoda Taubina wykorzystuje tylko geometrię punktową, a nie przestrzeń styczną. I nie znam wielu metod, które są odpowiednie do dopasowania kwadratów, tak aby styczne kwadratu również pasowały do stycznych podstawowej chmury punktów. Poszukuję potencjalnych rozszerzeń powyższej metody lub innych na pokrycie pochodnych pierwszego rzędu.
To, co chciałbym osiągnąć, może być częściowo rozwiązane w przestrzeniach o niższych wymiarach, z bardziej prymitywnymi typami powierzchni (krzywych). Na przykład, dopasowanie linii do krawędzi obrazu, z uwzględnieniem informacji o gradiencie, jest tutaj omówione . Dopasowywanie płaszczyzn (prosty typ kwadratu) do chmur 3D jest bardzo powszechne ( łącze 1 ) lub dopasowanie kulek lub cylindrów można dopasować do zorientowanych zestawów punktów ( łącze 2 ). Zastanawiam się więc nad czymś podobnym, ale dopasowany prymityw jest kwadratowy.
Z zadowoleniem przyjąłbym również analizę proponowanej metody, taką jak:
- Jaka jest minimalna wymagana liczba zorientowanych punktów?
- Jakie są przypadki zdegenerowane?
- Czy można coś powiedzieć o solidności?
Aktualizacja : Chciałbym przedstawić kierunek do naśladowania. Formalnie to, co chcę osiągnąć:
źródło
Odpowiedzi:
Byłem zaskoczony, że nie otrzymałem satysfakcjonującej odpowiedzi na powyższe pytanie, a moje badania wykazały, że jest to niezbadany obszar. Dlatego włożyłem trochę wysiłku w opracowanie rozwiązań tego problemu i opublikowałem następujące manuskrypty:
Tutaj krótko dotknę głównego pomysłu:
To podejście jest podobne do dopasowania w gradiencie jeden ( ). Wektor gradientowy kwadratu do normalnej chmury punktów . Jednak, w przeciwieństwie do -fits, wybieramy ograniczenie liniowe w celu zwiększenia rangi zamiast regulowania rozwiązania. Z pozoru nie jest to trywialne, ponieważ wyrównanie wektor-wektor wprowadza ograniczenie nieliniowe o dowolnej postaci:∇ 1 ∇ Q ( xja) nja∈ R3) ∇ 1 ∇ Q ( xja)∥ ∇ Q ( xja) ∥- nja=0lub∇ Q ( xja)∥ ∇ Q (xja) ∥⋅nja=1.
Nieliniowość jest spowodowana normalizacją, ponieważ trudno jest z góry ustalić wielkość, a tym samym jednorodną skalę. Rozwiązujemy ten problem, wprowadzając normalną jednorodną skalę wśród nieznanych i piszemy:
gdzie
Zestawienie tego dla wszystkich punktów i normals prowadzi do systemu o postaci :
αja ∇ Q ( xja) = ∇ vT.jaq= αjanja v = [ x2)y2)z2)2) x y2) x z2) rz2) x2) r2) z1]T. N. xja nja ZA′q= 0 ⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢vT.1vT.2)⋮vT.n∇ vT.1∇ vT.2)⋮∇ vT.n00⋮0- n103)⋮03)00⋮003)- n2)⋮03)⋯⋯⋱⋯⋯⋯⋱⋯00⋮003)03)⋮- nn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ZAb⋮jajotα1α2)⋮αn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥= 0 - \ mathbf {n} _n \ end {bmatrix} \ begin {bmatrix} A \\ B \\ \ vdots \\ I \\ J \\ \ alpha_1 \\ \ alpha_2 \\ \ vdots \\ \ alpha_n \ end { bmatrix} = \ mathbf {0} \ end {equation}
gdzie , to∇ vT.ja= ∇ v ( xja)T.∈ R3 × 10 03) 3 × 1 wektor zerowy kolumn, to a to nieznane skale jednorodne.ZA′ 4 N.× ( N+ 10 ) α = { αja}
Podczas gdy rozwiązanie tego sformułowania leżące w pustej przestrzeni daje akceptowalne wyniki, system jest dość ograniczony w tym, co mógłby zrobić (współczynniki skali są zbyt wolne). Lepiej jest znaleźć odpowiedni regulizator, który również nie jest zbyt skomplikowany do wdrożenia. W praktyce, po raz kolejny analogiczny do dopasowania gradient-jeden, moglibyśmy preferować gradienty wielomianowe według normy jednostkowej, a zatem zapisać lub równoważnie , jeden wspólny współczynnik skali. To miękkie ograniczenieZA′ αja= 1 αja← α¯ spróbuje wymusić zerowy zbiór wielomianu z uwzględnieniem lokalnej ciągłości danych. Taka regularyzacja oszczędza nam również rozwiązywania wrażliwego jednorodnego systemu i pozwala nam ponownie napisać system w bardziej zwartej formie :A q= n
Podsumowując, rozwiązanie tego układu równań będzie jednocześnie prowadziło kwadrat do incydentu z chmurą punktów, jednocześnie wyrównując jej gradienty do normalnych. Możliwe jest także inne ważenie wkładu punktów i normalnych. W niektórych przypadkach, aby uzyskać dopasowanie specyficzne dla typu, wystarczy niewielkie przeprojektowanie dostosowanego do pożądanego elementu pierwotnego. Wszystkie te szczegóły, a także niektóre analizy teoretyczne i pseudokod, odsyłam do wyżej wymienionych publikacji.ZA
źródło
Znam jeden przykład, w którym normalne zostały uwzględnione w procedurze dopasowania. Nie jest to jednak bezpośrednie dopasowanie do kwadratu. Lokalnie parametryzowana łatka jest dopasowana do punktów i normałów. Użycie normalnych daje więcej równań w problemie dopasowania, umożliwiając użycie wielomianów wyższego rzędu.
źródło
Zobacz także ten artykuł
i istnieje rozszerzenie
źródło