当前位置: 首页 > ops >正文

Semi-Supervised Single-View 3D Reconstruction via Prototype Shape Priors

阅读总结

一、研究背景与挑战

问题定义
  • 任务:单视图3D重建(从单张RGB图像预测物体3D形状)
  • 痛点
    • 监督方法(如Pix2Vox)依赖大量3D标注数据(图像-体素对),标注成本高昂。
    • 单视图重建是病态问题(单张2D图像对应多种3D形状解)。
  • 现有局限
    • 半监督学习(SSL)在分类/检测中有效,但未应用于3D重建。
    • 直接迁移SSL方法(如MeanTeacher)效果差:
      • 3D伪标签噪声大(图1b)
      • 缺乏形状先验导致重建结果不自然(如表面断裂)

二、核心方法:SSP3D框架

整体架构
 

  • 两阶段训练
    1. Warm-up阶段:用少量标注数据(1%~20%)预训练教师模型。
    2. 互学习阶段:教师生成伪标签指导学生模型,学生通过强数据增强学习,教师通过EMA更新权重。
关键创新模块
1. 原型注意力模块(Prototype Attentive Module, PAM)
  • 动机:解决标注数据不足时的形状先验学习问题。
  • 实现
    1. 原型生成:对标注数据的3D形状特征聚类(K-Means),得到类别原型(如椅子类3个典型形状)。
    2. 注意力融合
      • 图像特征(Query)← 2D编码器(ResNet-50)
      • 原型特征(Key/Value)← 3D编码器(处理原型体素)
      • 多头注意力(MHA)计算:
        $\text{Prior} = \text{MHA}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$
    3. 输出:融合原型信息的先验特征 → 输入形状解码器。
  • 作用:显式注入类别先验,提升遮挡/噪声图像的鲁棒性。
2. 形状自然性模块(Shape Naturalness Module, SNM)
  • 动机:评估伪标签质量并提升形状真实性。
  • 双功能设计
    1. 判别器:区分预测形状与真实形状,通过对抗损失优化生成器: $\mathcal{L}_d = \mathbb{E}_{y_p}[\log D(y_p)] + \mathbb{E}_{y_g}[\log(1-D(y_g))]$
    2. 置信度评分器:输出Sigmoid值作为伪标签质量得分(高=真实性强),用于加权无监督损失。

三、训练策略

1. Warm-up阶段
  • 损失函数
2. Teacher-Student互学习
  • 教师生成伪标签
    • 弱增强图像 → 教师模型 → 输出体素 $\hat{y}$ → 二值化(阈值 $\delta=0.3$)。
  • 学生训练
    • 监督损失:标注数据的BCE损失。
    • 无监督损失:伪标签的加权平方L2损失(Brier Score):$\mathcal{L}_{unsup} = \sum \text{score}_i \cdot (\hat{y}_i - y_i)^2$
      • $\text{score}_i$:SNM输出的置信度(0~1)。
  • 教师更新:EMA平滑学生权重 → $\theta_t \leftarrow \alpha \theta_t + (1-\alpha) \theta_s \quad (\alpha=0.9996)$​​​​​​​

原文链接:2209.15383https://arxiv.org/pdf/2209.15383

代码链接:ChenHsing/SSP3D: [ECCV 2022, Semi-Supervised Single-View 3D Reconstruction via Prototype Shape Priors]https://github.com/ChenHsing/SSP3D

http://www.xdnf.cn/news/15123.html

相关文章:

  • 基于Java Spring Boot开发的旅游景区智能管理系统 计算机毕业设计源码32487
  • linux网络编程之单reactor模型(一)
  • Python 数据建模与分析项目实战预备 Day 2 - 数据构建与字段解析(模拟简历结构化数据)
  • 【前端】【组件库开发】【原理】【无框架开发】现代网页弹窗开发指南:从基础到优化
  • GNhao,获取跨境手机SIM卡跨境通信新选择!
  • 手机恢复出厂设置怎么找回数据?Aiseesoft FoneLab for Android数据恢复工具分享
  • Java中的泛型继承
  • 深度学习篇---昇腾NPUCANN 工具包
  • 《Java EE与中间件》实验三 基于Spring Boot框架的购物车
  • BLOB 数据的插入与读取详解
  • Linux驱动学习day22(interrupt子系统)
  • [python]在drf中使用drf_spectacular
  • 卢比危机下的金融破局:科伦坡交易所技术升级作战图
  • SpringBoot JWT
  • NFS文件存储及论坛项目搭建(php)
  • Web攻防-SSTI服务端模版注入利用分类语言引擎数据渲染项目工具挖掘思路
  • MCU芯片内部的ECC安全机制
  • OpenCV图像基本操作:读取、显示与保存
  • 《数据库》MySQL备份回复
  • AI加持的开源知识库新秀:PandaWiki,如何用它打造智能化文档系统?
  • 新作品:吃啥好呢 - 个性化美食推荐
  • [面试] 手写题-爬楼梯,斐波那契数列
  • 利用Claude code,只用文字版系统设计大纲,就能轻松实现系统~
  • Kafka——应该选择哪种Kafka?
  • 京东携手HarmonyOS SDK首发家电AR高精摆放功能
  • 【深度学习新浪潮】图像生成有哪些最新进展?
  • 光电耦合器在电冰箱开关电源的应用
  • pandas销售数据分析
  • Cesium实战:交互式多边形绘制与编辑功能完全指南(最终修复版)
  • 前端面试专栏-算法篇:23. 图结构与遍历算法