Shapeworks: Tabrakan dengan "femur --groom_images" di MacOS

Dibuat pada 25 Mar 2021  ·  23Komentar  ·  Sumber: SCIInstitute/ShapeWorks

$ python RunUseCase.py --use_case femur --groom_images

...

##### Pemusatan

Nama file masukan: Output/femur/groomed/com_aligned/images/m03_L_1x_hip.isores.pad.com.nrrd
Nama file keluaran: Output/femur/groomed/centers/images/m03_L_1x_hip.isores.pad.com.center.nrrd
Nama file masukan: Output/femur/groomed/com_aligned/images/m04_L_1x_hip.isores.pad.com.nrrd
.....
Nama file masukan: Output/femur/groomed/com_aligned/images/n19_L_1x_hip.isores.pad.com.nrrd
Nama file keluaran: Output/femur/groomed/centers/images/n19_L_1x_hip.isores.pad.com.center.nrrd
Nama file masukan: Output/femur/groomed/com_aligned/images/n19_R_1x_hip.reflect.isores.pad.com.nrrd
Nama file keluaran: Output/femur/groomed/centers/images/n19_R_1x_hip.reflect.isores.pad.com.center.nrrd
zsh: kesalahan segmentasi python RunUseCase.py --use_case femur --groom_images

Ini ada di MacOS dengan RC10.

QA bug

Semua 23 komentar

Apakah itu macet dengan tiny_test?

tiny_test tidak macet.

Mungkin ada hubungannya dengan tulang paha yang dipantulkan karena tes kecil itu hanya menyisakan tulang paha.

Pembaruan: Saya memeriksa ulang dan sepertinya berfungsi di Linux.

Saya mencoba menjalankan tiny_test dengan 2 tulang paha kiri dan satu tulang paha kanan. Tidak ada masalah di sana.

* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x000000016b8612ad libvnl_algo.dylib`vnl_qr<double>::vnl_qr(this=0x00007ffeefbfd568, M=0x00007ffeefbfd6f0) at vnl_qr.hxx:51:24 [opt]
    frame #1: 0x000000016b85cf1d libvnl_algo.dylib`double vnl_determinant<double>(M=<unavailable>, balance=<unavailable>) at vnl_determinant.hxx:107:14 [opt]
    frame #2: 0x00000003dec807ac _ITKIOImageBasePython.so`___lldb_unnamed_symbol9961$$_ITKIOImageBasePython.so + 252
    frame #3: 0x00000003deba7ff4 _ITKIOImageBasePython.so`___lldb_unnamed_symbol7056$$_ITKIOImageBasePython.so + 132
    frame #4: 0x00000003dec80586 _ITKIOImageBasePython.so`___lldb_unnamed_symbol9956$$_ITKIOImageBasePython.so + 38
    frame #5: 0x00000003dea1d188 _ITKIOImageBasePython.so`___lldb_unnamed_symbol1480$$_ITKIOImageBasePython.so + 1560
    frame #6: 0x00000003ded50753 _ITKIOImageBasePython.so`itk::ProcessObject::UpdateOutputInformation() + 351
    frame #7: 0x00000003dec7fec2 _ITKIOImageBasePython.so`___lldb_unnamed_symbol9945$$_ITKIOImageBasePython.so + 70
    frame #8: 0x00000003ded5b6f4 _ITKIOImageBasePython.so`itk::DataObject::Update() + 18
    frame #9: 0x000000041a65c177 _ITKCommonPython.so`___lldb_unnamed_symbol8759$$_ITKCommonPython.so + 58
    frame #10: 0x000000010002c843 python`_PyMethodDef_RawFastCallKeywords + 131
    frame #11: 0x000000010002c1d6 python`_PyObject_FastCallKeywords + 598
    frame #12: 0x0000000100164bb7 python`call_function + 455
    frame #13: 0x000000010015c604 python`_PyEval_EvalFrameDefault + 20180
    frame #14: 0x0000000100155f04 python`_PyEval_EvalCodeWithName + 532
    frame #15: 0x000000010002c5e3 python`_PyFunction_FastCallKeywords + 403
    frame #16: 0x0000000100164aa7 python`call_function + 183
    frame #17: 0x000000010015c604 python`_PyEval_EvalFrameDefault + 20180
    frame #18: 0x000000010002c535 python`_PyFunction_FastCallKeywords + 229
    frame #19: 0x0000000100164aa7 python`call_function + 183
    frame #20: 0x000000010015cdb0 python`_PyEval_EvalFrameDefault + 22144
    frame #21: 0x0000000100155f04 python`_PyEval_EvalCodeWithName + 532
    frame #22: 0x000000010002c5e3 python`_PyFunction_FastCallKeywords + 403
    frame #23: 0x0000000100164aa7 python`call_function + 183
    frame #24: 0x000000010015c604 python`_PyEval_EvalFrameDefault + 20180
    frame #25: 0x0000000100155f04 python`_PyEval_EvalCodeWithName + 532
    frame #26: 0x00000001001c1afb python`PyRun_FileExFlags + 235
    frame #27: 0x00000001001c14c6 python`PyRun_SimpleFileExFlags + 502
    frame #28: 0x00000001001ede30 python`pymain_run_file + 160
    frame #29: 0x00000001001ed72b python`pymain_run_filename + 123
    frame #30: 0x00000001001ecf11 python`pymain_run_python + 145
    frame #31: 0x00000001001ecb8b python`pymain_main + 27
    frame #32: 0x00000001000018c9 python`main + 89
    frame #33: 0x00007fff6aedfcc9 libdyld.dylib`start + 1
    frame #34: 0x00007fff6aedfcc9 libdyld.dylib`start + 1

