:從數(shù)據(jù)標注到邊緣部署全流程)
“跌倒檢測”這四個字翻譯成兩種完全不同的語言。在普通人眼里它是關懷與風險是家里老人摔倒時的驚慌在機器視覺工程師眼里它是框、是類別、是置信度、是每秒多少幀的推理結果。YOLOv8 順手把這兩套語言縫合到一起主干網(wǎng)絡負責提特征檢測頭把特征轉成“人跌倒”這個結論。這篇實戰(zhàn)記錄覆蓋了從我拿到需求到模型上線部署的全過程數(shù)據(jù)標注、模型訓練、導出部署、真實場景接入。前前后后滿打滿算調了兩個多月項目本身并不復雜但坑全埋在細節(jié)里其中部署和誤報處理保守估計吃掉了八成的時間。適合正在做監(jiān)控場景檢測、或者想給老人的居住空間加一道“自動預警”的開發(fā)者當作一份可以直接抄作業(yè)的流程參考。1. 整體設計復盤從場景需求到技術選型1.1 機器眼里的“跌倒”到底長什么樣先把“跌倒”這件事在計算機視覺里的樣子說清楚。二維圖像里的跌倒本質是“人的姿態(tài)出現(xiàn)異?!弊畛R姷漠嬅嫣卣魇侨梭w沿著地面的橫向分布人體框的寬明顯大于高或者人體區(qū)域整體呈現(xiàn)斜躺、蜷縮的形態(tài)同時相對靜止或只存在輕微移動。簡單說模型學的不是一個物理動作而是一組由“目標框寬高比變化”“目標輪廓分布”和“幀間位置變化”共同決定的圖像模式。這個定義在立項時非常重要因為它直接決定了我們用檢測模型而不是姿態(tài)模型。跌倒瞬間動作很快但從幀畫面看跌倒后的靜止姿態(tài)才是最容易穩(wěn)定捕捉的信號。檢測模型天然就是“找目標、給邊界框”只要框能將跌倒后的躺倒姿態(tài)框得足夠穩(wěn)后臺上位機再配合連續(xù)幾幀的框位置變化就能很好地完成“跌倒判定 告警觸發(fā)”這件業(yè)務任務。另一方面真實場景的物聯(lián)網(wǎng)監(jiān)控是常亮的攝像頭視角多為斜俯視或平視畫面里人的尺度會變化、光照會變、遮擋會出現(xiàn)。這些都對模型的泛化能力提出了比實驗室測試高得多的要求所以整個項目我刻意把“場景復雜”當成第一設計約束寧可犧牲一點實驗室精度也要保證現(xiàn)場環(huán)境的穩(wěn)定性。1.2 模型選型為什么用 YOLOv8而不是姿態(tài)估計或傳統(tǒng)視覺先說結論YOLOv8在“跌倒檢測”這件事上是一種權衡之后更偏向工程落地的選擇。項目初期我也認真評估過另兩條技術路線。第一條是人體姿態(tài)估計例如基于關鍵點的方案。姿態(tài)估計能給出更精細的“人是否倒地”判斷通過計算肩膀和髖關節(jié)連線與地面的夾角來判斷倒地狀態(tài)。這條路線識別姿態(tài)確實更優(yōu)雅但問題是實時性開銷大一張圖上要同時跑目標檢測和關鍵點回歸對邊緣設備的算力壓力陡增數(shù)據(jù)標注成本也高需要給每個人逐幀標注十幾個關鍵點最關鍵的是在相機斜俯視場景里部分關鍵點被遮擋的概率非常高一旦腳部或肩部關鍵點丟失角度計算立刻不可靠誤報反而會增多。第二條是傳統(tǒng)視覺方案比如背景建模配合輪廓分析。這類方案在光線固定、背景純凈的小范圍實驗里表現(xiàn)尚可但在養(yǎng)老機構或家庭環(huán)境下幾乎不可用。窗簾飄動、光線漸變、寵物移動都會觸發(fā)前景分割錯誤誤報率高到完全沒有實用價值。下面這張表是我當初做選型時整理的按工程落地角度來評分技術路線實時性標注成本部署難度復雜場景魯棒性誤報率傳統(tǒng)背景差分高低低很差高姿態(tài)估計中高中高受遮擋影響大中YOLOv8檢測高中低較好控制后較低其實單看處理單幀圖像姿態(tài)估計也沒慢到不能用真正的問題出在工程鏈路上姿態(tài)估計后續(xù)還要串一套角度判斷邏輯而這套邏輯在真實環(huán)境里對攝像頭安裝高度、角度太敏感。YOLOv8則簡單得多一個檢測頭直接框出人所在區(qū)域要不要接分類邏輯、要不要接跟蹤都可以在部署階段靈活加。所以我最終選定YOLOv8核心思路就是“把復雜判斷推遲到后處理讓模型干自己最擅長的事”。1.3 項目技術棧與整體流程這個項目的技術棧很主流常規(guī)開發(fā)環(huán)境下幾乎可以一鍵復現(xiàn)模型框架YOLOv8采用官方預訓練權重做微調而不是從頭訓練。從頭訓練在數(shù)據(jù)量上不現(xiàn)實微調則對數(shù)據(jù)需求友善得多。訓練環(huán)境單張消費級顯卡即可顯存16G上下完全夠用。部署環(huán)境邊緣計算盒子同時兼容CPU推理作為降級方案。業(yè)務外圍視頻流接入用RTSP數(shù)據(jù)處理用Python腳本實現(xiàn)“檢測結果 連續(xù)幀狀態(tài)機”的跌倒判定邏輯??梢暬唵巫隽艘粋€Web告警后臺用于展示報警截圖和現(xiàn)場視頻回放。整體流程可以拆成五段數(shù)據(jù)準備與標注模型訓練與評估模型導出邊緣部署與環(huán)境適配告警業(yè)務邏輯聯(lián)調。每一段都有獨立的坑但最花時間的第二段和第五段。接下來我一條一條拆開講。2. 數(shù)據(jù)準備與標注決定模型上限的關鍵環(huán)節(jié)2.1 數(shù)據(jù)從哪來公開數(shù)據(jù)與自采數(shù)據(jù)相結合模型效果的天花板不是網(wǎng)絡結構而是數(shù)據(jù)。YOLOv8的骨干網(wǎng)絡足夠強但喂進去的數(shù)據(jù)如果沒有覆蓋真實場景的各種姿勢、光照、遮擋情況訓練完照樣在監(jiān)控畫面里瘋狂誤報。我的數(shù)據(jù)源分成三塊第一塊是公開數(shù)據(jù)集。網(wǎng)上能搜到的跌倒檢測開源數(shù)據(jù)集我收集了三四套把里面的圖片全部抽取出來看了一遍。這一步很枯燥但必須做因為很多數(shù)據(jù)集的標注質量參差不齊有的把“蹲下?lián)鞏|西”也標成了跌倒有的標注框極其粗糙導致目標特征學習混亂。我最終只篩選出圖像質量清晰、跌倒姿態(tài)完整的圖片摔跤、坐倒、滑倒、暈厥倒地這幾類姿態(tài)盡量都要覆蓋。第二塊是自采模擬數(shù)據(jù)。我找了幾個同事在樣板間里模擬跌倒動作用不同角度的相機錄制視頻然后抽幀保存。不要小看自采數(shù)據(jù)它是最能貼近真實部署場景的一環(huán)因為公開數(shù)據(jù)集里的機位跟你的現(xiàn)場機位永遠存在差異。第三塊是真實監(jiān)控數(shù)據(jù)。這部分在涉及隱私的前提下只截取了場景中無人的背景幀作為負樣本或者經(jīng)充分脫敏后才使用。同時我會在無人的背景幀里混入一部分作為負樣本讓模型知道“當前畫面沒有目標”這對降低誤報有奇效。綜合下來訓練集大概有12000多張圖其中正樣本包含跌倒和負樣本正常站立/行走/無人的背景的比例控制在大概1比3。一開始我是1比1發(fā)現(xiàn)模型雖然對跌倒敏感但也特別容易把掃地機器人誤報成人后來擴大負樣本比例誤報明顯下降。2.2 類別定義與“半跌倒”邊界處理標注之前先定類別這一步比多數(shù)人想象的更容易影響最終效果。我一開始只標了兩類人類person和跌倒fall。邏輯是模型先檢出人再判斷人是否跌倒。但很快發(fā)現(xiàn)問題監(jiān)控畫面里人倒下的過程可能只有零點幾秒中間幀的姿態(tài)既不是站也不是躺模型在這一兩幀里會猶豫。更麻煩的是蹲下系鞋帶、彎腰撿東西、坐在地上休息這些姿態(tài)跟跌倒后的姿態(tài)實在太像了。最終我調整為三個類別站立/行走常規(guī)的直立或運動狀態(tài)。蹲坐/彎腰過渡狀態(tài)、低姿態(tài)。跌倒/躺倒人體大面積貼近地面且姿態(tài)異常。這三類并不是業(yè)務上的最終分類而是為了把“模糊地帶”從模型層面里分出來。模型只負責給出形態(tài)判斷至于“蹲坐”算不算危險完全交給后處理邏輯結合持續(xù)時間來決定。這比讓模型強行二分類要穩(wěn)得多。舉個實際例子老人只是在床邊坐下來緩一緩畫面里的姿態(tài)跟跌倒非常接近如果沒有這個過渡類別系統(tǒng)大概率會誤報加了之后模型會把這種情況歸到蹲坐后處理邏輯再判斷是否連續(xù)若干秒沒有恢復直立才決定要不要告警。2.3 標注工具與標注易錯點標注工具我用了開源的標注軟件支持自動保存和快捷鍵操作在批量標注效率上有肉眼可見的提升。下面幾個易錯點都是真實踩過的坑標注框不要刻意貼著人體外側。檢測框稍微包含一點背景反而有利于模型學到相對完整的輪廓特征。太緊的框遇到人體部分被遮擋時容易導致特征丟失。遮擋處理要統(tǒng)一規(guī)則。人體被桌椅遮擋了大約三分之一時也要正常標注完整框。不要因為看不見就只標可見部分那樣會讓模型學習到殘缺特征。人體很小但清晰的圖片不要跳過。監(jiān)控畫面里經(jīng)常出現(xiàn)遠景小目標這種圖數(shù)量少但價值高。YOLOv8本身就存在小目標檢測的弱點標注時保留小目標樣本有利于后續(xù)模型針對性訓練。連續(xù)幀不要機械地全部抽取。跌倒動作的視頻抽幀時盡量隔幾幀抽一張保證畫面多樣性否則連續(xù)相似幀會讓模型過擬合于某一特定動作片段驗證集上表現(xiàn)卻依然虛高。另外每批數(shù)據(jù)標完以后我都會用第二個人去抽檢大概10%的標注結果重點看邊界框和類別是否有明顯錯誤。AI訓練最怕的就是“臟數(shù)據(jù)進、臟模型出”發(fā)現(xiàn)問題時返工成本遠高于訓練時間成本。2.4 數(shù)據(jù)增強不換模型也能提點YOLOv8自帶豐富的數(shù)據(jù)增強策略訓練時開啟默認增強就夠用但有幾個參數(shù)值得單獨調。色調、飽和度、亮度監(jiān)控畫面里色溫差異很大白天偏冷、夜間偏暖所以我把HSV增強的幅度比默認值調大了大概50%模擬不同時間段的畫面風格。隨機透視與平移這些模擬攝像機安裝角度小范圍變化能提升模型對不同機位的適應能力。幅度不宜過大否則會讓目標形變失真。Mosaic增強這幅圖是YOLO系列的老朋友多圖拼接能讓模型學會在復雜背景下辨別目標。不過最后一二十個epoch我會把它關掉在這一階段使用Mosaic會導致訓練特征分布與實際場景偏差具體做法在后面訓練部分展開說。有一點必須提醒數(shù)據(jù)增強不是無腦拉滿增強過猛會讓模型學到虛假紋理。我的經(jīng)驗是先在默認參數(shù)下跑一個短期訓練看驗證集指標再小幅調整增強參數(shù)對比幾次后取穩(wěn)定上升的方向小步嘗試比一次性大改更容易定位問題。3. 訓練實戰(zhàn)配置、過程與評估3.1 訓練環(huán)境與顯存占用訓練環(huán)境非常平民化。操作系統(tǒng)是Ubuntu深度學習框架PyTorch顯卡用的是單張普通游戲顯卡。別被一些教程嚇住以為非得四卡起步YOLOv8n和YOLOv8s這類模型在消費級顯卡上完全可以訓。顯存占用主要取決于圖像分辨率、batch size和模型寬度。我把輸入分辨率設為640×640模型選的是YOLOv8n和YOLOv8s各訓了一版。YOLOv8s在精度上比n版低一點二者差異其實沒有想象中大但YOLOv8s的推理負載和顯存占用明顯更高。考慮到最終要上邊緣設備我選擇了YOLOv8s作為主干方案n版作為備選算是一個精度和延遲之間的折中。一個實用技巧訓練時顯存不夠優(yōu)先調小batch size不要一上來就改圖像分辨率。分辨率降低會讓小目標漏檢率直線上升這個代價比降低batch size嚴重得多。安裝環(huán)境只需要執(zhí)行幾條命令建議用虛擬環(huán)境隔離。項目里我用的是Python 3.10版本裝好Ultralytics后再裝一張基礎依賴清單避免后續(xù)額外擴展時版本打架。3.2 訓練參數(shù)逐項解讀YOLOv8的官方命令行工具已經(jīng)封裝得很順手但參數(shù)含義必須吃透不然訓練跑起來出了問題都不知道去哪找。我用的是下面這份基礎配置來訓練YOLOv8syolo train \ modelyolov8s.pt \ datadataset.yaml \ epochs120 \ imgsz640 \ batch16 \ optimizerSGD \ lr00.01 \ lrf0.01 \ cos_lrTrue \ patience20 \ device0逐項解釋我調整過的關鍵參數(shù)model參數(shù)用的是yolov8s.pt預訓練權重這是在COCO數(shù)據(jù)集上訓好的通用模型。風吹日曬的YOLOv8已經(jīng)在通用目標上學會了很好的特征表達我們只學“跌倒”這個新任務即可。epochs沒有設很大120輪是因為數(shù)據(jù)量本身夠用過度訓練反而開始過擬合。我觀察過訓練日志大約在80輪之后驗證集曲線就基本進入平臺期120輪已經(jīng)足夠收斂多出來的輪數(shù)主要為了保險。optimizer用SGD而不用AdamYOLOv8官方默認也推薦SGD。Adam前期收斂快但后期容易在驗證集上收不干凈SGD配合余弦退火學習率整體收斂過程更穩(wěn)最終精度通常略高。lr0、lrf和cos_lr組合成一套余弦退火策略學習率從0.01慢慢降到0.0001。這種曲線比固定學習率更平滑特別是后期微調階段不容易震蕩。patience20表示如果驗證集指標連續(xù)20個epoch沒有改善訓練會自動停止防止空轉浪費時間。數(shù)據(jù)集配置文件是YAML格式里面定義訓練驗證路徑和類別名。這里有一個細節(jié)路徑最好用絕對路徑或者至少確保相對路徑是相對于配置文件所在目錄的我就在這上面栽過跟頭數(shù)據(jù)集移動目錄后一直報找不到文件后來仔細看路徑拼接規(guī)則才發(fā)現(xiàn)問題。3.3 訓練過程與中斷恢復訓練過程不是一鍵執(zhí)行就完事我基本每隔一小時會看一眼曲線。主要看兩個地方候選值的變化趨勢和訓練集損失。正常情況下推理損失和分類損失都應該是連續(xù)下降的驗證集mAP曲線呈現(xiàn)波浪式上升。如果發(fā)現(xiàn)候選值已經(jīng)掉頭持續(xù)下降幾個epoch而訓練損失還在降這就是典型的過擬合信號需要對模型進行正則化加強或者提前停止訓練。另外如果訓練開始階段mAP還是零不用慌前幾個epoch只是讓模型適應新數(shù)據(jù)一般到10到15個epoch后曲線會突然開始抬頭。訓練過程中途意外斷電也不想重新來YOLOv8支持斷點續(xù)訓。我建議每5到10個epoch保留一個權重文件這里給出的是模型自動保存的策略。萬一中斷只要找到最近的一個權重文件直接續(xù)訓——一般從驗證集指標較高的那個checkpoint繼續(xù)能得到一個相對更穩(wěn)的收斂結果。另一個心得是訓練階段要學會“看日志找線索”。日志里除了正常顯示mAP和loss之外還會顯示每個類別的精確率、召回率。如果使用“跌倒/躺倒”類別的召回率明顯偏低大概率是正樣本不夠模型把跌倒漏成了背景若精確率偏低大概率是負樣本不夠或者容易混淆的站姿過多模型過于激進地把普通姿態(tài)判定為跌倒。定位到方向后再去補數(shù)據(jù)比盲目調參高效得多。3.4 評估指標與權重版本選擇評估模型時不能只看一張圖上“看起來準不準”那只是主觀感受。我用下面這套指標組合來客觀評價mAP50初始驗證時的主要參考。它在IoU為0.5的寬松標準下計算所有類別的平均精度。這個指標比較高說明模型基本能框住目標但邊界框與真實框有較大浮動也能接受。mAP50-95更嚴格的目標檢測綜合指標。它對邊界框位置精度的要求更高。如果這個指標明顯偏低說明模型的坐標回歸能力還不足檢測框經(jīng)常偏移。精確率與召回率我分別統(tǒng)計了“跌倒/躺倒”這一類別的精度和召回率。精確率要的是減誤報召回率要的是減漏報。業(yè)務場景里漏報更嚴重所以我的方向是“保召回率精確率通過后處理兜底”。訓練完成后官方會輸出best.pt和last.pt兩個權重文件。不要直接把last.pt拿去部署它極大概率不是驗證集指標最高的版本。best.pt才是訓練結束時驗證集表現(xiàn)最好的那個checkpoint。后續(xù)如果要調整訓練數(shù)據(jù)或參數(shù)建議在best.pt基礎上繼續(xù)而不是從頭再來。4. 部署與性能優(yōu)化從權重到邊緣設備4.1 先做精度確認再導出推理格式模型訓練完先別急著打包上設備先在本地測試集上做一輪推理效果巡檢把那些典型誤報圖、漏報圖打印出來看一下。我通常會把置信度閾值調到0.25把測試集里所有預測結果疊加到原圖上檢查模型在真實場景里的表現(xiàn)。這一步的產(chǎn)出是“可信度結論”確定閾值高一點還是低一點是決定后續(xù)告警敏感度的基礎。確認精度在可接受范圍后再把PyTorch模型導出為推理引擎格式。我部署的邊緣盒子支持TensorRT所以導出命令是得用halfTrue也就是FP16精度。這一步能把推理速度提升一個量級后面詳細說。yolo export modelruns/train/exp/weights/best.pt formatengine imgsz640 halfTrue device0一些模型在導出為TensorRT引擎時會有精度損失所以導出后我還會跑一遍同等測試集把mAP對比一遍。如果出現(xiàn)明顯下降就回頭檢查訓練盒子上預處理器和模型輸入尺寸的配置是否符合導出時的要求。4.2 邊緣設備部署方案我部署的目標設備是一臺低功耗邊緣計算盒子算力不高但勝在便宜、穩(wěn)定、無風扇設計適合安裝在天花板或走廊角落。這類設備的系統(tǒng)環(huán)境是精簡過的LinuxPython環(huán)境和桌面環(huán)境都折騰得比較徹底因此部署策略是這樣的主體推理代碼用Python寫調用TensorRT的Python綁定接口加載engine文件。視頻流讀取用OpenCV的RTSP拉流接口把攝像頭的網(wǎng)絡視頻流轉換為幀數(shù)據(jù)。推理輸出的是張量需要后處理解析出檢測框、類別、置信度然后傳給業(yè)務邏輯。這里有個非常關鍵的部署細節(jié)攝像頭出來的視頻分辨率并不一定是640×640而模型輸入要求固定的640×640。所以推理前必須做圖像縮放與填充。我維護了一個“等比例縮放灰邊填充”的函數(shù)保證圖像內容不變形同時把實際縮放比例記錄下來。檢測框坐標從這個640×640的坐標系轉換回原始圖像分辨率時必須利用這個縮放比例反向換算否則后面的框畫出來所有位置都偏移。很多教程這一步是放過去的但實際部署時畫框位置錯位、告警截圖區(qū)域錯誤十個里面七個都是坐標變換沒做對。4.3 推理速度優(yōu)化不只是快YOLOv8s 640輸入 TensorRT FP16在邊緣盒子上的推理速度大約能到30毫秒一幀也就是接近30FPS。如果還需要進一步壓榨性能可以依次嘗試這幾招降低輸入分辨率。640降到576或512速度立馬上來但對小目標的影響也最直接。如果你的攝像頭視角里人比較大這個方案很劃算。改用YOLOv8n模型。n版參數(shù)量大概是s版的四分之一推理速度快很多代價是精度下降。如果部署端算力實在太弱n版是最后的退路。減小檢測頭輸出規(guī)模。對只有一兩個類別的場景輸出層可以裁剪但這種改動需要重新訓練和導出操作繁瑣一般不到最后不用。推理耗時之外整個鏈路的耗時同樣不能忽視。RTSP拉流本身就有延遲加上多路視頻并發(fā)時CPU參與編解碼的開銷模型推理只占全線耗時的三分之一。如果要做多路視頻優(yōu)先給每路視頻分配一個獨立拉流線程推理再統(tǒng)一回收到一個線程里避免多線程并發(fā)推理擠爆GPU。4.4 后處理業(yè)務邏輯從“檢出跌倒”到“觸發(fā)告警”模型輸出的只是“這一幀里有人跌倒”離業(yè)務需求的“向后臺發(fā)出告警”還差三層處理第一層是置信度閾值。我最終把置信度閾值定到了0.45。閾值太低了誤報框全漏進來后臺會被淹沒閾值太高了低質量畫面里的真實跌倒又可能漏檢。這個值沒有標準答案建議在自己的測試集上畫出一個準確率-召回率曲線再結合業(yè)務對誤報的容忍度拍板。第二層是連續(xù)幀確認。單幀檢出不足以采信因為畫面噪聲和運動模糊會偶發(fā)產(chǎn)生假陽性。我的做法是設一個連續(xù)幀狀態(tài)機檢測到fall后開始計數(shù)連續(xù)3幀都檢出fall才進入預備告警狀態(tài)如果當中有一幀顯示站立或蹲坐計數(shù)清零。這層邏輯把很多偶發(fā)誤報直接過濾掉。第三層是停留時間判斷。跌倒后如果人馬上站起來不需要告警只有跌倒狀態(tài)持續(xù)超過比如10秒才觸發(fā)緊急告警。這樣處理能明顯減少“假跌倒”造成的無效告警。判斷時長需要跟現(xiàn)場客戶確認有的場景希望更敏捷有的場景害怕打擾這段參數(shù)最好做成配置項而不是寫死。業(yè)務后臺方面我只是做了一個非常輕量的告警服務接收告警事件保存當前幀截圖為證據(jù)圖同時把事件推送至管理人員。告警截圖最好存下來因為它是事后追溯的重要憑證。5. 落地避坑誤報、漏報與現(xiàn)場問題排查5.1 真實場景里的典型誤報這個項目里最費精力的不是訓練而是現(xiàn)場反復出現(xiàn)的誤報問題。挑三個最有代表性的講第一個是影子誤報。傍晚陽光斜射人的影子被拉得很長影子在地面上的輪廓在某些幀里會被模型當成人形目標尤其當影子與本體分離時會檢出一個看起來像躺在地面的“人”。解決思路是盡量避免朝向窗戶的機位同時訓練數(shù)據(jù)里加入大量含有影子的負樣本。還有個后處理補救辦法利用影子目標運動特征與真實目標的差異進行過濾但性價比不如前兩者。第二個是椅子和沙發(fā)誤報。躺進沙發(fā)里玩手機的人遠看姿態(tài)就是“人體橫向分布”和跌倒寫征非常接近。單靠視覺幾乎無解只能靠后處理狀態(tài)機加“停留時間”來抑制短時間的躺臥不會觸發(fā)告警。真遇到長時間賴在沙發(fā)上不動那就只能承認這是系統(tǒng)的合理告警嚴格說也不能算誤報。第三個是相機抖動與夜間噪聲。老式攝像頭或網(wǎng)絡傳輸不穩(wěn)定時視頻流會自動丟幀偶爾會出現(xiàn)畫面跳動的瞬間導致檢測框突然抖動甚至閃現(xiàn)。我在后處理里加了一個檢測框最大位移限制如果下一幀框的位置相比上一幀發(fā)生超過畫面寬度一半的跳變就判定為跟蹤異常并忽略該幀。5.2 排查與調優(yōu)速查表現(xiàn)場出現(xiàn)問題最有用的是一張能快速對照排查的表。下面是我自己整理的現(xiàn)象可能原因處理手段漏報真實跌倒攝像頭視角過高或過低調整安裝角度補充對應視角數(shù)據(jù)漏報真實跌倒人體在畫面中過小降低輸入分辨率或使用更高分辨率輸入誤報影子/倒影訓練集缺少對應負樣本收集影子樣本加入負樣本集誤報蹲坐/躺沙發(fā)類別定義過粗增加過渡類別后處理加停留判斷檢出結果閃爍抖動單幀置信度過低提高置信度閾值增加連續(xù)幀確認檢測框位置偏移坐標變換未還原檢查縮放系數(shù)和灰邊偏移量實機推理太慢并發(fā)推理阻塞分流線程與推理線程分離夜間誤報增多光線過暗導致噪聲增大補光或切換夜間模式調整閾值先分清楚問題屬于“模型層”還是“工程層”。模型層問題一般表現(xiàn)為對真實場景數(shù)據(jù)不敏感工程層問題一般表現(xiàn)為坐標錯誤、幀率不穩(wěn)、告警邏輯缺陷。判斷方向對了再動手省時間。5.3 效果復盤與后續(xù)擴展方向這個項目做下來最終實機表現(xiàn)讓我比較滿意。線上測試統(tǒng)計了大概一周跌倒檢測的召回率在測試集上達到92%以上誤報率控制在約一天一次的水平而每次誤報集中出現(xiàn)在下班時段的光影劇烈變化期間。老人照護場景的反倒是“漏報”的代價更大所以我對召回率的容忍度要高于誤報率。后續(xù)如果繼續(xù)迭代我會優(yōu)先做三件事一是時序信息引入。給模型輸入連續(xù)幾幀的差分信息或直接接一條輕量級時序模塊讓跌倒動作本身的速度特征參與判斷甩開靜態(tài)姿態(tài)死磕蹲坐類問題的老路。二是多目融合。單攝像頭遮擋是硬傷可以用兩個攝像頭從不同角度覆蓋同一區(qū)域兩個通道的一致判斷能顯著降低遮擋導致的漏報。三是端側告警分級。把跌倒檢測與睡眠監(jiān)測、久坐提醒、區(qū)域入侵檢測結合起來讓這套模型從一個獨立功能升級成一套綜合場景守護系統(tǒng)這對實際部署的工程價值遠大于某一指標的改善。最后分享一個小技巧實機調試時把模型預測的“置信度值”和“檢測框坐標”一并打印到視頻輸出畫面的角落這個細節(jié)會幫你在現(xiàn)場快速判斷問題出在檢測環(huán)節(jié)還是后處理環(huán)節(jié)。我在項目收尾階段一直靠這招定位問題省下了不少對著監(jiān)控錄像反復回放的笨功夫。