YOLO26 / YOLO 開源研究工具箱(2026-10-29)
範圍:以 Ultralytics YOLO26n 物件偵測 + ExDark People 為主,涵蓋卷積、特徵模組、Backbone、Neck、Head、分配器、Loss、訓練策略、資料增強、推論、診斷。這是按研究實用性整理的廣泛索引,並非聲稱涵蓋世界上每一種模組。
代號與重要提醒
- A:官方 YOLO26 預設 YAML/訓練機制正在使用(不同運行配置可切換路徑)。
- B:官方 Ultralytics 有實作,但不是 YOLO26n 預設結構;可能需要註冊、改 YAML、調整介面。
- C:其他開源程式庫/論文方法;需要移植、驗證授權及相容性。
- P:PyTorch/Ultralytics 既有參數或基礎操作,不是獨立 YOLO 卷積區塊。
- T:第三方或自行開發的模型檢測工具。
- 本表「有原始碼」≠「你的環境已安裝」≠「可直接在 YAML 換掉」≠「能改善 AP」。需以本機 commit 驗證。狀態 A/B 主要依頂層 YAML 分類,B 類模組也可能內嵌於預設 Head 或 C3k2,例如 DWConv、Bottleneck。
- YOLO26 標準 Detect 使用
end2end: True、reg_max: 1,P3/P4/P5 Head;DFL-free 時dfl損失權重名稱實際控制 normalized L1 distance loss。 - YOLO26 公開
E2ELoss以 O2M 0.8 → 0.1 線性排程,Trainer 會逐 epoch 呼叫 update;官方 pretrained checkpoint 的實際訓練配方可能不同,請以 checkpointtrain_args與實際原始碼核對。 - STAL 是小目標正樣本覆蓋概念,目前公開
TaskAlignedAssigner透過小 GT 候選框擴展處理;無獨立STAL類別也可能已啟用機制。候選數不保證最終正樣本數。
YOLO26n 預設架構 layer 索引(官方 cfg/models/26/yolo26.yaml)
| Layer | 模組 | 位置 | 任務 |
|---|---|---|---|
| 0 | Conv | Backbone P1/2 | 初始 downsample |
| 1 | Conv | Backbone P2/4 | 高解析度特徵 |
| 2 | C3k2 | Backbone P2/4 | 初階紋理 |
| 3 | Conv | Backbone P3/8 | 下採樣 |
| 4 | C3k2 | Backbone P3/8 | 小目標語意 |
| 5 | Conv | Backbone P4/16 | 下採樣 |
| 6 | C3k2 | Backbone P4/16 | 中尺度特徵 |
| 7 | Conv | Backbone P5/32 | 下採樣 |
| 8 | C3k2 | Backbone P5/32 | 高階特徵 |
| 9 | SPPF | Backbone P5/32 | 多範圍上下文 |
| 10 | C2PSA | Backbone P5/32 | 注意力 |
| 11-13 | Upsample, Concat, C3k2 | Neck P4 | Top-down 融合 |
| 14-16 | Upsample, Concat, C3k2 | Neck P3 | Top-down 融合 |
| 17-19 | Conv, Concat, C3k2 | Neck P4 | Bottom-up 融合 |
| 20-22 | Conv, Concat, C3k2(attn=True) | Neck P5 | Bottom-up 融合 |
| 23 | Detect | Head P3/P4/P5 | 類別與框預測 |
1. 輸入、影像增強、資料處理
| 工具 | 功效與實際問題 | 位置 | 狀態 |
|---|---|---|---|
| LetterBox | 保長寬比縮放、padding;避免任意擠壓人物 | Dataloader | A |
| Resize / imgsz | 調整輸入尺寸,決定微小人物佔多少 pixel | Dataloader | P |
| Normalize 0..1 | 像素數值縮放;改善數值處理 | Preprocess | A |
| HSV jitter | 顏色/飽和度/亮度擾動;光線變化泛化 | Augmentation | A |
| Mosaic | 將多圖合成;增加多樣尺度與場景 | Augmentation | A |
| MixUp | 圖像線性混合;正則化但可能降低暗部對比 | Augmentation | B |
| CutMix | 貼圖塊與標註;遮擋情境 | Augmentation | B |
| RandomAffine | 旋轉、平移、縮放、透視;幾何穩健性 | Augmentation | A |
| HorizontalFlip | 左右翻轉;增加方向多樣性 | Augmentation | A |
| VerticalFlip | 上下翻轉;一般校園直立人物不一定合適 | Augmentation | P |
| Copy-Paste | 分割任務複製物件;一般 detect 不是通用預設 | Augmentation | B |
| Multi-scale training | 尺寸動態變化;不同尺度魯棒性 | Trainer | P |
| close_mosaic | 訓練末期關閉 mosaic,減少 train/val 外觀差異 | Trainer | A |
| Gamma transform | 改變亮度非線性映射;可能改變雜訊比例 | 外部 preprocessing | C |
| CLAHE | 局部對比增強;可放大雜訊與壓縮痕跡 | 外部 preprocessing | C |
| Retinex / RetinexNet | 反射/照明估計;低光影像處理 | 外部 preprocessing | C |
| Zero-DCE | 學習式亮度曲線增強;可搭配偵測驗證 | 外部 preprocessing | C |
| LLFormer / Retinexformer | 低光增強架構;需要獨立模型與正規驗證 | 外部 preprocessing | C |
| Poisson/Gaussian Noise | 建立雜訊分布的合成退化 | Augmentation | C |
| Blur / JPEG artifacts | 模擬攝影機失焦與壓縮 | Augmentation | C |
| Albumentations | 自訂影像增強組合 | Dataloader | B |
2. CNN 基礎算子、正規化、啟動函數
| 工具 | 功效與實際問題 | 位置 | 狀態 |
|---|---|---|---|
| Conv2d | 局部空間特徵提取 | Backbone/Neck/Head | P |
| Conv (Conv+BN+Activation) | YOLO 常用卷積封裝 | Backbone/Neck | A |
| 1x1 Pointwise Conv | 調整/混合通道,不直接擴張空間感受野 | 所有階段 | P |
| 3x3 Conv | 邊緣、局部紋理、上下文 | 所有階段 | P |
| 5x5 / large kernel Conv | 較大局部感受野,代價較高 | Backbone/Neck | P |
| Group Conv | 分組通道計算;參數與交互能力取捨 | Backbone | P |
| DWConv | 每通道空間卷積;通常省算力 | Backbone/Head | B |
| Depthwise Separable Conv | DW + PW;輕量化 | Backbone/Head | P |
| Dilated Conv | 在不下採樣時擴大有效感受野;有格點效應風險 | Backbone/Neck | P |
| DeformConv2d / DCNv2 | 學習動態採樣位置;處理形變/不規則輪廓 | Backbone/Neck | C |
| DCNv3 | 更新版可變形卷積研究路線 | Backbone/Neck | C |
| Dynamic Conv | 依輸入動態混合 kernel;可能增大耗時 | Backbone | C |
| GhostConv | 以低成本操作生成部分特徵 | Backbone/Neck | B |
| LightConv | 1x1 + Depthwise,追求效率 | Backbone | B |
| Conv2 | 多分支可重參數化卷積 | Backbone | B |
| RepConv | 訓練多分支、部署融合 | Backbone/Neck | B |
| SCDown | Pointwise + Depthwise 下採樣 | Backbone/Neck | B |
| AConv / ADown | 池化、分路下採樣 | Backbone/Neck | B |
| Focus | 將空間資訊整理到通道 | Stem | B |
| BatchNorm2d | 按 batch 統計正規化;小 batch 要檢查穩定性 | 所有階段 | A |
| GroupNorm | 小 batch 可能較穩定,需重新驗證 | 所有階段 | P |
| LayerNorm | Transformer/部分 CNN 常用正規化 | Attention | P |
| SiLU | YOLO 常用啟動函數 | Conv block | A |
| ReLU / LeakyReLU | 基本非線性 | Backbone | P |
| GELU | Transformer 與部分 CNN 常用 | Attention/MLP | P |
| Hardswish | 行動模型啟動函數 | Mobile backbone | P |
| Identity / Residual Add | 保留捷徑傳遞與梯度路徑 | 各階段 | P |
3. Backbone/CSP/殘差 Block
| 工具 | 功效與實際問題 | 位置 | 狀態 |
|---|---|---|---|
| Bottleneck | Conv 與 shortcut 的基本殘差特徵單元 | Backbone/Neck | B |
| BottleneckCSP | CSP 拆分/合併,改善特徵重複計算 | Backbone | B |
| C1 / C2 | 簡化 CSP 類特徵處理 | Backbone/Neck | B |
| C2f | 多個中間特徵拼接;YOLOv8 家族 | Backbone/Neck | B |
| C3 | 三卷積 CSP;YOLOv5 家族 | Backbone/Neck | B |
| C3f | C3 系列變體,調整特徵組合路徑 | Backbone | B |
| C3k | C3 內部採可配置核尺寸 | Backbone | B |
| C3k2 | C2f 衍生模組,可切換 Bottleneck/C3k/注意力 | Backbone/Neck | A |
| C3x | Cross-convolution CSP 變體 | Backbone | B |
| C3TR | CSP + Transformer | Backbone | B |
| C3Ghost | Ghost 化 CSP | Backbone | B |
| GhostBottleneck | 輕量 Bottleneck | Backbone | B |
| RepC3 | RepConv + CSP 特徵 | Backbone/Neck | B |
| CIB | Compact Inverted Block | Backbone | B |
| C2fCIB | C2f + CIB 組合,YOLOv10 類 | Backbone | B |
| ELAN1 | 多路徑有效層聚合 | Backbone/Neck | B |
| RepNCSPELAN4 | Rep/CSP/ELAN 融合,YOLOv9 類 | Backbone/Neck | B |
| RepVGGDW | 可重參數化 depthwise 卷積 | Backbone | B |
| HGStem / HGBlock | HGNet 類 CNN stem/blocks | Backbone | B |
| ResNetLayer / ResNetBlock | ResNet 殘差層替代 | Backbone | B |
| ResNet / ResNeXt | 殘差 backbone,常作對照組 | Backbone | C |
| CSPDarknet / CSPNeXt | CSP 家族完整 backbone | Backbone | C |
| ConvNeXt / ConvNeXt V2 | 現代 CNN backbone | Backbone | C |
| MobileNet V2/V3/V4 | 行動效率 backbone | Backbone | C |
| EfficientNet | 以尺度與效率共同設計 backbone | Backbone | C |
| RepVGG / MobileOne | 可重參數化高效率 backbone | Backbone | C |
| Swin Transformer | 區域 Window Attention backbone | Backbone | C |
| PVT / PVTv2 | Pyramid ViT,多尺度輸出 | Backbone | C |
| GELAN | YOLOv9 網路聚合設計 | Backbone/Neck | C |
| PGI | YOLOv9 的可程式梯度資訊訓練機制 | Training architecture | C |
4. Attention/上下文
| 工具 | 功效與實際問題 | 位置 | 狀態 |
|---|---|---|---|
| ChannelAttention | 學習通道重要性 | Backbone/Neck | B |
| SpatialAttention | 學習區域重要性 | Backbone/Neck | B |
| CBAM | Channel + Spatial 注意力 | Backbone/Neck | B |
| Attention | 多頭注意力運算 | Backbone | B |
| PSABlock / PSA | 部分通道 Self-Attention | Backbone/Neck | B |
| C2PSA | CSP + PSA,在高階特徵導入注意力 | Backbone | A |
| C2fPSA | C2f + PSA | Backbone | B |
| AAttn / ABlock / A2C2f | Area Attention,部分區域互動 | Backbone | B |
| C2fAttn | C2f 與引導式注意力結合 | 特殊 Head/Backbone | B |
| MaxSigmoidAttnBlock | 外部引導資訊對空間/通道加權 | 特殊模型 | B |
| ImagePoolingAttn | 圖文特徵互動 | 開放詞彙模型 | B |
| SE | Squeeze-and-Excitation 通道重加權 | Backbone/Neck | C |
| ECA-Net | 輕量通道注意力 | Backbone/Neck | C |
| CoordAttention | 沿水平/垂直方向編碼位置的通道注意力 | Backbone/Neck | C |
| SimAM | 無額外可訓練參數的注意力設計 | Backbone/Neck | C |
| GAM | Global Attention Mechanism | Backbone/Neck | C |
| EMA Attention | Efficient Multi-Scale Attention(不要和權重 EMA 混淆) | Backbone/Neck | C |
| Triplet Attention | 不同維度交互的注意力 | Backbone/Neck | C |
| Non-local | 長距離關係;可能增加記憶體 | Backbone | C |
| GCNet | 全域上下文重加權 | Backbone | C |
| TransformerBlock | Transformer 特徵互動 | Backbone | B |
| AIFI | RT-DETR 內尺度交互 | Neck | B |
| MSDeformAttn | 多尺度可變形注意力 | Neck/Decoder | B |
5. Pooling/Neck/多尺度融合
| 工具 | 功效與實際問題 | 位置 | 狀態 |
|---|---|---|---|
| SPP | 多尺度空間池化 | Backbone P5 | B |
| SPPF | 快速池化,補充上下文與感受野 | Backbone P5 | A |
| SPPELAN | SPP + ELAN 聚合 | Backbone/Neck | B |
| MaxPool / AvgPool | 取局部最大/平均統計 | Backbone | P |
| AdaptiveAvgPool | 自適應長寬匯總 | Attention | P |
| Concat | 沿 channel 串接特徵 | Neck | A |
| Add | 對齊後逐元素相加特徵 | Neck | P |
| nn.Upsample nearest | 固定插值上採樣 | Neck | A |
| Bilinear Upsample | 平滑內插上採樣 | Neck | P |
| ConvTranspose | 可學習上採樣 | Neck | B |
| FPN | 高階語意往高解析度傳遞 | Neck | A(設計) |
| PAN / PAFPN | 自下而上回傳定位資訊 | Neck | A(設計) |
| BiFPN | 可學習權重的雙向特徵融合 | Neck | C |
| ASFF | 不同空間位置自動融合不同尺度 | Neck | C |
| AFPN | 漸進式融合尺度,減少跨尺度資訊落差 | Neck | C |
| NAS-FPN | 搜尋多尺度拓樸 | Neck | C |
| CARAFE | 內容感知上採樣 | Neck | C |
| DySample | 動態取樣上採樣 | Neck | C |
| GSConv / Slim-Neck | 輕量化 Neck | Neck | C |
| P2 branch (stride=4) | 添加更高解析度預測特徵;增加顯存/位置數 | Neck/Head | B(官方 YAML) |
| P6 branch (stride=64) | 添加更粗尺度輸出 | Neck/Head | B(官方 YAML) |
| Cross-scale gate | 對不同尺度融合加權;需自訂實現 | Neck | C |
6. Head/框表示/推論分支
| 工具 | 功效與實際問題 | 位置 | 狀態 |
|---|---|---|---|
| Detect | 類別、bbox 預測與 decode | Head | A |
| Decoupled Head | bbox 與 class 各自建支路 | Head | A(設計) |
| O2M Head | 一 GT 多個正樣本,訓練密集監督 | Head | A |
| O2O Head | NMS-free 使用的稀疏匹配頭 | Head | A |
| Anchor-free anchor points | 特徵格點為距離解碼參考 | Head/Assignment | A |
| Distance l/t/r/b | 每個網格預測四個邊界距離 | Head | A |
| DFL-free (reg_max=1) | 輸出 4 個距離,而非每邊多 bin 分布 | Head/Loss | A |
| DFL decode (reg_max>1) | 多 bin 分布積分求預測距離 | Head | B(舊版) |
| v10Detect | YOLOv10 類 Head | Head | B |
| WorldDetect / YOLOEDetect | 開放詞彙偵測 | Head | B |
| RTDETRDecoder | DETR-style 解碼 | Head | B |
| DyHead | 尺度/空間/任務動態注意力 Head | Head | C |
| GFL/Varifocal Head | 品質感知分類分數與框估計 | Head | C |
| DINO / Deformable DETR decoder | Query-based DETR 偵測 | Head | C |
| Segment / Segment26 | Instance segmentation 輸出 | Head | B |
| SemanticSegment | 每像素語意分割 | Head | B |
| Pose / Pose26 | 關鍵點定位 | Head | B |
| OBB / OBB26 | 旋轉框 | Head | B |
| Classify | 影像分類 | Head | B |
| Depth | 深度估計 | Head | B |
7. Label Assignment(訓練時決定正負樣本)
| 方法 | 功效與實際問題 | 位置 | 狀態 |
|---|---|---|---|
| TaskAlignedAssigner / TAL | 按分類與 IoU 的聯合對齊指標分配候選 | Assignment | A |
| STAL small-target handling | 擴大過小 GT 候選覆蓋,減少零正樣本 | Assignment | A(內建邏輯) |
| Top-K selection | 每 GT 保留若干候選;決定密度 | Assignment | A |
| TopK2 final selection | 後續收斂候選;O2O 可選 1 | Assignment | A |
| alpha / beta | 分類與 IoU 在匹配分數中的相對權重 | Assignment | A |
| Conflict Resolution | 同候選被多個 GT 選中,處理重複指派 | Assignment | A |
| ATSS | 自適應訓練樣本選擇 | Assignment | C |
| SimOTA | 動態正樣本選擇,YOLOX 常見 | Assignment | C |
| OTA | 最佳傳輸式標籤分配 | Assignment | C |
| Hungarian Matching | 一對一二分圖匹配,DETR 家族 | Assignment | C |
| FCOS Center Sampling | 限制 GT 中心附近為候選 | Assignment | C |
| PAA | 概率統計驅動正負樣本分配 | Assignment | C |
| MaxIoUAssigner | IoU 門檻式分配 | Assignment | C |
| Ignore Region / Crowd | 排除模糊或未能完整標註的區域 | Dataset/Assignment | C |
8. Loss Function(不是 CNN 區塊)
| 方法 | 功效與實際問題 | 位置 | 狀態 |
|---|---|---|---|
| E2ELoss | O2M+O2O 複合損失 | Detection training | A |
| Progressive Loss Balancing | 隨 epoch 改變 O2M/O2O 的權重 | Detection training | A |
| BCEWithLogits | 多類別/正負分類監督 | Classification term | A |
| CIoU | BBox 重疊與中心/形狀幾何 | BBox term | A |
| Normalized distance L1 | DFL-free 回歸距離誤差 | BBox term | A |
dfl hyperparameter | YOLO26 reg_max=1 時實際加權 L1,名稱保留 | Trainer config | A |
| DFLoss | reg_max>1 的 distribution focal loss | BBox term | B(舊版) |
| FocalLoss | 調低容易樣本權重,聚焦難例 | Classification | B |
| VarifocalLoss | 考慮標籤品質、前背景不平衡 | Classification | B |
| GIoU / DIoU | BBox 幾何相似度家族 | BBox | P |
| EIoU / Focal-EIoU | 針對寬高與重疊誤差設計 | BBox | C |
| SIoU | 方向/距離/形狀幾何 | BBox | C |
| Wise-IoU | 動態難例品質重加權 | BBox | C |
| NWD | 小目標框的高斯 Wasserstein 距離 | BBox | C |
| SmoothL1 / Huber | 平滑穩健回歸 | BBox | P |
| Quality Focal Loss | 類別與定位品質聯合的分類監督 | Classification | C |
| Label Smoothing | 降低過度確信與噪聲敏感 | Classification | P |
| OHEM / Hard Example Mining | 優先訓練困難負樣本/漏檢類 | Sampling / Loss | C |
| KD / Feature Distillation | 教師模型指導學生 | Training | B(蒸餾框架需對齊) |
| Contrastive / SupCon Loss | 拉近同類、推遠異類特徵 | 特徵學習 | C |
| Center Loss | 聚合同類特徵 | 特徵學習 | C |
| Per-scale loss weighting | P2/P3/P4/P5 不同監督權重 | Training | C(需自訂) |
| MultiChannelDiceLoss | 像素/mask 重疊 | Segmentation | B |
| BCEDiceLoss | BCE + Dice 混合 | Segmentation | B |
| RLELoss | 關鍵點殘差對數似然估計 | Pose | B |
| KeypointLoss / OKS | 姿態關鍵點品質 | Pose | B |
| RotatedBboxLoss | 旋轉框的定位誤差 | OBB | B |
| DepthLoss26 | 深度尺度、梯度等誤差 | Depth | B |
| SemanticSegmentationLoss | 逐像素分類誤差 | Segmentation | B |
9. 優化器與訓練控制
| 工具 | 功效與實際問題 | 位置 | 狀態 |
|---|---|---|---|
| SGD / Momentum | 經典梯度更新,超參數相對穩定 | Optimizer | B |
| Adam | 自適應一、二階矩估計 | Optimizer | B |
| AdamW | 解耦 weight decay | Optimizer | B |
| MuSGD | Muon 式正交化 + SGD;YOLO26 官方案例 | Optimizer | B |
| RMSProp | 利用平方梯度移動平均 | Optimizer | B |
| NAdam / RAdam / Adamax | 其他 Adam 家族 | Optimizer | B |
| Cosine LR | 學習率餘弦衰減 | Schedule | P |
| OneCycle LR | Warmup + 下降曲線 | Schedule | P |
| Warmup | 初期穩定優化器更新 | Schedule | P |
| EMA (ModelEMA) | 平滑模型權重;與 EMA Attention 完全不同 | Training | A |
| Mixed Precision AMP | 部分運算用低精度;提升效率 | Training | A |
| Gradient Accumulation | 小 batch 累積梯度 | Training | P |
| Gradient Clipping | 限制梯度爆炸 | Training | P |
| Freeze layers | 暫停部分 backbone 更新 | Fine-tuning | P |
| Weight Decay | 抑制過大權重,正則化 | Optimizer | A |
| Early Stopping | VAL 長期無改善時停止 | Trainer | B |
| Gradient Checkpointing | 以計算換記憶體 | Training | P |
| Multi-seed Repeats | 區分隨機性與實驗增益 | Evaluation protocol | T |
| QAT / Quantization | 部署前量化感知訓練 | Deployment | B |
10. Inference、部署與後處理
| 工具 | 功效與實際問題 | 位置 | 狀態 |
|---|---|---|---|
| Box Decode | l/t/r/b → xyxy 座標 | Postprocess | A |
| Sigmoid Class Scores | 類別分數解碼 | Postprocess | A |
| Confidence threshold | 過濾低分偵測 | Postprocess | A |
| NMS | 刪除重疊框;O2M 常用 | Postprocess | A(可選路徑) |
| NMS-free O2O | 不依賴 NMS 的分支 | Postprocess | A(可選路徑) |
| Top-K | 選取最高分的輸出 | Postprocess | A |
| TTA | 翻轉/多尺度推論再合併 | Inference | B |
| ONNX Export | 跨框架計算圖導出 | Deployment | B |
| TensorRT | NVIDIA GPU 加速 | Deployment | C |
| ONNX Runtime | CPU/GPU 推論 | Deployment | C |
| OpenVINO | Intel 推論加速 | Deployment | C |
| TFLite / LiteRT | 行動裝置推論 | Deployment | C |
| OpenCV DNN | OpenCV 推論後端 | Deployment | C |
| FP16 / INT8 | 降低精度與計算/記憶體負擔 | Deployment | P |
11. 研究診斷、視覺化與量測工具
| 工具 | 可回答的問題 | 狀態 |
|---|---|---|
| Model summary / layer-wise shapes | 各層輸出與參數量? | T |
| Forward hooks | P2/P3/P4/P5 實際特徵圖是什麼? | T |
| Backward hooks | 梯度是否到達某個專家/模組? | T |
| Activation histograms | 特徵飽和/消失/稀疏嗎? | T |
| Grad-CAM | 哪些區域影響特定類別或候選框? | T |
| Grad-CAM++ / LayerCAM | 不同類型的梯度歸因結果有何差別? | T |
| EigenCAM | 特徵主要空間變化在哪? | T |
| Captum Integrated Gradients | 模型輸入或中間層的歸因? | T |
| Linear Probe | 某層能否以簡單邊界區分 person/background? | T |
| CKA / RSA | 兩模型層的表徵相似程度? | T |
| PCA / UMAP / t-SNE | 特徵群視覺投影(不是性能證明) | T |
| IoU matched TP/FP/FN audit | 漏檢與誤檢到底發生在哪些圖? | T |
| Tiny-GT assignment audit | 很小的人物是否有零正樣本? | T |
| P2/P3/P4/P5 assignment counts | 哪個尺度在承擔小目標監督? | T |
| Loss component / gradient norms | 哪一種損失真的主導更新? | T |
| TIDE | 偵測錯誤按定位、分類、重複等分解 | T |
| FiftyOne | 搜尋/過濾漏檢、錯標與難例 | T |
| Cleanlab | 找潛在標註錯誤 | T |
| Netron | 查看網路計算圖 | T |
| fvcore / THOP | 參數、FLOPs/MACs 比較 | T |
| torch.profiler | 每層 CPU/GPU 延遲與資源 | T |
| torch.cuda.max_memory_allocated | GPU 記憶體峰值 | T |
| PR curve / AP50 / AP50-95 | 偵測能力與排序品質 | T |
| Calibration / ECE | 分數可信程度,與 AP 有別 | T |
| Paired bootstrap | 同一批圖片改善是否跨 0 | T |
| HTML point-image feature explorer | latent 特徵點對應到原圖、GT、TP/FN | T |
| Weights & Biases / TensorBoard / MLflow | 多組研究試驗追蹤 | T |
| DVC / dataset hash | 資料版本與 split 隔離 | T |
原始碼級四個研究陷阱(必讀)
- P2 + STAL 的交互作用:標準 P3/P4/P5 的 strides
[8,16,32],目前 TALstride_val=stride[1]是 16;官方 P2/P3/P4/P5 strides[4,8,16,32],相同程式會令stride_val變 8。比較是否加 P2 時,不只候選網格從 8,400 變 34,000,也同時改了小 GT 的候選框擴展規則。應以 2×2 factorial 或固定 assignment 邏輯拆開效果。 - O2O 不是直接只有 Top-1 初選:公開
E2ELoss是 O2Mtal_topk=10;O2Otal_topk=7, tal_topk2=1。要區分候選初選和最終選擇,且衝突後仍可能有 GT 無正樣本。 - Progressive 的 Loss log 可能不是總 Loss:目前
E2ELoss.__call__傳回加權總 Loss tensor,卻把loss_one2one[1]作為 loss items;所以一般訓練顯示的box_loss / cls_loss / l1_loss不一定等同完整 O2M+O2O 總分解。研究需另外記錄 O2M/O2O 原始項、權重和加權後項。 - DFL-free 仍可能叫
dfl:reg_max=1時 BboxLoss 用 normalized l/t/r/b L1,而hyp.dfl仍加權該項。不可把 YOLO26 的dfl參數誤當成正在訓練 distribution focal loss。
12. 最建議先做的因果診斷(對 ExDark 人物)
- 輸入/資料:比較 ExDark Q1 亮度分布、人物像素尺寸、重複影像、標註品質;不要用 TEST 選方案。
- STAL/TAL:量每 GT 最終正樣本數
0 / 1 / 2-3 / >=4,依人物寬高與亮度分層;另記錄每個 stage 的 TopK 與衝突後損失。 - Backbone:在 P2/P3/P4/P5 量 Linear Probe、特徵統計、TP-FN CKA/UMAP;先確定特徵是否存在。
- Neck:比較 Backbone P3(layer 4)與 Neck P3(layer 16)在同一個人像上的特徵是否劣化。
- Head:固定 feature,測 Head 分類與定位兩支是否其中一支造成 FN。
- Loss:同時記 O2M/O2O 損失、實際 loss weight、gradient norm;確認 progressive schedule 生效。
- 推論:比較 NMS/O2M 與 NMS-free/O2O,固定 val/預測閾值與指標實作。
- 效能與學術性:比較 AP50-95、AP50、Q1 Recall、小人物 Recall、FP、latency、FLOPs、seeds/CI,先設 GO/NO-GO 門檻。
13. 源碼定位
- YOLO26 YAML:
ultralytics/cfg/models/26/yolo26.yaml - 官方 P2 YAML:
ultralytics/cfg/models/26/yolo26-p2.yaml - 主模組:
ultralytics/nn/modules/conv.py、block.py、transformer.py、head.py - 模型組裝/YAML:
ultralytics/nn/tasks.py(parse_model) - Loss:
ultralytics/utils/loss.py(v8DetectionLoss,BboxLoss,E2ELoss) - Assignment:
ultralytics/utils/tal.py(TaskAlignedAssigner) - Optimizer:
ultralytics/optim/muon.py(MuSGD) - Trainer / update:
ultralytics/engine/trainer.py - Dataset augmentation:
ultralytics/data/augment.py、ultralytics/data/dataset.py
公開參考
- YOLO26 官方架構 https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/models/26/yolo26.yaml
- YOLO26 官方模型說明 https://docs.ultralytics.com/models/yolo26/
- YOLO26 訓練配方 https://docs.ultralytics.com/guides/yolo26-training-recipe/
- YOLO26 官方 Loss https://github.com/ultralytics/ultralytics/blob/main/ultralytics/utils/loss.py
- YOLO26 官方 TAL https://github.com/ultralytics/ultralytics/blob/main/ultralytics/utils/tal.py
- YOLO26 官方 Conv Block API https://docs.ultralytics.com/reference/nn/modules/block/
- MMDetection https://github.com/open-mmlab/mmdetection
- MMCV ops https://github.com/open-mmlab/mmcv
- MMYOLO https://github.com/open-mmlab/mmyolo
- YOLOX / SimOTA https://github.com/Megvii-BaseDetection/YOLOX
- YOLOv9 / PGI / GELAN https://github.com/WongKinYiu/yolov9
- BiFPN / EfficientDet https://github.com/google/automl/tree/master/efficientdet
- Tiny object NWD https://github.com/jwwangchn/NWD
- timm https://github.com/huggingface/pytorch-image-models
- ECA https://github.com/BangguWu/ECANet
- CoordAttention https://github.com/houqb/CoordAttention
- pytorch-grad-cam https://github.com/jacobgil/pytorch-grad-cam
- FiftyOne https://docs.voxel51.com/