Comments (29)
Gli esperimenti senza modifiche ci sono: #31 (comment)
from neural_registration_comparison.
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.
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.
In che senso provando a calcolarlo? Sì va a tentativi o propongono un metodo?
from neural_registration_comparison.
Propongono un metodo, è nella issue che ho linkato
from neural_registration_comparison.
E allora prova
from neural_registration_comparison.
Sto facendo
from neural_registration_comparison.
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.
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.
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.
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.
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.
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.
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.
Guardo come funziona RoReg e ti dico.
from neural_registration_comparison.
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.
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.
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.
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.
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.
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.
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.
Ok, ero convinto non li avessi fatti tutti
from neural_registration_comparison.
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.
Ho riportato qui le statistiche calcolate sui problemi ETH "originali"
from neural_registration_comparison.
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:
- per ogni pc creato la bounding box
- verificato la dimensione più grande della bounding box e l'ho presa come "estensione spaziale"
- 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.
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.
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.
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)
- Test di 3dSmoothNet
- Test di FPFH HOT 2
- Test di Fully Convolutional Geometric Features
- Bug script registration_from_features HOT 3
- Test di Predator HOT 12
- Test di PPFNet HOT 2
- Test di GenReg HOT 2
- Test Feature Metric Registration
- Aggiungere per ogni algoritmo delle misure di "efficienza" (tempo/memoria?) HOT 11
- Test di GeoTransformer HOT 7
- Test di RoReg
- Rifare test per misurare tempo/memoria
- Downsampling e preprocessing per esperimenti nuovi HOT 13
- FPFH HOT 1
- 3DSmoothNet HOT 3
- FCGF HOT 3
- 3DFeatNet HOT 1
- FMR HOT 2
- Aggiungere scenario di test "robotico" HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from neural_registration_comparison.