Fei-Fei Li-Lecture 16:3D Vision 【斯坦福大学李飞飞CV课程第16讲:3D Vision】
目录
P1 2D Detection and Segmentation
P2 Video = 2D + time series
P3 Focus on Two Problems
P4 Many more topics in 3D Vision
P5-10 Multi-View CNN
P11 Experiments – Classification & Retrieval
P12 3D Shape Representations
P13--17 3D Shape Representations: Depth Map
Per-Pixel Loss (L2 Distance)
Problem: Scale / Depth Ambiguity
Predicting Depth Maps
P18--26 3D Shape Representations: Surface Normals 曲面法线
3D Shape Representations: Voxels
Processing Voxel Inputs: 3D Convolution
Generating Voxel Shapes: 3D Convolution
P27--34 3D Shape Representations: Point Cloud
Proessing Pointcloud Inputs: PointNet
Generating Pointcloud Outputs
Predicting Point Clouds: Loss Function
P35--51 3D Shape Representations: Triangle Mesh
Predicting Meshes: Pixel2Mesh
Predicting Triangle Meshes: Graph Convolution
Predicting Triangle Meshes: Vertex-Aligned Features
Predicting Meshes: Loss Function
P52--73 3D Shape Prediction: Mesh R-CNN
Mesh R-CNN: Hybrid 3D shape representation
Mesh R-CNN Pipeline
Mesh R-CNN: ShapeNet Results
Datasets for 3D Objects
Datasets for 3D Object Parts
P74--92 3D Shape Representations: Implicit Functions
Algebraic Surfaces (Implicit)
Constructive Solid Geometry (Implicit)
Level Set Methods (Implicit)
NeRF: Representing Scenes as Neural Radiance Fields
P93 Summary: 3D Shape Representations
P1 2D Detection and Segmentation

Classification分P类:没有空间信息,只是对一张图片进行分类
Semantic Segmentation语义分割: 没有物体,只有像素点,对像素点进行分类
Object Detection目标检测:直接识别出物体并进行分类
Instance Segmentation:实例分割=目标检测+语义分割 (第一次听说这个)
语义分割只需要分出不同类就行,同类的不同个体不需要分,但是Instance Segmentation在语义分割的基础上又把不同的类进行了分割:目标检测后,需要对检测的部分做进一步的语义分割
P2 Video = 2D + time series
视频就是2D的图像加上了时间序列
P3 Focus on Two Problems
今天需要解决的两个问题
①由一张输入图像得到一个3D模型
②识别3D模型进行类别判定
P4 Many more topics in 3D Vision
P5-10 Multi-View CNN
CNN1:提取图像特征的卷积神经网络
CNN2:生成描述形状符的卷积神经网络
P11 Experiments – Classification & Retrieval

Q:MVCNN? SPH? LFD? 3D ShapeNets? FV?
P12 3D Shape Representations

Q: Voxel Grid? Pointcloud? Mesh? Surface?
A:下面详细讲啦
P13--17 3D Shape Representations: Depth Map

Q:H是Height ? W是Width?
可以使用全卷积神经网络进行深度图预测,得到两个估计的深度图,然后还可以得到每像素Loss
Per-Pixel Loss (L2 Distance)
Q:L2 距离是什么?
Problem: Scale / Depth Ambiguity
Q:具体是什么意思以及怎么解决?
A: 意思大概是单目图像中信息有限
Predicting Depth Maps

Scale invariant 尺度不变性
P18--26 3D Shape Representations: Surface Normals 曲面法线
对于每个像素,表面法线给出一个向量,表示该像素的世界上的对象的法向向量
假设 RGB Image为 3 x H x W,那么法线图 Normals: 3 x H x W

3D Shape Representations: Voxels
• Represent a shape with a V x V x V grid of occupancies 网格表示形状
• Just like segmentation masks in Mask R-CNN, but in 3D! 分割掩码
• (+) Conceptually simple: just a 3D grid! 只是一个3D网格
• (-) Need high spatial resolution to capture fine structures 需要高空间分辨率捕捉精细结构
• (-) Scaling to high resolutions is nontrivial ! 缩放到高分辨率并不容易
Processing Voxel Inputs: 3D Convolution

Generating Voxel Shapes: 3D Convolution

Voxel Problems: Memory Usage
Storing 1024(3次方) voxel grid takes 4GB of memory
Scaling Voxels: Oct-Trees 八叉树
Q: 没太看懂这个Oct-Trees

