机器学习与计算机视觉入门项目——视频投篮检测(二)

机器学习与计算机视觉入门项目——视频投篮检测(二)

一、手工特征与CNN特征

在上一次的博客中,介绍了计算机视觉和机器学习的关系、篮球进球检测的基本问题和数据集的制作。这次的我们主要介绍如何从原始图像中提取有用的图像特征,以便应用于之后的分类器。

如下图所示,我们现在要做的是Feature Extraction。在前DeepLearning时代,图像特征都是由人设计的,对于不同的图像如人脸、行人,都有各自所适合的特征,也就是所谓的Hand-crafted Feature。比如常用Haar特征来描述人脸,常用HOG特征来描述行人。
这里写图片描述
因此,我们可以拿先前中医看病的例子来类比前深度学习时代的工程师是怎样解决计算机视觉问题的。假设有这样一位精通医术的老中医在药店坐堂,前来看病的人病情各不一样。老中医需要根据每位病人的具体情况开出药方,然后抓药,以特定的方式熬制汤药并且服用才能治疗病情。比如,有位病人患了“脸盲症”,老中医开出药方:准备“人脸数据集”一副,取“光照归一化”一两,再称“Haar特征”三钱,送入“Adaboost级联分类器”慢火熬制,连续服用若干代,脸盲症可愈。

从这里我们可以看到,解决CV问题是非常依赖人工经验的,他需要工程师对手头上的“工具”,也就是“特征”和“分类器”的使用条件以及性能都有充分的了解,必要时甚至需要针对这类问题设计新的图像特征。因此拿中医诊病来类比前深度学习时代的CV工程问题一点也不为过。

在卷积神经网络开始大显神威之后,feature extraction这一步基本都交给CNN来做了。利用多个卷积层的级联,依靠数据驱动(data-driven)的学习方式,CNN可以很好地学习到数据集的特定的数据分布,多数情况下,比人类手工设计的特征好使多了。
这里写图片描述
在篮球进球检测这个简单的任务的开始阶段,我们采用HOG特征足以应对了。

二、HOG特征简介

HOG百度百科上总结了HOG特征的基本思想:

把样本图像分割为若干个像素的单元,把梯度方向平均划分为多个区间,在每个单元里面对所有像素的梯度方向在各个方向区间进行直方图统计,得到一个多维的特征向量,每相邻的单元构成一个区间,把一个区间内的特征向量联起来得到多维的特征向量,用区间对样本图像进行扫描,扫描步长为一个单元。最后将所有块的特征串联起来,就得到了人体的特征。

原版论文在此。我在实习时,王老师要求把文章的每一处地方都推导一遍,然后自己写代码实现HOG算法。因此我主要是参考了上面这篇CVPR2005的最早的文章。另外,知乎上有一篇文章讲的也比较清楚,在这里贴出来图像学习-HOG特征

网上讲HOG特征的文章不在少数,只要认真看过两三篇,基本可以了解HOG特征是怎么提取的了。所以在这里就不再赘述了。如果希望进一步挖掘HOG特征的潜力,可以看这里

三、HOG特征的Python实现

学习一个算法最好的办法就是亲自实现一遍。只有亲手经历一遍这样的过程,才能体会到算法实现过程中出现了什么样的问题,才能对算法的性能和算法的擅长领域做到心中有数。下面是我实现的HOG算法的Python代码,当然也参考了前辈的CSDN博文。

class Hog_descriptor():
    '''
    提取灰度图片的HOG特征,画HOG特征图
    '''
    def __init__(self, img, cell_size=8, bin_size=9):
        # 输入的图片数据应是np.array格式的uint8数据,0-255
        self.img = np.sqrt(img / float(np.max(img)))# 伽马校正
        self.cell_size = cell_size # 计算梯度直方图的最小单元的尺寸
        self.bin_size = bin_size # 梯度直方图中的条数
        self.angle_unit = 360 / self.bin_size # 角度增加的步长
        height, width = self.img.shape

        # 将图像尺寸resize成ce
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值