Mungkinkah ini terkait dengan #1168 ?

Mengapa ITKIOImageBasePython.so muncul di pelacakan tumpukan ini? Saya pikir kami menggunakan binding python shapeworks (misalnya kelas Gambar)?

Juga, beberapa peringatan lldb dimuntahkan tepat sebelum crash:

2021-03-25 11:57:01.360622-0600 python[22532:5953417] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N3itk10DataObjectE, N3itk5ImageIfLj3EEE.
2021-03-25 11:57:01.360667-0600 python[22532:5953417] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N3itk10DataObjectE, N3itk5ImageIfLj3EEE, N3itk9ImageBaseILj3EEE.
2021-03-25 11:57:01.905525-0600 python[22532:5953417] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N3itk10DataObjectE, N3itk5ImageIfLj3EEE.
2021-03-25 11:57:01.905556-0600 python[22532:5953417] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N3itk10DataObjectE, N3itk5ImageIfLj3EEE, N3itk9ImageBaseILj3EEE.
2021-03-25 11:57:02.113545-0600 python[22532:5953417] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N3itk10DataObjectE, N3itk5ImageIfLj3EEE.
2021-03-25 11:57:02.113577-0600 python[22532:5953417] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N3itk10DataObjectE, N3itk5ImageIfLj3EEE, N3itk9ImageBaseILj3EEE.
2021-03-25 11:57:02.646500-0600 python[22532:5953417] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N3itk10DataObjectE, N3itk5ImageIfLj3EEE.
2021-03-25 11:57:02.646531-0600 python[22532:5953417] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N3itk10DataObjectE, N3itk5ImageIfLj3EEE, N3itk9ImageBaseILj3EEE.
2021-03-25 11:57:03.535838-0600 python[22532:5953417] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N3itk10DataObjectE, N3itk5ImageIfLj3EEE.
2021-03-25 11:57:03.535870-0600 python[22532:5953417] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N3itk10DataObjectE, N3itk5ImageIfLj3EEE, N3itk9ImageBaseILj3EEE.
2021-03-25 11:57:05.224328-0600 python[22532:5953417] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N3itk10DataObjectE, N3itk5ImageIfLj3EEE.
2021-03-25 11:57:05.224362-0600 python[22532:5953417] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N3itk10DataObjectE, N3itk5ImageIfLj3EEE, N3itk9ImageBaseILj3EEE.

Apakah ini juga terjadi pada langkah pemusatan di kasus penggunaan atrium kiri?

Apakah itu juga macet di debug? Itu mungkin membocorkan jejak tumpukan yang lebih lengkap. Sejak
Gambar dibangun di sekitarnya:: Gambar beberapa panggilan ke fungsi Gambar ShapeWorks
mungkin hanya dioptimalkan.

Dulu dan jauh (cabang mungkin tidak ada lagi) saya mencoba membangun
ikatan Python itk bersama dengan itk di build_dependencies, tapi saya tidak
berhasil. Saya kira ini layak dicoba lagi, terutama karena conda/pip adalah
terutama menginstal versi yang berbeda dari beberapa, tetapi tidak semua, itk python
komponen (5.0 dan 5.1), resep terang-terangan untuk masalah.

