基於AI對胎兒頭圍的檢測 測量

2021-09-27 02:58:58 字數 1912 閱讀 5373

這是乙個兩周的小學期中老師布置的乙個專案,運用了python和tensorflow平台。

建議大家先大概了解一下unet演算法(github上有很多例子),之後做起來會比較容易。

如今,父母對待自己胎兒的發育檢查非常重視,會通過各種檢查方法檢查胎兒是否畸胎,器官功能發育異常,遺傳因素穩定等。而這其中通過超聲影象中胎兒頭圍是評估胎兒發育的重要指標之一,胎兒頭圍在臨床上一般由醫生手動進行橢圓擬合,費時費力,且存在較高的使用者差異,導致胎兒發育診斷的偏差,特別是會導致分娩方式決定的錯誤,如今ai發展迅速,我們用科技手段去測量胎兒頭圍,這樣對臨床的診斷會減小難度,同時測量也會十分精準,便於我們對胎兒的健康指標進行評估。

孕婦懷孕期間醫生通過檢查測量胎兒頭圍,主要目的是觀察胎兒的發育狀況。通過評估胎兒頭部的大小,從而**胎兒的發育狀況,而在孕婦分娩時也可以幫助選擇最佳分娩方式。

第一步,基於u-net(keras版本)演算法,通過已有圖例端對端的進行訓練。訓練完成後,讀入測試原始影象,使用模型**,輸出結果。

第二步,對輸出結果影象解析度進行修改。

第三步,對輸出結果影象橢圓進行擬合,並計算出橢圓周長(即胎兒頭圍長度)。

示例:

示例:

示例:

示例:

示例:

對於**得到的影象,還不是特別清晰,原因我分析是訓練量和次數不夠多,對於tensorflow我安裝的gpu版本,沒有安裝英偉達顯示卡版本,運算速度較慢,訓練400份1次的話需要1個小時41分鐘,兩次的話需要3個多小時。**的話我每次都測試20張檢視結果,起初第乙個學習率賦值我用1e-4,得到的loss率很高,都在0.5以上,得到的**就是全黑的。而換用1e-5之後,loss率才降下來,loss率在0.1305的時候得到的** 有光圈出現,沒有大致輪廓。loss率到0.0400就有了影象,但是也較為模糊,就是示例中的圖。附上我在用不同學習率,訓練量和次數時的loss率,loss率越低,應該說明結果更準確。另外我觀察到是大的訓練量是可以大幅度降低loss率的,而訓練次數可以在loss率很低的情況下,再進行降低,比如訓練400張訓練第二次的時候每張會降低0.0001。得到**結果之後進行橢圓擬合,然後得到周長。

附上我不同條件下的loss率

這個專案確實花了挺長時間,首先的環境的安裝出現的問題就很多。儘管unet很多範例,**有現成的,但是執行起來bug也很多,所以**的除錯花費了很長時間。之後的擬合和周長的計算是可以同時實現多張的,但我是一張一張去實現的,因為我本身想去**的結果不多,一張一張的執行也比較容易比對結果。

(1)unet演算法能否自帶擬合出圖形。

(2)輸出影象帶大小不匹配,圖象輸入時的尺寸被resize成128128,結果輸出是256256,我所需要的是800*540,得到結果我需要resize到正確的尺寸,這樣是比較麻煩的。我嘗試修改了unet中的**,但是結果報錯。

(3)當我用1e-4的學習率處理400張訓練2次,到了200張的時候loss率到0.2就是極限了,不能再低了,**結果是全黑圖象。

(4)用1e-5時候效果很好,但是到0.0400左右就是極限了,增加訓練量也沒有效果了,反而訓練400張比200張的loss率還高了一點。

(5)周長的單位是畫素。

AI人臉匹對

純py 執行 encoding utf 8 from aip import aipface import base64 api key secret key 封裝成函式,返回獲取的client物件 def 返回client物件 param api key param secret key retur...

基於行為樹的ai

我們現在做的遊戲,包括手遊,網頁遊戲,ai部分策劃那邊的需求並不複雜 待機,巡邏,行走,逃跑,攻擊,被擊 而且ai需求定了,也不會有太大的改動。所以用狀態機是乙個不錯的選擇,因為狀態機確實很簡單 我們一直都是用狀態機 行為樹,實現ai的另外一種方式,先簡單介紹一下行為樹的概念,然後我們用行為樹的方式...

解決AI大難題 如何降低AI執行對能源的消耗?

編譯 科技行者 就當下來看,ai領域實現突破性進展的深度學習模型,其規模越大,能耗和成本也隨之增加。自然語言處理模型gpt 3就是個典型的例子,為了能夠在準確性與速度方面與人類相匹敵,該模型包含1750億個引數 占用350 gb記憶體並產生高達1200萬美元的模型訓練成本。而且單從成本來看,大家應該...