化橄欖樹遙感分割方案與實(shí)踐)
做農(nóng)業(yè)遙感這幾年“橄欖樹分割”這個需求我前前后后碰過好幾回。剛開始覺得這事不難——樹冠是圓的、葉子是常綠的衛(wèi)星圖上看起來就是一片片綠色圓斑做個閾值分割加形態(tài)學(xué)處理應(yīng)該分分鐘搞定。真上了項(xiàng)目才發(fā)現(xiàn)遠(yuǎn)沒有想象中那么輕松。橄欖樹不像蘋果園那樣整整齊齊成行成列尤其是丘陵臺地的種植區(qū)樹齡跨度大、冠幅懸殊加上地形起伏帶來的陰影變化以及灌叢、裸地、其他闊葉樹的干擾用傳統(tǒng)方法做出來的結(jié)果人工修正量比自動分割還要大。后來我把Segment Anything ModelSAM開源分割基礎(chǔ)模型引入整條流水線配合一套多階段細(xì)化多相細(xì)化策略把SAM的候選輸出收斂成可用的樹冠掩碼這才算把整條鏈路徹底跑通。這篇文章就是一次完整復(fù)盤。不聊泛泛的原理直接把方案設(shè)計(jì)、參數(shù)配置、評估結(jié)果和排坑經(jīng)過攤開講給正在做果樹識別、樹冠提取、種植面積統(tǒng)計(jì)這類工作的同行一個可參考的完整樣例。1. 為什么橄欖樹分割這么難1.1 橄欖樹在衛(wèi)星影像里的真實(shí)樣貌橄欖樹的樹冠在遙感圖上有幾個鮮明特點(diǎn)近圓形、常綠、近紅外反射強(qiáng)。但真到分割的時候這些特點(diǎn)反而成了麻煩的來源。先說尺度。按0.3米到0.5米的分辨率計(jì)算一棵冠幅6米的大樹也就對應(yīng)12到20個像素剛定植幾年的小樹冠幅可能只有2米對應(yīng)4到6個像素。這種目標(biāo)尺寸在通用分割模型面前屬于典型的小目標(biāo)很容易被忽略、被合并進(jìn)背景或者被當(dāng)作噪點(diǎn)濾掉。再說類內(nèi)差異。橄欖樹的修剪方式直接影響樹冠形狀有的整成單干圓頭形整體偏圓有的保留多主枝樹冠偏橢圓甚至不規(guī)則。老齡樹內(nèi)部還經(jīng)常出現(xiàn)枯枝和孔洞造成樹冠中心區(qū)域的光譜特征不均勻。同一片園區(qū)健康樹、缺素樹、受病蟲害影響的樹NDVI值可以差出一大截。不同物候期拍攝的影像里樹冠顏色、紋理也會明顯變化冬季果實(shí)成熟期和夏季旺盛生長期完全是兩種面貌。類間干擾也很頭疼。不少地中海氣候區(qū)的灌叢、闊葉樹種和草地在顏色和紋理上都與橄欖樹有重疊。在高分辨率影像上樹影、裸地、干草堆都可能被算法誤判成樹冠。如果只靠單一時相的光譜信息很難把樹冠、樹影、裸地、植被這四類區(qū)域干凈地分開。1.2 傳統(tǒng)方法在哪里翻車最常見的做法是NDVI閾值法。NDVI能反映葉片活性對綠色植被很敏感但問題在于這個“閾值”是全局的、靜態(tài)的。同一張影像里陰坡和陽坡的光照條件不同土壤背景不同同一個NDVI閾值在平原區(qū)能準(zhǔn)確提取樹冠到山地背陰區(qū)就翻倍漏檢。我試過用同一閾值處理一個實(shí)驗(yàn)區(qū)的多塊地塊結(jié)果偏差肉眼可見。形態(tài)學(xué)開閉運(yùn)算和分水嶺分割也試過。用固定半徑的圓形結(jié)構(gòu)元素去匹配樹冠小樹冠會被當(dāng)噪聲濾掉大樹冠又可能被開運(yùn)算切碎。分水嶺對粘連樹冠做分離時地形起伏大或陰影重的區(qū)域經(jīng)常出現(xiàn)過分割一棵樹被切開成四五塊最后數(shù)樹數(shù)時完全沒法用。深度學(xué)習(xí)語義分割模型比如U-Net這類結(jié)構(gòu)理論上能端到端學(xué)特征表現(xiàn)比傳統(tǒng)方法好不少但代價(jià)是大量像素級標(biāo)注。橄欖樹標(biāo)注成本極高專家在高分影像上逐棵勾樹冠輪廓一片地塊的標(biāo)注足夠耗費(fèi)一周時間。更麻煩的是泛化能力在平原園區(qū)訓(xùn)練的模型換到丘陵園區(qū)精度就掉0.3米分辨率訓(xùn)練完換0.5米數(shù)據(jù)又要重標(biāo)一批。傳統(tǒng)方法的根本問題在于它們的思路是直接從像素到類別中間沒有目標(biāo)尺度和形狀的先驗(yàn)約束。橄欖樹從春到秋、從幼樹到老樹差別巨大指望一個靜態(tài)模型扛住所有變化實(shí)在太勉強(qiáng)。1.3 為什么選擇SAM作為底座SAM給這件事帶來了轉(zhuǎn)機(jī)。它的兩個核心能力很適合橄欖樹分割一是零樣本泛化能力在開放世界圖像上訓(xùn)練出的通用視覺先驗(yàn)可以直接遷移到遙感圖像二是提示機(jī)制可以通過點(diǎn)、框、掩碼等提示信息引導(dǎo)生成分割結(jié)果這恰好匹配“樹冠是一個個獨(dú)立目標(biāo)”的任務(wù)形態(tài)。但我必須說清楚一個現(xiàn)實(shí)直接把SAM的自動掩碼生成器拿來趕工是個大坑。我在一張2048×2048的高分影像切片上做過測試自動模式一次生成了上千個掩碼其中與橄欖樹相關(guān)的不到三分之一道路邊緣、屋頂、陰影、裸地里的不規(guī)則紋理都被當(dāng)成候選。如果不對這些輸出加約束過濾統(tǒng)計(jì)出的樹數(shù)會嚴(yán)重虛高根本不能交付。所以我把SAM的定位改成了“候選區(qū)域生成器”而不是最終結(jié)果輸出器。先讓SAM產(chǎn)出高質(zhì)量邊界然后用多階段細(xì)化流程把高召回率的候選集收斂成高精度的樹冠掩碼。這樣既用上了SAM的通用分割能力又把它的不確定性關(guān)進(jìn)了工程化的籠子里。2. 整體方案設(shè)計(jì)從粗分割到精化的完整流水線2.1 系統(tǒng)流程總覽我最終跑通的流程包含五個環(huán)節(jié)每個環(huán)節(jié)做成獨(dú)立模塊輸入輸出格式固定方便單獨(dú)調(diào)試和替換。數(shù)據(jù)準(zhǔn)備與預(yù)處理影像校正、質(zhì)量檢查、坐標(biāo)對齊、切片。輔助特征計(jì)算NDVI通道、紋理通道、超像素約束。SAM候選生成按提示點(diǎn)執(zhí)行分割推理得到候選掩碼集。多階段細(xì)化光譜規(guī)則過濾、幾何形態(tài)過濾、邊界精修與形狀擬合。多時相融合與導(dǎo)出多期影像投票合并輸出樹冠掩碼和矢量邊界。每個環(huán)節(jié)之間只通過標(biāo)準(zhǔn)的數(shù)據(jù)結(jié)構(gòu)傳遞比如第3環(huán)節(jié)輸出的候選掩碼統(tǒng)一保存為多邊形第4環(huán)節(jié)讀取多邊形做屬性計(jì)算。這樣做的好處是后續(xù)不管是換一個提示點(diǎn)采樣策略還是換一種精化后處理都不需要動整體框架只需要改對應(yīng)模塊的輸入輸出適配邏輯。2.2 “多相細(xì)化”的具體含義標(biāo)題里的“多相”我在項(xiàng)目里落地成了兩層含義。第一層是處理流程上的多階段。從SAM粗分割到最終樹冠掩碼中間經(jīng)過了光譜過濾、幾何過濾、邊界精修三個階段。每一階段只做一件事前一階段的輸出是后一階段的輸入。這種解耦設(shè)計(jì)的價(jià)值在調(diào)試時體現(xiàn)得最明顯誤檢多了去查規(guī)則過濾階段的閾值邊界毛糙了去查精修階段的參數(shù)問題不會糾纏在一個黑盒里。第二層是數(shù)據(jù)維度上的多時相。橄欖樹在不同月份拍攝的影像上樹冠形態(tài)和光譜差異明顯。單一時相結(jié)果可能因?yàn)楣庹铡⒃旗F、物候等因素出現(xiàn)大片漏檢或誤檢但如果把春季、夏季、秋季三期影像各自獨(dú)立跑完流程再做像素級投票或邏輯與單期影像引入的誤差會被顯著壓低。真實(shí)樹冠在多數(shù)物候期都有穩(wěn)定的植被特征而陰影位置隨太陽高度角變化土壤背景隨干濕變化這些干擾在多時相投票里很難同時形成一致意見。這兩層含義并不是平行關(guān)系。項(xiàng)目里每一期影像都完整走完“SAM粗分割規(guī)則過濾邊界精修”的多階段流程最后再做時相融合。也就是說多階段是單幀處理的縱深多時相是時間維度的橫向校驗(yàn)。2.3 技術(shù)選型背后的取舍SAM模型本身有多個規(guī)格我最終選了vit_b沒有用更大規(guī)模的vit_h。原因是遙感分割通常要處理整片區(qū)數(shù)據(jù)數(shù)據(jù)量是影像級而不是單圖級。大模型確實(shí)在復(fù)雜場景下精度更高但在橄欖樹這種小目標(biāo)上的提升沒那么明顯而顯存占用和推理耗時卻成倍增加。實(shí)測在同一臺機(jī)器上vit_b完成一張1024×1024切片的encoder特征提取耗時大約是vit_h的三分之一精度損失不到兩個百分點(diǎn)。提示點(diǎn)采樣策略上也做了取舍。我采用的是“NDVI植被掩膜約束下的網(wǎng)格采樣”而不是全圖均勻采樣。非植被區(qū)域理論上不可能是橄欖樹把這些區(qū)域排除掉既減少了推理計(jì)算量又避免了SAM在裸地、巖石紋理上生成無效候選。這里有一個關(guān)鍵思路轉(zhuǎn)變不要指望SAM替你判斷“哪個目標(biāo)是樹”而是讓SAM判斷“提示點(diǎn)附近是否存在一個高質(zhì)量邊界的獨(dú)立目標(biāo)”。目標(biāo)屬性判斷交給后面的規(guī)則過濾SAM只負(fù)責(zé)提供質(zhì)量高的初分割掩碼。這個分工是我覺得最值得借鑒的一點(diǎn)。3. 數(shù)據(jù)準(zhǔn)備與預(yù)處理3.1 數(shù)據(jù)源與通道組合我用的數(shù)據(jù)是0.3米到0.5米分辨率的可見光加近紅外多光譜影像。近紅外通道必須保留因?yàn)闃涔诘闹脖换钴S度主要靠它體現(xiàn)。如果只給SAM輸入RGB三通道綠色植被和深色裸地、陰影之間的邊界非常容易混淆。把近紅外通道計(jì)算出的NDVI做成額外輸入通道后SAM在提示點(diǎn)附近的候選掩碼質(zhì)量明顯提升樹冠輪廓更完整背景誤判也少了很多。預(yù)處理里最重要的一步是波段對齊和質(zhì)量檢查。多光譜衛(wèi)星數(shù)據(jù)的各波段之間可能存在細(xì)微偏移不做校正就疊在一起做SAM推理掩碼邊緣會出現(xiàn)鋸齒狀偽影。我先在全景圖上找若干穩(wěn)定的角點(diǎn)和十字路標(biāo)計(jì)算單應(yīng)矩陣用OpenCV的warpPerspective把近紅外通道統(tǒng)一投影到RGB所在坐標(biāo)系再做逐像素檢查。3.2 切片策略SAM推理對輸入尺寸敏感直接在整幅影像上跑會爆顯存而且小目標(biāo)在超大畫幅里更容易被忽略。我的做法是把影像切成1024×1024或1536×1536的切片相鄰切片之間保留50像素的重疊區(qū)。這個重疊區(qū)是有講究的如果樹冠正好落在切片邊緣SAM推理時會丟掉部分上下文提示點(diǎn)鄰近邊緣的情況大概率生成殘缺掩碼。有了50像素的重疊邊緣樹冠至少會同時出現(xiàn)在兩張相鄰切片里后續(xù)合并時按置信度或中心距離擇優(yōu)保留有效減少了邊緣漏檢。切片時還要注意每張切片獨(dú)立做直方圖匹配。相鄰切片普遍會因?yàn)榇髿鈼l件和傳感器響應(yīng)差異出現(xiàn)亮度不一致不處理的話同一個樹冠在兩張切片里會呈現(xiàn)完全不同的對比度影響合并時的一致性判斷。3.3 輔助特征與場景增強(qiáng)在喂給SAM的RGB之外我額外構(gòu)造了三個輔助通道NDVI歸一化通道、局部紋理標(biāo)準(zhǔn)差通道、超像素平均色差通道。把它們作為模型的附加輸入SAM的編碼器會把它們當(dāng)成顏色和紋理線索從而強(qiáng)化樹冠與背景之間的邊界信息。增強(qiáng)部分我使用CLAHE做局部對比度受限直方圖均衡化再做輕度的細(xì)節(jié)銳化。這里有個經(jīng)驗(yàn)增強(qiáng)要克制寧可保留一點(diǎn)模糊也不要過度銳化。過度銳化會把陰影邊緣和裸地紋理放大成類似樹冠的圖案給后面的規(guī)則過濾增加不少壓力。整套預(yù)處理看起來不復(fù)雜但對SAM推理效果影響非常大。如果影像對比度不足樹冠與裸地邊界模糊SAM返回的掩碼邊界質(zhì)量就差后端的規(guī)則過濾再精細(xì)也救不回來。預(yù)處理是為整個流程兜底的環(huán)節(jié)值得花時間做扎實(shí)。4. 核心實(shí)現(xiàn)SAM提示分割與多階段精修4.1 提示點(diǎn)生成策略提示點(diǎn)設(shè)計(jì)直接決定SAM能不能把每一棵橄欖樹都“圈”出來。均勻網(wǎng)格方案最簡單但小樹冠容易漏。以小樹冠冠幅4到6個像素為例網(wǎng)格間距必須小于這個直徑才能保證至少一個點(diǎn)落在樹冠內(nèi)部??删W(wǎng)格間距一旦過小提示點(diǎn)數(shù)量會指數(shù)級增長單張1024×1024切片可能生成上萬個點(diǎn)GPU推理根本跑不動。我最終采用兩輪采樣策略。第一輪用相對稀疏的網(wǎng)格間距約12像素在0.3米分辨率下約等于3.6米先把整幅圖均勻覆蓋一遍再加上NDVI植被掩膜只保留落在植被區(qū)域內(nèi)的點(diǎn)。第二輪針對上一輪生成的大面積候選掩碼在其內(nèi)部補(bǔ)充若干偏移點(diǎn)用來鎖定大樹冠的完整邊界。提示點(diǎn)數(shù)量我會控制在每張切片300到800個之間。少于300個小樹冠漏檢明顯多于800個推理耗時陡增但精度提升非常有限。這個數(shù)量級在實(shí)際測試中剛好處于性價(jià)比拐點(diǎn)。4.2 SAM推理配置SAM官方代碼庫的用法很直接。先加載模型把切片的圖像編碼成特征嵌入之后對提示點(diǎn)執(zhí)行輕量級解碼。下面的代碼骨架可以作為一個起點(diǎn)import numpy as np from segment_anything import SamPredictor, sam_model_registry # 加載SAM模型這里使用vit_b規(guī)格權(quán)重文件從官方倉庫下載 model sam_model_registry[vit_b](checkpointmodels/sam_vit_b.pth) predictor SamPredictor(model) # 預(yù)處理后的RGB切片形狀為(H, W, 3)數(shù)據(jù)類型uint8 predictor.set_image(rgb_crop) # 提示點(diǎn)坐標(biāo) [[x, y], ...] 和標(biāo)簽1表示前景 point_coords np.array(valid_points, dtypenp.float32) point_labels np.ones(len(valid_points), dtypenp.int64) masks, scores, _ predictor.predict( point_coordspoint_coords, point_labelspoint_labels, multimask_outputTrue, )輸出里的masks形狀是(N, 1, H, W)scores是對應(yīng)掩碼的質(zhì)量分。我建議在一開始不要用scores做提前截?cái)喽前阉泻蜻x全部保留讓后端的規(guī)則過濾去決定取舍。實(shí)際項(xiàng)目里我發(fā)現(xiàn)SAM的質(zhì)量分和真實(shí)分割質(zhì)量在衛(wèi)星圖上相關(guān)性一般有些質(zhì)量分很高的掩碼其實(shí)是誤檢有些得分不高的反而正好是完整樹冠。如果你想進(jìn)一步提升邊界精細(xì)度可以啟用box提示先用點(diǎn)提示得到粗掩碼取粗掩碼的外接矩形作為box輸入再調(diào)用一次predict。這樣第二次的掩碼邊界通常會收緊一些代價(jià)是推理時間翻倍所以我只對高置信度候選啟用這個策略。4.3 多階段細(xì)化光譜與幾何規(guī)則SAM返回的候選掩碼接下來進(jìn)入第一個細(xì)化階段光譜與幾何雙重規(guī)則過濾。這個階段的處理原則是“寧可放過不可錯殺”——漏檢可以通過補(bǔ)提示點(diǎn)來補(bǔ)償?shù)`檢如果不篩掉樹數(shù)統(tǒng)計(jì)表基本沒法看。我使用的過濾條件按重要性排序如下NDVI均值約束候選掩碼內(nèi)部的NDVI均值必須大于0.55低于閾值直接排除。這個條件能把裸地、干草、陰影這類非活性植被區(qū)域快速剔除。面積區(qū)間樹冠直徑按2米到8米估算換算到0.3米分辨率下面積大約在44到560像素之間。過小的掩碼多半是噪聲過大的掩碼大概率是建筑屋頂或連續(xù)地塊。圓度采用4π乘面積除以周長的平方來度量橄欖樹的典型值在0.7以上低于0.6的候選多數(shù)是邊界破碎的道路或陰影邊緣。凸度掩碼面積與凸包面積之比閾值設(shè)0.85。這個指標(biāo)能有效排除凹多邊形形狀的背景碎片。離心率對掩碼做橢圓擬合長軸與短軸之比不能超過1.4否則更像狹長的人造地物或農(nóng)田壟。這些規(guī)則會組合成一個加權(quán)評分函數(shù)每個候選得到綜合分超過閾值的進(jìn)入下一階段。權(quán)重在驗(yàn)證區(qū)里通過小規(guī)模網(wǎng)格搜索標(biāo)定過一次后面再遷移到新區(qū)域時只需要重新標(biāo)定NDVI閾值和面積區(qū)間其他參數(shù)基本保持穩(wěn)定。4.4 邊緣精修與形狀擬合最后一個細(xì)化階段是邊緣精修和形狀擬合這一步直接決定最終導(dǎo)出的矢量邊界質(zhì)量。SAM生成的掩碼邊界已經(jīng)算不錯但衛(wèi)星圖像上的陰影、混合像元和傳感器噪聲仍然會讓邊界出現(xiàn)鋸齒或局部凸起。如果直接用原始掩碼做統(tǒng)計(jì)面積誤差會傳導(dǎo)到后面的產(chǎn)量估算和冠幅測量上。我的做法分兩步。第一步對保留掩碼做一次邊界優(yōu)化使用GrabCut或條件隨機(jī)場CRF細(xì)化。CRF適合批量后處理我用的pydensecrf實(shí)現(xiàn)把顏色和空間位置作為成對項(xiàng)迭代40次左右能有效抹掉邊界上的孤立毛刺。第二步對掩碼做橢圓擬合輸出樹冠中心點(diǎn)和等效半徑。橄欖樹樹冠本身接近橢圓用橢圓參數(shù)來表達(dá)樹冠后續(xù)做重疊分析和產(chǎn)量估算都很方便。擬合之前要先做形態(tài)學(xué)閉合填掉樹冠內(nèi)部由枯枝和孔洞造成的空洞否則擬合結(jié)果會被空洞拉偏中心點(diǎn)位置也會產(chǎn)生明顯誤差。5. 評估方法與實(shí)驗(yàn)效果5.1 評估樣本與指標(biāo)為了客觀評估整套流水線我在一個獨(dú)立驗(yàn)證區(qū)內(nèi)隨機(jī)抽取了約400棵橄欖樹由有農(nóng)業(yè)遙感經(jīng)驗(yàn)的人員逐棵勾畫樹冠參考掩碼。評估使用以下指標(biāo)像素級IoU預(yù)測掩碼與參考掩碼的交并比反映邊界重合程度F1分?jǐn)?shù)結(jié)合精確率和召回率對誤檢和漏檢都敏感樹計(jì)數(shù)準(zhǔn)確率算法檢測樹數(shù)與參考樹數(shù)的比值最貼近業(yè)務(wù)需求中心點(diǎn)定位誤差預(yù)測橢圓中心與參考中心的像素距離衡量單棵樹的定位精度。樹計(jì)數(shù)準(zhǔn)確率是實(shí)際業(yè)務(wù)中最看重的指標(biāo)因?yàn)殚蠙鞓浣y(tǒng)計(jì)的核心需求就是回答一個簡單問題這片地里到底有多少棵樹樹在哪。5.2 對比實(shí)驗(yàn)結(jié)果下面是驗(yàn)證區(qū)內(nèi)的對比結(jié)果涵蓋傳統(tǒng)方法、深度學(xué)習(xí)方法、SAM自動模式以及本文最終方案方案像素IoUF1分?jǐn)?shù)樹計(jì)數(shù)準(zhǔn)確率主要問題NDVI閾值形態(tài)學(xué)0.620.6371%陰影區(qū)域漏檢嚴(yán)重U-Net語義分割0.700.6980%標(biāo)注成本高、泛化差SAM自動掩碼0.550.5263%誤檢碎片極多SAM規(guī)則過濾0.720.7183%邊界仍顯粗糙SAM多階段細(xì)化0.790.8092%需要多時相對齊配合結(jié)果基本符合我的判斷。SAM自動掩碼的IoU最低因?yàn)樽詣幽J缴闪舜罅勘尘昂蜻x雖然召回率不低但精確率被嚴(yán)重拖累大量非樹目標(biāo)混在里面。加入規(guī)則過濾后精確率明顯提升IoU從0.55升到0.72再疊加邊界精修IoU進(jìn)一步升到0.79樹計(jì)數(shù)準(zhǔn)確率達(dá)到92%。需要提醒的是這些數(shù)據(jù)來自我的驗(yàn)證區(qū)不同地域、不同影像質(zhì)量會有浮動。算法參數(shù)是全局統(tǒng)一的但換到自己的數(shù)據(jù)上還是建議重新標(biāo)定NDVI閾值和面積區(qū)間。5.3 消融試驗(yàn)我還做了消融試驗(yàn)把多階段細(xì)化里的某一環(huán)單獨(dú)去掉觀察指標(biāo)變化。去掉NDVI過濾后漏檢率變化不大但誤檢率明顯上升新增誤檢主要出現(xiàn)在裸地和枯黃草地上。去掉圓度過濾后道路、屋脊、陰影邊界的候選大量混入樹計(jì)數(shù)準(zhǔn)確率直接跌到78%。去掉橢圓擬合后像素IoU幾乎沒變但樹冠邊界鋸齒明顯導(dǎo)出為矢量后面積統(tǒng)計(jì)偏差增大中心點(diǎn)定位也不穩(wěn)定。這三個實(shí)驗(yàn)結(jié)果說明光譜過濾負(fù)責(zé)排除背景干擾幾何過濾負(fù)責(zé)限定目標(biāo)形態(tài)橢圓擬合負(fù)責(zé)輸出規(guī)整形狀。每一環(huán)都有明確分工缺了任何一環(huán)最終交付質(zhì)量都會有實(shí)質(zhì)性下降。6. 常見問題與排查技巧實(shí)錄6.1 小目標(biāo)漏檢怎么辦小樹冠漏檢是最常遇到的問題。排查時我按優(yōu)先級檢查三處第一提示點(diǎn)是否覆蓋到了小樹冠內(nèi)部網(wǎng)格間距是否大于最小冠幅直徑第二預(yù)處理階段是否做了過度銳化導(dǎo)致樹冠內(nèi)部紋理反而變成了干擾第三切片重疊區(qū)的合并邏輯是否把邊緣樹冠漏掉了。一個很有效的技巧是先用超像素分割或局部極值檢測定位疑似樹冠中心再以這些位置作為提示點(diǎn)集合。這樣比純網(wǎng)格采樣更緊湊而且能覆蓋到網(wǎng)格漏掉的小目標(biāo)特別適合樹齡不齊、小樹較多的地塊。6.2 陰影區(qū)域的誤檢與漏檢背陰樹冠和陰影背景之間對比度極低SAM很容易把一片陰影整體當(dāng)成一個候選。這種情況下我建議把NDVI過濾閾值稍微調(diào)高同時啟動多時相投票邏輯同一位置至少在兩個時相中都檢測到才最終判定為樹冠。這個邏輯背后是物理規(guī)律真實(shí)樹冠在不同物候期都有穩(wěn)定的植被特征而陰影的位置隨太陽高度角變化同一塊陰影很難在多個時相中穩(wěn)定出現(xiàn)在同一處。多時相投票對陰影和裸地誤檢的壓制效果非常明顯。6.3 樹冠粘連高密度橄欖園里相鄰樹冠邊界經(jīng)常連成一片。規(guī)則過濾階段如果把它們誤當(dāng)成一個大型候選圓度指標(biāo)會不達(dá)標(biāo)整片樹都被當(dāng)成背景濾掉導(dǎo)致成片漏檢。解決思路是在橢圓擬合之前增加分水嶺分離步驟以掩碼內(nèi)部距離變換的局部極大值作為種子點(diǎn)做分水嶺分割把粘連樹冠重新拆開。分水嶺的種子數(shù)量對結(jié)果很敏感種子過多會把單棵樹切碎。我的限制方法是讓種子數(shù)量落在候選面積除以最小樹冠面積的范圍之內(nèi)然后人工抽檢幾處高密度地塊來驗(yàn)證。6.4 跨區(qū)域泛化在實(shí)驗(yàn)區(qū)標(biāo)定好的參數(shù)換到另一個種植區(qū)往往直接失效。究其原因土壤背景、植被類型、種植密度都變了。我的建議是把整個流水線參數(shù)化換區(qū)域時只重標(biāo)NDVI閾值和面積區(qū)間其他保持默認(rèn)。實(shí)測中我換到相鄰的另一個種植區(qū)后只改這兩個參數(shù)樹計(jì)數(shù)準(zhǔn)確率從92%掉到88%。進(jìn)一步把圓度閾值從0.7放寬到0.65后準(zhǔn)確率恢復(fù)到90%。這說明跨區(qū)域遷移時幾何閾值會比光譜閾值更穩(wěn)定值得優(yōu)先微調(diào)。6.5 參數(shù)速查表最后整理一份我在實(shí)踐中反復(fù)用到的參數(shù)速查表方便直接抄作業(yè)。注意這些參數(shù)默認(rèn)基于0.3米分辨率影像換分辨率時需要按比例換算參數(shù)默認(rèn)取值說明SAM模型規(guī)格vit_b速度與精度折中提示點(diǎn)間距12像素約3.6米按最小冠幅調(diào)整NDVI過濾閾值0.55換區(qū)域優(yōu)先重標(biāo)樹冠面積范圍44-560像素對應(yīng)冠幅2-8米圓度閾值0.70粘連場景降至0.65凸度閾值0.85排除凹形背景碎片橢圓離心率上限1.4排除狹長地物切片重疊區(qū)50像素防止邊緣漏檢多時相投票至少2期命中壓制陰影和季節(jié)誤檢這套參數(shù)在遇到完全不同的種植模式時依然需要再校準(zhǔn)但至少能給你一個合理的起點(diǎn)不至于從零摸索。我自己這段時間做下來的最大體會是SAM這類基礎(chǔ)模型真正落地考驗(yàn)的并不是模型本身而是圍繞它建立的那層工程約束。它給你一個質(zhì)量不錯的中間結(jié)果但如果你直接把那個結(jié)果交給農(nóng)業(yè)統(tǒng)計(jì)部門大概率會被打回來重新做。多階段細(xì)化不是炫技而是把“通用能力”收斂成“特定領(lǐng)域可靠性”的必要過程。后續(xù)我準(zhǔn)備繼續(xù)做兩件事一是把SAM的編碼器蒸餾成輕量版本讓它在低算力設(shè)備上也能跑二是引入更長時序的影像做變化檢測把修剪、病害導(dǎo)致的樹冠結(jié)構(gòu)變化也納入統(tǒng)計(jì)范圍。希望這篇復(fù)盤能幫到正在做類似工作的朋友如果你有更好的樹冠分離或粘連拆分技巧歡迎多交流。