Pada Kam, 25 Mar 2021 jam 11:59 Alan Morris @ . * >
menulis:

  • utas #1, antrian = 'com.apple.main-thread', alasan berhenti = EXC_BAD_ACCESS (kode=1, alamat=0x0)

    • bingkai #0: 0x000000016b8612ad libvnl_algo.dylib vnl_qr<double>::vnl_qr(this=0x00007ffeefbfd568, M=0x00007ffeefbfd6f0) at vnl_qr.hxx:51:24 [opt] frame #1: 0x000000016b85cf1d libvnl_algo.dylib double vnl_determinant(M =, keseimbangan =) di vnl_determinant. hxx:107 :14 [memilih]

      bingkai #2: 0x00000003dec807ac _ITKIOImageBasePython.so ___lldb_unnamed_symbol9961$$_ITKIOImageBasePython.so + 252 frame #3: 0x00000003deba7ff4 _ITKIOImageBasePython.so ___lldb_unnamed_symbol7056$$_ITKIOImageBasePython.so + 132

      bingkai #4: 0x00000003dec80586 _ITKIOImageBasePython.so ___lldb_unnamed_symbol9956$$_ITKIOImageBasePython.so + 38 frame #5: 0x00000003dea1d188 _ITKIOImageBasePython.so ___lldb_unnamed_symbol1480$$_ITKIOImageBasePython.so + 1560

      bingkai #6: 0x00000003ded50753 _ITKIOImageBasePython.so itk::ProcessObject::UpdateOutputInformation() + 351 frame #7: 0x00000003dec7fec2 _ITKIOImageBasePython.so ___lldb_unnamed_symbol9945$$_ITKIOImageBasePython.so + 70

      bingkai #8: 0x00000003ded5b6f4 _ITKIOImageBasePython.so itk::DataObject::Update() + 18 frame #9: 0x000000041a65c177 _ITKCommonPython.so ___lldb_unnamed_symbol8759$$_ITKCommonPython.so + 58

      bingkai #10: 0x000000010002c843 python _PyMethodDef_RawFastCallKeywords + 131 frame #11: 0x000000010002c1d6 python _PyObject_FastCallKeywords + 598

      bingkai #12: 0x0000000100164bb7 python call_function + 455 frame #13: 0x000000010015c604 python _PyEval_EvalFrameDefault + 20180

      bingkai #14: 0x0000000100155f04 python _PyEval_EvalCodeWithName + 532 frame #15: 0x000000010002c5e3 python _PyFunction_FastCallKeywords + 403

      bingkai #16: 0x0000000100164aa7 python call_function + 183 frame #17: 0x000000010015c604 python _PyEval_EvalFrameDefault + 20180

      bingkai #18: 0x000000010002c535 python _PyFunction_FastCallKeywords + 229 frame #19: 0x0000000100164aa7 python call_function + 183

      bingkai #20: 0x000000010015cdb0 python _PyEval_EvalFrameDefault + 22144 frame #21: 0x0000000100155f04 python _PyEval_EvalCodeWithName + 532

      bingkai #22: 0x000000010002c5e3 python _PyFunction_FastCallKeywords + 403 frame #23: 0x0000000100164aa7 python call_function + 183

      bingkai #24: 0x000000010015c604 python _PyEval_EvalFrameDefault + 20180 frame #25: 0x0000000100155f04 python _PyEval_EvalCodeWithName + 532

      bingkai #26: 0x00000001001c1afb python PyRun_FileExFlags + 235 frame #27: 0x00000001001c14c6 python PyRun_SimpleFileExFlags + 502

      bingkai #28: 0x00000001001ede30 python pymain_run_file + 160 frame #29: 0x00000001001ed72b python pymain_run_filename + 123

      bingkai #30: 0x00000001001ecf11 python pymain_run_python + 145 frame #31: 0x00000001001ecb8b python pymain_main + 27

      bingkai #32: 0x00000001000018c9 python main + 89 frame #33: 0x00007fff6aedfcc9 libdyld.dylib mulai + 1

      bingkai #34: 0x00007fff6aedfcc9 libdyld.dylib`start + 1

Mungkinkah ini terkait dengan #1168
https://github.com/SCIInstitute/ShapeWorks/issues/1168


Anda menerima ini karena Anda ditugaskan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/SCIInstitute/ShapeWorks/issues/1179#issuecomment-807193351 ,
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/AAJT3EKCRFSERHDJ5XDPHCDTFN2ZPANCNFSM4ZZUXDBQ
.

