Segmentasi Pernafasan Otomatis

Segmentasi manual paru-paru membutuhkan waktu sekitar 10 menit dan memerlukan beberapa keterampilan untuk mendapatkan hasil berkualitas tinggi yang sama dengan segmentasi otomatis. Segmentasi otomatis membutuhkan waktu sekitar 15 detik.


Saya berasumsi bahwa tanpa jaringan saraf, akan mungkin untuk mendapatkan akurasi tidak lebih tinggi dari 70%. Saya juga menyarankan bahwa operasi morfologis hanya menyiapkan gambar untuk algoritma yang lebih kompleks. Tetapi sebagai hasil dari pengolahan setidaknya 40 sampel tomografi yang ada, algoritma memilih paru-paru tanpa kesalahan, dan setelah pengujian dalam lima kasus pertama, algoritma tidak mengalami perubahan signifikan dan dari aplikasi pertama bekerja dengan benar pada 35 studi yang tersisa tanpa perubahan. pengaturan.


Jaringan saraf juga memiliki minus - untuk pelatihan mereka, Anda perlu ratusan sampel pelatihan paru-paru, yang harus diberi label secara manual.



Isi



Struktur sistem pernapasan


Sistem pernapasan meliputi saluran udara dan paru-paru. Alokasikan saluran pernapasan atas dan bawah. Titik pemisahan antara saluran pernapasan bawah dan atas adalah titik persimpangan saluran makanan dan pernapasan. Segala sesuatu di atas laring adalah bagian atas, dan sisanya lebih rendah.


Kami daftar organ pernapasan:
Rongga hidung : - hidung, sinus maksilaris, dll.
Faring adalah saluran yang dilalui makanan dan udara.
Larynx - bertanggung jawab untuk pembentukan suara. Terletak di tingkat vertebra serviks C4-C6.
Trakea - tabung yang menghubungkan laring dan bronkus.
Bronkus adalah saluran pernapasan, yang sebagian besar terletak di dalam paru-paru.
Paru - paru adalah organ pernapasan utama.



Skala Hounsfield


Godfrey Hounsfield adalah seorang insinyur listrik Inggris yang, bersama dengan ahli teori Amerika Allan Cormack, mengembangkan computed tomography, di mana ia menerima Hadiah Nobel pada 1979.



Hounsfield Scale - Skala kerapatan x-ray kuantitatif yang diukur dalam unit Hounsfield, dilambangkan dengan HU.


Kepadatan x-ray dihitung berdasarkan koefisien atenuasi zat, yaitu, tingkat penurunan daya radiasi ketika melewati zat ini.


Kepadatan sinar-X dihitung dengan rumus:


$$ menampilkan $$ {μ_ {X} -μ_ {water} \ lebih dari μ_ {water} -μ_ {air}} \ kali 1000 $$ menampilkan $$


dimana μX,μwater,μair- Koefisien atenuasi linier untuk zat yang diukur, air dan udara.


Kepadatan sinar-X adalah negatif karena kepadatan sinar-x nol sesuai dengan air. Ini berarti bahwa semua zat yang dilalui gelombang x-ray dengan penurunan yang lebih kecil dalam daya radiasi daripada melalui air (misalnya, jaringan paru-paru, udara) akan memiliki kerapatan sinar-x negatif.


Berikut ini adalah perkiraan kepadatan x-ray untuk berbagai jaringan:


  • Udara: -1000 HU.
  • Organ pernapasan: -950 hingga -300 HU.
  • Darah (tanpa kontras vaskular): 0 hingga 100 HU.
  • Tulang: 100 hingga 1000 HU.


Tautan Wikipedia: Skala Hounsfield , Godfrey Hounsfield , koefisien atenuasi .


Morfologi matematika


Tempat utama di antara algoritma yang dipilih dalam artikel ini ditempati oleh operasi morfologis.


Di bidang visi komputer, operasi morfologis memanggil sekelompok algoritma untuk mengubah bentuk objek. Paling sering, operasi morfologis diterapkan pada gambar yang ter-biner, di mana voxel dari objek bersesuaian dengan unit dan void ke nol.


Operasi morfologi utama meliputi:


Dilatasi morfologis (dilasi, ekspansi) - menambahkan voxel baru ke semua voxel tepi objek. Yaitu, di sepanjang semua batas voxels, suatu bagian dibuat dengan inti dengan bentuk tertentu (bola, kubus, salib, dll.). Operasi ini sering digunakan untuk menghubungkan banyak objek yang berdekatan menjadi satu objek.


Erosi morfologis (erosi, erosi) - penghancuran semua voxel yang terletak di perbatasan benda. Operasi ini adalah kebalikan dari dilatasi. Operasi ini berguna untuk menghilangkan noise dalam bentuk banyak benda kecil yang saling berhubungan. Namun, metode penghilangan kebisingan ini harus digunakan hanya jika objek tersegmentasi memiliki ketebalan yang secara signifikan lebih besar dari jari-jari erosi.