P27--34 3D Shape Representations: Point Cloud
• Represent shape as a set of P points in 3D space
• (+) Can represent fine structures without huge numbers of points
• ( ) Requires new architecture, losses, etc
• (-) Doesn’t explicitly represent the surface of the shape: extracting a mesh for rendering or other applications requires post-processing
提取网格为渲染或其他应用提取网格需要进行后处理
Proessing Pointcloud Inputs: PointNet

MLP ?
Max-Pool?
Generating Pointcloud Outputs

Predicting Point Clouds: Loss Function


P35--51 3D Shape Representations: Triangle Mesh

Predicting Meshes: Pixel2Mesh

Idea #1: Iterative mesh refinement
Start from initial ellipsoid mesh Network predicts offsets for each vertex Repeat.
从初始椭球网格开始 网络预测每个顶点的偏移 重复。
Predicting Triangle Meshes: Graph Convolution


Problem: How to incorporate image features?
Predicting Triangle Meshes: Vertex-Aligned Features

Predicting Meshes: Loss Function
The same shape can be represented with different meshes – how can we define a loss between predicted and ground-truth mesh?
Idea: Convert meshes to pointclouds, then compute loss

P52--73 3D Shape Prediction: Mesh R-CNN


Mesh R-CNN: Hybrid 3D shape representation

Mesh R-CNN Pipeline

Mesh R-CNN: ShapeNet Results

Datasets for 3D Objects
• Large-scale Synthetic Objects: ShapeNet, 3M models
• ModelNet: absorbed by ShapeNet
• ShapeNetCore: 51.3K models in 55 categories

Datasets for 3D Object Parts
Fine-grained Parts: PartNet
• Fine-grained (+mobility)
• Instance-level
• Hierarchical

P74--92 3D Shape Representations: Implicit Functions

Algebraic Surfaces (Implicit)

Constructive Solid Geometry (Implicit)

Level Set Methods (Implicit)



NeRF: Representing Scenes as Neural Radiance Fields


P93 Summary: 3D Shape Representations

