Shapeworks: Erro em reflectMeshes ao executar o caso de uso femur e femur_cut

Criado em 18 fev. 2021  ·  12Comentários  ·  Fonte: SCIInstitute/ShapeWorks

Tentei executar o caso de uso femur e femur_cut:

  1. O teste minúsculo funciona bem python RunUseCase.py --use_case femur --tiny_test
  2. O caso de uso funciona bem se você usar --skip_grooming
  3. O caso de uso falha quando você executa python RunUseCase.py --use_case femur e python RunUseCase.py --use_case femur_cut com o erro:
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

Comentários muito úteis

@ iyerkrithika21 Acho que a função de corte funciona bem. Aumente o preenchimento.

Todos 12 comentários

Executando isso no mais recente deste branch, recebo:

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

Isso é um problema?

Eu corri:

python RunUseCase.py --use_case femur

Eu respondi 'sim' quando perguntou sobre rasterização isotrópica.

Terminou com:


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.

Eu corri:

python RunUseCase.py --use_case femur

Eu respondi 'sim' quando perguntou sobre rasterização isotrópica.

Terminou com:


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.

Aumentar o preenchimento para 30 na linha 259 em femur.py não produz esse erro.
Vou discutir isso com @archanasri para descobrir o que está errado com a função de corte.

@ iyerkrithika21 Acho que a função de corte funciona bem. Aumente o preenchimento.

Executando isso no mais recente deste branch, recebo:

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

Isso é um problema?

@akenmorris o que você executou na linha de comando?

Executando isso no mais recente deste branch, recebo:

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

Isso é um problema?

@akenmorris o que você executou na linha de comando?

@archanasri Eu entendo quando executo python RunUseCase.py --use_case femur --groom_images
Eu vejo esse erro na etapa de alinhamento rígido.

Eu acredito que acabei de correr:

python RunUseCase.py --use_case femur

O caso de uso completo sem limpeza de imagens agora está corrigido no branch femur_reflect_fix.
Quando você executa o caso de uso completo com a tag --groom_images, então ocorre o erro de alinhamento Alan mencionado acima porque as segmentações refletidas são todas zero. Então anatomyPairsToSingles () em GroomUtils.py não está funcionando ... @archanasri você pode nos ajudar a analisar isso?

@ jadie1 @ iyerkrithika21 você poderia tentar isto:
img1.reflect(Axis.X).write(img_out) na linha 312 de GroomUtils e
mesh.reflect(Axis.X, center).write(seg_out) na linha 315 de GroomUtils

@ jadie1 @ iyerkrithika21 você poderia tentar isto:
img1.reflect(Axis.X).write(img_out) na linha 312 de GroomUtils e
mesh.reflect(Axis.X, center).write(seg_out) na linha 315 de GroomUtils

As segmentações refletidas ainda são todas zeros.
Viu o mesmo erro no alinhamento.

Trabalho ao escovar sem imagens a partir de PR # 1030
Agora corrigindo ao limpar com imagens no branch reflet_fix

Fixo em PR # 1040

Esta página foi útil?
5 / 5 - 1 avaliações

Questões relacionadas

akenmorris picture akenmorris  ·  32Comentários

sheryjoe picture sheryjoe  ·  13Comentários

akenmorris picture akenmorris  ·  22Comentários

akenmorris picture akenmorris  ·  16Comentários

iyerkrithika21 picture iyerkrithika21  ·  7Comentários