Files
RoRD-Layout-Recognation/docs/loss_function.md
2025-07-21 00:15:34 +08:00

126 lines
5.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# RoRD 模型训练损失函数详解 - IC版图专用版
本文档详细描述了 **RoRDRobust Layout Representation and Detection** 模型训练过程中使用的损失函数设计,**专门针对集成电路版图的几何特征进行了深度优化**。
## 🔍 IC版图特征挑战
集成电路版图具有以下独特特征,要求损失函数必须适应:
- **二值化**:只有黑/白两种像素值
- **稀疏性**:大部分区域为空白,特征点稀疏分布
- **重复结构**:大量相同的晶体管、连线等重复图形
- **曼哈顿几何**:所有几何形状都是水平和垂直方向的组合
- **旋转对称**90度旋转后仍保持几何一致性
## 1. 检测损失Detection Loss - 二值化优化
### 数学公式
$$L_{\text{det}} = \text{BCE}(\text{det}_{\text{original}}, \text{warp}(\text{det}_{\text{rotated}}, H^{-1})) + 0.1 \times \text{SmoothL1}(\text{det}_{\text{original}}, \text{warp}(\text{det}_{\text{rotated}}, H^{-1}))$$
### 针对IC版图的优化
- **BCE损失**特别适合二值化检测任务对IC版图的黑/白像素区分更有效
- **Smooth L1损失**:对几何边缘检测更鲁棒,减少重复结构的误检
- **权重设计**BCE主导1.0确保二值化准确性L1辅助0.1)优化边缘定位
### 空间变换
- **warp操作**使用逆变换矩阵H⁻¹对特征图进行空间变换对齐
- **实现**:通过`F.affine_grid``F.grid_sample`完成
## 2. 几何感知描述子损失Geometry-Aware Descriptor Loss
### IC版图专用设计原则
**核心目标**:学习**几何结构描述子**而非**纹理描述子**
### 数学公式
$$L_{\text{desc}} = L_{\text{triplet}} + 0.1 L_{\text{manhattan}} + 0.01 L_{\text{sparse}} + 0.05 L_{\text{binary}}$$
### 损失组成详解
#### 2.1 曼哈顿几何一致性损失 $L_{\text{manhattan}}$
**解决重复结构问题**
- **采样策略**:优先采样水平和垂直方向的边缘点
- **几何约束**强制描述子对90度旋转保持几何一致性
- **距离度量**使用曼哈顿距离L1而非欧氏距离更适合网格结构
**公式实现**
$$L_{\text{manhattan}} = \frac{1}{N} \sum_{i=1}^{N} \left(1 - \frac{D_a^i \cdot D_p^i}{\|D_a^i\| \|D_p^i\|}\right)$$
#### 2.2 稀疏性正则化 $L_{\text{sparse}}$
**适应稀疏特征**
- **正则化项**$L_{\text{sparse}} = \|D\|_1$,鼓励稀疏描述子
- **效果**:减少空白区域的无效特征提取
- **优势**:专注于真实几何结构而非噪声
**公式**
$$L_{\text{sparse}} = \frac{1}{N} \sum_{i=1}^{N} (\|D_{\text{anchor}}^i\|_1 + \|D_{\text{positive}}^i\|_1)$$
#### 2.3 二值化特征距离 $L_{\text{binary}}$
**处理二值化输入**
- **特征二值化**$L_{\text{binary}} = \|\text{sign}(D_a) - \text{sign}(D_p)\|_1$
- **优势**:强化几何边界特征,弱化灰度变化影响
- **抗干扰**:对光照变化完全鲁棒
#### 2.4 几何感知困难负样本挖掘
**解决重复图形混淆**
- **负样本策略**:使用曼哈顿变换生成困难负样本
- **几何距离**:基于结构相似性而非像素相似性选择负样本
- **旋转鲁棒**确保90度旋转下的特征一致性
### Triplet Loss增强版
$$L_{\text{triplet}} = \max\left(0, \|f(a) - f(p)\|_1 - \|f(a) - f(n)\|_1 + \text{margin}\right)$$
**关键改进**
- **L1距离**:更适合曼哈顿几何结构
- **几何采样**:曼哈顿对齐的采样网格
- **结构感知**:基于几何形状而非纹理特征
## 3. 总损失函数
### 最终公式
$$L_{\text{total}} = L_{\text{det}} + L_{\text{desc}}$$
### IC版图专用平衡策略
- **几何主导**:描述子损失重点优化几何结构一致性
- **二值化适应**:检测损失确保二值化边界准确性
- **稀疏约束**:整体损失鼓励稀疏、几何化的特征表示
## 4. 训练策略优化
### IC版图专用优化
- **采样密度**:在水平和垂直方向增加采样密度
- **负样本生成**:基于几何变换而非随机扰动
- **收敛标准**:基于几何一致性而非像素级相似性
### 验证指标
- **几何一致性**90度旋转下的特征保持度
- **重复结构区分**:相同图形的不同实例识别准确率
- **稀疏性指标**:有效特征点占总特征点的比例
## 5. 实现代码位置与更新
### 最新实现IC版图优化版
- **检测损失**`train.py::compute_detection_loss()`第126-138行
- **几何感知描述子损失**`train.py::compute_description_loss()`第140-218行
- **曼哈顿几何采样**第147-154行
- **困难负样本挖掘**第165-194行
- **几何一致性损失**第197-207行
## 6. 数学符号对照表IC版图专用
| 符号 | 含义 | 维度 | IC版图特性 |
|------|------|------|------------|
| det_original | 原始图像检测图 | (B, 1, H, W) | 二值化边界检测 |
| det_rotated | 变换图像检测图 | (B, 1, H, W) | 90度旋转保持性 |
| desc_original | 原始图像描述子 | (B, 128, H, W) | 几何结构编码 |
| desc_rotated | 变换图像描述子 | (B, 128, H, W) | 旋转不变描述 |
| H | 几何变换矩阵 | (B, 3, 3) | 曼哈顿旋转矩阵 |
| margin | 几何边界 | 标量 | 结构相似性阈值 |
| L_manhattan | 曼哈顿一致性损失 | 标量 | 90度旋转鲁棒性 |
| L_sparse | 稀疏性正则化 | 标量 | 稀疏特征约束 |
| L_binary | 二值化特征距离 | 标量 | 几何边界保持 |
### 关键优势总结
1. **几何结构学习**:强制网络提取几何边界而非纹理特征
2. **曼哈顿适应性**:专门针对水平和垂直结构优化
3. **重复结构区分**:通过几何感知负样本有效区分相似图形
4. **二值化鲁棒性**对IC版图的二值化特性完全适应
5. **稀疏特征优化**:减少无效特征提取,提高计算效率