據(jù)標注到桌面應用部署)
簡介本資源是一套完整的YOLOv5打電話行為檢測實戰(zhàn)項目面向計算機視覺初學者與安防、交通監(jiān)管等場景開發(fā)者解決日常監(jiān)控中對手機使用行為的自動化識別需求。壓縮包共165個文件含34個核心Python腳本含訓練/推理/界面邏輯、27個配置yaml文件模型結構與超參、26張標注圖像及8張界面截圖另有4個預訓練.pt權重、4個PyQt設計.ui文件、2個實測視頻mp4及CSV結果統(tǒng)計文件整體大小為433.91MB。已有600人學習下載項目已通過CSDN博文公開驗證效果。用戶可直接運行PyQt圖形界面一鍵完成圖片、視頻及攝像頭實時檢測配套提供txt與xml雙格式標注數(shù)據(jù)集支持快速遷移訓練內容預覽顯示包含TensorBoard日志、Docker部署文件及完整實驗記錄results.csv兼顧算法復現(xiàn)、工程部署與結果分析全流程。1. 項目概述與核心價值最近在做一個挺有意思的監(jiān)控場景項目核心需求是自動檢測畫面中是否有人正在打電話。這聽起來簡單但在實際安防、考場管理或者特定工作區(qū)域合規(guī)檢查里是個挺剛需的功能。傳統(tǒng)靠人眼盯監(jiān)控效率低還容易漏用AI來做自動化識別就成了必然選擇。我這次選用的技術棧是YOLOv5來完成目標檢測然后自己整理數(shù)據(jù)集、訓練模型最后用PyQt做了個帶界面的演示程序把整個流程給跑通了。這個項目“YOLOv5打電話行為檢測”完整地覆蓋了從數(shù)據(jù)準備、模型訓練到應用部署的閉環(huán)。對于想入門計算機視覺特別是目標檢測應用的朋友來說是個非常不錯的練手項目。它不像單純跑通一個demo那么簡單你需要處理實際場景中光照、角度、遮擋等各種問題還得考慮怎么把算法“包裝”成一個普通人能用的工具。整個過程下來你對數(shù)據(jù)標注、模型調參、以及圖形界面開發(fā)都會有更深的體會。接下來我就把這套方案的思路、踩過的坑和具體實現(xiàn)細節(jié)毫無保留地分享出來。2. 項目整體設計與技術選型考量2.1 為什么選擇YOLOv5目標檢測框架很多比如Faster R-CNN、SSD、YOLO系列等。我最終選擇YOLOv5主要是基于以下幾點實際考量在精度和速度間取得了很好的平衡YOLOv5雖然不是最新的已有v8、v9等但其代碼成熟、社區(qū)資源豐富對于“打電話”這種常見行為其精度完全足夠。更重要的是它的推理速度非??煸谄胀ǖ南M級GPU如GTX 1660 Ti上處理一張圖片只需幾十毫秒這對于后續(xù)可能的實時視頻流處理至關重要。工程化友好易于上手YOLOv5的PyTorch實現(xiàn)代碼結構清晰提供了從訓練到部署的完整腳本。它的數(shù)據(jù)加載、模型定義、訓練循環(huán)都封裝得很好修改起來很方便。特別是對于自定義數(shù)據(jù)集只需要按照其要求的格式YOLO格式的txt標注文件準備幾乎不用改動核心代碼。豐富的預訓練模型和調參指南YOLOv5提供了從輕量級YOLOv5s到高精度YOLOv5x多個版本的預訓練模型。我們可以用在大數(shù)據(jù)集如COCO上預訓練好的權重進行遷移學習這能極大加快我們在小數(shù)據(jù)集打電話行為上的收斂速度并提升最終效果。官方和社區(qū)也有大量的超參數(shù)調優(yōu)經(jīng)驗可供參考。注意雖然YOLOv8等更新版本在指標上可能更優(yōu)但YOLOv5的穩(wěn)定性、文檔和社區(qū)支持對于項目快速落地更為關鍵。新版本有時會引入較大的變動可能增加學習成本和調試時間。2.2 行為檢測的定義與難點“打電話行為檢測”嚴格來說是一個細粒度的目標檢測任務但它比單純的“檢測手機”或“檢測人”要復雜。核心定義我們需要檢測的是“人”與“手機”在特定空間位置上發(fā)生的交互行為。最典型的正樣本是手機貼近人的耳部區(qū)域。主要難點姿態(tài)多樣性人可能用左手或右手打電話可能站著、坐著、走著手機可能橫屏或豎屏。遮擋問題長發(fā)可能遮擋耳朵和手機手部也可能部分遮擋手機。類間差異類似的舉手動作如撓頭、扶眼鏡可能被誤檢。尺度變化監(jiān)控攝像頭距離遠近會導致人和手機在圖像中的尺寸變化很大。光照與環(huán)境室內外光照不均、逆光、夜間低光照等都會影響檢測效果。因此我們的方案不能只檢測“手機”而是需要同時檢測“人”和“手機”并通過它們之間的位置關系如交并比IoU、中心點距離來判定是否為“打電話”行為。一種更魯棒的做法是直接標注“打電話的人”作為一個整體類別讓模型去學習這個復合特征。2.3 PyQt作為圖形界面的優(yōu)勢模型訓練好后我們需要一個方式來展示效果、進行測試或者給非技術人員使用。PyQt是一個理想的選擇跨平臺基于Qt可以輕松打包成Windows、macOS、Linux下的可執(zhí)行文件。功能強大提供豐富的UI組件可以方便地集成圖片/視頻加載、模型推理、結果展示畫框、標簽、參數(shù)調整等功能。與Python生態(tài)無縫集成我們的模型是PyTorch的用PyQt可以都在Python環(huán)境下開發(fā)避免跨語言調用的麻煩。打包方便可以使用PyInstaller或cx_Freeze等工具將整個Python項目包括模型、界面、依賴封裝成一個獨立的.exe文件方便分發(fā)。3. 數(shù)據(jù)集構建與處理核心細節(jié)3.1 數(shù)據(jù)收集與標注策略高質量的數(shù)據(jù)集是模型成功的基石。對于“打電話行為”數(shù)據(jù)來源可以是公開數(shù)據(jù)集搜索是否有現(xiàn)成的“cellphone”或“hand calling”相關數(shù)據(jù)集但通常需要自己整理。網(wǎng)絡爬取從合規(guī)的圖片視頻網(wǎng)站爬取相關場景圖片需注意版權和隱私。自行拍攝針對特定場景如辦公室、考場自行拍攝模擬打電話行為的圖片和視頻這樣數(shù)據(jù)最貼合實際應用但工作量最大。我采用的是混合策略以部分公開數(shù)據(jù)為基礎補充了大量自行拍攝和從電影、電視劇中截取的片段已脫敏僅用于技術研究。標注工具推薦使用LabelImg或CVAT。這里使用LabelImg因為它簡單直接輸出就是YOLO格式。標注類別定義 經(jīng)過權衡我定義了兩個類別person標注整個人體。cellphone標注手機。當手機被手持且貼近耳部時才進行標注。更優(yōu)的方案直接定義一個類別calling標注框覆蓋正在打電話的人通常是從頭到胸的區(qū)域包含手和手機。這樣模型直接學習“打電話”這個整體模式避免了后處理邏輯往往效果更好。我最初嘗試了雙類別方案后期部分數(shù)據(jù)轉向了單類別calling方案進行對比實驗。3.2 數(shù)據(jù)格式與目錄結構YOLOv5要求特定的數(shù)據(jù)格式。假設我們的項目根目錄為PhoneCall_Detection。PhoneCall_Detection/ ├── data/ │ ├── images/ # 存放所有圖片 │ │ ├── train/ # 訓練集圖片 │ │ └── val/ # 驗證集圖片 │ └── labels/ # 存放所有標注文件與圖片同名.txt后綴 │ ├── train/ # 訓練集標簽 │ └── val/ # 驗證集標簽標簽文件.txt格式 每一行代表一個標注框格式為class_id x_center y_center width heightclass_id: 類別索引從0開始。例如0代表person1代表cellphone。x_center, y_center: 邊界框中心點的歸一化坐標除以圖片寬度和高度。width, height: 邊界框的歸一化寬度和高度。例如一張500x400的圖片上有一個person框其左上角為(100,50)右下角為(300,350)則計算如下x_center (100 300)/2 / 500 0.4y_center (50 350)/2 / 400 0.5width (300 - 100) / 500 0.4height (350 - 50) / 400 0.75 標簽行即為0 0.4 0.5 0.4 0.753.3 數(shù)據(jù)增強與預處理為了提升模型泛化能力防止過擬合必須進行數(shù)據(jù)增強。YOLOv5內置了強大的增強功能在data/hyps/hyp.scratch-low.yaml等配置文件中定義。我們主要關注并可以調整的幾項Mosaic將四張圖片拼成一張進行訓練極大地豐富了背景和小目標上下文。MixUp將兩張圖片線性混合增加類別和背景的復雜度。色彩空間變換包括色調(H)、飽和度(S)、明度(V)的隨機調整模擬不同光照。隨機旋轉、平移、縮放、剪切模擬視角變化。實操心得對于“打電話”行為要謹慎使用過度的旋轉和剪切因為這會破壞“手機貼近耳部”的關鍵空間關系。我通常會把旋轉和剪切的比例調低。相反色彩抖動和模糊增強對提升魯棒性非常有效。我們需要創(chuàng)建一個自己的數(shù)據(jù)集配置文件例如data/phonecall.yaml# 數(shù)據(jù)集路徑 path: ../PhoneCall_Detection/data train: images/train val: images/val # 類別數(shù) nc: 2 # 如果使用‘person’和‘cellphone’兩類就是2。如果只用‘calling’一類就是1。 # 類別名稱列表 names: [person, cellphone] # 或 [calling]4. YOLOv5模型訓練全流程解析4.1 環(huán)境搭建與代碼準備首先從官方倉庫克隆代碼并安裝依賴。# 克隆YOLOv5倉庫建議使用較穩(wěn)定的版本如v6.0 git clone -b v6.0 https://github.com/ultralytics/yolov5.git cd yolov5 pip install -r requirements.txt # 安裝所有依賴踩坑記錄PyTorch版本需與CUDA版本匹配。如果使用GPU務必去PyTorch官網(wǎng)核對安裝命令。我曾因版本不匹配導致訓練時卡死。4.2 模型選擇與遷移學習YOLOv5提供了多種規(guī)模的模型。對于“打電話檢測”這是一個相對簡單的任務但為了保證在復雜場景下的精度我選擇了中等規(guī)模的YOLOv5m。它比YOLOv5s精度更高比YOLOv5l速度更快。啟動訓練的命令python train.py \ --img 640 \ # 訓練圖片尺寸 --batch 16 \ # 批次大小根據(jù)GPU內存調整 --epochs 100 \ # 訓練輪數(shù) --data ../PhoneCall_Detection/data/phonecall.yaml \ # 數(shù)據(jù)集配置文件 --cfg models/yolov5m.yaml \ # 模型結構配置文件 --weights yolov5m.pt \ # 加載預訓練權重這是關鍵 --name phonecall_exp \ # 本次實驗名稱 --cache \ # 緩存圖片到內存加速訓練 --device 0 # 使用GPU 0關鍵參數(shù)解析--weights yolov5m.pt這是遷移學習的精髓。yolov5m.pt是在COCO數(shù)據(jù)集上預訓練好的權重。加載它意味著我們的模型已經(jīng)從海量數(shù)據(jù)中學到了如何提取通用特征邊緣、紋理、形狀等。我們只需要在其基礎上針對“打電話”這個特定任務進行微調Fine-tuning這比從零訓練快得多效果好得多。--img 640YOLOv5的默認輸入尺寸。更大的尺寸如1280可能提升對小目標的檢測精度但會顯著增加計算量和內存消耗需要同步調整batch-size。--batch 16一次輸入16張圖片。在GPU內存允許的情況下較大的batch size有助于訓練穩(wěn)定。如果出現(xiàn)CUDA out of memory錯誤需要降低batch或img大小。--epochs 100通常足夠收斂??梢酝ㄟ^觀察驗證集損失曲線提前停止。4.3 訓練過程監(jiān)控與超參數(shù)調優(yōu)訓練開始后YOLOv5會在runs/train/phonecall_exp目錄下生成大量有用的文件和可視化結果。results.png最重要的圖表包含了訓練集和驗證集的邊界框損失、分類損失、目標性損失以及精度Precision、召回率Recall、mAP0.5等指標。我們的目標是讓驗證集損失平穩(wěn)下降且mAP穩(wěn)步上升。confusion_matrix.png混淆矩陣查看類別間誤檢情況。例如cellphone是否容易被誤檢為person或其他背景。val_batch0_pred.jpg驗證集樣本的預測結果可以直觀看到模型當前的表現(xiàn)。超參數(shù)調優(yōu)經(jīng)驗 YOLOv5的超參數(shù)定義在data/hyps/目錄下。對于自定義數(shù)據(jù)集微調超參數(shù)能帶來提升。我主要調整了以下幾個學習率lr0這是最重要的參數(shù)。預訓練權重微調時學習率不宜太大否則會破壞已有的好特征。我通常從默認值如0.01開始如果訓練初期損失震蕩劇烈就調小如0.001。數(shù)據(jù)增強參數(shù)如前所述降低degrees旋轉角度和shear剪切強度以保持打電話姿態(tài)的完整性。適當提高hsv_h色調抖動來增強色彩魯棒性。損失函數(shù)權重box_loss,obj_loss,cls_loss的權重。除非有特殊需求一般不建議新手改動。一個實用的方法是使用網(wǎng)格搜索或貝葉斯優(yōu)化工具如wandb進行自動化調參但手動根據(jù)結果分析調整2-3輪也能取得不錯效果。4.4 模型評估與導出訓練完成后在runs/train/phonecall_exp/weights目錄下會得到兩個最重要的模型文件best.pt在驗證集上表現(xiàn)最好的權重。last.pt最后一輪的權重。我們使用best.pt進行后續(xù)的評估和推理。評估模型python val.py \ --data ../PhoneCall_Detection/data/phonecall.yaml \ --weights runs/train/phonecall_exp/weights/best.pt \ --img 640 \ --batch 16 \ --task val \ --name phonecall_eval評估報告會詳細列出各個類別的精確率、召回率、mAP等這是我們判斷模型好壞的客觀標準。一個不錯的“打電話”檢測模型mAP0.5應該能達到0.85以上。模型導出 為了在PyQt界面中使用我們需要將PyTorch模型.pt導出為更通用的格式。最常用的是TorchScript或ONNX。# 導出為ONNX格式推薦兼容性更廣 python export.py \ --weights runs/train/phonecall_exp/weights/best.pt \ --img 640 640 \ # 輸入尺寸 (高寬) --batch 1 \ # 批處理大小 --device cpu \ # 導出時指定設備如果部署環(huán)境是CPU就選cpu --include onnx \ # 導出為ONNX --simplify # 簡化模型導出的best.onnx文件就可以被OpenCV DNN、TensorRT等多種推理引擎加載為后續(xù)部署到不同平臺包括嵌入式設備提供了便利。5. PyQt圖形界面開發(fā)與集成5.1 界面設計與功能規(guī)劃我們的PyQt界面需要實現(xiàn)以下核心功能媒體加載支持選擇單張圖片、圖片文件夾或視頻文件。模型加載選擇我們訓練好的.pt或.onnx模型文件。推理執(zhí)行點擊按鈕對當前媒體進行檢測。結果可視化在圖片/視頻幀上繪制檢測框、類別標簽和置信度。結果輸出顯示統(tǒng)計信息如檢測到的目標數(shù)量并可將帶標注的結果保存到本地。界面布局可以設計如下左側為媒體顯示區(qū)域QLabel右側為控制面板QGroupBox包含文件選擇按鈕、模型加載按鈕、推理按鈕、參數(shù)調節(jié)滑塊如置信度閾值、NMS閾值和結果信息顯示區(qū)QTextEdit。5.2 推理引擎的集成在PyQt中我們需要一個后臺線程來執(zhí)行模型推理避免阻塞UI主線程導致界面卡死。這里以使用原始PyTorch模型.pt為例展示核心推理代碼的集成。首先創(chuàng)建一個專門的工作線程類from PyQt5.QtCore import QThread, pyqtSignal import torch import cv2 import numpy as np class DetectionThread(QThread): # 定義信號用于與主線程通信 finished pyqtSignal(np.ndarray) # 發(fā)送處理后的圖像 info_updated pyqtSignal(str) # 發(fā)送檢測信息 def __init__(self, model_path, image, conf_thres0.5, iou_thres0.45): super().__init__() self.model_path model_path self.image image self.conf_thres conf_thres self.iou_thres iou_thres self.model None def run(self): 線程運行的核心函數(shù) # 1. 加載模型懶加載第一次運行時加載 if self.model is None: self.model torch.load(self.model_path, map_locationcpu)[model].float().eval() # 如果使用GPU可以改為 .to(cuda) # 2. 預處理圖像 img_rgb cv2.cvtColor(self.image, cv2.COLOR_BGR2RGB) img_resized self.preprocess(img_rgb) # 3. 推理 with torch.no_grad(): pred self.model(img_resized)[0] # 4. 后處理非極大值抑制(NMS) detections self.non_max_suppression(pred, self.conf_thres, self.iou_thres) # 5. 在原圖上繪制結果 result_img self.draw_boxes(self.image, detections) # 6. 發(fā)送信號 self.finished.emit(result_img) self.info_updated.emit(f檢測到 {len(detections)} 個目標) def preprocess(self, img): 將圖像預處理為模型輸入格式 # 這里需要實現(xiàn)resize, padding, 歸一化維度轉換等 # 具體代碼需參考YOLOv5的utils.datasets.py中的letterbox函數(shù) pass def non_max_suppression(self, prediction, conf_thres, iou_thres): 非極大值抑制過濾重疊框 # 具體實現(xiàn)參考YOLOv5的utils.general.py中的non_max_suppression函數(shù) pass def draw_boxes(self, img, detections): 在圖像上繪制檢測框 for *xyxy, conf, cls in detections: label f{self.model.names[int(cls)]} {conf:.2f} # 使用cv2.rectangle和cv2.putText畫框和文字 pass return img在主界面中我們連接按鈕信號啟動這個工作線程class MainWindow(QMainWindow): def __init__(self): super().__init__() # ... 界面初始化代碼 ... self.detection_thread None self.btn_detect.clicked.connect(self.start_detection) def start_detection(self): if self.current_image is None: return # 禁用檢測按鈕防止重復點擊 self.btn_detect.setEnabled(False) # 創(chuàng)建并啟動線程 self.detection_thread DetectionThread( model_pathruns/train/phonecall_exp/weights/best.pt, imageself.current_image, conf_thresself.slider_confidence.value()/100.0 ) self.detection_thread.finished.connect(self.on_detection_finished) self.detection_thread.info_updated.connect(self.text_info.append) self.detection_thread.start() def on_detection_finished(self, result_img): # 在主線程中更新UI self.display_image(result_img) self.btn_detect.setEnabled(True)5.3 性能優(yōu)化與體驗提升視頻流處理對于視頻檢測需要在一個循環(huán)中讀取幀并送入檢測線程??梢允褂肣Timer定時觸發(fā)檢測或者使用另一個專門的視頻處理線程。注意控制檢測頻率如果每幀都檢測且模型較慢會導致嚴重延遲??梢圆捎锰鴰瑱z測或降低視頻顯示分辨率。實時性優(yōu)化模型簡化使用更小的模型YOLOv5s或對模型進行剪枝、量化。推理引擎使用TensorRT或OpenVINO對ONNX模型進行加速在相同硬件上可獲得數(shù)倍的性能提升。硬件加速確保PyTorch使用了GPUCUDA進行推理。參數(shù)實時調節(jié)將置信度閾值和NMS閾值的滑塊信號連接到檢測函數(shù)實現(xiàn)參數(shù)實時調整并立即看到效果變化這對于模型調試非常有用。6. 項目封裝、部署與常見問題排查6.1 使用PyInstaller打包為EXE為了讓沒有Python環(huán)境的人也能使用我們將整個應用打包成Windows可執(zhí)行文件。首先創(chuàng)建一個主程序入口腳本main.py它只負責啟動你的PyQt主窗口。然后使用PyInstaller打包。pip install pyinstaller # 基本打包命令 pyinstaller -F -w -i icon.ico main.py-F: 打包成單個exe文件。-w: 運行時不顯示控制臺窗口對于GUI程序。-i: 設置exe的圖標。打包巨坑與解決方案問題1打包后運行提示“No module named ‘torch’, ‘cv2’”等。原因PyInstaller有時無法自動打包所有的二進制依賴。解決在打包命令中通過--hidden-import手動指定或創(chuàng)建一個hook文件。更簡單的方法是在虛擬環(huán)境中確保所有依賴都已安裝然后使用--collect-all參數(shù)謹慎使用可能會使包很大。推薦方案使用spec文件進行高級配置。先生成一個基礎的spec文件pyi-makespec main.py。然后編輯main.spec在Analysis部分添加隱藏導入a Analysis([main.py], pathex[], binaries[], datas[], # 這里很重要需要把模型文件、配置文件等資源加進來 hiddenimports[torch, torchvision, cv2, PIL, numpy, pyqt5], # 添加所有可能缺失的庫 hookspath[], ...)還需要把模型文件等資源復制到exe所在目錄需要在datas里指定datas[(runs/train/phonecall_exp/weights/best.pt, .), (data/phonecall.yaml, data)],最后用pyinstaller main.spec命令打包。問題2打包文件體積巨大1GB。原因PyInstaller打包了整個PyTorch和CUDA庫。解決使用CPU版本的PyTorch進行打包pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu。在推理代碼中確保模型加載到CPUtorch.load(..., map_locationcpu)。使用--exclude-module嘗試排除不必要的模塊效果有限。終極方案考慮使用ONNX RuntimeCPU版作為推理后端它比完整的PyTorchCUDA小得多。將模型導出為ONNX然后在PyQt中改用onnxruntime庫加載和推理。6.2 部署到其他平臺Linux/MacPyInstaller同樣支持在對應系統(tǒng)下執(zhí)行打包命令即可。Web服務可以使用FastAPI或Flask將模型封裝成RESTful API前端通過網(wǎng)頁上傳圖片并獲取檢測結果。嵌入式設備如RK3568, RV1106這是另一個深水區(qū)。通常步驟是將模型轉換為該芯片廠商支持的格式如RKNN for Rockchip, NNIE for HiSilicon。使用C/C編寫針對該平臺的推理代碼并優(yōu)化內存和速度。編寫簡單的本地UI如基于Qt for Embedded或直接將結果通過網(wǎng)絡發(fā)送。 這個過程需要參考芯片廠商的官方SDK和文檔挑戰(zhàn)較大。6.3 常見問題排查速查表問題現(xiàn)象可能原因排查步驟與解決方案訓練時loss為NaN學習率過高數(shù)據(jù)標注有誤如坐標超出0-1數(shù)據(jù)中存在損壞圖片。1. 大幅降低學習率lr0。2. 檢查標注文件格式是否正確特別是歸一化坐標。3. 使用--cache參數(shù)時嘗試不使用它或檢查圖片文件。模型推理速度慢模型過大如用了YOLOv5x未使用GPU推理輸入圖片尺寸過大。1. 換用更小的模型YOLOv5s/n。2. 確認torch.cuda.is_available()為True模型和數(shù)據(jù)已.to(‘cuda’)。3. 減小推理時的imgsz參數(shù)如從640降到320。檢測框閃爍或不穩(wěn)定視頻中視頻幀間抖動置信度閾值過低。1. 對檢測結果進行軌跡平滑如使用卡爾曼濾波或簡單的移動平均。2. 適當提高置信度閾值conf-thres。誤檢率高將水杯、手等檢為手機訓練數(shù)據(jù)中負樣本類似物體但不是手機不足手機特征學習不充分。1. 在數(shù)據(jù)集中增加“困難負樣本”如手拿水杯、對講機等的圖片并進行正確標注或作為背景。2. 增加數(shù)據(jù)增強特別是色彩和模糊讓模型更關注形狀而非顏色。3. 檢查混淆矩陣針對性補充數(shù)據(jù)。漏檢率高尤其是小目標或遮擋目標數(shù)據(jù)集中小目標和遮擋樣本少模型輸入分辨率過低。1. 專門收集并標注小尺寸、遮擋嚴重的打電話圖片。2. 提高訓練和推理時的imgsz如從640升到1280但要注意計算成本。3. 在數(shù)據(jù)增強中增加Mosaic和MixUp的比例。PyQt界面點擊檢測按鈕無反應UI被推理線程阻塞信號/槽連接錯誤。1. 確保推理任務在獨立的QThread中運行并通過信號更新UI。2. 使用print或日志檢查線程的run函數(shù)是否被正確調用。3. 檢查按鈕的clicked信號是否正確連接到啟動線程的槽函數(shù)。這個項目從數(shù)據(jù)準備到最終可用的桌面軟件涉及了AI項目落地的多個關鍵環(huán)節(jié)。每個環(huán)節(jié)都有不少細節(jié)需要打磨尤其是數(shù)據(jù)質量和推理性能的優(yōu)化往往需要反復迭代。希望這份詳細的梳理能幫你避開我踩過的那些坑更順暢地完成自己的目標檢測應用。本文還有配套的精品資源點擊獲取