Skip to content

Dmitriy-OLW/AR-Project-Sezriv-Ralizonki

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

77 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ДокумСнтация Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Рус | Eng

Бсылка Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: https://dmitriy-olw.itch.io/ar-mr-app-for-medical-files

О ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅

НазваниС: AR-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„Π°Π½Ρ‚ΠΎΠΌΠ° Ρ‰ΠΈΡ‚ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΠΆΠ΅Π»Π΅Π·Ρ‹.

ЦСль ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ AR-прилоТСния для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ 3D-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ мСдицинских сканов (МРВ, КВ, Π£Π—Π˜) Ρ„Π°Π½Ρ‚ΠΎΠΌΠ° Ρ‰ΠΈΡ‚ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΠΆΠ΅Π»Π΅Π·Ρ‹ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ управлСния Ρ‡Π΅Ρ€Π΅Π· Ρ‚Ρ€Π΅ΠΊΠΈΠ½Π³ Ρ€ΡƒΠΊ Π½Π° Π³Π°Ρ€Π½ΠΈΡ‚ΡƒΡ€Π΅ Quest 3.

ДСмонстрация Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния: Π’ΠΈΠ΄Π΅ΠΎ-ДСмонстрация

Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ ΠΈΠ· прилоТСния:

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π₯Π°ΠΊΠ°Ρ‚ΠΎΠ½Π° "AR для Ρ„Π°Π½Ρ‚ΠΎΠΌΠ° Ρ‰ΠΈΡ‚ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΠΆΠ΅Π»Π΅Π·Ρ‹" ΠŸΡΡ‚ΠΎΠΉ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ ΠΌΠΎΠ»ΠΎΠ΄Ρ‹Ρ… ΡƒΡ‡Ρ‘Π½Ρ‹Ρ… Π¦Π΅Π½Ρ‚Ρ€Π° диагностики ΠΈ Ρ‚Π΅Π»Π΅ΠΌΠ΅Π΄ΠΈΡ†ΠΈΠ½Ρ‹. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ занял Π²Ρ‚ΠΎΡ€ΠΎΠ΅ мСсто. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ "Π‘Π΅Π·Ρ€Ρ‹Π² Π Π°Π»ΠΈΠ·Ρ‘Π½ΠΊΠΈ", участники ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΈΠ½ΠΎΠ² Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ, ΠœΠΎΡ€Π΅Π² ОлСг, ΠŸΠΈΡ‰Π°Π³ΠΈΠ½ Максим, Π‘Π΅ΠΌΠΈΡ‡Π΅Π² Иван.

Π”ΠΈΠΏΠ»ΠΎΠΌ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ занятоС мСсто:


