目录
声明:十分欢迎转载,但须先征求本人同意。
本博客将持续不定时更新。
常见cv面试题
DropOut的作用和原理
过拟合与欠拟合
正则化(L0、L1、L2)
线性回归(LR)和SVM的异同
GDBT、XGBoost
Bagging、Boosting、Stacking
正负样本数目不均衡
机器学习
SVM
决策树
EM算法
HMM(隐马尔可夫)
CRF(条件随机场)
最小二乘法
朴素贝叶斯
GMM(高斯混合模型)
图像特征
颜色特征
SIFT
HOG
LBP
Haar
SURF
滤波器
前三个为线性滤波器。
箱式滤波器
高斯滤波器
差分滤波器
以下为非线性滤波器。
最大值滤波器
最小值滤波器
中值滤波器
梯度锐化算子滤波器
Soble算子、Roberts算子、Prewitt算子
边缘提取算子
前三个为一阶提取算子。
Sobel
prewitt
robert
以下为二阶提取算子。
Laplacian
Log/Marr
Canny
对比
激活函数
Sigmoid
tanh
ReLU
Leaky ReLU
PReLU
ELU
Swish
Maxout
损失函数
交叉熵
logstic loss
hinge loss
focus loss
triple loss
Normalization
whitening(白化)
Batch Normalization
BN层解决的是Internal Covariate Shift问题,简称ICS问题。
- ICS问题
Group Normalization
网络优化方法
BGD
SGD
Mini-batch SGD
Momentum
RMSProp
ADAM
常见网络结构
AlexNet
VGG
ResNet
Inception
SENet
DenseNet
MobileNet
目标跟踪
KCF
SiamFC
SiamRPN
主要思想:
- 在SiamFC上加入RPN结构,能够直接回归出bbox,无需多尺度search
- local one-shot learning(其实从SiamFC开始就是one-shot learning)
RPN:
- RPN阶段的损失函数、回归的值均与Faster R-CNN中相同
- anchor个数: w × h × 5 × 1 w \times h \times 5 \times 1 w×h×5×1
- RPN阶段正负样本筛选阈值:0.3、0.6(在Faster R-CNN中为0.3、0.7)
- RPN训练阶段正负样本比例16:48
后处理(筛选proposals):
- 只保留与中心坐标距离小于7的bbox
- 对于上一步筛选得到的proposals使用余弦窗口进行抑制
- 对于上一步筛选得到的proposals进行NMS
- 对于上一步筛选得到的最终bbox,使用线性插值进行平滑处理。
ATOM
目标检测
R-CNN
检测流程:
- 使用selective search提取proposals
- 将proposals进行resize,统一尺寸
- 将proposals送入卷积层,进行特征提取
- 使用SVM进行分类,使用脊回归对位置进行修正
缺点:
- proposals提取过程太慢
- 对于每个proposal都要经过卷积运算,会带来重复计算
- 步骤过多,训练麻烦
Fast R-CNN
检测流程:
- 对于图片i,使用selective search提取proposals
- 将图片i输入特征提取网络,得到特征图
- 在特征图上裁出每个proposals对应的区域,得到RoIs
- 对RoIs进行RoI Pooling,得到相同大小的特征
- 使用fc进行分类,使用脊回归对位置进行修正
缺点:
- proposals的提取过慢
- RoI Pooling有取整过程,有精度损失
Faster R-CNN
检测流程:
- 对于图片i,送入共享卷积层(Fast R-CNN和RPN共享),得到特征图
- 将特征图输入RPN网络,得到proposals
- 对于得到的proposals,根据得分进行排序,再取topn,经过NMS后,得到的proposals称为RoIs,送入RoIpooling
- 使用fc进行分类,使用脊回归对位置进行修正
- 对于最终预测的bboxes进行后处理(限制框在图像内、NMS)
- 以下图片转自链接
RPN网络:
- 对于大小为 [ w , h ] [w, h] [w,h]的特征图,每个点有 k k k个anchor,全图共计 k × w × h k\times w\times h k×w×h个anchor
- 对anchor进行正负样本划分:(1)与gt具有最大IoU的anchors为正样本;(2)与gt的IoU大于0.7的anchors为正样本;(3)与gt的IoU小于0.3的anchors为负样本。
- 随机抽取128个正样本、128个负样本,训练RPN网络
- 精修anchors的结果为(回归
d
x
,
d
y
,
d
w
,
d
h
d_x,d_y,d_w,d_h
dx,dy,dw,dh):
G x ′ = A x + d x A w G_{x}^{'}=A_x+d_xA_w Gx′=Ax+dxAw
G y ′ = A y + d y A h G_{y}^{'}=A_y+d_yA_h Gy′=Ay+dyAh
G w ′ = A w e d w G_{w}^{'}=A_we^{d_w} Gw′=Awedw
G h ′ = A h e d h G_{h}^{'}=A_he^{d_h} Gh′=Ahedh
训练过程:
- RPN网络和分类回归网络交替训练
损失函数:
- 第一部分:RPN的损失函数
- 第二部分:分类回归的损失函数
YOLOv1
YOLOv2
YOLOv3
CenterNet
GuidedAnchor
FCOS
超分辨率重建
DBPN
EDSR
WDSR
EDVR
NTIRE 2019视频恢复比赛四项冠军。
- 整体结构
- PCD对齐模块
使用金字塔形、级联的可变性卷积进行多帧对齐。
- TSA融合模块
对不同帧的特征进行融合,相当于学习了spatial attention和channel attention。
智力题
老鼠喝药问题
- 题意:有100个瓶子,其中99个瓶子中是水,1瓶是毒药。我们有无限只老鼠,老鼠喝了毒药第二天会死。给你一天时间,最少需要多少只老鼠才可以测出哪瓶是毒药。
- 答案:找到满足 2 x > = 100 2^x>=100 2x>=100的最小 x x x即可,本题即为7。
- 解析:我们把100个瓶子使用二进制进行编号,第一个瓶子编号为0,第二个瓶子编号为1,第三个瓶子编号为10,第四个瓶子编号为11… 依此类推。让第一只老鼠喝下编号最后一位为1的所有瓶子,第二只老鼠喝下编号倒数第二位为1的所有瓶子…依此类推。第二天,活着的老鼠对应位置1,死了的老鼠对应位置0,即得到了毒药瓶子编号。
已知点线个数,求三角形个数
- 题意:已知有12个点,由其中任意两点相连可以构成59条不同的直线,求这些点能够组成多少个不同的三角形。
- 答案: C 12 3 − C 3 3 − C 4 3 = 220 − 1 − 4 = 215 C_{12}^{3}-C_{3}^{3}-C_{4}^{3} = 220-1-4 = 215 C123−C33−C43=220−1−4=215
- 解析:加入这12个点都不共线,则应可构成
C
12
2
=
66
C_{12}^{2} = 66
C122=66条线,题意中说构成59条线,少了7条线,说明有三点共线、四点共线、五点共线等情况出现。
如果三点共线,总线数应减少: C 3 2 − 1 = 2 C_{3}^{2}-1=2 C32−1=2
如果四点共线,总线数应减少: C 4 2 − 1 = 5 C_{4}^{2}-1=5 C42−1=5
哇,2+5=7,说明出现了一组三点共线,一组四点共线。
计算三角形个数: C 12 3 − C 3 3 − C 4 3 = 215 C_{12}^{3}-C_{3}^{3}-C_{4}^{3} = 215 C123−C33−C43=215