邊緣計算與智能視覺應用 課件 第5章 深度學習智能視覺模型_第1頁
邊緣計算與智能視覺應用 課件 第5章 深度學習智能視覺模型_第2頁
邊緣計算與智能視覺應用 課件 第5章 深度學習智能視覺模型_第3頁
邊緣計算與智能視覺應用 課件 第5章 深度學習智能視覺模型_第4頁
邊緣計算與智能視覺應用 課件 第5章 深度學習智能視覺模型_第5頁
已閱讀5頁,還剩55頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

邊緣計算與智能視覺應用5.1FSRCNN圖像超分辨率重建模型講課人:XXX時間:20XX年12月30日延時符AboutUs目錄FSRCNN模型架構詳解01FSRCNN模型實現02FSRCNN模型訓練環境要求03FSRCNN模型訓練04模型在邊緣設備上的部署05FSRCNN模型架構詳解01FSRCNN模型架構詳解這一層通過使用1×1卷積核來減少特征圖的維度,從而減少計算量和模型參數。這一步使得模型更加高效,同時保留了重要的特征信息。2、收縮層通過反卷積(或上采樣)操作,將處理后的特征圖從低分辨率放大到高分辨率。這一步是FSRCNN與傳統超分辨率方法的主要區別之一,它直接在低分辨率空間進行處理,然后通過反卷積實現圖像的放大。5、反卷積層使用1×1卷積核將特征圖的維度恢復到原始大小。這一步確保了模型在保持高效性的同時,能夠生成高質量的圖像特征。4、擴展層包含若干個卷積層和激活函數,負責將低分辨率特征映射到高分辨率特征空間。這一層通過多個卷積操作和非線性激活函數的組合,增強了模型的表達能力。3、非線性映射層該層由若干個卷積層組成,負責從低分辨率圖像中提取特征。通過使用小卷積核(例如3×3),可以高效地捕捉圖像中的局部特征。1、特征提取層加載預訓練模型的權重和優化器狀態。6、加載預訓練模型(如果有)FSRCNN模型實現02FSRCNN模型架構詳解配置第一層和最后一層卷積的核大小、中間層卷積的核大小、中間層通道數以及殘差模塊數量。2、模型參數設置初始化FSRCNN模型和優化器,將模型遷移到設備上,并定義損失函數(MSE)。5、初始化檢測是否支持GPU,設置訓練設備,并配置CUDA加速。4、設備參數設置設置預訓練模型路徑、批大小、輪數起始位置、迭代輪數、工作線程數和學習率。3、學習參數設置定義數據存放路徑、裁剪尺寸、放大比例和CPU核心數。1、數據集參數設置FSRCNN模型架構詳解0708097897、數據加載使用定制化的DataLoader加載訓練數據集,進行裁剪和歸一化處理。8、訓練過程(1)逐輪訓練模型。(2)每輪訓練包括:設置模型為訓練模式;初始化損失統計器;按批處理數據,將低分辨率和高分辨率圖像移至設備;前向傳播計算生成的高分辨率圖像;計算損失并進行后向傳播;更新模型參數;記錄和監控損失值以及圖像變化;9、保存和監控(1)每輪訓練結束后,保存模型的權重和優化器狀態。(2)監控損失值變化和生成圖像,通過TensorBoard進行可視化。(3)訓練結束后關閉監控。FSRCNN模型訓練環境要求03FSRCNN模型訓練環境要求1、Ubuntu操作系統推薦使用Ubuntu18.04LTS或更高版本。Ubuntu是一個穩定、廣泛支持的Linux發行版,非常適合深度學習任務。2、Python環境安裝Python3.6或更高版本。可以使用Ubuntu的包管理器apt進行安裝,或者使用Anaconda來管理Python環境,后者更推薦,因為它可以更好地處理依賴關系。3、深度學習框架安裝PyTorch或TensorFlow。PyTorch是較為推薦的選擇,因為它在研究社區中更受歡迎。可以通過pip或conda安裝,注意選擇與你的CUDA版本兼容的版本。4、其他Python庫使用pip或conda安裝必要的Python庫,包括NumPy、Scipy、Pillow、h5py和matplotlib。這些庫提供了數據處理、圖像操作和可視化的功能。5、開發工具使用PyCharm作為集成開發環境(IDE)。PyCharm是一個功能強大的PythonIDE,特別適合深度學習項目開發。確保在PyCharm中正確配置你的Python環境和項目依賴,以便順利進行FSRCNN的開發和實驗。FSRCNN模型訓練041、創建新項目打開PyCharm,點擊File>NewProject。選擇項目位置,確保選擇使用現有的Conda環境,點擊CreateFSRCNN模型訓練2、導入項目文件將FSRCNN模型相關的代碼文件(如models.py、datasets.py、utils.py)復制到項目文件中。FSRCNN模型訓練3、運行數據集生成和訓練代碼打開create_data_lists.py,在代碼處右擊選擇“RUN…”,會再次彈出環境配置窗口FSRCNN模型訓練4、安裝必要的庫確保在終端(PyCharm集成終端或系統終端)激活項目的虛擬環境,如果運行過程彈出如下錯誤:ModuleNotFoundError:Nomodulenamed'tensorboardX'則先激活環境,指令如下:sourceactivatemyenv安裝所需的Python庫,安裝指令如下:pipinstalltensorboardX-i/simple/FSRCNN模型訓練5、編輯訓練腳本在train.py文件中,根據實際情況編輯數據集路徑、模型參數等。調試正確后,訓練FSRCNN模型訓練模型在邊緣設備上的部署05模型在邊緣設備上的部署2、推理代碼說明3、測試部署效果1、保存訓練好的模型確保訓練過程中保存的模型權重(checkpoint_FSRCNN.pth)可以在邊緣設備上部署時使用。模型保存代碼在train.py的torch.save部分已經包含。打開推理腳本test.py,加載保存的模型并在邊緣設備上進行圖像超分辨率處理:運行test.py,在results文件夾下會生成兩個圖像文件,test_bicubic是普通插值放大4倍的圖片,test-lin是超分辨率放大4倍的圖片,打開兩張圖分別對比放大的效果。謝謝觀看Thankyouforwatching邊緣計算與智能視覺應用5.2mobilenet圖像分類模型講課人:XXX時間:20XX年12月30日延時符AboutUs目錄MobileNetV3模型架構解析01MobileNet模型實現02mobilenet模型訓練環境要求03mobilenet模型訓練04模型在邊緣設備上的部署05MobileNetV3模型架構解析01MobileNetV3模型架構解析MobileNetV3對耗時層結構進行了重新設計,特別是針對第一層和最后一層的卷積操作進行了優化。首先,將第一層卷積核的數量從32減少到16,以此來減少計算量,同時保持模型的準確率。3.耗時層結構的優化MobileNetV3的設計過程結合了NAS算法,首先使用NAS搜索出初步的網絡結構,然后使用NetAdapt確定每個濾波器的通道數量。5.神經架構搜索(NAS)MobileNetV3提供了兩種不同的網絡結構:MobileNetV3-large和MobileNetV3-small,分別適用于不同的計算資源和應用場景。4.網絡結構配置obileNetV3引入了注意力機制(SE模塊)和新的激活函數,對原有的Block(bneck)結構進行了更新。SE模塊通過對每一個通道進行池化處理,計算出每個通道的重要性權重。1.Block(bneck)的更新在激活函數方面,MobileNetV3放棄了MobileNetV2中使用的ReLU6,改用了更加復雜的swish激活函數。2.激活函數的重新設計MobileNet模型實現02MobileNet模型可以通過多種深度學習框架實現,如TensorFlow、PyTorch等。mobilenet模型訓練環境要求03mobilenet模型訓練環境要求1、GPUMobileNetV3的訓練過程計算量較大,建議使用支持CUDA的NVIDIAGPU進行加速。推薦使用至少8GB顯存的GPU2、CPU使用多核CPU(如Inteli7或以上型號)來支持數據加載和預處理。雖然GPU進行大部分的計算工作,但CPU的多線程能力對于高效的數據加載和增強是必要的。3、內存(RAM)至少16GB內存,建議32GB或更高,以便處理大批量數據。4、存儲SSD硬盤,用于存儲數據集和模型參數,能夠顯著加快數據加載速度。預留至少100GB的存儲空間,具體需求取決于數據集的大小。5、依賴庫