Penutupan morfologis adalah dilatasi diikuti oleh erosi. Ini digunakan untuk menutup bukaan di dalam objek dan untuk menggabungkan objek yang berdekatan.


Pembukaan morfologis (bukaan) adalah erosi diikuti oleh dilatasi. Ini digunakan untuk menghilangkan objek noise kecil dan untuk membagi objek menjadi beberapa objek.



Lee Algoritma dan Kompresi RLE


Untuk mengisolasi objek dalam volume voxel yang ter-binarisasi, algoritma Lee digunakan. Algoritma ini awalnya diciptakan untuk menemukan jalur terpendek. Tapi kami menggunakannya untuk memilih dan memindahkan objek dari satu array tiga dimensi voxels ke yang lain. Esensinya adalah gerakan paralel di semua arah yang mungkin dari titik awal. Untuk kasus tiga dimensi, 26 atau 6 arah gerakan dari voxel yang diberikan dimungkinkan (jika voxel tidak terletak di tepi gambar).


Untuk mengoptimalkan kecepatan, kami menggunakan algoritma enkode run-length. Esensinya terletak pada kenyataan bahwa sekuens satu dan nol digantikan oleh digit yang sama dengan jumlah elemen dalam sekuens. Misalnya, string "00110111" dapat diganti sebagai: "2; 2; 1; 3". Ini mengurangi jumlah akses memori.



Tautan Wikipedia: Algoritma Lee , Algoritma RLE .


Konversi Volume Basis Ambang


Dengan menggunakan tomograf, data kerapatan x-ray pada setiap titik dalam ruang diperoleh. Voxel udara memiliki kerapatan sinar-X mulai dari -1100 hingga -900 HU, dan voxel organ pernapasan mulai dari -900 hingga -300 HU. Oleh karena itu, kita dapat menghapus semua voxel berlebih yang memiliki kerapatan sinar-X lebih besar dari -300 HU. Sebagai hasilnya, kami mendapatkan volume voxel ter-binarisasi yang hanya berisi organ pernapasan dan udara.



Kliping udara eksternal


Untuk mengisolasi udara internal tubuh, kami akan menghapus semua objek yang berdekatan dengan sudut-sudut adegan voxel. Jadi kita menyingkirkan udara luar.



Namun, tidak dalam semua kasus udara di dalam tabel tomograph akan dihapus, karena mungkin tidak memiliki koneksi dengan sudut-sudut pemandangan.



Oleh karena itu, kami tidak hanya akan memindai sudut, tetapi juga semua voxel yang terletak di salah satu bidang batas pemandangan. Tetapi sebagai akibatnya, karena suatu alasan, paru-paru itu sendiri juga pergi. Ternyata trakea juga memiliki koneksi dengan bidang atas pemandangan.



Hal ini diperlukan untuk mengeluarkan bidang atas dari zona pemindaian. Ada juga penelitian di mana paru-paru tidak sepenuhnya ditangkap dan bidang yang lebih rendah dikaitkan dengan paru-paru. Jadi, jika diinginkan, bidang bawah juga bisa dikecualikan.



Tetapi metode ini hanya bekerja pada studi payudara. Dalam hal menangkap volume penuh dari tubuh, koneksi antara udara internal dan eksternal melalui rongga hidung akan muncul pada gambar. Oleh karena itu, erosi morfologis perlu dilakukan untuk memisahkan udara internal dan eksternal.



Setelah menerapkan erosi, kita dapat kembali ke metode segmentasi udara eksternal yang diperoleh sebelumnya berdasarkan kedekatan dengan bidang samping pemandangan.



Dengan mengisolasi udara eksternal, seseorang dapat langsung mengambilnya dari total volume udara dan paru-paru dan mendapatkan udara internal tubuh dan paru-paru. Tapi ada satu masalah. Setelah erosi, beberapa informasi tentang udara luar hilang. Untuk mengembalikannya, kami menerapkan dilatasi udara eksternal.



Selanjutnya, kita kurangi udara eksternal dari semua udara dan organ pernapasan dan dapatkan udara internal dan organ pernapasan.




Menyoroti objek maksimum dalam volume


Selanjutnya, kami memilih organ pernapasan sebagai objek terbesar dalam volume. Organ pernapasan adalah objek yang terpisah. Tidak ada hubungan antara paru-paru dan udara di dalam saluran pencernaan.



