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
可以省去醫師慢慢找的時間
但是
實際在玻片上會有很多東西跟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
推
05/30 15:14,
5年前
, 1F
05/30 15:14, 1F
推
05/30 15:15,
5年前
, 2F
05/30 15:15, 2F
推
05/30 15:22,
5年前
, 3F
05/30 15:22, 3F
推
05/30 15:26,
5年前
, 4F
05/30 15:26, 4F
推
05/30 15:28,
5年前
, 5F
05/30 15:28, 5F
推
05/30 15:29,
5年前
, 6F
05/30 15:29, 6F
→
05/30 16:05,
5年前
, 7F
05/30 16:05, 7F
推
05/30 16:42,
5年前
, 8F
05/30 16:42, 8F
推
05/30 16:59,
5年前
, 9F
05/30 16:59, 9F
→
05/30 16:59,
5年前
, 10F
05/30 16:59, 10F
→
05/30 16:59,
5年前
, 11F
05/30 16:59, 11F
→
05/30 17:00,
5年前
, 12F
05/30 17:00, 12F
→
05/30 17:01,
5年前
, 13F
05/30 17:01, 13F
推
05/30 17:19,
5年前
, 14F
05/30 17:19, 14F
推
05/30 17:20,
5年前
, 15F
05/30 17:20, 15F
推
05/30 17:38,
5年前
, 16F
05/30 17:38, 16F
推
05/30 18:51,
5年前
, 17F
05/30 18:51, 17F
推
05/30 20:18,
5年前
, 18F
05/30 20:18, 18F
推
05/30 20:34,
5年前
, 19F
05/30 20:34, 19F
推
05/30 20:40,
5年前
, 20F
05/30 20:40, 20F
推
05/30 21:06,
5年前
, 21F
05/30 21:06, 21F
推
05/30 21:28,
5年前
, 22F
05/30 21:28, 22F
推
05/30 22:02,
5年前
, 23F
05/30 22:02, 23F
→
05/30 22:09,
5年前
, 24F
05/30 22:09, 24F
推
05/30 22:12,
5年前
, 25F
05/30 22:12, 25F
推
05/30 22:20,
5年前
, 26F
05/30 22:20, 26F
推
05/30 22:23,
5年前
, 27F
05/30 22:23, 27F
推
05/30 23:18,
5年前
, 28F
05/30 23:18, 28F
推
05/30 23:23,
5年前
, 29F
05/30 23:23, 29F
推
05/31 00:31,
5年前
, 30F
05/31 00:31, 30F
推
05/31 00:49,
5年前
, 31F
05/31 00:49, 31F
推
05/31 00:58,
5年前
, 32F
05/31 00:58, 32F
推
05/31 01:30,
5年前
, 33F
05/31 01:30, 33F
推
05/31 01:34,
5年前
, 34F
05/31 01:34, 34F
推
05/31 01:40,
5年前
, 35F
05/31 01:40, 35F
推
05/31 01:42,
5年前
, 36F
05/31 01:42, 36F
→
05/31 01:42,
5年前
, 37F
05/31 01:42, 37F
推
05/31 07:03,
5年前
, 38F
05/31 07:03, 38F
推
05/31 09:13,
5年前
, 39F
05/31 09:13, 39F
推
05/31 10:09,
5年前
, 40F
05/31 10:09, 40F
推
05/31 12:41,
5年前
, 41F
05/31 12:41, 41F
推
05/31 15:27,
5年前
, 42F
05/31 15:27, 42F
推
05/31 17:28,
5年前
, 43F
05/31 17:28, 43F
→
05/31 19:22,
5年前
, 44F
05/31 19:22, 44F
推
05/31 23:16,
5年前
, 45F
05/31 23:16, 45F
推
06/01 06:27,
5年前
, 46F
06/01 06:27, 46F
→
06/01 06:27,
5年前
, 47F
06/01 06:27, 47F
→
06/01 06:27,
5年前
, 48F
06/01 06:27, 48F
→
06/01 07:34,
5年前
, 49F
06/01 07:34, 49F
→
06/01 07:34,
5年前
, 50F
06/01 07:34, 50F
→
06/01 07:34,
5年前
, 51F
06/01 07:34, 51F
→
06/01 07:34,
5年前
, 52F
06/01 07:34, 52F
→
06/01 07:52,
5年前
, 53F
06/01 07:52, 53F
→
06/01 07:52,
5年前
, 54F
06/01 07:52, 54F
→
06/01 07:52,
5年前
, 55F
06/01 07:52, 55F
推
06/01 12:46,
5年前
, 56F
06/01 12:46, 56F
推
06/01 23:12,
5年前
, 57F
06/01 23:12, 57F
推
06/01 23:31,
5年前
, 58F
06/01 23:31, 58F
推
06/03 00:09,
5年前
, 59F
06/03 00:09, 59F
推
06/04 01:57,
5年前
, 60F
06/04 01:57, 60F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):