相关文章:
Fei-Fei Li-Lecture 16:3D Vision 【斯坦福大学李飞飞CV课程第16讲:3D Vision】
目录 P1 2D Detection and Segmentation P2 Video 2D time series P3 Focus on Two Problems P4 Many more topics in 3D Vision P5-10 Multi-View CNN P11 Experiments – Classification & Retrieval P12 3D Shape Representations P13--17 3D Shape Represen…...
【计算机视觉】YOLO 入门:训练 COCO128 数据集
一、COCO128 数据集 我们以最近大热的YOLOv8为例,回顾一下之前的安装过程: %pip install ultralytics import ultralytics ultralytics.checks()这里选择训练的数据集为:COCO128 COCO128是一个小型教程数据集,由COCOtrain2017中…...
【数分面试答疑】XX场景如何分析问题的思考
问题: 如何分析消费贷客户的用款活跃度,简单列出分析报告的思路框架 解答 这个问题是一个典型的数据分析类的面试问题,主要考察面试者对于消费贷客户的用款活跃度分析的理解和方法,以及对于数据分析报告的撰写和呈现的能力。回…...
html中如何用vue语法,并使用UI组件库 ,html中引入vue+ant-design-vue或者vue+element-plus
html中如何用vue语法,并使用UI组件库 前言 先说一下本次应用的场景,本次项目中,需要引入github中别人写好的插件,插件比较大,没有方法直接在自己项目中,把别人的项目打包合并生成html(类似于前…...
【数据结构】二叉数的存储与基本操作的实现
文章目录 🍀二叉树的存储🌳二叉树的基本操作🐱👤二叉树的创建🐱👓二叉树的遍历🎡前中后序遍历📌前序遍历📌中序遍历📌后续遍历 🛫层序遍历&am…...
使用 Netty 实现群聊功能的步骤和注意事项
文章目录 前言声明功能说明实现步骤WebSocket 服务启动Channel 初始化HTTP 请求处理HTTP 页面内容WebSocket 请求处理 效果展示总结 前言 通过之前的文章介绍,我们可以深刻认识到Netty在网络编程领域的卓越表现和强大实力。这篇文章将介绍如何利用 Netty 框架开发一…...
一篇文章搞定《WebView的优化及封装》
一篇文章搞定《WebView的优化及封装》 前言WebView的过程分析确定优化方案一、预加载,复用缓冲池(初始化优化)优化的解析说明具体的实现 二、预置模版(请求、渲染优化)优化的解析说明具体的实现1、离线包2、预获取数据…...
FreeSWITCH 1.10.10 简单图形化界面5 - 使用百度TTS
FreeSWITCH 1.10.10 简单图形化界面5 - 使用百度TTS 0、 界面预览1、注册百度AI开放平台,开通语音识别服务2、获取AppID/API Key/Secret Key3、 安装百度语音合成sdk4、合成代码5、在PBX中使用百度TTS6、音乐文件-TTS7、拨号规则-tts_command 0、 界面预览 http://…...
DP读书:不知道干什么就和我一起读书吧
DP读书:不知道干什么就和我一起读书吧 为啥写博客:好处一:记录自己的学习过程优点二:让自己在各大社群里不那么尴尬推荐三:坚持下去,找到一个能支持自己的伙伴 虽然清楚知识需要靠时间沉淀,但在…...
【Linux】进程通信 — 信号(上篇)
文章目录 📖 前言1. 什么是信号1.1 认识信号:1.2 信号的产生:1.3 信号的异步:1.4 信号的处理: 2. 前后台进程3. 系统接口3.1 signal:3.1 - 1 不能被捕捉的信号 3.2 kill:3.2 - 1 killall 3.3 ra…...
JS弃之可惜食之无味的代码冷知识
JS代码冷知识大全 1. 变量提升与暂死 在JavaScript中,变量提升是一个有趣且容易让人误解的概念。在代码中,变量和函数声明会在其所在作用域的顶部被提升,但是初始化并不会被提升。这可能导致在声明之前就使用变量,结果为undefin…...
数据结构初阶--排序
目录 一.排序的基本概念 1.1.什么是排序 1.2.排序算法的评价指标 1.3.排序的分类 二.插入排序 2.1.直接插入排序 2.2.希尔排序 三.选择排序 3.1.直接选择排序 3.2.堆排序 重建堆 建堆 排序 四.交换排序 4.1.冒泡排序 4.2.快速排序 快速排序的递归实现 法一&a…...
赴日IT 如何提高去日本做程序员的几率?
其实想去日本做IT工作只要满足学历、日语、技术三个必要条件,具备这些条件应聘就好,不具备条件你就想办法具备这些条件,在不具备条件之前不要轻易到日本去,日本IT行业虽然要求技术没有国内那么高,但也不是随便好进入的…...
c# 使用了 await、asnync task.run 三者结合使用
在 C# 异步编程中,await 和 async 关键字结合使用可以让你更方便地编写异步代码,而无需直接使用 Task.Run。然而,有时候你可能仍然需要使用 Task.Run 来在后台线程上执行某些工作,这取决于你的代码逻辑和需求。 await 和 async 关…...
C#获取屏幕缩放比例
现在1920x1080以上分辨率的高分屏电脑渐渐普及了。我们会在Windows的显示设置里看到缩放比例的设置。在Windows桌面客户端的开发中,有时会想要精确计算窗口的面积或位置。然而在默认情况下,无论WinForms的Screen.Bounds.Width属性还是WPF中SystemParamet…...
Rn实现省市区三级联动
省市区三级联动选择是个很频繁的需求,但是查看了市面上很多插件不是太老不维护就是不满足需求,就试着实现一个 这个功能无任何依赖插件 功能略简单,但能实现需求 核心代码也尽力控制在了60行左右 pca-code.json树型数据来源 Administrative-d…...
SpringCloud学习笔记(十)_SpringCloud监控
今天我们来学习一下actuator这个组件,它不是SpringCloud之后才有的,而是SpringBoot的一个starter,Spring Boot Actuator。我们使用SpringCloud的时候需要使用这个组件对应用程序进行监控与管理 在SpringBoot2.0版本中,actuator可以…...
测试理论与方法----测试流程的第二个环节:测试计划
二、软件测试分类与测试计划 1、软件测试的分类(理解掌握) 根绝需求规格说明书,在设计阶段会产出的两个文档: 概要设计(HLD):设计软件的结构,包含软件的组成,模块之间的层次关系,模块与模块之间的调用关系…...
postgresql-子查询
postgresql-子查询 简介派生表IN 操作符ALL 操作符ANY 操作符关联子查询横向子查询EXISTS 操作符 简介 子查询(Subquery)是指嵌套在其他 SELECT、INSERT、UPDATE 以及 DELETE 语句中的 查询语句。 子查询的作用与多表连接查询有点类似,也是为…...
Linux 系统运维工具之 OpenLMI
一、前要 OpenLMI(全称 Open Linux Management Infrastructure)即开放式的 Linux 管理基础架构。OpenLMI 是一个开源项目,用于管理 Linux 系统管理的通用基础架构。它建立在现有工具基础上,充当抽象层,以便向系统管理…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...
自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...
