Shapeworks: Erreur dans ReflectMeshes lors de l'exécution du cas d'utilisation du fémur et du fémur_cut

Créé le 18 févr. 2021  ·  12Commentaires  ·  Source: SCIInstitute/ShapeWorks

J'ai essayé d'exécuter le cas d'utilisation du fémur et du fémur_cut:

  1. Un petit test fonctionne bien python RunUseCase.py --use_case femur --tiny_test
  2. Le cas d'utilisation fonctionne bien si vous utilisez --skip_grooming
  3. Le cas d'utilisation échoue lorsque vous exécutez python RunUseCase.py --use_case femur et python RunUseCase.py --use_case femur_cut avec l'erreur:
Step 2. Groom - Data Pre-processingInput filename: Output/femur/femur-v0/meshes/m09_R_femur.ply
Output filename: Output/femur/groomed/reflected/segmentations/m09_R_femur.reflect.ply
Traceback (most recent call last):
  File "RunUseCase.py", line 79, in <module>
    module.Run_Pipeline(args)
  File "/home/sci/iyerkrithika/ShapeWorks/Examples/Python/femur.py", line 219, in Run_Pipeline
    reflectedFiles_mesh = reflectMeshes(groomDir + 'reflected', files_mesh, reference_side)
  File "/home/sci/iyerkrithika/ShapeWorks/Examples/Python/GroomUtils.py", line 344, in reflectMeshes
    mesh.reflect(X, mesh.center()).write(seg_out)
ValueError: vector::reserve
QA bug

Commentaire le plus utile

@ iyerkrithika21 Je pense que la fonction de recadrage fonctionne très bien. Augmentez le rembourrage.

Tous les 12 commentaires

En exécutant ceci sur la dernière de cette branche, j'obtiens:

Input filename: Output/femur/groomed/centered/segmentations/m12_R_femur.reflect.isores.pad.com.center.nrrd
Output filename: Output/femur/groomed/aligned/m12_R_femur.reflect.isores.pad.com.center.aligned.nrrd
Input filename: Output/femur/groomed/centered/segmentations/m13_R_femur.reflect.isores.pad.com.center.nrrd
Output filename: Output/femur/groomed/aligned/m13_R_femur.reflect.isores.pad.com.center.aligned.nrrd
ERROR: In ../Common/DataModel/vtkIterativeClosestPointTransform.cxx, line 270
vtkIterativeClosestPointTransform (0x7ff2ceeb98c0): Can't execute with nullptr or empty input

Input filename: Output/femur/groomed/centered/segmentations/m14_R_femur.reflect.isores.pad.com.center.nrrd
Output filename: Output/femur/groomed/aligned/m14_R_femur.reflect.isores.pad.com.center.aligned.nrrd
Input filename: Output/femur/groomed/centered/segmentations/m15_R_femur.reflect.isores.pad.com.center.nrrd
Output filename: Output/femur/groomed/aligned/m15_R_femur.reflect.isores.pad.com.center.aligned.nrrd

Est-ce un problème?

L'Iran:

python RunUseCase.py --use_case femur

J'ai répondu «oui» quand il a posé des questions sur la pixellisation isotrope.

Cela s'est terminé par:


Input filename: Output/femur/groomed/clipped_segmentations/m03_L_femur.isores.pad.com.center.aligned.clipped.nrrd
Output filename: Output/femur/groomed/cropped/segmentations/m03_L_femur.isores.pad.com.center.aligned.clipped.cropped.nrrd
Traceback (most recent call last):
  File "RunUseCase.py", line 79, in <module>
    module.Run_Pipeline(args)
  File "/Users/amorris/sci/data/Examples/Python/femur.py", line 299, in Run_Pipeline
    croppedFiles_segmentations = applyCropping(groomDir + "cropped/segmentations", clippedFiles_segmentations, groomDir + "clipped_segmentations/*.nrrd")
  File "/Users/amorris/sci/data/Examples/Python/GroomUtils.py", line 225, in applyCropping
    img.crop(region).write(outname)
RuntimeError: /Users/amorris/sci/shapeworks/dependencies/build/ITK/Modules/Core/Common/src/itkDataObject.cxx:385:
Requested region is (at least partially) outside the largest possible region.

L'Iran:

python RunUseCase.py --use_case femur

J'ai répondu «oui» quand il a posé des questions sur la pixellisation isotrope.

Cela s'est terminé par:


Input filename: Output/femur/groomed/clipped_segmentations/m03_L_femur.isores.pad.com.center.aligned.clipped.nrrd
Output filename: Output/femur/groomed/cropped/segmentations/m03_L_femur.isores.pad.com.center.aligned.clipped.cropped.nrrd
Traceback (most recent call last):
  File "RunUseCase.py", line 79, in <module>
    module.Run_Pipeline(args)
  File "/Users/amorris/sci/data/Examples/Python/femur.py", line 299, in Run_Pipeline
    croppedFiles_segmentations = applyCropping(groomDir + "cropped/segmentations", clippedFiles_segmentations, groomDir + "clipped_segmentations/*.nrrd")
  File "/Users/amorris/sci/data/Examples/Python/GroomUtils.py", line 225, in applyCropping
    img.crop(region).write(outname)
