※ 本文轉寄自 ptt.cc, 文章原始頁面
Re: [新聞] 肺癌預測的人機對決 谷歌AI贏過6位放射專
借題發揮一下XD 也順便簡介一下AI在醫療臨床可以的應用(純個人經驗)
也希望臥虎藏龍的板上可以提供建議或是討論(OwO)
小弟廢廢病理科R1 手上跟AI有關的主題有3-4個
也參與系統開發和優化 在邊做邊學中
使用語言主要是R 因為R的作圖和視覺化功能強大
再加上向量分析運算的效率可以跟C媲美 也是我最熟悉的語言XD
但是因為某些AI model建立或是為了底層運算提速
在某些地方程式碼會改成python或C
使用的backend是tensorflow 或是直接用keras完成 端看model需要
自己的參考書目如下:
http://imgur.com/a/69zaalu
==================================================================
目前處理過的資料大至可以分成兩類 圖像和文字
1.圖像分析
在圖像分析中可以再細分成兩個領域 圖像處理和AI模型
a.圖像處理指單純透過色塊的filter 透明度調整 對比調整
顏色深淺調整等等像是photoshop圖片處理的功能
將圖片有意義的部分萃取出 甚至是分類
b.AI模型大部份指的是CNN的模型 有training和validation
當然還包括其他像是SVM, K-means clustering等等的分析或分類
畢竟machine learining不是只有deep learning的神經網絡而已
小弟目前做過或是正在做的主題有的主題有
a.acid fast stain找出TB的位置
(single object detection)
此主題已接近完成 剩下只是模組持續的優化和好的介面系統而已
利用初步影像處理把紅色物體挑出
再利用自己設計的CNN model 把是TB的部分identify出來
b.H&E染色中 辨認出tumor的位置 並且計算mitosis在tumor中的比例
(combine U-net and single object detection)
此部分目前以GIST還有其他soft tissue tumor為處理大宗
正在case蒐集還有自己胸口碎大石一個一個標記腫瘤位置
細胞核位置 還有mitosis的地方 XDD
因為特徵相對明顯 所以可以在初步標完一部分之後
就可以先train一個比較廢的model 讓他做screen和pre-label
我再去調整結果 再丟回去train 效率會快很多 XDD
c.Synaptophycin-Ki67 double stain分析出tumor cell實際染上ki的比例
(pure image processing)
此主題也接近完成 以NET或NEC的處理為大宗
利用單純的圖像處理
用紅色filter把double stain中tumor的位置標出
再透過藍色和褐色的filter把細胞核的位置標出 (配合大小來篩選出真正的細胞核)
最後計算tumor中實際有染上Ki67的比例
此部分之後有會朝向AI分析方式轉變
因為有些細胞核或是Ki67染色在pure image processing會出現問題
AI model是可以隨著資料量增加而慢慢進步的
所以會開始像b.一樣慢慢自己annotation再丟進去training
d.腎臟biopsy中 辨認出絲球和動脈的位置以及之後的分析
(combine U-net and multiclass classification)
目前在設計annotation system
讓我或是其他使用者可以在玻片viewer中標記出絲球和動脈
之後訓練方式類似b. 只不過分類上改成multiclass classification的輸出
2.文字分析
小弟文字分析參予的不多 目前只有兩個小專題在自己玩而已XD
a.cytology報告和surgical報告的匹配程度
(text classification, word embeded-LSTM-1DCNN model)
病人來醫院健檢有許多項目是cytology的
如果有問題之後可能會再開刀 所以會有另一個surgical的報告
此處主要是蒐集病人的cytology報告和surgical最終結果
判斷cytology當下是unrelated, under diagnosis, overdiagnosis 或是 match
例如cytology HSIL而surgical下來是LSIL 就是overdiagnosis
或是cytology carcinoma而surgical開下來是adenocarcinoma就是 match
如果cytology cervix HSIL而surgical是口腔 severe displasia 就是 unrelated
採用bidirectional LSTM和 1DCNN 嵌合的自設model完成
目前accuracy大概在95% 還在調整model看會不會有更好的performace中
b.乳癌文字報告轉變成格式化的form
(named entity recognition, word embeded-LSTM-(1DCNN)-CRS model)
乳癌文字報告中 透過NLP方式 把有臨床意義的內容結取出來
例如:ER,PR,Her2強弱 百分比; cancer histology type; size;
margin condition; leagth near margin;
tumor-infiltrating lymphocytes (TIL) 比例等等
把各種文字報告經過NLP處理之後 一個一個標註其位置.... <--- 目前進度XD
例如哪個字是ER強度 哪幾個字是tumor大小 哪個字是tumor和margin的距離
然後用自建的model來嘗試看哪種model performance最佳
=================================================================
關於病理圖像處理的心得
病理玻片動不動一張3-5GB....
若完整打開解壓縮變成可運算的向量矩陣約會變成150GB-250GB (="=)
儲存格式各廠商又都不一樣.....
所以在處理上需要用到許多的open source
或是直接逼廠商交出SDK = =+ (喔不是 是跟業界好友交流交流....)
在底層操作會用到幾個概念
1.如何節取一張超大圖片的其中一個小區域 而不把整張圖片打開
-利用廠商的SDK
-採用C的libtiff package
-採用R的raster package, rbioformats package(最近在修正java integrade bug)
-採用python的 openslide package
2.如何在系統上做記憶體分配和運算加速
-利用多核心處理 盡可能平均的把運算分給每個CPU 或GPU
-把程式碼慢慢改成C <---痛苦根源....
-必要時可以出借部分RAM當成GPU記憶體 或是固態硬碟當成RAM
(會減速 但在記憶體不足時也只能這樣Orz)
3.降低不必要的運算次數 能向量化運算的盡量使用向量化運算 (R運算特色)
另外 玻片viewer其實就像是我們使用google map那種感覺
分不同層可以zoom in和zoom out
設計上需要把不同層之間的座標位置好好對應(projection設好)之後
viewer再依據使用者看到的位置打開相對應的層數和座標的圖片
https://imgur.com/DUd4VUo
也要讓使用者能圈出自己有興趣的地方
https://imgur.com/TYVaJuV
結論:需要有一個server機台來處理以上零零總總運算 然後其他電腦連過去使用看片
https://imgur.com/nN45ZxX
=================================================================
總歸來說 AI可以很好的輔助臨床判讀
以設計找TB為例
雖然AI可以很有效率的把覺得非常像TB的位置標示出來
(一張3~5GB玻片平均約13-15分鐘)
https://imgur.com/kMOKOFh
https://imgur.com/qP6lfDN
可以省去醫師慢慢找的時間
但是
實際在玻片上會有很多東西跟TB非常像也是紅色
例如 汙染的渣渣 碎掉的紅血球 掃片時沒擦乾淨玻片表面的灰塵偏光
染色液有結晶 等等
也都有可能變成紅色條狀 (O~O)
所以也不太可能完全依靠AI來發報告
但是
他可以把有可能的部分detect出來 讓醫師來判斷
也因為標記出來了 實際拿玻片找也很快
這步驟其實省去很多時間 XD
不過最重要的是
for fun!!!
在設計還有訓練的過程中都非常有趣!!!
學了很多東西XDDDD
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.76.246.52
※ 文章網址: https://www.ptt.cc/bbs/medstudent/M.1559199115.A.CBE.html
推
推
推
推
推
推
→
推
推
→
→
→
→
推
推
推
推
推
推
推
推
推
推
→
推
推
推
推
推
推
推
推
推
推
推
推
→
推
推
推
推
推
推
→
推
推
→
→
→
→
→
→
→
→
→
推
推
推
推
推