Giter Club home page Giter Club logo

Comments (29)

fdila avatar fdila commented on May 27, 2024 1

Gli esperimenti senza modifiche ci sono: #31 (comment)

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Sono riuscita a far partire la demo.
È un attimo da capire la parte di dataloader per usare il benchmark, il codice non è molto chiaro.

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Riuscita a far partire il codice sul benchmark.
C'è sempre la solita domanda "che voxel size usiamo?". Avevo chiesto agli autori, mi hanno risposto stamattina che è da aggiustare in base alla scala della pc: HpWang-whu/YOHO#10.
Nel frattempo avevo provato gli esperimenti usando sempre voxel a 0.1m ma evidentemente non ha funzionato.

                          median     0.75 Q     0.95 Q
sequence                                              
plain                   4.175156   7.602671  11.774303
stairs                  4.014276   6.055442   8.516453
apartment               2.563842   3.991497   4.941306
hauptgebaude            2.281174   3.007361   3.776486
wood_autumn             2.557995   3.587723   5.429485
wood_summer             2.570046   3.491410   5.162785
gazebo_summer           2.677761   3.763571   4.856108
gazebo_winter           2.636405   4.408116   5.610763
box_met                 7.716710  10.436303  15.200855
p2at_met                8.897280  12.481532  16.930030
planetary_map          11.082039  15.218599  20.951524
pioneer_slam            5.791598  14.720249  29.831474
pioneer_slam3           6.490805  11.544241  15.885792
long_office_household   8.199213  19.593879  36.778856
urban05                 2.464115   3.683809   5.292492
Total                   3.744583   7.679352  17.097272

Sarebbero da rifare gli esperimenti calcolandosi il voxel_size per ogni dataset.

from neural_registration_comparison.

simone-fontana avatar simone-fontana commented on May 27, 2024

In che senso provando a calcolarlo? Sì va a tentativi o propongono un metodo?

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Propongono un metodo, è nella issue che ho linkato

from neural_registration_comparison.

simone-fontana avatar simone-fontana commented on May 27, 2024

E allora prova

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Sto facendo

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Diciamo che anche con i voxel calcolati in base al dataset non sta proprio facendo miracoli, sono venuti semi-decenti solo due sequenze del TUM:

                          median     0.75 Q     0.95 Q
sequence                                              
plain                   6.684006   8.478697  12.319661
stairs                  4.079178   6.323339   8.344557
apartment               2.611119   4.000031   4.941306
hauptgebaude            2.599764   3.091168   3.858842
wood_autumn             2.973447   3.881350   5.371782
wood_summer             2.850194   3.694949   5.233264
gazebo_summer           2.743344   3.749908   4.856108
gazebo_winter           3.283873   4.781377   5.850712
box_met                 7.624218  10.665932  13.788829
p2at_met                9.815375  12.662894  17.480945
planetary_map          10.802270  15.106895  20.781313
pioneer_slam            1.641438   2.690383  17.164019
pioneer_slam3           5.702917  11.431761  15.239062
long_office_household   1.842252   2.836701  20.855254
urban05                 2.464115   3.624928   5.292492
Total                   3.514430   6.626449  14.226187