ВСстовыС Π΄Π°Π½Π½Ρ‹Π΅: Resourses/ВСстовыС Π΄Π°Π½Π½Ρ‹Π΅/

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности:

  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€ΡƒΠΊΠ°ΠΌΠΈ: ИспользованиС Ρ‚Ρ€Π΅ΠΊΠΈΠ½Π³Π° Ρ€ΡƒΠΊ ΠΈ ТСстов для взаимодСйствия с интСрфСйсом.
  • Визуализация Π΄Π°Π½Π½Ρ‹Ρ…:
    • ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 3D-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΎΡ€Π³Π°Π½ΠΎΠ² (Ρ„Π°Π½Ρ‚ΠΎΠΌΠ° Ρ‰ΠΈΡ‚ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΠΆΠ΅Π»Π΅Π·Ρ‹, ΠΎΡ€Π³Π°Π½Ρ‹ шСи, Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ‚ΡƒΠ»ΠΎΠ²ΠΈΡ‰Π° ΠΈ Π³ΠΎΠ»ΠΎΠ²Ρ‹);
    • Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° мСдицинских сканов (DICOM / .dcm – ΠΏΠ°ΠΏΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТатся эти Π΄Π°Π½Π½Ρ‹Π΅) с настройкой Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° (ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, изоповСрхности), настройка срСзов ΠΈ настройка пропускаСмости свСта ΠΈ излучСния;
    • Π Π΅ΠΆΠΈΠΌΡ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ: анатомичСский атлас, схСматичноС прСдставлСниС.
  • AR-Ρ€Π΅ΠΆΠΈΠΌ: Π‘ΠΎΠ²ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ 3D-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· Passthrough-ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Quest 3.
  • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Quest 3 ΠΊΠ°ΠΊ устройства Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с ПК Π² Ρ€ΠΎΠ»ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ устройства.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅Π΄ΠΈΠΊΠΎΠ², диагностика, ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ мСдицинских Π΄Π°Π½Π½Ρ‹Ρ… Π² AR.

  1. ОписаниС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

    • ΠŸΠΎΠ΄Ρ…ΠΎΠ΄: ИспользованиС Ρ‚Ρ€Π΅ΠΊΠΈΠ½Π³Π° Ρ€ΡƒΠΊ ΠΈ ТСстов для управлСния AR прилоТСния. ИспользованиС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΊΠ°ΠΊ станции Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ вычислСния Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π³Π°Ρ€Π½ΠΈΡ‚ΡƒΡ€Ρƒ Quest 3, ΠΊΠ°ΠΊ устройство Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния, Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ пропускаСмого Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π° ΠΈ Π²Π²ΠΎΠ΄Π° ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒ Ρ€ΡƒΠΊ ΠΈ ТСстов.

    • ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹:

      • Π Π°Π±ΠΎΡ‚Π° с ДатасСтом: UnityVolumeRendering;
      • Π’Ρ€Π΅ΠΊΠΈΠ½Π³ Ρ€ΡƒΠΊ, ТСстов, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ UI элСмСнтами, настройка Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ сканов, ΠΈ основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» AR прилоТСния: MetaSDK.
    • АрхитСктура ΠΌΠΎΠ΄Π΅Π»ΠΈ: ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ- ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

  2. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ рСсурсов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

    • ВСхничСскиС рСсурсы:

      • Π”Π²ΠΈΠΆΠΎΠΊ: Unity 2022.3.59f1;
      • AR-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°: MetaSDK;
      • Π Π°Π±ΠΎΡ‚Π° с ДатасСтом - сканами: UnityVolumeRendering;
      • Ρ€Π΅Π΄ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π£Π—Π˜: написанныС Python скрипты (см. Resourses/Python_Scripts/).
  • Π”Π°Π½Π½Ρ‹Π΅:

    • Sketchfab: 3D-ΠΌΠΎΠ΄Π΅Π»ΠΈ;
    • Asset Store: SDK;
    • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: ДатасСты сканов МРВ, Π£Π—Π˜, КВ; 3D- ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ„Π°Π½Ρ‚ΠΎΠΌΠ° Ρ‰ΠΈΡ‚ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΠΆΠ΅Π»Π΅Π·Ρ‹;
    • ΠŸΡ€Π΅Π΄ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π£Π—Π˜ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python скриптов, для формирования датасСта с DICOM Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ (см. Resourses/Python_Scripts/).
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹:

    • Unity 2022.3.59f1;
    • Blender;
    • GitHub;
    • JetBrains Rider;
    • Visual Studio;
    • JetBrains PyCharm;
    • MetaSDK;
    • UnityVolumeRendering.
  1. НСобходимыС зависимости ΠΈ инструкции ΠΏΠΎ ΠΈΡ… установкС:

    • Для доступа ΠΊ Passthrough-ΠΊΠ°ΠΌΠ΅Ρ€Π΅ Quest 3 с ПК Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² Meta Quest Link (см. рис. 2.1). Для доступа ΠΊ этим функциям Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π½Π° своём Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π΅ Meta ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π° этом Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ
    • Π’ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½ исходный ΠΊΠΎΠ΄ MetaSDK, для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π΅Π³ΠΎ Π² Π΄Π²ΠΈΠΆΠΊΠ΅ Unity, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ скрипт: SpatialAnchorSpawnerBuildingBlock, ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ содСрТимоС Π½Π° ΠΊΠΎΠ΄ ΠΈΠ· /Resourses/Other/. На сцСнС MainScene, Π² ΠΏΠΎΠ»Π΅ инспСкторС для этого скрипта Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ значСния, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π½Π° рисункС 2.2.
    • Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ датасСта ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΠΈΠΆΠΊΠ° Unity, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ„Π°ΠΉΠ»: Β«SimpleITKCSharpNative.dllΒ» Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ: Β«..\Assets\UnityVolumeRendering\3rdparty\SimpleITK\Β» . ПослС Ρ‡Π΅Π³ΠΎ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ мСню Unity, Π½Π°ΠΉΡ‚ΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Β«Volume RenderingΒ», ΠΈ Π² Π½Π΅ΠΉ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«SettingsΒ», послС Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ мСню, Π½Π° Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ написано Β«Disable SimpleITKΒ», Ссли написано Β«EnabIe SimpleITkΒ» Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ ΡƒΠ±ΠΈΠ΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ измСнилось Π½Π° Β«Disable SimpleITKΒ» (см. рис. 2.3). Π€Π°ΠΉΠ» Β«SimpleITKCSharpNative.dllΒ» ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. (Π€Π°ΠΉΠ» находится Π² Π°Ρ€Ρ…ΠΈΠ²Π΅, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΎΡ€Ρ…Π΅Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ„Π°ΠΉΠ» находится Π² Resourses/Other/SimpleITKCSharpNative.7z)

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ использованию ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Π΄ собой мСню с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ «Новая Ρ‚ΠΎΡ‡ΠΊΠ° привязки» (см. рис. 1), ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ, Π½Π° Π»Π΅Π²ΠΎΠΉ Ρ€ΡƒΠΊΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ°Π»ΡŒΡ†Π΅ΠΌ появится модСль Ρ„Π°Π½Ρ‚ΠΎΠΌΠ° Ρ‰ΠΈΡ‚ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΠΆΠ΅Π»Π΅Π·Ρ‹.

