指南:從模型選型到部署優(yōu)化的完整落地流程)
1. 從“看得見”到“看得準”目標檢測與定位到底在解決什么問題很多人第一次接觸計算機視覺腦子里冒出來的第一個念頭往往是“讓機器認出圖片里有什么”。這個想法沒錯但只對了一半。真正讓機器從“看見”進化到“看懂”的關(guān)鍵一步是不僅要說出畫面里有只貓、有輛車、有個人還得說清楚這只貓在畫面的哪個位置、這輛車占了多大區(qū)域、這個人離鏡頭是遠是近。這就是目標檢測和目標定位要干的事。我剛開始做視覺項目的時候踩過一個很典型的坑以為檢測就是分類的升級版把圖片喂給網(wǎng)絡(luò)輸出一個類別標簽就完事了。結(jié)果實際跑起來才發(fā)現(xiàn)分類網(wǎng)絡(luò)告訴我“這是一張有狗的圖片”但我根本不知道狗在哪兒。如果畫面里同時有三只狗、兩輛車、一個人分類網(wǎng)絡(luò)直接懵了——它只能給整張圖打一個標簽。而目標檢測要做的是把畫面里每一個感興趣的對象都框出來并且給每個框標上類別。這里需要先把兩個容易混淆的概念掰扯清楚。目標定位通常指的是在已知類別的前提下找出單個或多個同類目標在圖像中的具體坐標位置輸出形式一般是邊界框的四個坐標值。目標檢測則是在定位的基礎(chǔ)上更進一步不僅要找到位置還要判斷每個位置上的物體屬于哪個類別。換句話說定位回答“在哪里”檢測回答“是什么在哪里”。在實際工程中這兩者往往是同一個模型同時完成的所以業(yè)內(nèi)經(jīng)常把它們放在一起討論。那這項技術(shù)到底能用在哪些地方我梳理了一下自己接觸過的場景大致可以分成這么幾類。第一類是安防與監(jiān)控比如在園區(qū)里檢測有沒有人闖入禁區(qū)、有沒有人沒戴安全帽、有沒有車輛違停。第二類是工業(yè)質(zhì)檢在生產(chǎn)線上檢測產(chǎn)品表面有沒有劃痕、缺件、裝配錯位。第三類是自動駕駛與輔助駕駛檢測道路上的車輛、行人、交通標志和信號燈。第四類是零售與商業(yè)分析統(tǒng)計貨架上的商品陳列情況、分析顧客在店內(nèi)的動線。第五類是醫(yī)療影像在CT或X光片里定位病灶區(qū)域。第六類是農(nóng)業(yè)與遙感從航拍圖像里檢測農(nóng)作物長勢、病蟲害區(qū)域或者統(tǒng)計果樹數(shù)量。這些場景看起來五花八門但底層要解決的核心問題是一樣的給定一張圖像找出所有感興趣目標的位置和類別。區(qū)別只在于目標的尺度、密度、遮擋程度、光照條件、實時性要求各不相同。所以我在做項目選型的時候從來不會一上來就問“哪個模型最好”而是先問“你的場景里目標有多大、有多密、跑在什么設(shè)備上、能容忍多少延遲”。這幾個問題的答案直接決定了后面技術(shù)路線的選擇。提示如果你剛?cè)腴T不要一上來就啃最新的論文。先把“分類、定位、檢測、分割”這四個概念的區(qū)別和聯(lián)系搞清楚后面學(xué)任何模型都會事半功倍。2. 兩階段與單階段檢測模型的兩條技術(shù)路線怎么選目標檢測模型發(fā)展到現(xiàn)在技術(shù)路線大致可以分成兩大陣營兩階段檢測器和單階段檢測器。這兩條路線的設(shè)計哲學(xué)完全不同適用的場景也各有側(cè)重。我在實際項目里兩種都用過下面把它們的核心差異和選型邏輯講清楚。2.1 兩階段檢測器的工作邏輯先找候選再精修兩階段檢測器的代表思路是“先粗后精”。第一步網(wǎng)絡(luò)會在圖像上生成大量可能包含目標的候選區(qū)域這些區(qū)域叫做區(qū)域提議。第二步對每個候選區(qū)域單獨做分類和邊界框回歸判斷它到底是不是目標、是什么類別、框的位置需不需要微調(diào)。這種設(shè)計的優(yōu)勢很明顯因為第二階段對每個候選區(qū)域都做了精細的分類和回歸所以檢測精度通常更高尤其是對小目標和密集目標的處理更穩(wěn)。但代價是速度慢因為要處理的候選區(qū)域數(shù)量可能上千每個都要過一遍分類網(wǎng)絡(luò)。我早期在一個工業(yè)質(zhì)檢項目里用過這類模型當時產(chǎn)線上要檢測的缺陷非常小有些只有十幾個像素寬而且缺陷和背景的對比度很低。兩階段模型在這種場景下的召回率明顯比單階段高出一截。但問題是產(chǎn)線速度要求每秒鐘處理至少15幀兩階段模型在當時的硬件上跑不到這個速度最后只能換方案。2.2 單階段檢測器的取舍一步到位速度優(yōu)先單階段檢測器走的是另一條路直接在特征圖上預(yù)測每個位置的類別和邊界框不需要單獨的候選區(qū)域生成步驟。你可以把它理解成“在每個像素位置上直接問這里有沒有目標是什么框多大”這種設(shè)計的最大優(yōu)勢是速度快因為整個網(wǎng)絡(luò)是一次前向傳播就出結(jié)果沒有反復(fù)的區(qū)域裁剪和二次分類。在需要實時處理的場景里單階段模型幾乎是默認選擇。但它的短板也很明顯由于正負樣本極度不平衡絕大多數(shù)位置都是背景訓(xùn)練時容易出現(xiàn)漏檢尤其是小目標和密集排列的目標。不過這幾年單階段模型進步非常快通過特征金字塔、焦點損失、多尺度訓(xùn)練等技巧精度已經(jīng)追得很近了。我在一個交通監(jiān)控項目里用單階段模型檢測車輛和行人在1080P分辨率下能做到每秒30幀以上精度也滿足業(yè)務(wù)要求。2.3 選型決策表什么場景該用哪條路線為了讓你更直觀地做選擇我把自己總結(jié)的選型邏輯整理成了一張表考量維度兩階段檢測器單階段檢測器檢測精度通常更高尤其小目標近年已接近但極端小目標仍略遜推理速度較慢難以做到高幀率實時快適合實時場景訓(xùn)練難度相對穩(wěn)定收斂較好需要調(diào)損失函數(shù)和正負樣本策略密集目標表現(xiàn)較好需要專門優(yōu)化否則容易漏檢部署復(fù)雜度較高計算圖較復(fù)雜較低適合邊緣設(shè)備典型場景工業(yè)質(zhì)檢、醫(yī)療影像、遙感安防監(jiān)控、自動駕駛、移動端我的經(jīng)驗是如果場景對精度要求極高、對速度不敏感或者目標特別小、特別密優(yōu)先考慮兩階段路線。如果場景要求實時、部署在算力有限的設(shè)備上或者目標尺度適中、分布不太密集單階段路線更合適。當然最終還是要用你自己的數(shù)據(jù)跑一遍對比因為不同數(shù)據(jù)集上的表現(xiàn)差異可能很大。注意不要迷信論文里的精度指標。論文用的數(shù)據(jù)集和你的業(yè)務(wù)數(shù)據(jù)分布往往差別很大一定要在自己的驗證集上實測。3. 邊界框的表示與回歸檢測模型到底在輸出什么很多人用現(xiàn)成的檢測框架跑通了Demo但問到“模型輸出的那個框到底是怎么算出來的”就說不清楚了。這一塊如果理解不透后面做數(shù)據(jù)標注、損失函數(shù)調(diào)優(yōu)、后處理都會一頭霧水。我盡量用最直白的方式把這件事講透。3.1 四種坐標表示法及其轉(zhuǎn)換關(guān)系邊界框在計算機里的表示方式主要有四種不同框架和數(shù)據(jù)集用的格式可能不一樣這是新手最容易踩的坑之一。第一種是左上右下格式也就是記錄框的左上角坐標和右下角坐標通常寫成(x_min, y_min, x_max, y_max)。這種格式最直觀畫圖的時候直接用就行。第二種是中心寬高格式記錄框的中心點坐標和寬高寫成(cx, cy, w, h)。很多檢測模型在訓(xùn)練時用這種格式因為它對位置和尺度的建模更自然。第三種是歸一化格式把坐標值除以圖像寬高變成0到1之間的小數(shù)。這種格式的好處是跟圖像分辨率解耦換分辨率時不用改標注。第四種是兩點格式跟第一種類似但有時候用(x1, y1, x2, y2)表示注意區(qū)分坐標順序。它們之間的轉(zhuǎn)換關(guān)系其實很簡單但我在代碼里見過太多因為格式搞混導(dǎo)致框畫歪的案例。比如把(cx, cy, w, h)直接當成(x_min, y_min, x_max, y_max)用畫出來的框會偏到左上角去。建議在項目里統(tǒng)一用一種格式做內(nèi)部表示只在數(shù)據(jù)加載和結(jié)果輸出時做轉(zhuǎn)換。3.2 為什么模型不直接預(yù)測絕對坐標這是一個很關(guān)鍵的問題。如果讓模型直接回歸框的絕對像素坐標會遇到一個麻煩同一個物體在不同分辨率的圖像里絕對坐標完全不同。模型很難學(xué)到“這個物體長什么樣”和“它的絕對坐標是多少”之間的穩(wěn)定關(guān)系。所以主流做法是讓模型預(yù)測偏移量。具體來說模型先有一個“參考框”然后預(yù)測真實框相對于參考框的偏移。這個參考框可能來自錨框、特征圖上的網(wǎng)格點或者上一階段的候選區(qū)域。偏移量的表示通常是對中心點偏移做歸一化、對寬高做對數(shù)變換這樣可以讓不同尺度的目標在回歸時處于相近的數(shù)值范圍訓(xùn)練更穩(wěn)定。我打個比方這就像你告訴朋友“從你家出門左轉(zhuǎn)走兩百米再右轉(zhuǎn)”比直接說“到經(jīng)度116.4度緯度39.9度”更容易理解和執(zhí)行。偏移量就是那個“左轉(zhuǎn)走兩百米”的相對描述。3.3 錨框機制與無錨框機制的對比錨框是檢測模型里一個非常重要的概念。簡單說就是在特征圖的每個位置上預(yù)先設(shè)定若干個不同大小和長寬比的參考框模型基于這些參考框做偏移預(yù)測。這樣做的好處是給模型提供了先驗知識——比如在某個尺度上目標大概有多大。但錨框也帶來了一些問題。首先是超參數(shù)多要設(shè)定錨框的尺寸、長寬比、數(shù)量這些在不同數(shù)據(jù)集上需要調(diào)整。其次是正負樣本分配復(fù)雜要計算每個錨框和真實框的重疊度然后決定哪些算正樣本、哪些算負樣本。最后是計算量大錨框數(shù)量往往是特征圖位置數(shù)的好幾倍。無錨框機制則試圖繞開這些麻煩直接預(yù)測目標中心點或者關(guān)鍵點然后從中心點推導(dǎo)出邊界框。這種思路更簡潔超參數(shù)更少近年來在很多場景下表現(xiàn)也很好。我在一個目標尺度變化不大的項目里用過無錨框方案調(diào)參確實省心不少。但如果目標尺度跨度很大錨框機制的先驗仍然有優(yōu)勢。提示如果你用的是現(xiàn)成框架先搞清楚它默認用的是錨框還是無錨框這直接影響你后面調(diào)參的方向。4. 從標注到訓(xùn)練一個檢測項目的完整落地流程光懂原理不夠真正把項目跑起來是另一回事。我做過好幾個從零開始的檢測項目下面把完整流程拆開講包括每一步容易出問題的地方。4.1 數(shù)據(jù)標注質(zhì)量比數(shù)量更重要檢測項目的第一步永遠是數(shù)據(jù)。沒有標注數(shù)據(jù)再好的模型也學(xué)不出東西。標注的質(zhì)量直接決定模型的上限這一點怎么強調(diào)都不過分。標注工具的選擇上常用的有開源的標注軟件支持畫框、選類別、導(dǎo)出多種格式。我建議在標注之前先定好標注規(guī)范比如目標被遮擋多少比例就不標目標小于多少像素就不標邊界框是緊貼目標邊緣還是留一點余量這些規(guī)則如果不提前統(tǒng)一不同標注人員標出來的數(shù)據(jù)一致性會很差。我踩過的一個坑是早期項目里讓幾個人同時標注沒有統(tǒng)一規(guī)范結(jié)果有的人把整個貨架標成一個框有的人把貨架上每個商品單獨標框。模型學(xué)出來的結(jié)果就是一會兒檢測大區(qū)域、一會兒檢測小物體完全沒法用。后來重新定了規(guī)范、返工標注浪費了大量時間。還有一個經(jīng)驗是標注數(shù)量不是越多越好而是越均衡越好。如果某個類別的樣本特別多其他類別特別少模型會偏向多數(shù)類。我一般會保證每個類別至少有幾百個實例并且盡量覆蓋不同的尺度、光照、遮擋情況。4.2 數(shù)據(jù)增強讓小數(shù)據(jù)集也能訓(xùn)出好模型實際項目里標注數(shù)據(jù)往往不夠多。這時候數(shù)據(jù)增強就是救命稻草。常用的增強手段包括隨機裁剪、縮放、翻轉(zhuǎn)、旋轉(zhuǎn)、色彩抖動、馬賽克拼接等。但增強不是隨便加就行。比如你做的是交通標志檢測那水平翻轉(zhuǎn)可能沒問題但垂直翻轉(zhuǎn)就不合理了——現(xiàn)實中的交通標志不會倒過來。再比如你做的是工業(yè)質(zhì)檢色彩抖動可能把缺陷的顏色特征破壞掉反而降低效果。我通常的做法是先分析業(yè)務(wù)場景里目標可能出現(xiàn)的變化然后只加那些合理的變化。比如目標可能出現(xiàn)在不同光照下就加亮度對比度調(diào)整目標可能有不同尺度就加多尺度縮放目標可能被部分遮擋就加隨機遮擋。增強策略要跟實際場景對齊不能為了增強而增強。4.3 訓(xùn)練配置學(xué)習(xí)率、批次大小與迭代次數(shù)訓(xùn)練配置這塊我見過太多人直接用默認參數(shù)跑結(jié)果要么不收斂要么過擬合。這里說幾個關(guān)鍵點。學(xué)習(xí)率是最重要的超參數(shù)。太大容易震蕩不收斂太小收斂太慢。我一般先用一個較小的學(xué)習(xí)率跑幾百次迭代觀察損失下降情況然后再調(diào)整。如果用的是帶預(yù)訓(xùn)練權(quán)重的模型初始學(xué)習(xí)率可以設(shè)小一點因為權(quán)重已經(jīng)比較好了不需要大改。批次大小受顯存限制。如果顯存不夠可以用梯度累積來模擬大批次。批次大小會影響批歸一化的效果太小的話統(tǒng)計量不穩(wěn)定訓(xùn)練會抖動。迭代次數(shù)不是越多越好。我一般會在驗證集上監(jiān)控指標如果連續(xù)若干輪驗證指標不再提升就提前停止。否則模型會在訓(xùn)練集上過擬合驗證集上反而變差。4.4 模型評估m(xù)AP之外還要看什么提到檢測模型的評估大家第一反應(yīng)就是mAP。這個指標確實重要但它不是全部。我在實際項目里還會看以下幾個維度。第一是各類別的AP。整體mAP高不代表每個類別都好。有可能多數(shù)類AP很高少數(shù)類AP很低但被平均值掩蓋了。一定要把每個類別的指標單獨拉出來看。第二是不同尺度目標的召回率。把驗證集里的目標按面積分成小、中、大三檔分別看召回率。如果小目標召回率明顯低說明模型對小目標處理不好可能需要調(diào)整特征金字塔或者增加小目標增強。第三是誤檢和漏檢的具體案例。指標只是數(shù)字真正定位問題還是要看具體圖片。我習(xí)慣把誤檢和漏檢的圖片單獨導(dǎo)出來看分析是標注問題、模型問題還是場景本身太難。第四是推理速度。在業(yè)務(wù)場景里模型跑不動等于沒用。要測實際部署環(huán)境下的幀率包括預(yù)處理和后處理的時間。注意評估一定要用獨立的驗證集不能用訓(xùn)練集。訓(xùn)練集上的指標再高也不能說明模型泛化能力。5. 部署與優(yōu)化讓檢測模型真正跑起來模型訓(xùn)練完只是第一步真正部署到業(yè)務(wù)環(huán)境里還有一堆事要處理。這一塊往往是學(xué)術(shù)研究和工程落地之間差距最大的地方。5.1 推理引擎的選擇與模型轉(zhuǎn)換訓(xùn)練框架和推理框架往往是兩回事。訓(xùn)練可能用的是某個深度學(xué)習(xí)框架但部署時為了性能通常會把模型轉(zhuǎn)換成專門的推理格式然后用對應(yīng)的推理引擎來跑。常見的推理引擎各有特點。有的對服務(wù)器端優(yōu)化好有的對邊緣設(shè)備支持好有的對特定硬件有加速。選擇的時候要考慮你的部署硬件是什么、是否需要跨平臺、社區(qū)支持是否活躍。模型轉(zhuǎn)換過程中最容易出問題的是算子不支持。訓(xùn)練時用的某些操作推理引擎可能沒有實現(xiàn)轉(zhuǎn)換就會失敗。我的經(jīng)驗是在模型設(shè)計階段就盡量用主流算子避免用太新的或者太冷門的操作。如果非用不可就要準備好自己實現(xiàn)或者找替代方案。5.2 量化與剪枝在精度和速度之間找平衡如果模型在目標設(shè)備上跑得太慢可以考慮量化和剪枝。量化是把模型的權(quán)重和激活值從高精度浮點數(shù)轉(zhuǎn)換成低精度表示比如8位整數(shù)。這樣做的好處是模型體積變小、內(nèi)存占用降低、推理速度提升。但量化會帶來精度損失尤其是對檢測這種對位置敏感的任務(wù)量化后的框可能會有偏移。我一般會用量化感知訓(xùn)練來緩解這個問題就是在訓(xùn)練階段就模擬量化的效果讓模型提前適應(yīng)。剪枝是去掉模型中不重要的連接或通道減少計算量。結(jié)構(gòu)化剪枝可以直接減少卷積核數(shù)量對速度提升更明顯。但剪枝后通常需要微調(diào)否則精度掉得厲害。我的建議是先用量化因為實現(xiàn)簡單、收益直接。如果還不夠快再考慮剪枝。兩者可以疊加使用但要注意疊加后的精度損失。5.3 后處理非極大值抑制的坑與調(diào)參檢測模型輸出的原始結(jié)果里同一個目標往往會有多個重疊的框。非極大值抑制就是用來去掉冗余框的按置信度排序保留最高的然后去掉跟它重疊度超過閾值的其他框。這個重疊度閾值是個關(guān)鍵參數(shù)。設(shè)得太高冗余框去不干凈同一個目標會出現(xiàn)好幾個框設(shè)得太低相鄰的兩個目標可能被誤刪一個。我在密集場景里調(diào)這個參數(shù)調(diào)了很久最后發(fā)現(xiàn)沒有萬能值只能根據(jù)業(yè)務(wù)場景的實際密度來定。還有一個坑是當兩個同類目標靠得很近時非極大值抑制很容易把其中一個刪掉。后來我用了改進的軟化版本不是直接刪除而是根據(jù)重疊度降低置信度效果好了不少。5.4 實際部署中的性能瓶頸排查部署之后如果發(fā)現(xiàn)速度不達標不要急著換模型先排查瓶頸在哪里。我一般按這個順序查第一步測預(yù)處理時間。圖像解碼、縮放、歸一化這些操作有時候比模型推理還慢尤其是高分辨率圖像。第二步測模型推理時間。這是核心計算部分用推理引擎的profiling工具看每一層的耗時。第三步測后處理時間。非極大值抑制在框很多的時候會很慢可以考慮用GPU加速或者優(yōu)化實現(xiàn)。第四步看數(shù)據(jù)傳輸時間。如果數(shù)據(jù)在CPU和GPU之間來回拷貝或者通過網(wǎng)絡(luò)傳輸這部分開銷可能很大。我遇到過一個案例模型推理只花了10毫秒但圖像解碼花了30毫秒整體幀率被預(yù)處理拖垮了。后來換了更快的解碼庫幀率直接翻倍。所以一定要分段測不要憑感覺猜。6. 那些只有踩過才知道的實戰(zhàn)經(jīng)驗最后這部分我想分享一些在文檔和論文里不太會寫、但實際項目中非常關(guān)鍵的經(jīng)驗。這些都是我在多個項目里踩坑踩出來的希望能幫你少走彎路。6.1 小目標檢測為什么難怎么破小目標檢測是檢測領(lǐng)域公認的難點。難在哪里一是小目標在圖像里占的像素少經(jīng)過多次下采樣后特征幾乎消失了二是小目標的標注本身就不容易邊界框稍微偏幾個像素重疊度就掉很多三是小目標和背景的區(qū)分度低模型容易漏檢。我試過幾種有效的策略。第一種是提高輸入分辨率讓目標在輸入圖像里占更多像素。但這會增加計算量要權(quán)衡。第二種是用特征金字塔把淺層的高分辨率特征和深層的語義特征融合起來讓模型既能看到細節(jié)又能理解語義。第三種是專門的小目標增強比如在訓(xùn)練時把小目標復(fù)制粘貼到圖像的不同位置增加小目標的樣本量。第四種是調(diào)整錨框尺寸讓錨框跟實際目標的尺度分布匹配。這幾種方法可以組合使用。我在一個遙感圖像項目里同時用了提高分辨率和特征金字塔小目標召回率提升了將近二十個百分點。6.2 類別不平衡與難例挖掘的實操技巧實際業(yè)務(wù)數(shù)據(jù)里類別不平衡是常態(tài)。有的類別樣本成百上千有的類別只有幾十個。模型訓(xùn)練時會偏向多數(shù)類少數(shù)類檢測效果很差。我常用的應(yīng)對方法有幾種。第一種是重采樣對少數(shù)類過采樣或者對多數(shù)類欠采樣。但過采樣容易導(dǎo)致過擬合欠采樣會丟失信息要謹慎使用。第二種是損失加權(quán)給少數(shù)類的損失更高權(quán)重讓模型更關(guān)注少數(shù)類。第三種是難例挖掘在訓(xùn)練過程中找出模型預(yù)測錯的樣本重點訓(xùn)練這些難例。難例挖掘這塊我一般會在訓(xùn)練幾個輪次后用當前模型在驗證集上跑一遍把漏檢和誤檢的樣本挑出來人工檢查是標注問題還是模型問題。如果是標注問題就修正標注如果是模型問題就把這些樣本加入訓(xùn)練集重點訓(xùn)練。這個迭代過程往往比單純調(diào)模型結(jié)構(gòu)更有效。6.3 模型更新與數(shù)據(jù)閉環(huán)的工程實踐檢測模型上線不是終點而是起點。業(yè)務(wù)場景會變化數(shù)據(jù)分布會漂移模型需要持續(xù)更新。建立一個數(shù)據(jù)閉環(huán)非常重要。我的做法是在線上推理時把模型置信度處于中間區(qū)間的樣本、以及用戶反饋有問題的樣本自動保存下來。定期對這些樣本做人工審核和標注然后加入訓(xùn)練集重新訓(xùn)練模型。這樣模型就能不斷適應(yīng)新的數(shù)據(jù)分布。這個閉環(huán)的關(guān)鍵是自動化。如果全靠人工去收集和篩選樣本成本太高很難持續(xù)。我一般會寫腳本自動完成樣本收集、去重、初步篩選人工只需要做最后的審核和標注。6.4 常見問題速查表為了方便你快速定位問題我把檢測項目里最常見的問題和排查方向整理成了表格現(xiàn)象可能原因排查方向訓(xùn)練損失不下降學(xué)習(xí)率過大或過小、數(shù)據(jù)標注錯誤檢查學(xué)習(xí)率、可視化標注框驗證集指標遠低于訓(xùn)練集過擬合、數(shù)據(jù)分布不一致增加增強、檢查驗證集來源小目標漏檢嚴重特征分辨率不足、錨框不匹配提高輸入分辨率、調(diào)整錨框密集目標漏檢非極大值抑制閾值過低調(diào)高閾值、用軟化版本推理速度慢預(yù)處理瓶頸、模型過大分段測時、量化剪枝框位置偏移坐標格式轉(zhuǎn)換錯誤檢查標注和輸出的格式某些類別效果差類別不平衡損失加權(quán)、重采樣、難例挖掘這張表是我自己排查問題時常用的基本上覆蓋了八成以上的常見情況。遇到問題先對照這張表過一遍能省不少時間。6.5 給不同階段從業(yè)者的建議如果你是剛?cè)腴T我的建議是先把一個完整的流程跑通從標注幾十張圖開始用一個成熟的框架訓(xùn)練一個小模型然后部署起來看到實際效果。不要一開始就追求SOTA先把鏈路打通理解每個環(huán)節(jié)在干什么。如果你已經(jīng)有一定經(jīng)驗建議深入兩個方向一是數(shù)據(jù)側(cè)研究怎么用更少的數(shù)據(jù)訓(xùn)出更好的模型怎么做數(shù)據(jù)增強和難例挖掘二是部署側(cè)研究怎么在有限算力下把模型跑得更快更穩(wěn)。這兩個方向在實際工作中價值最大。如果你在做團隊項目建議盡早建立標注規(guī)范和評估標準。這兩件事看起來不起眼但如果沒有后面返工的成本會非常高。我見過太多項目因為標注不一致導(dǎo)致模型反復(fù)重訓(xùn)浪費了大量時間和算力。目標檢測和定位這個領(lǐng)域理論在快速演進但工程落地的核心邏輯其實很穩(wěn)定數(shù)據(jù)質(zhì)量決定上限模型選型決定效率部署優(yōu)化決定能不能真正用起來。把這三件事都做好項目基本就不會差。