Però è strano, loro sia sulla repo che nel paper parlano di test che hanno fatto con il dataset ETH (sulle sequenze gazebo e wood) e hanno dei buoni risultati.

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Ho sicuramente qualcosa di rotto nel codice che esegue gli esperimenti sul benchmark.
Ho provato a far andare la valutazione su ETH gazebo e wood, visto che forniscono già lo script, calcolando il "nostro" errore, e viene ~0.03.

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Sto provando a vedere come sono gli esperimenti su ETH che hanno fatto loro (l'overlap è espresso tra 0 e 1):

Dataset: gazebo_summer
Initial error median:  1.00
Final error median:  0.03
Overlaps median:  0.58

Dataset: gazebo_winter
Initial error median:  1.25
Final error median:  0.04
Overlaps median:  0.57

Dataset: wood_autumn
Initial error median:  0.53
Final error median:  0.03
Overlaps median:  0.66

Dataset: wood_summer
Initial error median:  0.51
Final error median:  0.04
Overlaps median:  0.71

from neural_registration_comparison.

simone-fontana avatar simone-fontana commented on May 27, 2024

Prova a fare lo stesso lavoro col benchmark. Ad occhio l'overlap mi sembra simile. L'errore iniziale invece dovrebbe essere decisamente più basso che nel benchmark.

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Con il benchmark:

Dataset: gazebo_summer_global
Initial error:  2.76
Final error:  2.72
Overlap:  0.57

Dataset: gazebo_winter_global
Initial error:  3.54
Final error:  3.28
Overlap:  0.55

Dataset: wood_autumn_global
Initial error:  3.09
Final error:  3.02
Overlap:  0.61

Dataset: wood_summer_global
Initial error:  2.99
Final error:  2.91
Overlap:  0.62

Rimango convinta che ci sia qualcosa di sbagliato nel mio codice, l'errore iniziale non dovrebbe influire così tanto sul risultato finale.

from neural_registration_comparison.

simone-fontana avatar simone-fontana commented on May 27, 2024

Si riesce a provare il loro script con i problemi del benchmark? Anche solo con pochi, giusto per vedere se i risultati sono uguali a quelli del tuo.

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Eh, io ho copiaincollato il loro script cambiando solo la gestione di I/O dei dati, ma evidentemente ho sbagliato qualcosa nel farlo.

from neural_registration_comparison.

simone-fontana avatar simone-fontana commented on May 27, 2024

Guardo come funziona RoReg e ti dico.

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

L'unica cosa che mi è venuta in mente ora è che forse gestisco/gestiscono male la parte di estrazione del descrittore in base alla rotazione. Per la prima parte di preprocessing prendono la pc, hanno 60 rotazioni (predefinite), e estraggono le features per ogni rotazione della pc. Se la pc non è espressa nel sistema di riferimento LIDAR/camera RGBD (visto che applico la trasformazione del benchmark prima di estrarre le feature), e applico la rotazione in realtà non sto ruotando la pc intorno al suo centro ma rispetto all'origine "del mondo" (credo).

from neural_registration_comparison.

simone-fontana avatar simone-fontana commented on May 27, 2024

Questo potrebbe essere un problema.
Per capire se è effettivamente questo il problema, potresti provare a usare il benchmark applicando solo la parte di rotazione della trasformazione. In questo modo il centro non cambia. Se i risultati fanno ancora schifo, non è quello.
Posto che comunque sarebbe un requisito da specificare bene nella documentazione della rete...

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Però le pc del benchmark sono già espresse rispetto al frame globale (almeno, quelle di ETH su cui mi stavo concentrando). Provando ad aprire quelle di ETH che forniscono loro invece tutte nel frame locale lidar.
Al più si può provare ad applicare queste 60 rotazioni rispetto al centroide della pc?

from neural_registration_comparison.

simone-fontana avatar simone-fontana commented on May 27, 2024

Sì, hai ragione, sono già espresse rispetto al frame globale (tutte).
Sì, la seconda opziona sarebbe stato applicare le rotazioni rispetto al centroide della PC. Quanto è complesso entrare nel loro codice per provare?

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Teoricamente ho implementato la roba di applicare le rotazioni in base al centroide, stanno andando ora gli esperimenti.
Nel dubbio ho provato ad aprire una issue anche sulla loro repo.

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Non è stato molto utile, è un ottimo generatore di matrici identità:

Dataset: gazebo_summer_global
Initial error:  2.76
Final error:  2.76
Overlap:  0.57
N identity transforms: 97

Dataset: gazebo_winter_global
Initial error:  3.54
Final error:  2.44
Overlap:  0.55
N identity transforms: 56

Dataset: wood_autumn_global
Initial error:  3.09
Final error:  2.10
Overlap:  0.61
N identity transforms: 57

Dataset: wood_summer_global
Initial error:  2.99
Final error:  2.21
Overlap:  0.62
N identity transforms: 58

from neural_registration_comparison.

simone-fontana avatar simone-fontana commented on May 27, 2024

Va bene così dai. Direi per ora di far partire gli esperimenti con la versione non modificata del software. Settimana prossima ne discutiamo, nel frattempo mi leggo il paper. Se ti rispondono gli autori fammi sapere.

from neural_registration_comparison.

simone-fontana avatar simone-fontana commented on May 27, 2024

Ok, ero convinto non li avessi fatti tutti

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Dataset: urban05_global
Initial error: 2.51
Final error: 2.51
Overlap: 0.65
N identity transforms: 100

Dataset: apartment_global
Initial error: 3.08
Final error: 2.78
Overlap: 0.72
N identity transforms: 84

Dataset: gazebo_summer_global
Initial error: 2.76
Final error: 2.74
Overlap: 0.57
N identity transforms: 95

Dataset: gazebo_winter_global
Initial error: 3.54
Final error: 3.43
Overlap: 0.55
N identity transforms: 88

Dataset: hauptgebaude_global
Initial error: 2.60
Final error: 2.56
Overlap: 0.55
N identity transforms: 97

Dataset: plain_global
Initial error: 7.05
Final error: 6.86
Overlap: 0.42
N identity transforms: 91

Dataset: stairs_global
Initial error: 4.58
Final error: 3.91
Overlap: 0.58
N identity transforms: 77

Dataset: wood_autumn_global
Initial error: 3.09
Final error: 2.97
Overlap: 0.61
N identity transforms: 91

Dataset: wood_summer_global
Initial error: 2.99
Final error: 2.96
Overlap: 0.62
N identity transforms: 93

Dataset: long_office_household_global
Initial error: 17.40
Final error: 2.62
Overlap: 0.87
N identity transforms: 39

Dataset: pioneer_slam_global
Initial error: 13.22
Final error: 2.12
Overlap: 0.90
N identity transforms: 28

Dataset: pioneer_slam3_global
Initial error: 8.97
Final error: 6.84
Overlap: 0.98
N identity transforms: 70

Dataset: box_met_global
Initial error: 7.61
Final error: 7.61
Overlap: 0.34
N identity transforms: 99

Dataset: p2at_met_global
Initial error: 9.98
Final error: 9.98
Overlap: 0.24
N identity transforms: 98

Dataset: planetary_map_global
Initial error: 10.80
Final error: 10.80
Overlap: 0.01
N identity transforms: 102

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Ho riportato qui le statistiche calcolate sui problemi ETH "originali"

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Voxel size calcolate per ogni sequenza:

urban05_global voxel size: 0.7041251755031409
apartment_global voxel size: 0.06893457791125265
gazebo_summer_global voxel size: 0.1831605929502444
gazebo_winter_global voxel size: 0.207718218088546
hauptgebaude_global voxel size: 0.24594119889739063
plain_global voxel size: 0.16070136217562825
stairs_global voxel size: 0.1150551007596987
wood_autumn_global voxel size: 0.19230890465053305
wood_summer_global voxel size: 0.1728866614244812
long_office_household_global voxel size: 0.030608984030221123
pioneer_slam_global voxel size: 0.037204971254845655
pioneer_slam3_global voxel size: 0.05951218795312785
box_met_global voxel size: 0.2351626773887265
p2at_met_global voxel size: 0.29853341980515763
planetary_map_global voxel size: 0.6697508383697381

Viene calcolata nel seguente modo:
La rete è trainata su 3DMatch con voxel a 0.025m e in media la scala (intesa come estensione spaziale ), delle pc di 3Dmatch è 4m.
Per trovare la voxel size da usare con una specifica sequenza ho:

  1. per ogni pc creato la bounding box
  2. verificato la dimensione più grande della bounding box e l'ho presa come "estensione spaziale"
  3. Fatto la media di questi valori, trovando l'avg_extention della sequenza.

Quindi la voxel size della sequenza è:
voxel_size = avg_extention/4*0.025

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Habemus risultati.

                          median     0.75 Q      0.95 Q
sequence                                               
plain                   5.603749  12.872459   25.957532
stairs                  0.018187   0.031028    0.062713
apartment               0.252029   1.507860    2.558447
hauptgebaude            0.029925   0.133496   10.727451
wood_autumn             0.091683   0.170399    9.310247
wood_summer             0.072078   0.188902    7.036995
gazebo_summer           0.045530   0.135102    9.841313
gazebo_winter           0.037942   0.085034   12.515817
box_met                 9.925734  14.767996   26.326988
p2at_met               19.576531  30.436531   40.422911
planetary_map          48.615818  68.851059  105.972627
pioneer_slam            0.033962   0.073911    0.238006
pioneer_slam3           0.014833   0.026927    0.052645
long_office_household   0.026228   0.051702    0.100152
urban05                 5.224889   9.824193   14.938357
Total                   0.105300   6.331495   37.530577

Cambiano un sacco in base al dataset/sequenza, però ci sta. Alla fine sui dataset che propongono loro di ETH e su quelli del TUM (che sono simili a 3DMatch su cui è trainato) sono buoni.

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Tempi preprocessing/estrazione features:

                       total time [s]  avg time [s]
sequence                                           
plain                          605.98      6.059800
stairs                         676.51      6.765100
apartment                      388.46      3.884600
hauptgebaude                   688.88      6.888800
wood_autumn                    796.61      7.966100
wood_summer                    836.03      8.360300
gazebo_summer                  685.31      6.853100
gazebo_winter                  689.63      6.896300
box_met                        754.33      7.543300
p2at_met                       595.73      5.957300
planetary_map                  805.92      7.901176
pioneer_slam                   641.12      6.411200
pioneer_slam3                  594.88      5.948800
long_office_household          662.63      6.626300
urban05                        557.77      5.577700
Total                         9979.79      6

Tempi RoReg:

                       total time [s]  avg time [s]
sequence                                           
plain                          385.01      3.850100
stairs                         378.81      3.788100
apartment                      376.72      3.767200
hauptgebaude                   362.43      3.624300
wood_autumn                    415.29      4.152900
wood_summer                    349.16      3.491600
gazebo_summer                  400.76      4.007600
gazebo_winter                  389.53      3.895300
box_met                        353.74      3.537400
p2at_met                       371.43      3.714300
planetary_map                  368.44      3.612157
pioneer_slam                   373.94      3.739400
pioneer_slam3                  392.40      3.924000
long_office_household          423.84      4.238400
urban05                        346.16      3.461600
Total                         5687.66      3.786724

from neural_registration_comparison.

fdila avatar fdila commented on May 27, 2024

Memoria preprocessing:

                       median  0.75 Q  0.95 Q         mean     std_dev     max
sequence                                                                      
plain                  1682.0  1698.0  1714.0  1666.751709  105.670738  1742.0
stairs                 1726.0  2056.0  2188.0  1821.506592  229.532684  2544.0
apartment              1712.0  1732.0  1762.0  1688.530029  128.680786  1796.0
hauptgebaude           1790.0  1810.0  2034.0  1804.828979  169.363129  2078.0
wood_autumn            2184.0  2194.0  2216.0  2124.074951  186.062424  2256.0
wood_summer            1966.0  2026.0  2308.0  1947.344116  220.234360  2648.0
gazebo_summer          1780.0  2036.0  2114.0  1834.750244  199.760864  2222.0
gazebo_winter          1770.0  2018.0  2136.0  1821.422974  205.657028  2182.0
box_met                2144.0  2178.0  2218.0  2062.341553  201.646698  2292.0
p2at_met               1684.0  1714.0  1772.0  1674.432983  120.572075  2062.0
planetary_map          2338.0  3010.0  3054.0  2261.005371  585.568542  3132.0
pioneer_slam           1694.0  1788.0  2094.0  1726.376099  203.612946  2320.0
pioneer_slam3          1676.0  1688.0  1708.0  1662.006714  100.008430  1744.0
long_office_household  1712.0  1956.0  2170.0  1771.934082  238.254501  2394.0
urban05                1620.0  1658.0  1686.0  1620.773438   99.030884  1718.0
Total                  1754.0  2050.0  2324.0  1855.942139  306.367432  3132.0

Memoria RoReg:

                        median   0.75 Q   0.95 Q         mean      std_dev  \
sequence                                                                     
plain                   8422.0  10626.0  10626.0  9442.938477  1377.718262   
stairs                  8422.0  10626.0  11042.0  9383.174805  1456.655762   
apartment               8556.0   8556.0   8558.0  8440.096680   733.044861   
hauptgebaude           10626.0  10626.0  10826.0  9491.178711  1404.042603   
wood_autumn             8422.0  10626.0  10788.0  9366.925781  1399.778687   
wood_summer            10626.0  10626.0  11060.0  9503.616211  1439.849243   
gazebo_summer           8422.0  10626.0  10626.0  9278.000977  1410.524536   
gazebo_winter          10626.0  10626.0  11114.0  9490.018555  1458.811646   
box_met                 8422.0  10626.0  10626.0  9328.312500  1451.549805   
p2at_met                8422.0  10626.0  10626.0  9442.301758  1366.488525   
planetary_map          10626.0  10626.0  10626.0  9460.148438  1373.491089   
pioneer_slam            8414.0  10626.0  10626.0  9246.253906  1442.483887   
pioneer_slam3          10434.0  10626.0  10862.0  9487.418945  1372.827637   
long_office_household   8414.0  10626.0  10626.0  9006.920898  1423.481567   
urban05                 8422.0  10626.0  10626.0  9421.120117  1389.045776   
Total                   8422.0  10626.0  10626.0  9316.179688  1403.294189   

                           max  
sequence                        
plain                  10626.0  
stairs                 11160.0  
apartment               9494.0  
hauptgebaude           10826.0  
wood_autumn            10788.0  
wood_summer            11060.0  
gazebo_summer          11024.0  
gazebo_winter          11166.0  
box_met                10626.0  
p2at_met               10626.0  
planetary_map          10626.0  
pioneer_slam           11168.0  
pioneer_slam3          10862.0  
long_office_household  10736.0  
urban05                10626.0  
Total                  11168.0  

Buonanotte (no scherzavo, per un attimo ignora queste tabelle)

from neural_registration_comparison.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.