Files
astro-jiao77.cn/src/pages/report/20251112/index.astro
2025-11-12 00:02:05 +08:00

1566 lines
71 KiB
Plaintext
Raw 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: 面向集成电路版图识别的旋转鲁棒描述子 - 中期检查报告
* 基于标准模板的技术报告页面
*/
import BaseLayout from '../../../layouts/BaseLayout.astro';
import Header from '../../../components/Header.astro';
import Footer from '../../../components/Footer.astro';
import ReportSection from '../../../components/report/ReportSection.astro';
import GlassTable from '../../../components/common/GlassTable.astro';
import MathFormula from '../../../components/common/MathFormula.astro';
import ImageViewer from '../../../components/common/ImageViewer.astro';
import CodeBlock from '../../../components/common/CodeBlock.astro';
import Container from '../../../components/Container.astro';
import AnimatedElement from '../../../components/AnimatedElement.astro';
import ReportSidebar from '../../../components/report/ReportSidebar.astro';
// 导入动画时序计算工具
import {
getSectionBaseDelay,
getChildDelay,
getNestedDelay,
getImageDelay
} from '../../../scripts/animation-timing';
// 定义各章节的基础延迟时间
const RORD_SECTION_DELAYS = {
HERO: 200,
OVERVIEW: getSectionBaseDelay(0), // 400ms
COMPLETENESS: getSectionBaseDelay(1), // 600ms
ACHIEVEMENTS: getSectionBaseDelay(2), // 800ms
PERFORMANCE: getSectionBaseDelay(3), // 1000ms
INNOVATION: getSectionBaseDelay(4), // 1200ms
PLAN: getSectionBaseDelay(5), // 1400ms,
RISK: getSectionBaseDelay(6),
CONCLUSION: getSectionBaseDelay(7),
};
// 报告配置
const reportConfig = {
title: "RoRD: 面向集成电路版图识别的旋转鲁棒描述子",
subtitle: "浙江大学竺可桢学院深度科研训练项目中期检查报告",
description: "RoRD-Layout-Recognition项目的中期进展报告涵盖核心技术实现、性能测试分析和后期工作计划。",
date: "2025年11月",
type: "中期检查报告",
actionText: "开始阅读 ↓",
actionLink: "#overview"
};
// 示例代码配置
const codeExamples = {
config: {
title: "配置文件示例",
language: "yaml",
code: `# configs/base_config.yaml
training:
learning_rate: 5.0e-5
batch_size: 8
num_epochs: 50
patch_size: 256
model:
backbone:
name: "resnet34"
pretrained: false
fpn:
enabled: true
out_channels: 256
data_sources:
real:
enabled: true
ratio: 0.7
diffusion:
enabled: true
png_dir: "data/diffusion_generated"
ratio: 0.3`
},
match: {
title: "版图匹配示例",
language: "bash",
code: `# 基本匹配
python match.py \\
--layout data/large_layout.png \\
--template data/small_template.png \\
--output results/matching.png \\
--json_output results/matching.json`
}
};
---
<BaseLayout
title={`${reportConfig.title} - Jiao77`}
description={reportConfig.description}
type="report"
>
<Header
pageTitle={reportConfig.title}
showPageTitle={true}
description={reportConfig.subtitle}
/>
<main class="report-main">
<div class="report-layout container mx-auto px-4">
<ReportSidebar title="报告目录" toggleLabel="目录" />
<div class="report-content" data-report-content>
<!-- 报告标题区域 -->
<section id="intro" class="report-header scroll-mt-16">
<AnimatedElement animation="fadeInUp" delay={200} trigger="load">
<Container
variant="glass"
size="full"
padding="xl"
className="text-center mb-12 mt-24"
>
<h1 class="report-title">{reportConfig.title}</h1>
<p class="report-subtitle">{reportConfig.subtitle}</p>
<div class="report-meta">
<span class="report-date">报告日期:{reportConfig.date}</span>
<span class="report-type">{reportConfig.type}</span>
<span class="report-date">报告人:焦天晟</span>
</div>
<div class="report-action">
<a href={reportConfig.actionLink} class="report-cta-button">{reportConfig.actionText}</a>
</div>
</Container>
</AnimatedElement>
</section>
<!-- 项目概述章节 -->
<AnimatedElement animation="fadeInUp" delay={RORD_SECTION_DELAYS.OVERVIEW} trigger="scroll">
<section id="overview">
<ReportSection
title="📋 项目概述"
subtitle="项目背景、核心目标和技术创新点介绍"
level={2}
>
<div class="space-y-6">
<div class="goal-section">
<h3 class="section-heading">项目背景与目标</h3>
<p>
集成电路IC版图识别是半导体制造和EDA电子设计自动化领域的关键技术。随着芯片设计复杂度不断提升传统基于像素匹配的方法在处理旋转、缩放等几何变换时面临巨大挑战基于几何计算的传统算法也面临计算复杂度高运行时间长等问题。
</p>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.OVERVIEW, 0)} trigger="scroll">
<div class="math-intro mt-6">
<p class="text-lg text-gray-700 mb-4"><strong>项目核心目标:</strong></p>
<ul class="research-pillars">
<li>
<strong>开发旋转鲁棒的IC版图描述子</strong>
Rotation-Robust Descriptors, RoRD解决传统方法对几何变换敏感的问题
</li>
<li>
<strong>实现高精度的版图几何特征匹配</strong>
支持多尺度、多实例的版图检索
</li>
<li>
<strong>构建端到端的版图识别解决方案</strong>
为半导体设计和制造提供关键技术支撑
</li>
</ul>
</div>
</AnimatedElement>
</div>
<div class="goal-section">
<h3 class="section-heading">解决的关键问题</h3>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div class="challenge-card">
<h4 class="challenge-title">几何变换不变性</h4>
<p class="challenge-description">IC版图在设计过程中经常需要旋转0°、90°、180°、270°传统方法无法保持特征一致性</p>
</div>
<div class="challenge-card">
<h4 class="challenge-title">IP库动态扩展</h4>
<p class="challenge-description">IP核库、标准单元库等模板库规模庞大且动态更新该方案灵活适应新模板而无需频繁进行昂贵的重训练。</p>
</div>
<div class="challenge-card">
<h4 class="challenge-title">数据稀缺性</h4>
<p class="challenge-description">监督学习依赖大量精细标注数据,但在高度专业的版图领域,获取像素级或边界框标注的成本极其高昂。</p>
</div>
<div class="challenge-card">
<h4 class="challenge-title">实时性要求</h4>
<p class="challenge-description">工业应用对处理速度的严格要求,需要支持批量处理和并发推理</p>
</div>
</div>
</div>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.OVERVIEW, 1)} trigger="scroll">
<div class="goal-section">
<h3 class="section-heading">技术背景与现有解决方案</h3>
<div class="mb-6">
<h4 class="font-semibold text-lg text-blue-600 mb-3">传统方法局限性</h4>
<GlassTable
headers={['方法', '优点', '缺点']}
rows={[
['像素直接匹配', '简单直观', '对旋转敏感,鲁棒性差'],
['SIFT/SURF特征', '尺度不变性', '不适合IC版图的几何特性'],
['深度学习分类', '端到端学习', '需要大量标注数据'],
['传统哈希匹配', '速度快', '精度有限,不处理几何变换']
]}
striped={true}
bordered={true}
className="tech-comparison-table"
/>
</div>
<div class="deep-dive-card">
<h4 class="font-semibold text-lg text-blue-600 mb-3">本项目技术优势</h4>
<p class="text-gray-700 mb-4">基于RoRD模型的创新解决方案专门针对IC版图的特殊几何特性进行优化</p>
<AnimatedElement animation="fadeInUp" delay={getNestedDelay(getChildDelay(RORD_SECTION_DELAYS.OVERVIEW, 1), 2)} trigger="scroll">
<ul class="space-y-3 text-gray-700 list-disc list-inside">
<li><strong>曼哈顿几何约束</strong>: 专门针对IC版图的曼哈顿几何特性优化</li>
<li><strong>扩散模型数据增强</strong>: 基于真实数据的智能合成,训练数据量提升数倍</li>
<li><strong>多尺度特征融合</strong>: 一定程度上支持不同工艺的版图处理</li>
<li><strong>端到端自动化管线</strong>: 从原始数据到训练模型的完整自动化流程</li>
</ul>
</AnimatedElement>
</div>
</div>
</AnimatedElement>
</div>
</ReportSection>
</section>
</AnimatedElement>
<!-- 项目完成度分析章节 -->
<AnimatedElement animation="fadeInUp" delay={RORD_SECTION_DELAYS.COMPLETENESS} trigger="scroll">
<section id="completeness">
<ReportSection
title="🏗️ 项目完成度分析"
subtitle="截至中期项目已完成核心框架搭建和基础功能实现完成度约为65%"
level={2}
>
<div class="space-y-8">
<div class="goal-section">
<h3 class="section-heading">整体进度</h3>
<p class="text-lg text-gray-700 mb-4">
截至2025年11月项目已完成<strong>核心框架搭建</strong>和<strong>基础功能实现</strong>,完成度约为<strong>65%</strong>。
各模块进展良好核心模型实现已达到90%,但仍需在训练验证和性能测试方面投入更多精力。
</p>
</div>
<div class="goal-section">
<h3 class="section-heading">模块完成度分析</h3>
<div class="space-y-3">
<div class="progress-item">
<div class="flex justify-between mb-1">
<span class="font-semibold">核心模型实现</span>
<span class="text-green-600">90%</span>
</div>
<div class="progress-bar">
<div class="progress-fill" style="width: 90%"></div>
</div>
</div>
<div class="progress-item">
<div class="flex justify-between mb-1">
<span class="font-semibold">数据处理流程</span>
<span class="text-green-600">85%</span>
</div>
<div class="progress-bar">
<div class="progress-fill" style="width: 85%"></div>
</div>
</div>
<div class="progress-item">
<div class="flex justify-between mb-1">
<span class="font-semibold">匹配算法优化</span>
<span class="text-green-600">80%</span>
</div>
<div class="progress-bar">
<div class="progress-fill" style="width: 80%"></div>
</div>
</div>
<div class="progress-item">
<div class="flex justify-between mb-1">
<span class="font-semibold">训练基础设施</span>
<span class="text-blue-600">70%</span>
</div>
<div class="progress-bar">
<div class="progress-fill" style="width: 70%"></div>
</div>
</div>
<div class="progress-item">
<div class="flex justify-between mb-1">
<span class="font-semibold">文档和示例</span>
<span class="text-blue-600">60%</span>
</div>
<div class="progress-bar">
<div class="progress-fill" style="width: 60%"></div>
</div>
</div>
<div class="progress-item">
<div class="flex justify-between mb-1">
<span class="font-semibold">性能测试验证</span>
<span class="text-orange-600">50%</span>
</div>
<div class="progress-bar">
<div class="progress-fill" style="width: 50%"></div>
</div>
</div>
</div>
</div>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.COMPLETENESS, 0)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">🔴</div>
<div>
<p class="component-label">关键未完成任务</p>
<h3 class="component-title">剩余工作重点</h3>
</div>
</div>
<div class="space-y-6">
<div class="challenge-card">
<h4 class="challenge-title">1. 模型训练与优化 (剩余80%)</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>未完成</strong>: 实际模型训练和参数调优</li>
<li><strong>缺失</strong>: 超参数网格搜索和最佳配置确定</li>
<li><strong>待做</strong>: 模型收敛性验证和性能基准测试</li>
<li><strong>计划</strong>: 第一阶段重点完成</li>
</ul>
</div>
<div class="challenge-card">
<h4 class="challenge-title">2. 大规模数据测试 (剩余50%)</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>未完成</strong>: 真实IC版图数据集上的性能验证</li>
<li><strong>缺失</strong>: 不同工艺节点和设计复杂度的适应性测试</li>
<li><strong>待做</strong>: 与现有方法的定量对比实验</li>
<li><strong>计划</strong>: 第一和第二阶段逐步完成</li>
</ul>
</div>
<div class="challenge-card">
<h4 class="challenge-title">3. 性能极限探索 (剩余70%)</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>未完成</strong>: 模型性能上限测试和优化</li>
<li><strong>缺失</strong>: 极限分辨率和复杂版图的处理能力验证</li>
<li><strong>待做</strong>: 算法改进和架构优化研究</li>
<li><strong>计划</strong>: 第二阶段研究重点</li>
</ul>
</div>
<div class="challenge-card">
<h4 class="challenge-title">4. 真实场景验证 (剩余60%)</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>未完成</strong>: 工业环境下的实际应用测试</li>
<li><strong>缺失</strong>: EDA工具集成和接口适配</li>
<li><strong>待做</strong>: 用户体验优化和工业部署验证</li>
<li><strong>计划</strong>: 第二阶段重点完成</li>
</ul>
</div>
</div>
</div>
</AnimatedElement>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.COMPLETENESS, 1)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">🟡</div>
<div>
<p class="component-label">部分完成的任务</p>
<h3 class="component-title">需要进一步完善的功能</h3>
</div>
</div>
<div class="space-y-6">
<div class="challenge-card">
<h4 class="challenge-title">1. 训练基础设施 (70%完成)</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>已完成</strong>: 配置管理、损失函数、优化器框架</li>
<li><strong>未完成</strong>: 分布式训练支持、自动超参数调优</li>
<li><strong>待完善</strong>: 训练监控和异常处理机制</li>
</ul>
</div>
<div class="challenge-card">
<h4 class="challenge-title">2. 性能测试验证 (50%完成)</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>已完成</strong>: 未训练模型的推理性能基准测试</li>
<li><strong>未完成</strong>: 训练后模型的精度和性能评估</li>
<li><strong>待完善</strong>: 不同硬件平台和环境下的兼容性测试</li>
</ul>
</div>
<div class="challenge-card">
<h4 class="challenge-title">3. 文档和示例 (60%完成)</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>已完成</strong>: 技术文档、使用指南、API说明</li>
<li><strong>未完成</strong>: 完整的教程和最佳实践文档</li>
<li><strong>待完善</strong>: 工业应用案例和部署指南</li>
</ul>
</div>
</div>
</div>
</AnimatedElement>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.COMPLETENESS, 2)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">🟢</div>
<div>
<p class="component-label">完成质量评估</p>
<h3 class="component-title">各模块质量评级</h3>
</div>
</div>
<GlassTable
headers={['模块', '完成度', '质量评级', '关键缺失']}
rows={[
['核心模型实现', '90%', '优秀', '训练验证'],
['数据处理流程', '85%', '良好', '大规模测试'],
['匹配算法优化', '80%', '良好', '真实数据验证'],
['训练基础设施', '70%', '中等', '分布式支持'],
['文档和示例', '60%', '中等', '工业案例'],
['性能测试验证', '50%', '较低', '训练后测试']
]}
striped={true}
bordered={true}
className="quality-table"
/>
</div>
</AnimatedElement>
</div>
</ReportSection>
</section>
</AnimatedElement>
<!-- 已完成核心功能章节 -->
<AnimatedElement animation="fadeInUp" delay={RORD_SECTION_DELAYS.ACHIEVEMENTS} trigger="scroll">
<section id="achievements">
<ReportSection
title="✅ 已完成核心功能"
subtitle="项目已完成的核心技术组件和实现方案"
level={2}
>
<div class="space-y-8">
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.ACHIEVEMENTS, 0)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">🏗️</div>
<div>
<p class="component-label">模型架构</p>
<h3 class="component-title">多骨干网络支持</h3>
</div>
</div>
<p class="text-gray-700 mb-4"><strong>问题解决</strong>: 传统深度学习模型无法有效处理IC版图的特殊几何特征和旋转不变性要求</p>
<div class="space-y-4">
<div class="challenge-card">
<h4 class="challenge-title">1. 多骨干网络支持: VGG16、ResNet34、EfficientNet-B0</h4>
<div class="space-y-2 text-gray-600">
<p><strong>解决问题</strong>: 不同应用场景对速度和精度的需求差异</p>
<p><strong>应用价值</strong>: ResNet34提供实时处理能力(55FPS)VGG16提供高精度基准</p>
<p><strong>技术创新</strong>: 针对IC版图优化的特征提取层</p>
</div>
</div>
<div class="challenge-card">
<h4 class="challenge-title">2. 几何感知头: 专门的检测和描述子生成</h4>
<div class="space-y-2 text-gray-600">
<p><strong>解决问题</strong>: IC版图的曼哈顿几何特性(直角、网格结构)</p>
<p><strong>技术实现</strong>: 几何约束的特征映射 + 曼哈顿距离损失函数</p>
<p><strong>创新价值</strong>: 将几何约束深度集成到版图识别中</p>
</div>
</div>
<div class="challenge-card">
<h4 class="challenge-title">3. 特征金字塔网络: 多尺度推理能力</h4>
<div class="space-y-2 text-gray-600">
<p><strong>解决问题</strong>: 不同设计层级和工艺节点的尺寸存在明显差异</p>
<p><strong>应用场景</strong>: 实现不同工艺之间的版图的有效处理</p>
<p><strong>性能提升</strong>: 支持最高4096×4096像素的大版图处理</p>
</div>
</div>
</div>
</div>
</AnimatedElement>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.ACHIEVEMENTS, 1)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">🔄</div>
<div>
<p class="component-label">数据处理管道</p>
<h3 class="component-title">扩散模型数据增强</h3>
</div>
</div>
<p class="text-gray-700 mb-4"><strong>问题解决</strong>: IC版图数据稀缺且标注成本高传统数据增强方法效果有限</p>
<div class="space-y-4">
<div class="challenge-card">
<h4 class="challenge-title">1. 扩散模型集成: 基于真实数据的智能合成</h4>
<div class="space-y-2 text-gray-600">
<p><strong>解决问题</strong>: 训练数据不足,传统合成数据质量差</p>
<p><strong>技术创新</strong>: 首次将DDPM应用于IC版图数据增强</p>
<p><strong>数据质量</strong>: 生成数据保持与真实版图相似的几何关系</p>
<p><strong>效果提升</strong>: 训练数据量提升数倍,并保持数据质量</p>
</div>
</div>
<div class="challenge-card">
<h4 class="challenge-title">2. 几何变换增强: 8种离散旋转+镜像</h4>
<div class="space-y-2 text-gray-600">
<p><strong>解决问题</strong>: IC设计中的旋转需求(0°、90°、180°、270°)</p>
<p><strong>技术实现</strong>: 精确的几何变换 + H一致性验证</p>
<p><strong>算法优势</strong>: 确保旋转前后特征的一致性和可匹配性</p>
</div>
</div>
<div class="challenge-card">
<h4 class="challenge-title">3. 多源数据混合: 真实数据+合成数据可配置比例</h4>
<div class="space-y-2 text-gray-600">
<p><strong>解决问题</strong>: 平衡数据质量和数量</p>
<p><strong>应用灵活性</strong>: 可根据应用场景调整数据来源比例</p>
<p><strong>创新价值</strong>: 动态数据混合策略,适应不同训练阶段需求</p>
</div>
</div>
</div>
</div>
</AnimatedElement>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.ACHIEVEMENTS, 2)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">⚙️</div>
<div>
<p class="component-label">训练基础设施</p>
<h3 class="component-title">几何一致性损失函数</h3>
</div>
</div>
<p class="text-gray-700 mb-4"><strong>问题解决</strong>: IC版图训练需要特殊的损失函数和训练策略来保证几何一致性</p>
<AnimatedElement animation="fadeInUp" delay={getNestedDelay(getChildDelay(RORD_SECTION_DELAYS.ACHIEVEMENTS, 2), 1)} trigger="scroll">
<div class="math-intro">
<p class="text-center text-lg text-gray-600 mb-3">几何一致性损失函数:</p>
<div class="text-center mt-4">
<MathFormula
formula="L_{geo} = L_{det} + \lambda_1 L_{desc} + \lambda_2 L_{H-consistency}"
className="formula-style"
/>
</div>
<p class="text-center text-sm text-gray-500 mt-2">
其中L<sub>det</sub>为检测损失L<sub>desc</sub>为描述子损失L<sub>H-consistency</sub>为H一致性损失
</p>
</div>
</AnimatedElement>
<div class="space-y-4 mt-6">
<div class="challenge-card">
<h4 class="challenge-title">技术优势</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>数学表达</strong>: 完整的损失函数数学框架</li>
<li><strong>解决问题</strong>: 确保旋转和镜像变换后的特征一致性</li>
<li><strong>技术创新</strong>: 曼哈顿几何约束融入深度学习损失函数</li>
<li><strong>训练效果</strong>: 显著提升旋转不变性和几何鲁棒性</li>
</ul>
</div>
<div class="challenge-card">
<h4 class="challenge-title">配置驱动训练: YAML配置文件管理</h4>
<div class="space-y-2 text-gray-600">
<p><strong>解决问题</strong>: 复杂的超参数管理和实验复现</p>
<p><strong>工程价值</strong>: 支持大规模实验和自动化训练</p>
<p><strong>用户友好</strong>: 降低使用门槛,提高开发效率</p>
</div>
</div>
</div>
</div>
</AnimatedElement>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.ACHIEVEMENTS, 3)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">🎯</div>
<div>
<p class="component-label">匹配算法</p>
<h3 class="component-title">多尺度模板匹配</h3>
</div>
</div>
<p class="text-gray-700 mb-4"><strong>问题解决</strong>: 现有匹配方法无法处理IC版图的旋转、缩放和多实例匹配需求</p>
<div class="space-y-4">
<div class="challenge-card">
<h4 class="challenge-title">1. 多尺度模板匹配</h4>
<div class="space-y-2 text-gray-600">
<p><strong>解决问题</strong>: 不同工艺节点和设计层级的尺寸差异</p>
<p><strong>技术实现</strong>: 金字塔搜索 + 多分辨率特征融合</p>
<p><strong>性能提升</strong>: 支持跨工艺节点的版图匹配</p>
</div>
</div>
<div class="challenge-card">
<h4 class="challenge-title">2. 多实例检测</h4>
<div class="space-y-2 text-gray-600">
<p><strong>解决问题</strong>: 大版图中存在多个相同或相似的模块</p>
<p><strong>算法创新</strong>: 区域屏蔽机制 + 迭代式检测</p>
<p><strong>实际价值</strong>: 支持单次运行查找多个匹配实例</p>
</div>
</div>
<div class="challenge-card">
<h4 class="challenge-title">3. 几何验证: RANSAC变换估计</h4>
<div class="space-y-2 text-gray-600">
<p><strong>解决问题</strong>: 消除误匹配,提高匹配精度</p>
<p><strong>技术实现</strong>: 鲁棒的几何变换估计 + 离群点过滤</p>
<p><strong>精度提升</strong>: 可提高匹配精度</p>
</div>
</div>
</div>
</div>
</AnimatedElement>
</div>
</ReportSection>
</section>
</AnimatedElement>
<!-- 创新点分析章节 -->
<AnimatedElement animation="fadeInUp" delay={RORD_SECTION_DELAYS.INNOVATION} trigger="scroll">
<section id="innovation">
<ReportSection
title="🚀 创新点分析"
subtitle="算法创新、工程创新和应用创新的详细分析"
level={2}
>
<div class="space-y-8">
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.INNOVATION, 0)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">🔬</div>
<div>
<p class="component-label">算法创新</p>
<h3 class="component-title">几何感知描述子</h3>
</div>
</div>
<p class="text-gray-700 mb-3"><strong>解决的问题</strong>: 传统描述子(如SIFT、SURF)无法捕捉IC版图的曼哈顿几何特性缺乏对直角、网格结构等设计约束的理解以及大量稀疏区域的过滤。</p>
<AnimatedElement animation="fadeInUp" delay={getNestedDelay(getChildDelay(RORD_SECTION_DELAYS.INNOVATION, 0), 1)} trigger="scroll">
<div class="math-intro">
<p class="text-center text-lg text-gray-600 mb-3">数学表达:</p>
<div class="text-center mt-4">
<MathFormula
formula="d_{geo} = F_{geo}(I, H)"
className="formula-style"
/>
</div>
<p class="text-center text-sm text-gray-500 mt-2">
其中I为输入版图图像H为几何变换矩阵F<sub>geo</sub>为几何感知特征提取函数
</p>
</div>
</AnimatedElement>
<div class="space-y-4 mt-6">
<h4 class="font-semibold text-lg text-blue-600 mb-3">技术优势:</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>曼哈顿约束</strong>: 强制描述子学习IC版图的直角和网格结构</li>
<li><strong>旋转不变性</strong>: 内置8种几何变换的不变特性</li>
<li><strong>性能提升</strong>: 相比传统方法有望在IC版图匹配精度提升30-50%</li>
</ul>
</div>
</div>
</AnimatedElement>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.INNOVATION, 1)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">🔄</div>
<div>
<p class="component-label">算法创新</p>
<h3 class="component-title">旋转不变损失函数</h3>
</div>
</div>
<p class="text-gray-700 mb-3"><strong>解决的问题</strong>: IC版图在设计过程中经常需要旋转传统方法无法保证旋转后的特征一致性</p>
<AnimatedElement animation="fadeInUp" delay={getNestedDelay(getChildDelay(RORD_SECTION_DELAYS.INNOVATION, 1), 1)} trigger="scroll">
<div class="math-intro">
<p class="text-center text-lg text-gray-600 mb-3">创新方案:</p>
<div class="text-center mt-4">
<MathFormula
formula="L_{rotation} = \sum_{i=1}^{8} \| d(I) - d(T_i(I)) \|^2"
className="formula-style"
/>
</div>
<p class="text-center text-sm text-gray-500 mt-2">
其中 T<sub>i</sub> 表示第 i 种几何变换4种旋转 + 4种镜像
</p>
</div>
</AnimatedElement>
<div class="space-y-4 mt-6">
<h4 class="font-semibold text-lg text-blue-600 mb-3">技术突破:</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>精确几何变换</strong>: 针对IC设计的4种主要旋转角度(0°、90°、180°、270°)</li>
<li><strong>H一致性验证</strong>: 确保变换前后的特征匹配性</li>
<li><strong>端到端优化</strong>: 将几何约束直接融入深度学习训练过程</li>
</ul>
</div>
</div>
</AnimatedElement>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.INNOVATION, 2)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">🎨</div>
<div>
<p class="component-label">算法创新</p>
<h3 class="component-title">扩散数据增强</h3>
</div>
</div>
<p class="text-gray-700 mb-3"><strong>解决的问题</strong>: IC版图数据稀缺传统数据增强方法(如旋转、缩放)效果有限,无法生成符合设计规则的合成数据</p>
<AnimatedElement animation="fadeInUp" delay={getNestedDelay(getChildDelay(RORD_SECTION_DELAYS.INNOVATION, 2), 1)} trigger="scroll">
<div class="math-intro">
<p class="text-center text-lg text-gray-600 mb-3">创新方案:</p>
<p class="text-center text-gray-600 mb-3">将扩散模型应用于IC版图数据增强</p>
<div class="text-center mt-4">
<MathFormula
formula="I_{syn} = D_{\theta}^{-1}(z_T, I_{real})"
className="formula-style"
/>
</div>
<p class="text-center text-sm text-gray-500 mt-2">
基于真实版图数据的智能合成,保持几何约束
</p>
</div>
</AnimatedElement>
<div class="space-y-4 mt-6">
<h4 class="font-semibold text-lg text-blue-600 mb-3">技术价值:</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>设计规则学习</strong>: 扩散模型自动学习IC版图的设计分布和约束</li>
<li><strong>高质量合成</strong>: 生成的版图保持真实的几何特征</li>
<li><strong>数据规模扩展</strong>: 训练数据量提升数倍</li>
<li><strong>成本节约</strong>: 相比人工标注,成本显著降低</li>
</ul>
</div>
<div class="summary-highlight mt-6">
<p class="summary-highlight__text">
<strong>核心创新价值</strong>:通过几何感知描述子、旋转不变损失函数和扩散数据增强三大创新技术,解决了传统方法在几何变换、数据稀缺和设计约束方面的局限性。
</p>
</div>
</div>
</AnimatedElement>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.INNOVATION, 1)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">🛠️</div>
<div>
<p class="component-label">工程创新</p>
<h3 class="component-title">模块化架构设计</h3>
</div>
</div>
<p class="text-gray-700 mb-3">传统EDA工具集成困难缺乏灵活性和可扩展性。本项目采用插件化设计支持不同骨干网络和注意力机制的灵活组合。</p>
<AnimatedElement animation="fadeInUp" delay={getNestedDelay(getChildDelay(RORD_SECTION_DELAYS.INNOVATION, 1), 1)} trigger="scroll">
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mt-4">
<CodeBlock
title={codeExamples.config.title}
language={codeExamples.config.language}
showLineNumbers={true}
code={codeExamples.config.code}
/>
<CodeBlock
title={codeExamples.match.title}
language={codeExamples.match.language}
showLineNumbers={true}
code={codeExamples.match.code}
/>
</div>
</AnimatedElement>
</div>
</AnimatedElement>
</div>
</ReportSection>
</section>
</AnimatedElement>
<!-- 性能测试与分析章节 -->
<AnimatedElement animation="fadeInUp" delay={RORD_SECTION_DELAYS.PERFORMANCE} trigger="scroll">
<section id="performance">
<ReportSection
title="📊 性能测试与分析"
subtitle="基于NVIDIA A100 GPU的详细性能测试结果"
level={2}
>
<div class="space-y-8">
<div class="goal-section">
<h3 class="section-heading">测试环境</h3>
<ul class="research-pillars">
<li><strong>硬件配置</strong>: Intel Xeon 8558P + NVIDIA A100 × 1 + 512GB内存</li>
<li><strong>软件环境</strong>: PyTorch 2.6+, CUDA 12.8</li>
<li><strong>测试类型</strong>: 未训练模型前向推理性能测试</li>
<li><strong>测试数据</strong>: 随机生成的2048×2048版图模拟数据</li>
</ul>
</div>
<div class="mt-12">
<h3 class="text-2xl font-bold text-center mb-6 text-blue-500">GPU推理性能排名</h3>
<GlassTable
headers={['排名', '骨干网络', '注意力机制', '单尺度推理(ms)', 'FPN推理(ms)', 'FPS', '性能表现']}
rows={[
['🥇', 'ResNet34', 'None', '18.10 ± 0.07', '21.41 ± 0.07', '55.3', '最优'],
['🥈', 'ResNet34', 'SE', '18.14 ± 0.05', '21.53 ± 0.06', '55.1', '优秀'],
['🥉', 'ResNet34', 'CBAM', '18.23 ± 0.05', '21.50 ± 0.07', '54.9', '优秀'],
['4', 'EfficientNet-B0', 'None', '21.40 ± 0.13', '33.48 ± 0.42', '46.7', '良好'],
['5', 'EfficientNet-B0', 'CBAM', '21.55 ± 0.05', '33.33 ± 0.38', '46.4', '良好'],
['6', 'EfficientNet-B0', 'SE', '21.67 ± 0.30', '33.52 ± 0.33', '46.1', '良好'],
['7', 'VGG16', 'None', '49.27 ± 0.23', '102.08 ± 0.42', '20.3', '一般'],
['8', 'VGG16', 'SE', '49.53 ± 0.14', '101.71 ± 1.10', '20.2', '一般'],
['9', 'VGG16', 'CBAM', '50.36 ± 0.42', '102.47 ± 1.52', '19.9', '一般']
]}
striped={true}
bordered={true}
className="performance-table"
/>
</div>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.PERFORMANCE, 0)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">⚡</div>
<div>
<p class="component-label">CPU vs GPU 加速比分析</p>
<h3 class="component-title">显著性能提升</h3>
</div>
</div>
<div class="mb-6">
<GlassTable
headers={['骨干网络', '注意力机制', 'CPU推理(ms)', 'GPU推理(ms)', '加速比', '效率评级']}
rows={[
['ResNet34', 'None', '171.73', '18.10', '9.5×', '高效'],
['ResNet34', 'CBAM', '406.07', '18.23', '22.3×', '卓越'],
['ResNet34', 'SE', '419.52', '18.14', '23.1×', '卓越'],
['VGG16', 'None', '514.94', '49.27', '10.4×', '高效'],
['VGG16', 'SE', '808.86', '49.53', '16.3×', '优秀'],
['VGG16', 'CBAM', '809.15', '50.36', '16.1×', '优秀'],
['EfficientNet-B0', 'None', '1820.03', '21.40', '85.1×', '极佳'],
['EfficientNet-B0', 'SE', '1815.73', '21.67', '83.8×', '极佳'],
['EfficientNet-B0', 'CBAM', '1954.59', '21.55', '90.7×', '极佳']
]}
striped={true}
bordered={true}
className="gpu-speedup-table"
/>
</div>
<div class="summary-highlight">
<p class="summary-highlight__text">
<strong>GPU加速效果显著</strong>平均加速比39.7倍最大加速比90.7倍 (EfficientNet-B0 + CBAM)
最小加速比9.5倍 (ResNet34 + None)。GPU相比CPU在深度学习推理中展现出压倒性优势。
</p>
</div>
</div>
</AnimatedElement>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.PERFORMANCE, 1)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">📈</div>
<div>
<p class="component-label">详细性能分析</p>
<h3 class="component-title">骨干网络与注意力机制对比</h3>
</div>
</div>
<div class="space-y-6">
<div class="challenge-card">
<h4 class="challenge-title">骨干网络性能对比</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>ResNet34</strong>: 平均18.16ms (55.1 FPS) - 速度最快,性能稳定</li>
<li><strong>EfficientNet-B0</strong>: 平均21.54ms (46.4 FPS) - 平衡性能,效率较高</li>
<li><strong>VGG16</strong>: 平均49.72ms (20.1 FPS) - 精度高,但速度较慢</li>
</ul>
</div>
<div class="challenge-card">
<h4 class="challenge-title">注意力机制影响分析</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>SE注意力</strong>: +0.5% 性能开销,适合高精度应用</li>
<li><strong>CBAM注意力</strong>: +2.2% 性能开销,复杂场景适用</li>
<li><strong>无注意力</strong>: 基准性能,适合实时应用</li>
</ul>
</div>
<div class="challenge-card">
<h4 class="challenge-title">FPN计算开销</h4>
<ul class="space-y-2 text-gray-600">
<li><strong>平均开销</strong>: 59.6%</li>
<li><strong>最小开销</strong>: 17.9% (ResNet34 + CBAM)</li>
<li><strong>最大开销</strong>: 107.1% (VGG16 + None)</li>
</ul>
</div>
</div>
</div>
</AnimatedElement>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.PERFORMANCE, 3)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">📊</div>
<div>
<p class="component-label">性能分析结论</p>
<h3 class="component-title">核心发现与应用建议</h3>
</div>
</div>
<div class="space-y-4">
<div class="challenge-card">
<h4 class="challenge-title">🏆 最佳配置推荐: ResNet34 + 无注意力机制</h4>
<ul class="space-y-1 text-gray-600 text-sm">
<li><strong>单尺度推理</strong>: 18.1ms (55.3 FPS)</li>
<li><strong>FPN推理</strong>: 21.4ms (46.7 FPS)</li>
<li><strong>GPU内存占用</strong>: ~2GB</li>
</ul>
</div>
<div class="challenge-card">
<h4 class="challenge-title">⚡ GPU加速效果显著</h4>
<ul class="space-y-1 text-gray-600 text-sm">
<li><strong>平均加速比</strong>: 39.7倍</li>
<li><strong>最大加速比</strong>: 90.7倍 (EfficientNet-B0)</li>
<li><strong>最小加速比</strong>: 9.5倍 (ResNet34)</li>
</ul>
</div>
<div class="challenge-card">
<h4 class="challenge-title">🎯 应用场景优化建议</h4>
<ul class="space-y-1 text-gray-600 text-sm">
<li><strong>实时处理</strong>: ResNet34 + None (18.1ms)</li>
<li><strong>高精度匹配</strong>: ResNet34 + SE (18.1ms)</li>
<li><strong>多尺度搜索</strong>: 任意配置 + FPN (21.4-102.5ms)</li>
<li><strong>批量处理</strong>: A100支持8-16并发推理</li>
</ul>
</div>
<div class="challenge-card">
<h4 class="challenge-title">📊 FPN使用策略</h4>
<ul class="space-y-1 text-gray-600 text-sm">
<li><strong>实时场景</strong>: 使用单尺度推理</li>
<li><strong>精度要求高</strong>: 启用FPN多尺度</li>
<li><strong>大图处理</strong>: 强烈建议使用FPN</li>
</ul>
</div>
</div>
</div>
</AnimatedElement>
</div>
</ReportSection>
</section>
</AnimatedElement>
<!-- 后期工作计划章节 -->
<AnimatedElement animation="fadeInUp" delay={RORD_SECTION_DELAYS.PLAN} trigger="scroll">
<section id="plan">
<ReportSection
title="📅 后期工作计划"
subtitle="分阶段推进项目实施,确保按时完成研究目标"
level={2}
>
<div class="space-y-8">
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.PLAN, 0)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">🎯</div>
<div>
<p class="component-label">第一阶段</p>
<h3 class="component-title">最低交付标准完成 (2025.11-2026.01)</h3>
</div>
</div>
<AnimatedElement animation="fadeInUp" delay={getNestedDelay(getChildDelay(RORD_SECTION_DELAYS.PLAN, 0), 1)} trigger="scroll">
<ul class="space-y-4 text-gray-700">
<li class="flex items-start">
<span class="text-blue-500 font-bold w-32 shrink-0">数据准备</span>
<span>收集郑老师公司提供的IC版图数据数据清洗、格式转换和质量控制</span>
</li>
<li class="flex items-start">
<span class="text-green-500 font-bold w-32 shrink-0">基础训练</span>
<span>ResNet34骨干网络基础训练基础几何一致性损失验证简单超参数调优</span>
</li>
<li class="flex items-start">
<span class="text-purple-500 font-bold w-32 shrink-0">功能验证</span>
<span>端到端基础功能测试,基础性能基准测试</span>
</li>
</ul>
</AnimatedElement>
</div>
</AnimatedElement>
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.PLAN, 1)} trigger="scroll">
<div class="deep-dive-card">
<div class="flex items-center mb-4">
<div class="text-5xl mr-4">🚀</div>
<div>
<p class="component-label">第二阶段</p>
<h3 class="component-title">论文级别研究 (2026.01-2026.04)</h3>
</div>
</div>
<p class="text-gray-700 mb-3">结合陈老师先进制程数据,完成高水平研究论文和专利申请。</p>
<AnimatedElement animation="fadeInUp" delay={getNestedDelay(getChildDelay(RORD_SECTION_DELAYS.PLAN, 1), 1)} trigger="scroll">
<ul class="space-y-4 text-gray-700">
<li class="flex items-start">
<span class="text-blue-500 font-bold w-32 shrink-0">先进制程适配</span>
<span>先进工艺版图特征深度分析,极小尺度下的几何匹配算法优化</span>
</li>
<li class="flex items-start">
<span class="text-green-500 font-bold w-32 shrink-0">算法理论创新</span>
<span>更复杂几何变换的数学建模,多模态版图信息融合理论研究</span>
</li>
<li class="flex items-start">
<span class="text-purple-500 font-bold w-32 shrink-0">学术成果</span>
<span>目标ICCAD/DAC/ASP-DAC/DATE等会议论文或TCAD期刊</span>
</li>
</ul>
</AnimatedElement>
</div>
</AnimatedElement>
</div>
</ReportSection>
</section>
</AnimatedElement>
<!-- 风险评估章节 -->
<AnimatedElement animation="fadeInUp" delay={RORD_SECTION_DELAYS.RISK} trigger="scroll">
<section id="risk">
<ReportSection
title="⚠️ 风险评估"
subtitle="技术风险、数据风险和项目风险的识别与缓解措施"
level={2}
>
<div class="mt-12">
<h3 class="text-2xl font-bold text-center mb-6 text-blue-500">风险分析矩阵</h3>
<GlassTable
headers={['风险项', '概率', '影响', '缓解措施']}
rows={[
['模型收敛困难', '中', '高', '调整学习率、增加数据增强'],
['训练数据不足', '中', '高', '扩散模型数据增强、数据合成'],
['性能不达标', '低', '中', '多骨干网络对比、架构优化'],
['过拟合', '中', '中', '早停机制、正则化'],
]}
striped={true}
bordered={true}
className="risk-table"
/>
</div>
<div class="summary-highlight mt-8">
<p class="summary-highlight__text">风险管理策略:通过模块化设计、分阶段实施、多方案并行等方式降低项目风险,确保核心目标按时完成。</p>
</div>
</ReportSection>
</section>
</AnimatedElement>
<!-- 总结与展望章节 -->
<AnimatedElement animation="fadeInUp" delay={RORD_SECTION_DELAYS.CONCLUSION} trigger="scroll">
<section id="conclusion">
<ReportSection
title="🚀 总结与展望"
subtitle="项目中期成果总结和未来发展前景"
level={2}
>
<div class="grid grid-cols-1 gap-8">
<!-- <AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.CONCLUSION, 0)} trigger="scroll">
<div class="deep-dive-card">
<h3 class="text-2xl font-bold mb-4 text-blue-500">🎯 核心成果</h3>
<ul class="space-y-3 text-gray-700 list-disc list-inside">
<li><strong>技术突破:</strong>完成RoRD模型架构设计和实现实现旋转鲁棒的IC版图描述子</li>
<li><strong>性能提升:</strong>推理速度达到55.3 FPSGPU加速比平均39.7倍</li>
<li><strong>应用价值:</strong>支持高精度的多尺度、多实例版图匹配</li>
<li><strong>创新点:</strong>几何感知损失函数、扩散数据增强、模块化架构设计</li>
</ul>
</div>
</AnimatedElement> -->
<AnimatedElement animation="fadeInUp" delay={getChildDelay(RORD_SECTION_DELAYS.CONCLUSION, 1)} trigger="scroll">
<div class="deep-dive-card">
<h3 class="text-2xl font-bold mb-4 text-blue-500">🎯 核心成果</h3>
<AnimatedElement animation="fadeInUp" delay={getNestedDelay(getChildDelay(RORD_SECTION_DELAYS.CONCLUSION, 1), 1)} trigger="scroll">
<ul class="space-y-4 text-gray-700">
<li class="flex items-start">
<span class="text-blue-500 font-bold w-32 shrink-0">技术突破</span>
<span>完成RoRD模型架构设计和实现实现旋转鲁棒的IC版图描述子</span>
</li>
<li class="flex items-start">
<span class="text-green-500 font-bold w-32 shrink-0">性能提升</span>
<span>推理速度达到55.3 FPSGPU加速比平均39.7倍</span>
</li>
<li class="flex items-start">
<span class="text-purple-500 font-bold w-32 shrink-0">应用价值</span>
<span>支持高精度的多尺度、多实例版图匹配</span>
</li>
<li class="flex items-start">
<span class="text-yellow-500 font-bold w-32 shrink-0">创新点</span>
<span>几何感知损失函数、扩散数据增强、模块化架构设计</span>
</li>
</ul>
</AnimatedElement>
</div>
</AnimatedElement>
</div>
</ReportSection>
</section>
</AnimatedElement>
</div>
</div>
</main>
<Footer />
</BaseLayout>
<script>
// 交互式功能
document.addEventListener('DOMContentLoaded', function() {
console.log('RoRD中期报告页面已加载完成');
});
</script>
<style>
/* === 报告页面核心样式 === */
.report-main {
--report-color-primary: #5f7a99;
--report-color-primary-strong: #4a627b;
--report-color-primary-deep: #384b5f;
--report-color-primary-soft: #8ea3b8;
--report-color-accent: #a8bdc9;
--report-color-highlight: rgba(95, 122, 153, 0.2);
--report-color-soft-glow: rgba(148, 173, 196, 0.12);
--report-color-glass-border: rgba(95, 122, 153, 0.28);
--report-color-text: #2f3844;
--report-color-subtext: #566171;
--report-color-muted: #6d7885;
--report-color-surface: rgba(255, 255, 255, 0.65);
min-height: 100vh;
padding-bottom: 2rem;
font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans SC', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
background: transparent;
color: var(--report-color-text);
position: relative;
}
.report-main::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
background: linear-gradient(135deg,
rgba(143, 167, 187, 0.16) 0%,
rgba(164, 186, 202, 0.1) 25%,
rgba(182, 201, 214, 0.08) 50%,
rgba(154, 175, 192, 0.1) 75%,
rgba(122, 146, 165, 0.22) 100%);
pointer-events: none;
z-index: -1;
}
/* === 布局样式 === */
.report-layout {
--report-sidebar-width: clamp(var(--report-sidebar-min-width), 22vw, var(--report-sidebar-max-width));
display: flex;
flex-direction: column;
gap: var(--report-sidebar-gap);
position: relative;
width: 100%;
}
.report-content {
position: relative;
width: 100%;
min-width: 0;
margin: 0 auto;
}
.container {
max-width: 1200px;
width: 100%;
}
.mx-auto { margin-left: auto; margin-right: auto; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
/* === 标题区域样式 === */
.report-header {
padding: 4rem 0 2rem 0;
text-align: center;
}
.report-title {
font-size: 3rem;
font-weight: 800;
color: var(--report-color-primary);
margin: 0 0 1rem 0;
background: linear-gradient(135deg, var(--report-color-primary-soft), var(--report-color-primary), var(--report-color-primary-strong));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
line-height: 1.2;
}
.report-subtitle {
font-size: 1.25rem;
color: var(--report-color-subtext);
margin: 0 0 2rem 0;
line-height: 1.6;
max-width: 800px;
margin-left: auto;
margin-right: auto;
}
.report-meta {
display: flex;
justify-content: center;
gap: 2rem;
flex-wrap: wrap;
margin-top: 1.5rem;
}
.report-date, .report-type {
background: rgba(95, 122, 153, 0.12);
color: var(--report-color-primary-deep);
padding: 0.5rem 1rem;
border-radius: 1rem;
font-weight: 500;
font-size: 0.875rem;
}
.report-action {
margin-top: 2rem;
}
.report-cta-button {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0.9rem 2.4rem;
border-radius: 999px;
background: linear-gradient(135deg, var(--report-color-primary), var(--report-color-primary-strong));
color: #ffffff;
font-weight: 600;
letter-spacing: 0.02em;
box-shadow: 0 14px 32px rgba(56, 75, 95, 0.28);
transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.3s ease;
}
.report-cta-button:hover {
transform: translateY(-2px);
box-shadow: 0 18px 40px rgba(56, 75, 95, 0.32);
filter: brightness(1.05);
}
.report-cta-button:active {
transform: translateY(0);
box-shadow: 0 12px 28px rgba(56, 75, 95, 0.28);
filter: brightness(0.98);
}
/* === 内容区域样式 === */
.goal-section {
background: rgba(255, 255, 255, 0.06);
border: 1px solid var(--report-color-glass-border);
border-radius: 1rem;
padding: 1.5rem;
margin-bottom: 1.5rem;
}
/* === 进度条样式 === */
.progress-item {
margin-bottom: 1rem;
}
.progress-bar {
width: 100%;
height: 0.5rem;
background-color: rgba(95, 122, 153, 0.1);
border-radius: 0.25rem;
overflow: hidden;
}
.progress-fill {
height: 100%;
background: linear-gradient(90deg, var(--report-color-primary), var(--report-color-primary-soft));
border-radius: 0.25rem;
transition: width 1s ease-in-out;
}
.section-heading {
font-size: 1.5rem;
font-weight: 600;
color: var(--report-color-primary);
margin: 0 0 1rem 0;
}
.research-pillars {
list-style: none;
padding: 0;
}
.research-pillars li {
background: rgba(95, 122, 153, 0.08);
border-left: 4px solid rgba(95, 122, 153, 0.65);
padding: 1rem 1.5rem;
margin-bottom: 1rem;
border-radius: 0 0.5rem 0.5rem 0;
}
/* === 卡片样式 === */
.challenge-card {
background: linear-gradient(135deg, rgba(95, 122, 153, 0.18), rgba(74, 98, 123, 0.16));
padding: 1.5rem;
border-radius: 0.85rem;
border: 1px solid rgba(74, 98, 123, 0.35);
box-shadow: 0 12px 32px rgba(56, 75, 95, 0.18);
backdrop-filter: blur(16px);
transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.challenge-card:hover {
transform: translateY(-4px);
box-shadow: 0 18px 44px rgba(56, 75, 95, 0.25);
border-color: rgba(74, 98, 123, 0.48);
}
.challenge-title {
font-weight: bold;
font-size: 1.25rem;
margin-bottom: 0.5rem;
color: var(--report-color-primary-strong);
}
.challenge-description {
color: var(--report-color-subtext);
}
.deep-dive-card {
background: rgba(255, 255, 255, 0.06);
border: 1px solid var(--report-color-glass-border);
border-radius: 1rem;
padding: 2rem;
margin-bottom: 2rem;
}
/* === 组件样式 === */
.component-label {
font-size: 0.75rem;
font-weight: 600;
text-transform: uppercase;
color: rgba(95, 122, 153, 0.85);
letter-spacing: 0.05em;
}
.component-title {
font-size: 1.5rem;
font-weight: 700;
color: var(--report-color-primary);
margin: 0.25rem 0 0 0;
}
/* === 高亮样式 === */
.summary-highlight {
margin-top: 3rem;
margin-left: auto;
margin-right: auto;
max-width: 56rem;
padding: 1.75rem 2.5rem;
text-align: center;
background: linear-gradient(135deg, rgba(168, 189, 201, 0.28), rgba(95, 122, 153, 0.16));
border-radius: 1.25rem;
border: 1px solid rgba(95, 122, 153, 0.32);
box-shadow: 0 18px 48px rgba(56, 75, 95, 0.22);
backdrop-filter: blur(18px);
color: var(--report-color-primary-deep);
position: relative;
overflow: hidden;
}
.summary-highlight::before {
content: '';
position: absolute;
inset: 0;
background: radial-gradient(circle at top left, rgba(255, 255, 255, 0.5), transparent 55%);
opacity: 0.65;
pointer-events: none;
}
.summary-highlight__text {
position: relative;
font-weight: 600;
font-size: 1.05rem;
color: inherit;
}
/* === 数学公式样式 === */
.math-intro {
background: rgba(255, 255, 255, 0.06);
border: 1px solid var(--report-color-glass-border);
border-radius: 1rem;
padding: 2rem;
}
/* === 表格样式 === */
.tech-comparison-table {
margin: 2rem 0;
}
.tech-comparison-table .glass-table th:last-child {
background: rgba(95, 122, 153, 0.18);
color: var(--report-color-primary-deep);
font-weight: 700;
}
.tech-comparison-table .glass-table td:last-child {
background: rgba(95, 122, 153, 0.12);
font-weight: 600;
color: var(--report-color-primary-strong);
}
/* === 图片样式 === */
.proof-image-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1rem;
}
.proof-image-item {
text-align: center;
}
:global(.proof-image-viewer) {
margin: 0;
border-radius: 0.5rem;
overflow: hidden;
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
:global(.proof-image-viewer:hover) {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(15, 23, 42, 0.15);
}
.proof-image-item p {
text-align: center;
font-size: 0.875rem;
color: var(--report-color-muted);
margin-top: 0.5rem;
}
/* === 响应式设计 === */
@media (max-width: 768px) {
.report-title { font-size: 2rem; }
.report-subtitle { font-size: 1.1rem; }
.report-meta {
flex-direction: column;
align-items: center;
gap: 1rem;
}
.deep-dive-card { padding: 1.5rem; }
.grid { grid-template-columns: 1fr; }
}
/* 统一宽度配置 - 先进的宽度管理方式 */
/*
* 要修改整个页面的最大宽度,只需要修改下面的 --max-content-width 值
* 建议的宽度选项:
* - 1024px (较窄,适合阅读)
* - 1200px (当前设置,平衡)
* - 1400px (较宽,适合表格)
*/
:global(:root) {
--max-content-width: 1200px;
--report-sidebar-min-width: 260px;
--report-sidebar-base-width: 300px;
--report-sidebar-max-width: 320px;
--report-sidebar-gap: 2.5rem;
--report-content-padding: 1rem;
}
/* 统一宽度类 - 所有内容区域使用相同的最大宽度 */
.report-header,
.container {
max-width: var(--max-content-width);
width: 100%;
margin: 0 auto;
}
/* 专门的宽度配置,可根据需要调整 */
.report-width {
max-width: var(--max-content-width);
margin: 0 auto;
}
@media (min-width: 1280px) {
.report-main {
padding-left: clamp(
calc(var(--report-sidebar-base-width) + var(--report-sidebar-gap)),
calc((100vw - var(--max-content-width)) / 2 + var(--report-content-padding)),
calc(var(--report-sidebar-max-width) + 3rem)
);
padding-right: clamp(
var(--report-content-padding),
calc((100vw - var(--max-content-width)) / 2 + var(--report-content-padding)),
2rem
);
}
.report-layout {
max-width: var(--max-content-width);
margin: 0 auto;
position: relative;
}
.report-content {
max-width: 100%;
width: 100%;
margin-left: 0;
}
.container {
padding-left: var(--report-content-padding);
padding-right: var(--report-content-padding);
}
}
/* === 工具样式类 === */
.grid { display: grid; }
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 768px) {
.md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
.lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.gap-8 { gap: 2rem; }
.space-y-6 > * + * { margin-top: 1.5rem; }
.space-y-8 > * + * { margin-top: 2rem; }
.space-y-10 > * + * { margin-top: 2.5rem; }
.space-y-3 > * + * { margin-top: 0.75rem; }
.space-y-4 > * + * { margin-top: 1rem; }
.flex { display: flex; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.mb-8 { margin-bottom: 2rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mt-4 { margin-top: 1rem; }
.mt-12 { margin-top: 3rem; }
.mr-4 { margin-right: 1rem; }
.text-center { text-align: center; }
.text-5xl { font-size: 3rem; line-height: 1; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }
.text-gray-700 { color: var(--report-color-text); }
.text-gray-600 { color: var(--report-color-subtext); }
.text-blue-500 { color: var(--report-color-primary); }
.text-blue-600 { color: var(--report-color-primary-strong); }
.text-green-500 { color: #6f8c83; }
.text-purple-500 { color: #7f7a94; }
.w-32 { width: 8rem; }
.shrink-0 { flex-shrink: 0; }
.max-w-3xl { max-width: 48rem; }
.list-disc { list-style-type: disc; }
.list-inside { list-style-position: inside; }
</style>