NumPy用于數值計算的基礎庫。Pillow用于圖像加載和預處理。Matplotlib(可選):用于訓練過程中的可視化。可以通過以下命令安裝這些依賴:6.數據集結構在訓練MobileNetV3模型時,數據集需要按照特定格式組織,尤其是針對自定義數據集。通常情況下,自定義數據集應按照以下文件夾結構組織:mobilenet模型訓練環境要求7、數據集劃分子數據子數據子數據子數據子數據子數據子數據子數據數據集劃分123訓練集:用于訓練模型,占整個數據集的70%-80%。驗證集(可選):用于調整超參數并評估模型在未見過的數據上的性能,占整個數據集的10%-15%。測試集(可選):用于最終評估模型的性能,占整個數據集的10%-15%。mobilenet模型訓練04mobilenet模型訓練定義了訓練和驗證的圖像預處理步驟,包括隨機裁剪、水平翻轉、標準化等。1、數據預處理使用torchvision.datasets.ImageFolder類加載自定義數據集,并根據圖像的文件夾名稱自動分配類別標簽。2、數據加載加載MobileNetV3的預訓練模型權重,并選擇凍結特征提取層的權重,適用于遷移學習。3、模型初始化定義了訓練和驗證的流程,每個epoch結束后,驗證集的準確率會被評估,并在準確率提升時保存模型。4、訓練與驗證010203045、訓練代碼以下代碼展示了如何在自定義數據集上訓練MobileNetV3模型。mobilenet模型訓練6、訓練過程訓練過程如下:模型在邊緣設備上的部署04模型在邊緣設備上的部署1、保存訓練好的模型2、推理代碼說明3、測試部署效果在訓練完成后,我們需要將模型的權重保存為一個文件,以便后續部署使用。常用的方法是使用torch.save()函數將模型的state_dict保存為.pth文件左是推理過程的代碼,在部署到邊緣設備時,使用該代碼進行圖像分類任務:將上述推理代碼部署到邊緣設備后,通過執行推理代碼,可以測試模型在實際環境中的表現。通過輸出的預測結果與真實標簽的比較,可以評估模型的準確性。ABC謝謝觀看Thankyouforwatching邊緣計算與智能視覺應用5.3YOLO目標檢測模型講課人:XXX時間:20XX年12月30日延時符AboutUs目錄YOLO算法原理介紹01YOLO模型版本演進(v1-v8)02YOLO模型訓練數據標注

