?????????在偽裝物體檢測中,現有方法多依賴空間局部特征,難以捕捉全局信息,而 Transformer 類方法計算成本高昂。頻率域特征因具備全局建模能力,可有效抑制背景噪聲、提升偽裝物體語義清晰度,但頻域與空域的頻繁轉換會增加計算復雜度。基于此,PFAE 模塊被提出,旨在通過頻域注意力機制更高效地提取高頻特征,解決傳統方法在處理邊界模糊、遮擋等場景時的局限性。
1.PFAE原理
? ? ? ? PFAE 模塊的核心原理是結合頻域注意力與多尺度特征融合。首先,對輸入特征進行通道降維,通過不同膨脹率的擴張卷積分支提取多尺度特征;每個分支利用快速傅里葉變換(FFT)生成查詢 Q、鍵 K 和值 V,經點乘、激活實部與虛部后得到頻域注意力圖,再與 V 點乘并通過逆傅里葉變換(IFFT)轉回空域。過程中引入頻率權重模塊(FWM)進行殘差連接,最后通過卷積操作與殘差連接生成混合特征,實現對頻域信息的增強與多尺度特征的聚合。
PFAE 模塊的結構如圖 2 所示,主要包含以下部分:
????????特征降維:通過 1×1 卷積對輸入特征 E?降維,得到E^4?。
????????多尺度擴張卷積分支:4 個分支,膨脹率為2n?1(n≥2),每個分支包含頻域注意力模塊。
????????頻域注意力計算:利用 FFT 生成 Q、K、V,計算注意力圖Af?,并通過 IFFT 轉回空域。
????????頻率權重模塊(FWM):通過頻域殘差連接增強頻域信息表示。
????????特征融合與輸出:通過卷積操作與殘差連接,將多分支特征融合生成最終輸出E5?。
2. PFAE 在不同領域的應用描述
醫學領域
? ? ? ? 在醫學影像偽裝目標檢測相關論文中,PFAE 模塊可被描述為:“針對醫學影像中病灶與周圍組織邊界模糊、易受噪聲干擾的挑戰,提出基于頻域注意力的金字塔頻率注意力提取模塊(PFAE)。該模塊通過多尺度擴張卷積捕獲不同大小的病灶特征,結合頻域變換抑制背景噪聲,增強病灶區域的語義特征。在肺部結節、乳腺腫瘤等檢測任務中,PFAE 能有效提取隱藏于復雜解剖結構中的病灶高頻特征,提升分割精度,為醫學輔助診斷提供更可靠的依據。”
遙感領域
? ? ? ? 用于遙感圖像偽裝目標檢測的論文中,可這樣描述 PFAE:“在遙感場景中,偽裝目標(如軍事設施、隱藏車輛等)常與自然背景高度相似,傳統方法難以有效區分。PFAE 模塊通過頻域注意力機制,捕捉目標與背景在頻率域的差異特征,抑制植被、地形等復雜背景的干擾。多尺度結構可適應不同大小目標的檢測需求,從遙感圖像的高頻分量中提取目標的輪廓與結構信息,實現對偽裝目標的魯棒檢測,為遙感監測與安全預警提供技術支持。”
缺陷檢測領域
? ? ? ? 在工業缺陷偽裝檢測的論文中,PFAE 的描述可如下:“工業產品表面缺陷常因光照、紋理等因素與正常區域難以區分,傳統方法易受局部特征干擾。PFAE 模塊通過頻域變換提取缺陷區域的高頻特征,結合多尺度擴張卷積捕獲不同尺度的缺陷模式,有效抑制產品表面紋理、劃痕等噪聲的影響。在金屬板材、半導體晶圓等缺陷檢測中,該模塊能從復雜背景中精準定位偽裝缺陷,提升檢測的準確率與魯棒性,為工業質量控制提供高效解決方案。”
農業領域
? ? ? ? 于農業偽裝目標檢測相關論文中,PFAE 可表述為:“農業場景中,病蟲害植株、雜草等偽裝目標常與正常作物外觀相似,傳統檢測方法難以精準識別。PFAE 模塊利用頻域注意力機制,提取病蟲害葉片、雜草等目標的獨特頻率特征,抑制作物葉片紋理、自然光照等背景干擾。多尺度結構可適應不同生長階段目標的檢測需求,從圖像高頻分量中增強目標的語義信息,實現對農田中偽裝目標的準確識別與定位,為精準農業管理提供技術支撐。”
3. PFAE與yolo結合???????
? ? ? ? 將PFAE與YOLO結合時,可借助PFAE的頻域注意力與多尺度特征提取能力,增強YOLO對偽裝目標的全局語義理解,抑制復雜背景干擾;其輕量化結構適配YOLO的實時檢測框架,在工業缺陷、遙感目標等場景中,能提升YOLO對邊界模糊、尺度多變偽裝目標的檢測精度與魯棒性,同時保持高效推理速度。
4. PFAE代碼部分
PFAE(金字塔頻率注意力提取模塊)抑制復雜背景干擾,提升小目標、邊界模糊目標的檢測精度_嗶哩嗶哩_bilibili
YOLO12模型改進方法,快速發論文,總有適合你的改進,還不改進上車_嗶哩嗶哩_bilibili
?代碼獲取:YOLOv8_improve/YOLOV12.md at master · tgf123/YOLOv8_improve · GitHub
5. PFAE引入到YOLOv12中
第一: 先新建一個v12_changemodel,將下面的核心代碼復制到下面這個路徑當中,如下圖如所示。E:\Part_time_job_orders\YOLO_NEW\YOLOv12\ultralytics\v12_changemodel。
? ? ?????????????????????????
第二:在task.py中導入包
?????????????????????????????
第三:在task.py中的模型配置部分下面代碼
???????????????????????????????????????????
第四:將模型配置文件復制到YOLOV12.YAMY文件中
???????????????????????????????
? ???????????????????????????????????????????????第五:運行代碼
from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorldif __name__=="__main__":# 使用自己的YOLOv12.yamy文件搭建模型并加載預訓練權重訓練模型model = YOLO("/home/shengtuo/tangfan/YOLO12/ultralytics/cfg/models/12/yolo12_PFAE.yaml")# .load(r'E:\Part_time_job_orders\YOLO_NEW\YOLOv12\yolo12n.pt') # build from YAML and transfer weightsresults = model.train(data="/home/shengtuo/tangfan/YOLO12/ultralytics/cfg/datasets/fire_smoke.yaml",epochs=300,imgsz=640,batch=4,# cache = False,# single_cls = False, # 是否是單類別檢測# workers = 0,# resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',amp = True)
?上面是原模型,下面是改進模型
??
???????????????????????
??