HOG算法咨询:64×128图像L2归一化后得到3780向量的原理
解释HOG经L2归一化后得到3780个特征值的原因
Great question! Let's break this down step by step—this all boils down to how HOG organizes its cells and sliding blocks for normalization.
1. 先对应你提到的「分箱后1152个值」
首先,HOG会把图像划分为8×8像素的单元格(cell):
- 64×128的图像,横向能划成
64/8 = 8个cell,纵向是128/8 = 16个cell - 总cell数:
8×16 = 128个 - 每个cell会把8×8=64个像素的梯度方向分到9个bin里,所以每个cell输出9个值
- 分箱后总数值:
128×9 = 1152,这和你说的完全对应上了。
2. L2归一化是针对「滑动块(block)」做的
HOG不会直接用单个cell的特征,而是把相邻的cell组成block,对整个block的特征做L2归一化(目的是提升光照、对比度鲁棒性)。这里用的是HOG标准配置:
- 每个block包含
2×2个cell(也就是16×16像素) - block是滑动窗口,步长为1个cell(也就是每次滑8像素)
那咱们算一下总共有多少个这样的block:
- 横向block数量:总cell数是8个,block占2个cell,滑动步长1个,所以是
8 - 2 + 1 = 7个 - 纵向block数量:总cell数是16个,同理得
16 - 2 + 1 = 15个 - 总block数:
7×15 = 105个
3. 计算最终的特征维度
每个block包含 2×2=4 个cell,每个cell有9个bin,所以每个block的特征向量长度是:4×9 = 36
把所有block的归一化特征拼起来,总特征数就是:105×36 = 3780
这就是为什么经过L2归一化后会得到3780个值啦~
内容的提问来源于stack exchange,提问作者Aditya Jain
相关产品推荐
相关产品推荐