Рисунок 1. МСню Π½ΠΎΠ²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ привязки:

Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ модСль ΠΊ Ρ„Π°Π½Ρ‚ΠΎΠΌΡƒ Ρ‰ΠΈΡ‚ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΠΆΠ΅Π»Π΅Π·Ρ‹ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€ ΠΈ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ модСль Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° совпадала ΠΏΠΎ полоТСнию с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°Π½Ρ‚ΠΎΠΌΠΎΠΌ. Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ Ρ€ΡƒΠΊΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ТСст: ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ большой ΠΏΠ°Π»Π΅Ρ† ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Π»Π΅Ρ†. МодСль зафиксируСт своё располоТСниС Π½Π° Ρ„Π°Π½Ρ‚ΠΎΠΌΠ΅, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ откроСтся Π³Π»Π°Π²Π½ΠΎΠ΅ мСню для управлСния основами функциями прилоТСния.

Π’ Π³Π»Π°Π²Π½ΠΎΠΌ мСню, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ привязки ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ отобраТСния (см. рис. 2)

Рисунок 2. Π“Π»Π°Π²Π½ΠΎΠ΅ мСню:

Π’ мСню Ρ€Π΅ΠΆΠΈΠΌΠ° отобраТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ прСдоставляСтся Ρ‚Ρ€ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° отобраТСния (см. рис. 3).

Рисунок 3. МСню Ρ€Π΅ΠΆΠΈΠΌΠ° отобраТСния Π±Π΅Π· Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ датасСта:

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ это ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ датасСта - Ρ„Π°Π½Ρ‚ΠΎΠΌΠ° Ρ‰ΠΈΡ‚ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΠΆΠ΅Π»Π΅Π·Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сканы: МРВ, КВ ΠΈ Π£Π—Π˜. ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ скана, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, для этого Π² основном мСню Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅

Β«Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ датасСт», Π² мСню Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ скана, послС Ρ‡Π΅Π³ΠΎ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ мСню (см. рис. 4), Π½Π°ΠΉΡ‚ΠΈ Π² дирСкториях Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ датасСт – ΠΏΠ°ΠΏΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТатся DICOM Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° .dcm. (ΠŸΠ΅Ρ€Π΅Π΄ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ΄ΠΈΠ½ датасСт Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅).

Рисунок 4. МСню Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ датасСта:

ПослС Π²Ρ‹Π±ΠΎΡ€Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ КВ, МРВ ΠΈΠ»ΠΈ Π£Π—Π˜. Для Ρ„Π°ΠΉΠ»Π° со сканами Π£Π—Π˜

ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒ Python скриптов (см. Resourses/Python_Scripts/).

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° датасСт ΠΈ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, послС Ρ‡Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ доступ ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ датасСта ΠΈ ΠΊ мСню взаимодСйствия с датасСтом (см. рис. 5).

Рисунок 5. МСню настройки датасСта:

