Skip to content

Commit 5f22b8a

Browse files
author
ThibaultGROUEIX
committed
timings
1 parent 30758a4 commit 5f22b8a

File tree

10 files changed

+35
-233
lines changed

10 files changed

+35
-233
lines changed

README.md

Lines changed: 23 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -119,55 +119,37 @@ python ./training/train_AE_AtlasNet.py --env $env --nb_primitives $nb_primitives
119119
```
120120
The trained models accessible [here](TODO) have the following performances, slightly better than the one reported in [the paper](TODO). The number reported is the chamfer distance.
121121

122-
| Method | Chamfer (2500 pts GT and 2500 pts Reconstruction) |
123-
| ---------- | --------------------- |
124-
| Autoencoder_Atlasnet_25prim | 0.0014476474650672833 |
125-
| Autoencoder_Atlasnet_1sphere | 0.0017207141972321953 |
126-
| Autoencoder_baseline | 0.001963350556556298 |
127-
| SingleViewReconstruction_Atlasnet_25prim | 0.004638490150569042 |
128-
| SingleViewReconstruction_Atlasnet_1sphere | 0.005198702077052366 |
129-
| SingleViewReconstruction_baseline | 0.0048062904884797605 |
122+
| Method | Chamfer⁽⁰⁾ |GPU memory⁽¹⁾ |Time by epoch⁽²⁾|
123+
| ---------- | --------------------- | --------------------- | --------------------- |
124+
| Autoencoder_Atlasnet_25prim | 0.0014476474650672833 | 4.1GB |6min55s|
125+
| Autoencoder_Atlasnet_1sphere | 0.0017207141972321953 |3.6GB|5min30s|
126+
| Autoencoder_Baseline | 0.001963350556556298 |1.9GB|2min05s|
127+
| SingleViewReconstruction_Atlasnet_25prim | 0.004638490150569042 |6.8GB|10min04s|
128+
| SingleViewReconstruction_Atlasnet_1sphere | 0.005198702077052366 |5.6GB|8min16s|
129+
| SingleViewReconstruction_Baseline | 0.0048062904884797605 |1.7GB|3min30s|
130130

131+
⁽⁰⁾ computed between 2500 ground truth points and 2500 reconstructed points.
132+
133+
⁽¹⁾ with the flag ```--accelerated_chamfer 1```.
134+
135+
⁽²⁾this is only an estimate, the code is not optimised. The easiest way to enhance it would be to preload the training data to use the GPU at 100%. Time computed with the flag ```--accelerated_chamfer 1```.
131136

132137
#### Autoencoder : 25 learned parameterization
133138

134-
| val_loss | 0.0014795344685297** |
135-
| ---------- | --------------------- |
136-
| watercraft | 0.00127737027906 |
137-
| monitor | 0.0016588120616 |
138-
| car | 0.00152693425022 |
139-
| couch | 0.00171516126198 |
140-
| cabinet | 0.00168296881168 |
141-
| lamp | 0.00232362473947 |
142-
| plane | 0.000833268054194 |
143-
| speaker | 0.0025417242402 |
144-
| table | 0.00149979386376 |
145-
| chair | 0.00156113364435 |
146-
| bench | 0.00120812499892 |
147-
| firearm | 0.000626943988977 |
148-
| cellphone | 0.0012117530635 |
139+
| val_loss | watercraft | monitor | car | couch | cabinet | lamp | plane | speaker | table | chair | bench | firearm | cellphone |
140+
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
141+
| 0.0014795344685297⁽³⁾ | 0.00127737027906 | 0.0016588120616 | 0.00152693425022 | 0.00171516126198 | 0.00168296881168 | 0.00232362473947 | 0.000833268054194 | 0.0025417242402 | 0.00149979386376 | 0.00156113364435 | 0.00120812499892 | 0.000626943988977 | 0.0012117530635 |
149142

150143
#### Single View Reconstruction : 25 learned parameterization
151144

152-
| val_loss | 0.00400863720389** |
153-
| ---------- | -------------------- |
154-
| watercraft | 0.00336707355723 |
155-
| monitor | 0.00456469316226 |
156-
| car | 0.00306795421868 |
157-
| couch | 0.00404269965806 |
158-
| cabinet | 0.00355917039209 |
159-
| lamp | 0.0114094304694 |
160-
| plane | 0.00192791500002 |
161-
| speaker | 0.00780984506137 |
162-
| table | 0.00368373458016 |
163-
| chair | 0.00407004468516 |
164-
| bench | 0.0030023689528 |
165-
| firearm | 0.00192803189235 |
166-
| cellphone | 0.00293665724291 |
145+
| val_loss | watercraft | monitor | car | couch | cabinet | lamp | plane | speaker | table | chair | bench | firearm | cellphone |
146+
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
147+
| 0.00400863720389⁽³⁾ | 0.00336707355723 | 0.00456469316226 | 0.00306795421868 | 0.00404269965806 | 0.00355917039209 | 0.0114094304694 | 0.00192791500002 | 0.00780984506137 | 0.00368373458016 | 0.00407004468516 | 0.0030023689528 | 0.00192803189235 | 0.00293665724291 |
148+
149+
⁽³⁾the number is slightly different for above because it comes from legacy code (Atlasnet v1).
167150

168151
* Evaluate quantitatively the reconstructed meshes : [METRO DISTANCE](https://github.com/RobotLocomotion/meshConverters/tree/master/vcglib/apps/metro)
169152

170-
**the number is slightly different for above because it comes from legacy code (Atlasnet v1).
171153

172154
### Visualisation
173155

@@ -193,12 +175,12 @@ View [this paper](http://openaccess.thecvf.com/content_cvpr_2018/CameraReady/382
193175

194176
| frame | Average recontruction error for SVR (x1000) : chamfer distance on input pointcloud and reconstruction of size 2500 pts|
195177
| ---------- | -------------------- |
196-
| object-centered | 4.87 |
178+
| object-centered | 4.87⁽⁴⁾ |
197179
| view-centered | 4.88 |
198180

199-
200181
<img src="pictures/chair_yana.png" style="zoom:55%" /><img src="pictures/car_yana.png" style="zoom:60%" />
201182

183+
⁽⁴⁾ Trained with Atlasnet v2 (with learning rate scheduler : slightly better than the paper's result)
202184

203185
## License
204186

data/ShapeNetCorev2Normalized/README.md

Lines changed: 0 additions & 90 deletions
This file was deleted.

data/ShapeNetRendering/README.md

Lines changed: 0 additions & 90 deletions
This file was deleted.

data/customShapeNet/__init__.py

Whitespace-only changes.

training/train_AE_AtlasNet.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@
1818
# =============PARAMETERS======================================== #
1919
parser = argparse.ArgumentParser()
2020
parser.add_argument('--batchSize', type=int, default=32, help='input batch size')
21-
parser.add_argument('--workers', type=int, help='number of data loading workers', default=8)
21+
parser.add_argument('--workers', type=int, help='number of data loading workers', default=12)
2222
parser.add_argument('--nepoch', type=int, default=120, help='number of epochs to train for')
2323
parser.add_argument('--model', type=str, default = '', help='optional reload model path')
2424
parser.add_argument('--num_points', type=int, default = 2500, help='number of points')
2525
parser.add_argument('--nb_primitives', type=int, default = 25, help='number of primitives in the atlas')
2626
parser.add_argument('--super_points', type=int, default = 2500, help='number of input points to pointNet, not used by default')
2727
parser.add_argument('--env', type=str, default ="AE_AtlasNet" , help='visdom environment')
28-
parser.add_argument('--accelerated_chamfer', type=int, default =1 , help='use custom build accelarated chamfer')
28+
parser.add_argument('--accelerated_chamfer', type=int, default =0 , help='use custom build accelarated chamfer')
2929

3030
opt = parser.parse_args()
3131
print (opt)

training/train_AE_AtlasNet_sphere.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
# =============PARAMETERS======================================== #
2020
parser = argparse.ArgumentParser()
2121
parser.add_argument('--batchSize', type=int, default=32, help='input batch size')
22-
parser.add_argument('--workers', type=int, help='number of data loading workers', default=6)
22+
parser.add_argument('--workers', type=int, help='number of data loading workers', default=12)
2323
parser.add_argument('--nepoch', type=int, default=120, help='number of epochs to train for')
2424
parser.add_argument('--model', type=str, default = '', help='optional reload model path')
2525
parser.add_argument('--num_points', type=int, default = 2500, help='number of points')
2626
parser.add_argument('--nb_primitives', type=int, default = 1, help='number of primitives in the atlas')
2727
parser.add_argument('--super_points', type=int, default = 2500, help='number of input points to pointNet, not used by default')
2828
parser.add_argument('--env', type=str, default ="AE_AtlasNet_SPHERE" , help='visdom environment')
29-
parser.add_argument('--accelerated_chamfer', type=int, default =1 , help='use custom build accelarated chamfer')
29+
parser.add_argument('--accelerated_chamfer', type=int, default =0 , help='use custom build accelarated chamfer')
3030

3131
opt = parser.parse_args()
3232
print (opt)

training/train_AE_Baseline.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
# =============PARAMETERS======================================== #
2020
parser = argparse.ArgumentParser()
2121
parser.add_argument('--batchSize', type=int, default=32, help='input batch size')
22-
parser.add_argument('--workers', type=int, help='number of data loading workers', default=6)
22+
parser.add_argument('--workers', type=int, help='number of data loading workers', default=12)
2323
parser.add_argument('--nepoch', type=int, default=120, help='number of epochs to train for')
2424
parser.add_argument('--model', type=str, default = '', help='optional reload model path')
2525
parser.add_argument('--num_points', type=int, default = 2500, help='number of points')
2626
parser.add_argument('--nb_primitives', type=int, default = 1, help='number of primitives in the atlas')
2727
parser.add_argument('--super_points', type=int, default = 2500, help='number of input points to pointNet, not used by default')
2828
parser.add_argument('--env', type=str, default ="AE_Baseline" , help='visdom environment')
29-
parser.add_argument('--accelerated_chamfer', type=int, default =1 , help='use custom build accelarated chamfer')
29+
parser.add_argument('--accelerated_chamfer', type=int, default =0 , help='use custom build accelarated chamfer')
3030

3131
opt = parser.parse_args()
3232
print (opt)

training/train_SVR_AtlasNet.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@
2020
# =============PARAMETERS======================================== #
2121
parser = argparse.ArgumentParser()
2222
parser.add_argument('--batchSize', type=int, default=32, help='input batch size')
23-
parser.add_argument('--workers', type=int, help='number of data loading workers', default=6)
23+
parser.add_argument('--workers', type=int, help='number of data loading workers', default=12)
2424
parser.add_argument('--nepoch', type=int, default=400, help='number of epochs to train for')
2525
parser.add_argument('--model_preTrained_AE', type=str, default = 'trained_models/ae_atlasnet_25.pth', help='model path')
2626
parser.add_argument('--model', type=str, default = '', help='model path')
2727
parser.add_argument('--num_points', type=int, default = 2500, help='number of points')
2828
parser.add_argument('--nb_primitives', type=int, default = 25, help='number of primitives')
2929
parser.add_argument('--env', type=str, default ="SVR_AtlasNet" , help='visdom env')
3030
parser.add_argument('--fix_decoder', type=bool, default = True , help='if set to True, on the the resnet encoder is trained')
31-
parser.add_argument('--accelerated_chamfer', type=int, default =1 , help='use custom build accelarated chamfer')
31+
parser.add_argument('--accelerated_chamfer', type=int, default =0 , help='use custom build accelarated chamfer')
3232

3333
opt = parser.parse_args()
3434
print (opt)

training/train_SVR_AtlasNet_sphere.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@
2020
# =============PARAMETERS======================================== #
2121
parser = argparse.ArgumentParser()
2222
parser.add_argument('--batchSize', type=int, default=32, help='input batch size')
23-
parser.add_argument('--workers', type=int, help='number of data loading workers', default=6)
23+
parser.add_argument('--workers', type=int, help='number of data loading workers', default=12)
2424
parser.add_argument('--nepoch', type=int, default=400, help='number of epochs to train for')
2525
parser.add_argument('--model_preTrained_AE', type=str, default = 'trained_models/ae_atlasnet_sphere.pth', help='model path')
2626
parser.add_argument('--model', type=str, default = 'trained_models/svr_atlas_sphere.pth', help='model path')
2727
parser.add_argument('--num_points', type=int, default = 2500, help='number of points')
2828
parser.add_argument('--nb_primitives', type=int, default = 1, help='number of primitives')
2929
parser.add_argument('--env', type=str, default ="SVR_AtlasNet_SPHERE" , help='visdom env')
3030
parser.add_argument('--fix_decoder', type=bool, default = True , help='if set to True, on the the resnet encoder is trained')
31-
parser.add_argument('--accelerated_chamfer', type=int, default =1 , help='use custom build accelarated chamfer')
31+
parser.add_argument('--accelerated_chamfer', type=int, default =0 , help='use custom build accelarated chamfer')
3232

3333
opt = parser.parse_args()
3434
print (opt)

training/train_SVR_Baseline.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
# =============PARAMETERS======================================== #
2020
parser = argparse.ArgumentParser()
2121
parser.add_argument('--batchSize', type=int, default=32, help='input batch size')
22-
parser.add_argument('--workers', type=int, help='number of data loading workers', default=6)
22+
parser.add_argument('--workers', type=int, help='number of data loading workers', default=12)
2323
parser.add_argument('--nepoch', type=int, default=400, help='number of epochs to train for')
2424
parser.add_argument('--model_preTrained_AE', type=str, default = 'trained_models/ae_baseline.pth', help='model path for fixed decoder')
2525
parser.add_argument('--model', type=str, default = '', help='model path for pretraining')
2626
parser.add_argument('--num_points', type=int, default = 2500, help='number of generated points')
2727
parser.add_argument('--env', type=str, default ="SVR_Baseline" , help='visdom env')
2828
parser.add_argument('--fix_decoder', type=bool, default = False , help='if set to True, on the the resnet encoder is trained')
29-
parser.add_argument('--accelerated_chamfer', type=int, default =1 , help='use custom build accelarated chamfer')
29+
parser.add_argument('--accelerated_chamfer', type=int, default =0 , help='use custom build accelarated chamfer')
3030

3131
opt = parser.parse_args()
3232
print (opt)

0 commit comments

Comments
 (0)