Shapeworks: femurおよびfemur_cutユースケースを実行する際のreflectMeshesのエラー

作成日 2021年02月18日  ·  12コメント  ·  ソース: SCIInstitute/ShapeWorks

femurとfemur_cutのユースケースを実行しようとしました:

  1. 小さなテストは正常に機能しますpython RunUseCase.py --use_case femur --tiny_test
  2. --skip_groomingを使用すると、ユースケースは適切に実行されます
  3. python RunUseCase.py --use_case femurpython RunUseCase.py --use_case femur_cutを実行すると、ユースケースが失敗し、次のエラーが発生します。
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

最も参考になるコメント

@ iyerkrithika21クロップ機能はうまく機能していると思います。 パディングを増やします。

全てのコメント12件

このブランチから最新のものでこれを実行すると、次のようになります。

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

これは問題ですか?

私は走った:

python RunUseCase.py --use_case femur

等方性のラスター化について尋ねられたとき、私は「はい」と答えました。

それはで終わった:


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.

私は走った:

python RunUseCase.py --use_case femur

等方性のラスター化について尋ねられたとき、私は「はい」と答えました。

それはで終わった:


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.

femur.pyの259行目のパディングを30に増やしても、このエラーは発生しません。
これについて@archanasriと話し合い、crop関数で何が問題になっているのかを調べます。

@ iyerkrithika21クロップ機能はうまく機能していると思います。 パディングを増やします。

このブランチから最新のものでこれを実行すると、次のようになります。

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

これは問題ですか?

@akenmorrisコマンドラインから何を実行しましたか?

このブランチから最新のものでこれを実行すると、次のようになります。

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

これは問題ですか?

@akenmorrisコマンドラインから何を実行しましたか?

@archanasri python RunUseCase.py --use_case femur --groom_imagesを実行するとこれが表示されます
このエラーは、リジッドアライメントステップで見られます。

私はちょうど走ったと信じています:

python RunUseCase.py --use_case femur

画像をグルーミングしない完全なユースケースは、femur_reflect_fixブランチで修正されました。
--groom_imagesタグを使用して完全なユースケースを実行すると、反映されたセグメンテーションがすべてゼロであるため、上記のアライメントエラーAlanが発生します。 そのため、GroomUtils.pyのanatomyPairsToSingles()が機能していません... @archanasriこれを確認するのを手伝っていただけませんか?

@ jadie1 @ iyerkrithika21これを試してみてください:
GroomUtilsの312行目のimg1.reflect(Axis.X).write(img_out)
GroomUtilsの315行目のmesh.reflect(Axis.X, center).write(seg_out)

@ jadie1 @ iyerkrithika21これを試してみてください:
GroomUtilsの312行目のimg1.reflect(Axis.X).write(img_out)
GroomUtilsの315行目のmesh.reflect(Axis.X, center).write(seg_out)

反映されたセグメンテーションはまだすべてゼロです。
アライメントで同じエラーが発生しました。

PR#1030現在、画像なしでグルーミングする場合
ブランチreflect_fixの画像でグルーミングするときに修正されるようになりました

PR#1040で修正

このページは役に立ちましたか?
5 / 5 - 1 評価

関連する問題

iyerkrithika21 picture iyerkrithika21  ·  7コメント

cchriste picture cchriste  ·  3コメント

akenmorris picture akenmorris  ·  16コメント

akenmorris picture akenmorris  ·  32コメント

jadie1 picture jadie1  ·  8コメント