Π’ этом мСню ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ доступны ΠΏΠΎΠ΄ мСню.

  • Ручная ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠ° полоТСния – позволяСт Π΄ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ датасСта, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ слайдСров (см. рис. 6);

Рисунок 6. МСню Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠΈ полоТСния датасСта:

  • ΠŸΡ€ΠΎΠΏΡƒΡΠΊ свСта / Π˜Π·Π»ΡƒΡ‡Π΅Π½ΠΈΡ – Π² этом мСню ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ

Β«Π Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π΅Π½Π΄Π΅Ρ€Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΒ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ присутствуСт Ρ‚Ρ€ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ°: стандартный Ρ€Π΅Π½Π΄Π΅Ρ€, Ρ€Π΅ΠΆΠΈΠΌ прозрачности ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ изоповСрхности (Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ датасСта Π½Π° слои поглощСния излучСния) ΠΈ настройки яркости/коэффициСнта поглощСния излучСния, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΡƒΡ… слайдСров (см. рис. 7);

Рисунок 7. МСню пропуска свСта ΠΈ излучСния:

  • ΠžΠ±ΡŠΡ‘ΠΌΠ½Ρ‹ΠΉ срСз – Π’ этом мСню, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡ‘ΠΌΠ½Ρ‹ΠΉ срСз, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΡ‘ΠΌΠ½Ρ‹ΠΉ срСз, Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ значСния ΠΎΠ±ΡŠΡ‘ΠΌΠ½ΠΎΠ³ΠΎ срСза ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ плоскости ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ

    Β«Π‘Ρ€Π΅Π·Β» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠΊΠ°Π΄Ρ€ΠΎΠ²ΠΎ ΠΏΡ€ΠΎΠ»ΠΈΡΡ‚Ρ‹Π²Π°Ρ‚ΡŒ датасСт ΠΏΠΎ всСм осям (см. рис. 8);

Рисунок 8. МСню настройки ΠΎΠ±ΡŠΡ‘ΠΌΠ½ΠΎΠ³ΠΎ срСза:

  • Плоский срСз – Π’ этом мСню, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ, Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΈ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ плоскости (см. рис. 9);

Рисунок 9. МСню настройки плоского срСза:

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ – визуализация ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ анатомичСскому атласу.

Π’ мСню Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ части ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ позволяСт ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½Ρ‹ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° анатомичСском атласС (см. рис. 10).

Π’Ρ€Π΅Ρ‚ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ – визуализация модСль ΠΏΠΎ анатомичСским схСмам.

Π’ мСню Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ части ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ позволяСт ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½Ρ‹ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° анатомичСских схСмам (см. рис. 10).

Рисунок 10. МСню настройки визуализация ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ анатомичСскому атласу ΠΈ схСмС (Π΄Π²Π° схоТих мСню):

ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ всСх Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ, мСню Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄ (см. рис. 11).

Рисунок 11. МСню Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ со всСм Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΌΠΈ визуализациями:

ΠŸΡ€Π΅Π΄ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сканов Π£Π—Π˜

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со схСмами Π£Π—Π˜ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python c ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ этапом ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ видоряд сканов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ пСрСвСсти Π² ΠΏΠΎΠΊΠ°Π΄Ρ€ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΠ΄ (см. Resourses/Python_Scripts/first.py).

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² Ρ„Π°ΠΉΠ»Ρ‹ DICOM (см. Resourses/Python_Scripts/second.py).

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ИзмСнСниС исходного ΠΊΠΎΠ΄Π° MetaSDK: /Resourses/Other/SpatialAnchorSpawnerBuildingBlock

Рисунок 2.1. Настройка Meta Quest Link:

Рисунок 2.2. Π’ΠΈΠ΄ скрипта Π² инспСкторС Unity:

Рисунок 2.3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° работоспособности модуля Β«SimpleITKCSharpNativeΒ»:

(Π€Π°ΠΉΠ» находится Π² Π°Ρ€Ρ…ΠΈΠ²Π΅, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΎΡ€Ρ…Π΅Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ„Π°ΠΉΠ» находится Π² Resourses/Other/SimpleITKCSharpNative.7z)

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹:

Releases

No releases published

Packages

No packages published

Languages

  • C# 74.5%
  • ShaderLab 18.3%
  • HLSL 3.3%
  • Mathematica 2.5%
  • Python 1.0%
  • HCL 0.4%