EECS498笔记
目标检测
https://blog.csdn.net/yegeli/article/details/109861867
任务:找出 image 中的 instance, 并用 bounding box 包起来。
原理:分为 one-stage 和 two-stage,区别是前者一次性检测出 multi-object 的 class 和 bounding box 的位置,后者先预先找出一些 bounding-box,再对它们做分类。
R-CNN
Stage One
第一步,得到候选框。
- Sliding Window
暴力的正确做法,需要枚举每一个可能的边框,时间复杂度 \(\frac{H(H+1)}{2}\frac{W(W+1)}{2}\),太慢
- Heuristic(启发式算法)
选择性搜索。
认为某一类别的物体一定有一些结构上的相似性(重复性),利用这个不断对图中结构相似的区域进行合并得到。
Stage Two
检测候选框的 class,并用候选框与 GT 计算 IoU(做非极大值抑制),计算极大 bounding box 和其他几个 bounding box 的 IOU,如果超过一个阈值,例如 0.5 ,就认为这两个 bounding box 实际上预测的是同一个物体,就把其中confidence比较小的删除。
YOLO
https://zhuanlan.zhihu.com/p/94986199
把一张图片分成 PxP 的 grid,每个 grid 内产生两个中心位于其中的 Bounding box(使用 NMS 方法)
风格迁移
可视化
Saliency maps 显著性图
是一张图片关于某一 class 的每个像素值的梯度,梯度数值大的点可以认为是对像素值敏感,这些点的存在更能体现出属于这个 class,具有较大的显著性
adversarial attack
随机选择一个 category,修改图片(使用 gradient ascent),最小化这个 class 和预测出的 class 的loss,让图片逼近这个 category
图像分割
任务:give class for every pixels, and merges instances.
原理:先 downsampling,再 upsampling
downsampling
Convolution 层令 stride > 1 即可
upsampling?
Unlearnable
- max unpooling (把降采样后的值放回原来的位置)
- interpolation 插值
- bed of nails (把数据放在左上角,其他三个位置置0) …
Learnable
- 转置卷积
卷积的逆运算。
transpose_conv = nn.ConvTranspose2d(in_channels=1, out_channels=1, kernel_size=3, stride=2, padding=1)
发展
- 图像分割
- 示例分割
- 全景分割
- 人体(关节)分割
3D视觉
3D表示
- 深度图 Depth Map
可以测量(激光雷达、深度相机)或者计算(NN)得到。
- 隐式表示
eg. 神经网络
- Voxels
一个个小方块
-
点云
-
Mesh
预测三角形网格算法:图卷积(Graph Convolution)
loss function: 从网格表面采样一些点,与 GT 的点云做 loss
3D重建评价指标
-
IoU
-
Chamfer Distance
比较点云内的点的平均距离
- F1-Score
与 Precision(精确度) 和 Recall(召回率)有关。
Camera Systems
规范坐标系与相机视角坐标系,常常需要转换
Task
- ShapeNet
把分离的物体合成到一起