RuntimeError: /Users/amorris/sci/shapeworks/dependencies/build/ITK/Modules/Core/Common/src/itkDataObject.cxx:385:
Requested region is (at least partially) outside the largest possible region.

L'augmentation du rembourrage à 30 sur la ligne 259 dans femur.py ne produit pas cette erreur.
J'en discuterai avec @archanasri pour trouver ce qui ne va pas avec la fonction de recadrage.

@ iyerkrithika21 Je pense que la fonction de recadrage fonctionne très bien. Augmentez le rembourrage.

En exécutant ceci sur la dernière de cette branche, j'obtiens:

Input filename: Output/femur/groomed/centered/segmentations/m12_R_femur.reflect.isores.pad.com.center.nrrd
Output filename: Output/femur/groomed/aligned/m12_R_femur.reflect.isores.pad.com.center.aligned.nrrd
Input filename: Output/femur/groomed/centered/segmentations/m13_R_femur.reflect.isores.pad.com.center.nrrd
Output filename: Output/femur/groomed/aligned/m13_R_femur.reflect.isores.pad.com.center.aligned.nrrd
ERROR: In ../Common/DataModel/vtkIterativeClosestPointTransform.cxx, line 270
vtkIterativeClosestPointTransform (0x7ff2ceeb98c0): Can't execute with nullptr or empty input

Input filename: Output/femur/groomed/centered/segmentations/m14_R_femur.reflect.isores.pad.com.center.nrrd
Output filename: Output/femur/groomed/aligned/m14_R_femur.reflect.isores.pad.com.center.aligned.nrrd
Input filename: Output/femur/groomed/centered/segmentations/m15_R_femur.reflect.isores.pad.com.center.nrrd
Output filename: Output/femur/groomed/aligned/m15_R_femur.reflect.isores.pad.com.center.aligned.nrrd

Est-ce un problème?

@akenmorris qu'avez-vous exécuté à partir de la ligne de commande?

En exécutant ceci sur la dernière de cette branche, j'obtiens:

Input filename: Output/femur/groomed/centered/segmentations/m12_R_femur.reflect.isores.pad.com.center.nrrd
Output filename: Output/femur/groomed/aligned/m12_R_femur.reflect.isores.pad.com.center.aligned.nrrd
Input filename: Output/femur/groomed/centered/segmentations/m13_R_femur.reflect.isores.pad.com.center.nrrd
Output filename: Output/femur/groomed/aligned/m13_R_femur.reflect.isores.pad.com.center.aligned.nrrd
ERROR: In ../Common/DataModel/vtkIterativeClosestPointTransform.cxx, line 270
vtkIterativeClosestPointTransform (0x7ff2ceeb98c0): Can't execute with nullptr or empty input

Input filename: Output/femur/groomed/centered/segmentations/m14_R_femur.reflect.isores.pad.com.center.nrrd
Output filename: Output/femur/groomed/aligned/m14_R_femur.reflect.isores.pad.com.center.aligned.nrrd
Input filename: Output/femur/groomed/centered/segmentations/m15_R_femur.reflect.isores.pad.com.center.nrrd
Output filename: Output/femur/groomed/aligned/m15_R_femur.reflect.isores.pad.com.center.aligned.nrrd

Est-ce un problème?

@akenmorris qu'avez-vous exécuté à partir de la ligne de commande?

@archanasri J'obtiens ça quand python RunUseCase.py --use_case femur --groom_images
Je vois cette erreur dans l'étape d'alignement rigide.

Je crois que je viens de courir:

python RunUseCase.py --use_case femur

Le cas d'utilisation complet sans images de toilettage est maintenant corrigé sur la branche femur_reflect_fix.
Lorsque vous exécutez le cas d'utilisation complet avec la balise --groom_images, cela donne l'erreur d'alignement Alan mentionnée ci-dessus car les segmentations reflétées sont toutes nulles. Donc anatomyPairsToSingles () dans GroomUtils.py ne fonctionne pas ... @archanasri pouvez-vous nous aider à regarder ça?

@ jadie1 @ iyerkrithika21 pourriez-vous essayer ceci:
img1.reflect(Axis.X).write(img_out) à la ligne 312 de GroomUtils et
mesh.reflect(Axis.X, center).write(seg_out) à la ligne 315 de GroomUtils

@ jadie1 @ iyerkrithika21 pourriez-vous essayer ceci:
img1.reflect(Axis.X).write(img_out) à la ligne 312 de GroomUtils et
mesh.reflect(Axis.X, center).write(seg_out) à la ligne 315 de GroomUtils

Les segmentations reflétées sont toujours toutes des zéros.
Vu la même erreur dans l'alignement.

Travailler lors du toilettage sans images à partir du PR # 1030
Corrige maintenant lors du toilettage avec des images sur la branche reflect_fix

Corrigé dans PR # 1040

Cette page vous a été utile?
5 / 5 - 1 notes