如何透過AI判斷心室肥大?科普 AI 影像辨識應用

影像任務是目前人工智慧應用中,表現十分突出且被廣泛使用的一塊,最常見的三大任務分別是影像分類、物件偵測及語意分割。所謂的影像分類指的是,將一張圖片輸入AI模型後,模型會將圖片進行分類並輸出結果。

先來個小測驗:

以下這張圖片是醫生用來判斷心室肥大的X光片,當圖中的黃色虛線超過紅色虛線的二分之一時,就會被判定為「心室肥大」。那麼,如何利用程式協助判定X光片中的影像是否為心室肥大呢?又如何利用AI解決呢?

人工智慧的影像應用

影像任務是目前人工智慧應用中,表現十分突出且被廣泛使用的一塊,最常見的三大任務分別是影像分類、物件偵測及語意分割。所謂的影像分類指的是,將一張圖片輸入AI模型後,模型會將圖片進行分類並輸出結果。

目前,影像分類任務在網路上有許多範例,但是,模型是怎麼做到這件事的呢?首先,我們必須收集大量的圖片,並為每張圖片進行標示與分類,例如標示出「花」的圖片及「鞋子」的圖片,接著,將這些圖片丟入黑盒子,也就是AI模型中訓練,透過丟入大量的圖片和正確答案,進行模型訓練以便日後使用,這也是最基本的分類任務。

相較於影像分類,物件偵測(Object Detection)可以同時分辨出物件位置跟類別,輸入一張圖片後,輸出的結果包含了任何想看到的物件都會被標示出來,例如想看的是這隻狗,就會標示出這隻狗的位置,以及位置座標。

物件偵測利器:YOLO v7來了!

如果有接觸物件偵測的人,應該會很常聽到YOLO,今年已經推出第七版。工業上我們常利用物件偵測進行瑕疵檢測,由於它會框出想辨識的人及位置,也可以用來尋找瑕疵的位置,主要應用於位置坐標資訊很重要的案例上,但是,如果只是要判斷一張圖片有沒有瑕疵,或是什麼類別,那透過影像分類任務就能進行。

其訓練的方式也很簡單,首先需要準備一張圖片,圖片上必須標示出想要辨識的物件位置與類別,並將它輸出成一個檔案。跟影像分類任務非常相似,你會需要收集大量圖片即跟這些圖片相對應的標記檔案,並將圖片及正確答案丟給模型訓練,最後的訓練結果就可以拿來使用。

相較於影像分類任務,物件偵測的優點是,可以得到目標的位置資訊,並可以在一張圖片裡,同時辨識很多個目標,在小物件上的辨識,就會比較精準一點。缺點則是模型較複雜,要花費較多的訓練時間;且因為需要資料標記,所以前置作業也會非常的多。

最後一個影像任務就是語意分割(segmentation),不像影像分類或物件偵測,是一個正方形、長方形的框,segmentation的細節較多,比較多邊形、密和一點。

如何利用AI判定心室肥大?

了解三大影像任務後,再回到本文一開始的小測驗上,如果是以前的方法,可能會尋找圖片中的規則,例如影像分佈中,會推測很黑的地方是肺,於是,就會以找出黑色區域為目標。而這波AI方法可能會手動標示肺、心臟的位置,在收集許多圖片及位置後,將它們丟入一個模型中,未來當這個模型遇到新的圖片,就會輸出肺跟心臟的位置,接著就能透過程式找到紅色虛線跟黃色虛線,接著並相除看結果是不是大於二分之一,就可以知道這個X光片的病人,有沒有心室肥大的問題。

影像任務的其他應用

其實,還有非常多的影像任務應用,例如姿態辨識、手勢辨識、人臉辨識、情緒辨識等特徵點辨識,或是圖像去模糊降噪、圖像超解析,還有物種辨識跟物件追蹤以及GAN等,此外,圖片去模糊也是工業上常見的應用。透過降噪的圖片,模糊的部分會變得較清晰,因此,當攝影機因為晃動等因素造成拍攝的圖片模糊時,可以透過這種方式讓原本的偵測影像清楚一點。這和圖像的超解析有點類似,但是,圖像的超解析主要是將低解析度還原成高解析度,使它變得較清晰,多半用於原本拍照的畫質不佳,而非因為晃動所造成的模糊狀況下,也是工業上蠻常用的技術。

當你看到一張圖片,希望可以找到圖片上每一個人所相對應的關節點,如膝關節、踝關節等,或是臉部的特徵時,就可以應用到姿態辨識的技術。網路上已經有許多人幫忙整理好資料集,例如Coco、mpII等,一般多半會將人體列出18個點不等的資料點,而我們只需要辨識出這些資料。例如這個資料集是在一個球型空間中裝上能測距的攝影機,這個目的並不是尋找2D的關節特徵點,而是要在三維空間中尋找每一個人的關節點。

有許多方法可以做,例如先丟一張圖片,並輸出這個人在做什麼動作,因為在mpII的資料集裡,這個人的動作會被標示出。另外,也可以先輸出圖片裡的關節點在哪裡,再利用相對應的關節點預測圖片中的人在做什麼動作。

在做姿態辨識任務時,有一些訓練的重點,例如當畫面人數大於二人時,任務就會較困難,因為一個人的畫面就能直接預測18個關節點並他重組;但如果是兩個人以上,就會需要同時辨識許多不同的膝關節,甚至需要判斷是否為不同身體部位的關節,在關節點的重組上會比較困難。

因此,我們可以把它拆成以下兩種方法:

一、Bottom-up:先將畫面中的所有關節點全部預測好,再利用一些方法將每個關節重新組合成一個人體。

二、Top-Down:先將每個人拆開後再丟入模型,接著預測每個人的關節點。因為每個人拆開後,較好預測各自的關節點。

例如有名的模型Open Pose,就是用Bottom-up的方法,將圖片中每個關節點預測出來後,再額外預測不同的關節間,哪些的相關性較高。預測出較高的相關性後,就很方便進行重組。

但拆出關節後,可以有哪些應用呢?我們可以去結合遊戲引擎,像鋼鐵擂台一樣,讓機器人對應我們的動作,進而控制機器人打架。又或者,常見的工廠工安維護,就可以透過姿態辨識進行管控。或是有些職業運動員,可以透過姿態辨識分析、調整自己的運動角度,或是身體姿勢是否有不平衡的地方。

觀賞更多精彩演講內容