03數據集擴展04YOLO模型訓練05YOLO模型在邊緣設備上的推理06YOLO算法原理介紹01YOLO(YouOnlyLookOnce)是一種創新的目標檢測算法,它的提出改變了傳統目標檢測的范式。傳統目標檢測方法通常通過先生成候選區域,然后對這些區域進行分類的方式來檢測物體。這種方法計算量大且速度較慢,而YOLO則通過一次前向傳播即可完成整個檢測過程,因此在速度上具有明顯優勢。YOLO算法原理介紹11.圖像分割22.邊界框預測33.類別預測44.非極大值抑制(NMS)YOLO算法原理YOLO的第一個步驟是將輸入圖像劃分為一個S×S的網格。每個網格預測B個邊界框(boundingboxes),每個邊界框由5個參數表示:中心坐標(x,y)、寬度w、高度h,以及置信度分數c。除了預測邊界框,每個網格還會預測C個類別的概率分布,即目標屬于每個類別的概率。通常,C代表的是所有可能的目標類別數。在預測出所有邊界框及其對應的類別概率后,YOLO通過非極大值抑制(NMS,Non-MaximumSuppression)來過濾掉冗余的邊界框。NMS的基本思想是:對于每個類別,首先選擇置信度分數最高的邊界框,然后移除與其重疊度(IoU)較高的其他邊界框,僅保留得分最高的邊界框。YOLO模型版本演進(v1-v8)02YOLO模型版本演進作為YOLO系列的初代版本,YOLOv1創新性地將目標檢測問題轉化為回歸問題,通過一個單一的神經網絡模型在圖像上直接預測目標的邊界框和類別標簽。雖然其檢測速度非常快,但在小目標檢測和定位精度方面表現欠佳,尤其是在復雜場景中,容易漏檢和錯檢。1、YOLOv1YOLOv2在YOLOv1的基礎上引入了多項關鍵技術,包括BatchNormalization(批歸一化)以提高模型的穩定性,AnchorBoxes(錨框)以更好地捕捉不同尺度的目標,以及多尺度訓練以增強模型的泛化能力。2、YOLOv2YOLOv3進一步深化了模型架構,采用了更復雜的Darknet-53網絡結構,這是一種深度卷積神經網絡,能夠更好地提取圖像特征。YOLOv3還引入了多尺度預測,即在不同的特征層上進行檢測,從而提高了對小目標和大目標的檢測能力。3、YOLOv3YOLOv3進一步深化了模型架構,采用了更復雜的Darknet-53網絡結構,這是一種深度卷積神經網絡,能夠更好地提取圖像特征。YOLOv3還引入了多尺度預測,即在不同的特征層上進行檢測,從而提高了對小目標和大目標的檢測能力。4、YOLOv4YOLO模型版本演進YOLOv5由社區開發并廣泛應用,其主要貢獻在于提供了多種輕量化模型版本(如YOLOv5s、YOLOv5m等),以適應不同的計算資源需求。YOLOv5基于PyTorch框架,增強了訓練和推理的靈活性,并支持自動混合精度訓練,進一步加快了模型的訓練過程,適合在資源受限的設備上進行部署。5、YOLOv5YOLOv6專注于輕量化設計和推理速度優化,使其特別適用于邊緣計算和嵌入式系統等資源受限環境。YOLOv6保留了高檢測精度,同時通過優化模型結構和推理引擎,進一步提升了在低算力設備上的實時檢測能力。6、YOLOv6YOLOv7在YOLOv6的基礎上,進一步優化了模型的精度和訓練過程。通過改進正則化技術和平衡訓練流程,YOLOv7在各種數據集上都展示了更為出色的性能,特別是在精度和速度之間達到了更好的平衡。7、YOLOv7YOLOv8是YOLO系列的最新版本,結合了多種前沿技術如深度可分離卷積和特征融合,進一步提升了模型的推理效率和檢測精度。YOLOv8不僅適用于圖像目標檢測,還支持視頻目標檢測和對象跟蹤等任務,拓展了應用場景,能夠在不同硬件平臺上保持卓越的性能。8、YOLOv8YOLO模型訓練數據標注03在YOLO模型的訓練過程中,數據標注至關重要,直接影響模型的檢測精度與泛化能力。YOLO模型要求每個目標都有明確的邊界框及其對應的類別標簽,這些信息需要通過手動標注從圖像中提取。首先,需要收集并整理用于模型訓練的圖像數據,確保圖像多樣化,涵蓋各種場景和角度,以提高模型的泛化能力。YOLO模型訓練數據標注1、安裝LabelImgLabelImg是一個常用的開源圖像標注工具,支持生成YOLO所需的標注文件,并用于完成這些標注任務YOLO模型訓練數據標注YOLO模型訓練數據標注3、選擇YOLO格式4、開始標注:2、加載圖像在LabelImg界面中,點擊“OpenDir”按鈕,選擇包含待標注圖像的文件夾:配套素材\標注圖片。圖像將按順序加載在LabelImg工具欄中,點擊“PascalVOC”按鈕會變成“Yolo”,切換到YOLO格式。這確保了生成的標注文件符合YOLO模型的格式要求。按“w”鍵使用鼠標在圖像上繪制矩形框來標注目標對象。每個框應該準確地包圍目標的邊緣,以確保模型訓練時能夠正確識別目標。在繪制完邊界框后,會彈出一個對話框,要求輸入該目標的類別標簽。輸入相應類別,并點擊“OK”。YOLO模型訓練數據標注6、標注文件格式7、數據集文件夾的結構5、保存標注文件全部物體標注完成后,按空格鍵保存,彈出保存路徑對話框,按回車鍵保存,生成與圖像同名的.txt文件。此文件將保存在與圖像相同的文件夾中,包含目標類別、邊界框的中心坐標、寬度和高度。再按“d”鍵切換到下一張圖片繼續標注,如果想返回上一張,按“a”鍵。YOLO的標注文件格式要求每個圖像對應一個.txt文件,文件內容包括:(1)目標類別:一個整數,表示目標的類別索引。(2)邊界框的左上角坐標(x,y):相對于圖像寬度和高度的比例,值域為0到1。(3)邊界框的寬度和高度:相對于圖像寬度和高度的比例,值域為0到1。在YOLO模型的訓練中,數據集的文件夾結構通常需要按照以下標準進行組織,以確保訓練過程能夠順利進行:(1)images/train:用于存放訓練集的圖像文件。這里的圖像是經過標注的,并將用于訓練模型。(2)images/val:用于存放驗證集的圖像文件。驗證集用于評估模型在訓練過程中的表現,以防止模型過擬合。(3)labels/train:用于存放訓練集的標注文件。每個圖像文件對應一個標注文件,標注文件記錄了圖像中所有目標的類別和邊界框信息。(4)labels/val:用于存放驗證集的標注文件。與訓練集類似,每個驗證集圖像也需要對應一個標注文件。這種目錄結構有助于保持數據的有序管理,并方便模型訓練過程中對數據集的正確加載和使用。數據集擴展04在YOLO模型的訓練過程中,數據集的多樣性和規模直接影響模型的泛化能力和檢測效果。為了擴展數據集,可以通過復制和擴展現有的圖像和標注文件來增加訓練數據量。將“配套源碼\data”文件夾下所有文件通過SSH復制到邊緣計算平臺,執行bclstxkk.py程序將指定文件夾中的圖像和標注文件復制到指定的數據集目錄,并通過添加前綴來避免文件名沖突。數據集擴展1、清空目標目錄(clear_directory函數)此函數用于清空目標目錄中的所有文件和子目錄。它首先檢查目錄是否存在,如果不存在則創建新目錄。接著,逐一刪除目錄中的文件和子目錄。這一操作確保在復制新文件時不會出現舊文件干擾的情況。根據實際情況來決定,如果需要保留舊文件,則注釋相關代碼。bclstxkk程序代碼說明2、復制文件(copy_files函數)此函數從源目錄中找到所有的.png圖像文件和.txt標注文件,將它們復制到指定的目標目錄中。為了避免文件名沖突,每個文件都會添加一個特定的前綴(由三位數字構成)。函數返回成功復制的文件數量。執行兩次代碼后的train文件夾下的文件如圖5-16所示。bclstxkk程序代碼說明3、定義目錄路徑source_directory是源數據的存儲路徑,png_destination和txt_destination分別是圖像和標注文件的目標存儲路徑。4、復制次數控制程序通過conu.txt文件記錄復制的進度,每次運行程序時會從該文件讀取上次復制的起始編號,并從該編號繼續執行下一次復制。這樣可以在多次執行復制操作時保持一致性。5、文件統計在完成復制操作后,程序會統計目標目錄中圖像和標注文件的數量,并輸出結果以便檢查復制是否正確完成。bclstxkk程序代碼說明(1)訓練和驗證數據路徑train:指定訓練數據的路徑,即用于模型訓練的圖像文件夾。在此示例中,路徑為./data/train/images/,表示訓練集的圖像文件存放在該目錄下。(2)val:指定驗證數據的路徑,即用于模型驗證的圖像文件夾。在此示例中,路徑為./data/val/images/,表示驗證集的圖像文件存放在該目錄下。這些路徑應準確指向圖像文件所在的文件夾,以確保訓練過程能夠正確加載數據。(3)類別數量(nc)nc表示數據集中目標類別的數量。在此示例中,nc:16表示有16個不同的類別。類別數量必須與實際標注數據中的類別數目一致,否則會導致訓練錯誤。(4)類別名稱(names)names是一個包含所有類別名稱的列表,每個名稱對應一個類別編號。編號從0開始,依次對應列表中的每個名稱。數據集擴展YOLO模型訓練051、模型初始化模型初始化使用model=YOLO(r'./yolov8n.pt'),使用預訓練的YOLOv8n模型權重進行初始化。預訓練模型已經在大型數據集上訓練,可以加速收斂并提高精度。YOLO模型訓練2、模型訓練(1)data:指定數據集配置文件的路徑,定義了訓練集和驗證集的圖像及標簽路徑、類別數量等信息。(2)epochs:設置訓練的周期數,表示模型將在整個數據集上訓練的次數。(3)patience:當驗證集的性能在指定周期內無明顯提升時,觸發早期停止。(4)batch:每次迭代中處理的圖像數量。較大的批次可以提高訓練效率,但也需要更多的顯存。(5)imgsz:輸入圖像的大小。YOLOv8可以接受多種分辨率,但較大的圖像通常能提供更好的檢測效果。(6)workers:數據加載的工作線程數,更多的線程可以加快數據預處理速度。(7)optimizer:選擇的優化器,這里使用的是SGD(隨機梯度下降),常用于深度學習模型訓練。(8)lr0,lrf:學習率的初始值和最終值。初始學習率決定了訓練開始時的步長,最終學習率決定了訓練結束時的步長。(9)momentum,weight_decay:SGD優化器的動量和權重衰減參數,用于控制模型更新的速度和防止過擬合。(10)cos_lr:是否使用余弦退火學習率調度器,控制學習率隨訓練周期的變化。(11)single_cls:是否將所有類別視為一個單一類別進行訓練,通常用于單類目標檢測。(12)amp:啟用自動混合精度訓練,可在保持精度的同時減少顯存使用。YOLO模型訓練3、數據增強(1)hsv_h,hsv_s,hsv_v:HSV顏色空間下的色調、飽和度和亮度增強參數,用于增強訓練圖像的多樣性。(2)mosaic:是否啟用馬賽克數據增強,融合多張圖像以生成新的訓練樣本。(3)fliplr:左右翻轉圖像的概率,用于增加訓練樣本的多樣性。(4)mixup:圖像混合的概率,主要用于對抗過擬合。YOLO模型訓練通過詳細的參數配置,YOLOv8的訓練可以根據具體的任務需求進行優化,從而得到更好的檢測效果。合理的參數設置不僅能夠提高模型的精度,還能有效縮短訓練時間。YOLO模型訓練YOLO模型在邊緣設備上的推理061、模型加載model=YOLO(r'/home/oem/lin/yolov8train/runs/detect/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論