Memperbarui. Ok, saya bingung dengan output Python, saya berasumsi itu masih di langkah tengah karena tidak ada output lebih lanjut. Ini mogok di FindReferenceImage:

    dim = itk.GetArrayFromImage(itk.imread(inDataList[i])).shape

Dugaan saya adalah masalahnya adalah kami memiliki dua perpustakaan ITK berbeda yang dimuat di memori. 👎

Dulu dan jauh (cabang mungkin tidak ada lagi) saya mencoba membangun ikatan Python itk bersama dengan itk di build_dependencies, tetapi saya tidak berhasil. Saya menduga ini layak dicoba lagi, terutama karena conda/pip terutama menginstal versi yang berbeda dari beberapa, tetapi tidak semua, komponen itk python (5.0 dan 5.1), resep terang-terangan untuk masalah.

Saya setuju bahwa mungkin memperbaiki masalah ini, tetapi bagaimana dengan #1168. Apakah kita kemudian perlu membangun itkwidget dari awal dan menyediakannya juga sehingga dibangun dengan ITK kita?

Saya setuju bahwa mungkin memperbaiki masalah ini, tetapi bagaimana dengan #1168. Apakah kita kemudian perlu membangun itkwidget dari awal dan menyediakannya juga sehingga dibangun dengan ITK kita?

Jika ini adalah masalah perpustakaan bersama, mungkin kita dapat mengatur LD_LIBRARY_PATH sebelum menjalankan notebook.
pembaruan: Saya mencoba ini dan hasilnya sama
update2: Saya hanya mencoba kasus penggunaan #1168, bukan yang ini.

Ini mogok di FindReferenceImage:

    dim = itk.GetArrayFromImage(itk.imread(inDataList[i])).shape

ShapeWorks tidak terlibat dalam panggilan ini. Saya ingin tahu apakah lebih banyak informasi dapat dibersihkan dengan menjalankan ini melalui pdb :
python -m pub RunUseCase.py --use_case femur --groom_images (lalu tekan 'r' untuk menjalankan)

(Saya menjalankan ini sekarang. Berapa lama waktu yang dibutuhkan untuk crash? Adakah yang bisa mengurangi ini?)
pembaruan: dibutuhkan selama ini (~ satu jam), tetapi kurang membantu adalah hanya melaporkan kesalahan seg dan bahkan tidak meninggalkan Anda di debugger. Saya tidak melihat panggilan ke skrip eksternal, jadi saya bingung dengan itu.

Masalahnya tampaknya perpustakaan python ITK menyelesaikan dan memanggil perpustakaan VXL kami daripada yang dibuat dengannya:

  * frame #0: 0x000000016b8612ad libvnl_algo.dylib`vnl_qr<double>::vnl_qr(this=0x00007ffeefbfd568, M=0x00007ffeefbfd6f0) at vnl_qr.hxx:51:24 [opt]
    frame #1: 0x000000016b85cf1d libvnl_algo.dylib`double vnl_determinant<double>(M=<unavailable>, balance=<unavailable>) at vnl_determinant.hxx:107:14 [opt]
    frame #2: 0x00000003dec807ac _ITKIOImageBasePython.so`___lldb_unnamed_symbol9961$$_ITKIOImageBasePython.so + 252
    frame #3: 0x00000003deba7ff4 _ITKIOImageBasePython.so`___lldb_unnamed_symbol7056$$_ITKIOImageBasePython.so + 132

Ingatlah bahwa kami membangun ITK kami dengan VXL/VNL alternatif, bukan ITK. libvnl_algo.dylib adalah milik kita, _ITKIOImageBasePython.so dari conda.

Kami mencampur versi yang berbeda, jadi tidak mengherankan jika itu mogok.

@archanasri dan saya baru saja mencoba membalik urutan
Saya pikir solusi untuk masalah #1168 adalah dengan membangun itkwidgets (kami sedang mencobanya sekarang).
Untuk masalah ini, bisakah kita mengarahkannya ke vnl kita seperti kita mengarahkannya ke eigen ?

Kami sudah memiliki ITK menggunakan VXL kami.

-DITK_USE_SYSTEM_VXL=on -DVXL_DIR=${INSTALL_DIR}