Perlu dicatat bahwa pilihan yang tepat dari ambang batas kerapatan x-ray pada langkah awal transformasi ambang adalah penting. Kalau tidak, dalam beberapa kasus, mungkin tidak ada koneksi antara kedua paru-paru karena resolusi rendah. Misalnya, jika Anda menganggap bahwa voksel organ pernapasan memiliki kerapatan sinar-X -500 HU atau kurang, maka dalam kasus di bawah ini, alokasi organ pernapasan sebagai objek terbesar dalam volume akan menyebabkan kesalahan, karena tidak ada hubungan antara kedua paru-paru. Oleh karena itu, ambang batas harus ditingkatkan menjadi -300 HU.



Penutupan vaskular di dalam paru-paru


Untuk menangkap pembuluh di dalam paru-paru, kami menggunakan penutupan morfologis, yaitu, dilatasi diikuti oleh erosi dengan jari-jari yang sama. Kepadatan sinar-x dari kapal adalah sekitar -100..100 HU.



Pembuluh darah besar tidak menutup. Tetapi ini tidak perlu. Tujuan dari operasi ini adalah untuk menghancurkan banyak lubang kecil di dalam paru-paru untuk memudahkan segmentasi paru-paru lebih lanjut.


Algoritma Segmentasi Pernafasan


Hasilnya, kami memperoleh algoritma segmentasi organ pernapasan berikut:


  1. Konversi ambang batas volume dasar dengan ambang <-300 HU.
  2. Erosi morfologis dengan jari-jari 3 mm untuk pemisahan udara eksternal dan internal.
  3. Alokasi udara eksternal berdasarkan kedekatan dengan bidang lateral batas adegan voxel.
  4. Dilatasi morfologis udara eksternal untuk mengembalikan informasi yang hilang akibat erosi.
  5. Pengurangan udara eksternal dari semua udara dan organ pernapasan untuk mendapatkan udara internal dan organ pernapasan.
  6. Menyoroti objek maksimum dalam volume.
  7. Penutupan morfologis pembuluh darah di dalam paru-paru.


Implementasi algoritma dalam MATLAB


Metode GetRespiratoryOrgans


%      (    ) %      . % V =         . % cr =    . % ci =      (, 3  %      3   . function RO = getRespiratoryOrgans(V,cr,ci) %     %   < -300 HU. AL=~imbinarize(V,-300); %    3   %     . SE=strel('sphere',3); EAL=imerode(AL,SE); %       %      . EA=getExternalAir(EAL); %      %      . DEA=EA; for i=1:4 DEA=imdilate(DEA,SE); DEA=DEA&AL; end %         %        . IAL=AL-DEA; %     . RO=getMaxObject(IAL); %     . RO=closeVoxelVolume(RO,3,2); 

Metode GetExternalAir


 %  ,       % (  ,     %    ). % EAL =      . function EA = getExternalAir(EAL) %  bwlabeln  :   %    ,  –    .. V=bwlabeln(EAL); %    ,    %     . R=regionprops3(V,'BoundingBox','VoxelList'); n=height(R); %  3-D      . s=size(EAL); EA=zeros(s,'logical'); %        %    ,   . for i=1:n %   x  y,    %  . x0=R(i,1).BoundingBox(1); y0=R(i,1).BoundingBox(2); x1=x0+R(i,1).BoundingBox(4); y1=y0+R(i,1).BoundingBox(5); %        %  ,       %   EA. if (x0 < 1 || x1 > s(1)-1 || y0 < 1 || y1 > s(2)-1) %        %  : [[x1 y1 z1][x2 y2 z3] … [xn yn zn]]. mat=cell2mat(R(i,2).VoxelList); ms=size(mat); %  ,    . for j=1:ms(1) x=mat(j,2); y=mat(j,1); z=mat(j,3); EA(x,y,z)=1; end end end 

Metode GetMaxObject


 %        "V". % O =    . % m =    . function [O,m] = getMaxObject(V) %  . V=bwlabeln(V); %        %  . R=regionprops3(V,'Volume','VoxelList'); %      . v=R(:,1).Volume; [m,i]=max(v); %  3-D      % . s=size(V); O=zeros(s,'logical'); %       . mat=cell2mat(R(i,2).VoxelList); ms=size(mat); for j=1:ms(1) x=mat(j,2); y=mat(j,1); z=mat(j,3); O(x,y,z)=1; end 

Kode sumber dapat diunduh di sini .


Kesimpulan


Artikel-artikel berikut ini direncanakan:


  1. segmentasi trakea dan bronkus;
  2. segmentasi paru-paru;
  3. segmentasi lobus paru-paru.

Algoritma seperti:


  1. transformasi jarak;
  2. transformasi tetangga terdekat (transformasi tetangga terdekat, juga dikenal sebagai transformasi fitur);
  3. perhitungan nilai eigen dari matriks Hessian untuk segmentasi objek 3D datar;
  4. segmentasi oleh segmentasi DAS.

Source: https://habr.com/ru/post/id458268/


All Articles