工作總結
發(fā)表時間:2026-04-162026年圖像分割技術一線工作盤點。
直接說事。去年一年,我主要就干了六件事:統(tǒng)一標注規(guī)矩、修一個離線推理崩潰的坑、改模型驗收流程、給服務器清灰鎖環(huán)境、帶三個人學會自己找問題、以及踩了一個公開數(shù)據(jù)集的大坑。下面一條條交代清楚,好的壞的都擺出來。
一、標注規(guī)范:從三頁到十七頁,又砍回九頁
年初最頭疼的事:不同標注員對腫瘤邊界的判斷差三五個像素,模型推上去全是毛刺。原來的標注規(guī)范就三頁紙,寫了“盡可能精確”“分叉處注意歸屬”這種正確的廢話。我花了三周時間重寫,擴到十七頁。每一條都配正反例截圖。舉個例子:肝臟血管分割里,分叉處的主干和分支怎么界定?我寫成“夾角小于30度且管徑比值大于1:2,分支并入主干;否則單獨標記”。就這一條,讓新來的三個標注員首月一致性從68%拉到82%。
但做過頭了。規(guī)范太細,標注員翻文檔的時間比畫圖還長,速度直接掉了一半。年中開復盤會,有個小姑娘直接說:“李工,你那第十七頁的‘脾門區(qū)副脾識別規(guī)則’我入職半年一次沒用過。”我一聽,對。于是大刀砍掉那些一年用不上兩次的邊緣條款,改成兩層結構:第一層“核心必守”六頁紙,新人入職前三天必須背熟;第二層“擴展參考”三頁紙,遇到特殊情況再翻。現(xiàn)在回頭看,規(guī)范不是越厚越好,得讓執(zhí)行的人自己知道哪條能救命,哪條只是錦上添花。速度最后恢復了九成,一致性穩(wěn)定在80%上下。
二、一次離線推理崩潰的完整排查過程
七月份的事。某醫(yī)院PACS系統(tǒng)升級后,我們部署的肝臟腫瘤分割服務每天凌晨定時跑批處理,連續(xù)三天崩潰。日志只甩一句“CUDA out of memory”,但監(jiān)控顯示顯存峰值才用到70%。我?guī)е埾葢岩沈寗影姹尽獜?70升到525,沒用。再懷疑PyTorch和cuDNN的兼容性——換了三個鏡像,還是崩。折騰了一天半,日志里還是那句沒頭沒尾的話。
第二天下午,我讓小張把數(shù)據(jù)加載器的每一步尺寸打出來。結果發(fā)現(xiàn):圖像原始尺寸1024x1024,加載器里有個隱蔽的硬編碼——半年前做壓力測試時我隨手寫了個resize = 512,忘了刪。但問題沒這么簡單:升級后的圖像spacing變了,從0.6mm變成了0.8mm,我們的重采樣邏輯按目標spacing算縮放因子,導致實際送進網絡的尺寸變成了1536x1536。顯存沒爆是因為分批加載,爆在了中間特征圖的拼接操作上——那個操作把所有batch的特征疊一起,瞬間翻倍。
怎么修的?兩處改動。第一,刪掉硬編碼512,改成從配置文件讀默認值1024。第二,動態(tài)重采樣加了保護:任何單維縮放因子小于0.5或大于2.0就報警并跳過該序列。從接到報修到徹底修好用了兩天,其中一天半在翻代碼。教訓不說了,說多了丟人——反正現(xiàn)在我要求所有臨時測試參數(shù)必須標# TODO(expired_date),過期沒刪的自動發(fā)郵件通報。
三、質量驗收:mIoU高不一定管用 (WwW.722331.COm 教師資源網)
以前驗收模型就看mIoU。今年上半年有個模型在驗證集上mIoU刷到0.89,上線后對介入手術室的數(shù)據(jù)崩到0.6。為什么?介入手術室用的是平掃CT,軟組織對比度低,而我們訓練集里90%是增強CT。模型學到的是“高對比度下的邊緣”,不是真正的器官邊界。
這之后我定了個新規(guī)矩:每次驗收前,先用待測模型的特征提取層輸出訓練一個二分類器,區(qū)分訓練集和驗收集。如果分類器AUC超過0.7,說明模型很可能過擬合到了訓練集的“風格”而非“內容”,這時候mIoU再高也不予通過。這個閾值怎么來的?我們試過0.65、0.7、0.75,最后發(fā)現(xiàn)0.7能攔住所有上線后崩掉的模型,同時不會誤傷好的——實際測了八個版本,AUC<0.7的五個上線都沒出問題,AUC>0.7的三個有兩個崩了,另一個雖然沒崩但邊緣質量明顯差。
驗收流程現(xiàn)在強制三關。第一關靜態(tài)指標:mIoU、Dice、HD95,每個指標都有硬下限。第二關對抗驗證:AUC>0.7直接打回,不廢話。第三關抽樣盲評:每次抽50例,五個人打分——兩名放射科醫(yī)生、兩名算法工程師、一名科室主任。第三關最費時,但最有價值。今年七月醫(yī)生在盲評時指出胰腺尾部總是多出一塊,我們回去查訓練數(shù)據(jù),發(fā)現(xiàn)十幾例的胰腺尾部脂肪間隙被標注員誤標為胰腺實質。修正后模型Dice從0.78漲到0.84。這50例盲評花了兩天時間,值了。
四、設備維護:不止是清灰,是鎖死環(huán)境
那臺T4訓練服務器用了兩年多,風扇噪音越來越大,溫度動不動上85度。我讓團隊里的小趙拆開看看,他拍了張照片發(fā)群里——散熱鰭片被灰塵堵得像棉被。兩個人花了一下午,拆了六顆螺絲、用壓縮空氣吹、換了導熱墊、順便把電源風扇也清了。裝回去后溫度降了15度。
趁這個機會,我把整個訓練環(huán)境徹底鎖死。以前“pip install”隨緣,有人用opencv4.5,有人用4.8,同一個后處理腳本有的跑出多邊形、有的跑出掩碼。現(xiàn)在強制用Docker,基礎鏡像tag精確到cuda:11.7.1-cudnn8-devel-ubuntu20.04,所有依賴寫死版本號。每周自動rebuild一次,跑回歸測試——檢測分割結果和上周的差異,像素級差異超過0.1%就報警。現(xiàn)在新來的同事拉代碼、build鏡像、跑通訓練,半小時搞定,以前要折騰兩天。
五、帶團隊:從“我調參”到“他自己定位問題”
年初團隊里三個年輕工程師,遇到分割結果邊緣毛刺多,第一反應就是換更大的模型、加更多的數(shù)據(jù)。我硬性規(guī)定:每次模型效果不達預期,必須先做錯誤模式分類。具體做法:隨機抽100個失敗樣本,手動勾出錯誤區(qū)域,分成“漏檢”、“過分割”、“邊界模糊”、“連通域錯誤”四類,每類至少找到3個典型例子,然后才能討論修改方案。
有個例子值得說。上半年小劉負責腦腫瘤分割,漏檢率偏高。他按這個方法自己抽了100例,一個個勾,發(fā)現(xiàn)80%的漏檢發(fā)生在腫瘤與水腫交界處。原因是什么?他翻訓練代碼發(fā)現(xiàn),我當初設的損失函數(shù)里水腫區(qū)域的權重只有0.3,怕它干擾腫瘤主體。但實際數(shù)據(jù)里有些腫瘤邊界本身就模糊,權重壓低了模型就學會忽略。他沒有換模型,只把水腫帶權重從0.3調到0.6,重新訓練兩天,漏檢率降了40%。這件事我印象很深,因為他來找我匯報時,已經把原因、證據(jù)、修改方案都擺好了,就問一句“李工你看這個權重調多少合適”。這種成長比教會他一個新模型有用得多——他自己會定位問題了。
當然也有沒帶好的。團隊里另一個同事老陳,習慣自己悶頭干,出了結果才找我。有次他花了兩周調一個輕量化模型,最后精度掉得沒法用,中間沒有任何同步。我沒批評他,但定了個規(guī)矩:任何超過三天的實驗,必須每周兩次15分鐘短會,只說三件事——“做了什么、看到了什么、下一步打算”。不是監(jiān)控,是避免白費力氣。
六、踩坑:過度信任公開數(shù)據(jù)集
今年踩了一個大坑。用了一個公開的心臟分割數(shù)據(jù)集做預訓練,拿到我們自己的數(shù)據(jù)上fine-tune,怎么調都達不到內部驗收標準。折騰了兩周,后來讓標注組長老吳仔細對比標注細節(jié),發(fā)現(xiàn)公開數(shù)據(jù)集里的規(guī)則是“左心室包含乳頭肌”,而我們的臨床標準是“左心室排除乳頭肌”。就這一條差異,導致模型在乳頭肌附近的邊界全部跑偏。我之前太迷信公開數(shù)據(jù)集的“權威性”,沒做標注規(guī)則的對齊。
現(xiàn)在強制要求:任何外部數(shù)據(jù)投入使用前,必須由我方標注員按我方標準重新標注至少50例,做一致性對比。像素級Dice低于0.95就棄用,或者花時間重新標。這個事之前沒人提,現(xiàn)在寫在標注規(guī)范的第一頁,粗體字。
七、再說兩個沒干成的事
一個是半監(jiān)督學習。年初想用偽標簽減少標注量,搞了三個月,精度掉得沒法看——在胰腺分割上Dice從0.86掉到0.79,怎么調都回不去。最后放棄了,老老實實繼續(xù)標數(shù)據(jù)。另一個是嘗試把模型從2D切片改成3D,顯存翻了三倍,精度只漲了1個百分點,推理時間從0.2秒變成1.8秒,臨床說太慢,也擱置了。這兩個失敗沒寫在年終PPT里,但自己心里有數(shù)。
明年的事只定一個硬指標:第一季度把分割結果的不確定性熱力圖上線。每個輸出除了掩碼,再給一張圖告訴醫(yī)生“這地方模型有30%的可能看走眼”。代碼已經搭了一半,不展開說了,等做出來再聊。
- 推薦閱讀: 2026年圖像分割技術一線工作盤點 2026年一線教師年度工作思考 售樓部一線接待工作思考(2026借鑒版) 售樓部一線接待工作思考(2026借鑒版) 總務科考核一線工作總結(匯總5篇) 2026年醫(yī)生專業(yè)技術工作總結
- 讀書筆記吧小編為您推薦工作總結專題,歡迎訪問:工作總結