Memperbarui. Ok, saya bingung dengan output Python, saya berasumsi itu masih di langkah tengah karena tidak ada output lebih lanjut. Ini mogok di FindReferenceImage:

    dim = itk.GetArrayFromImage(itk.imread(inDataList[i])).shape

Dugaan saya adalah masalahnya adalah kami memiliki dua perpustakaan ITK berbeda yang dimuat di memori. 👎

Alih-alih menggunakan python itk, kita bisa menggunakan shapeworks.Image.toArray(). Jadi saya mengganti

dim = itk.GetArrayFromImage(itk.imread(inDataList[i])).shape

dengan

img = Image(inDataList[i])
tmp = img.toArray()
dim = tmp.shape

Itu tidak crash sekarang.

Bagus @archanasri. Ya, kupikir kita bisa mengatasinya dengan cara itu. Kami pada dasarnya perlu memastikan bahwa kami tidak menggunakan python itk + itk kami secara bersamaan. Saya pikir masalah itkwidgets adalah masalah yang lebih besar karena saya menganggapnya menggunakan antarmuka python ITK secara internal.

Ya dan kami tidak dapat membangun itkwidget.
Kita perlu menemukan cara agar itkwidget dapat menggunakan itk kita.

Ya dan kami tidak dapat membangun itkwidget.
Kita perlu menemukan cara agar itkwidget dapat menggunakan itk kita.

Dalam itkwidgets 0.32.0 (versi yang diberi tag terbaru) setup.py, ia menetapkan persyaratan berikut:

    'install_requires': [
        'colorcet>=2.0.0',
        'itk-core>=5.1.0.post2',
        'itk-filtering>=5.1.0.post2',
        'itk-meshtopolydata>=0.6.2',
        'ipydatawidgets>=4.0.1',
        'ipywidgets>=7.5.1',
        'ipympl>=0.4.1',
        'matplotlib',
        'numpy',
        'six',
        'zstandard',
    ],

Untuk itk, saya pikir ini membuat kita kembali membangun python.
Cara lain untuk mendekati ini adalah memastikan ini adalah versi yang diinstal oleh pip (kebanyakan) dan conda.
Versi semua ini di sistem saya semuanya lebih baru.

Inilah yang saya miliki:

(shapeworks) cam<strong i="15">@ananda</strong>:~/code/ShapeWorks/ShapeWorks/Examples/Python$ conda list | grep itk
itk                       5.0.1                    pypi_0    pypi
itk-core                  5.1.2                    pypi_0    pypi
itk-filtering             5.1.2                    pypi_0    pypi
itk-io                    5.0.1                    pypi_0    pypi
itk-meshtopolydata        0.6.3                    pypi_0    pypi
itk-numerics              5.1.2                    pypi_0    pypi
itk-registration          5.0.1                    pypi_0    pypi
itk-segmentation          5.0.1                    pypi_0    pypi
itkwidgets                0.32.0                   pypi_0    pypi
(shapeworks) cam<strong i="16">@ananda</strong>:~/code/ShapeWorks/ShapeWorks/Examples/Python$ conda list | grep ipy
brotlipy                  0.7.0           py37hf967b71_1001    conda-forge
ipycanvas                 0.8.2                    pypi_0    pypi
ipydatawidgets            4.2.0                    pypi_0    pypi
ipyevents                 0.8.2                    pypi_0    pypi
ipykernel                 5.5.0            py37he01cfaa_1    conda-forge
ipympl                    0.7.0                    pypi_0    pypi
ipython                   7.21.0           py37he01cfaa_0    conda-forge
ipython_genutils          0.2.0                      py_1    conda-forge
ipyvtk-simple             0.1.4                    pypi_0    pypi
ipywidgets                7.6.3                    pypi_0    pypi

Satu bendera merah adalah versi 5.0.1 dari itk-io, -registration, -segmentation, dan yang terpenting, itk itu sendiri.

Saya memperbarui pemasangan pip ke yang terbaru (ada beberapa alasan kami tidak dapat melakukan ini, tetapi mengesampingkannya untuk saat ini) dan membangun kembali semua dependensi. #1168 masih macet dengan cara yang sama seperti yang dijelaskan di dalamnya.

Tetap.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

akenmorris picture akenmorris  ·  32Komentar

akenmorris picture akenmorris  ·  16Komentar

sheryjoe picture sheryjoe  ·  13Komentar

iyerkrithika21 picture iyerkrithika21  ·  12Komentar

jadie1 picture jadie1  ·  8Komentar