# 一、摘要
本次编程实验我们从日常生活出发,运用计算机视觉算法解决实际问题。我们利用SIFT与KCF实现了运动目标的识别匹配与跟踪。该算法有着很广的应用,如无人机跟拍、导弹追踪目标、追踪人手实现人机交互等。我们的程序模拟了无人机跟拍的过程,此外,我们还开发了一款游戏,无须使用键盘和鼠标,利用摄像头追踪手的位置实现人在游戏中的操作。
# 二、应用背景与任务描述
## 2.1 应用背景
目标检测匹配与跟踪算法有着很广的应用,如无人机自动跟拍、导弹追踪目标、追踪人手实现人机交互等。
## 2.2 任务描述
- 给定目标(以一张图片的方式方程告诉程序),要求程序能够根据所给目标的图片实时跟踪该目标在一段视频中的位置。
- 实现一个简单的飞机扫射游戏,计算机通过内置摄像头跟踪玩家的手,玩家通过移动手部,可以实现对游戏中的飞机的操控。
# 三、问题分析
上述两个任务的核心都是需要在视频中检测出特定目标并跟踪。对于检测,需要把给定的目标图像与现在程序捕获到的一帧视频中的目标进行匹配。为了提高匹配的精度,并且让匹配有较好的鲁棒性,需要选择合适的特征。我们选择了SIFT特征,由于SIFT描述子的检测速度较慢,无法满足实时性,因此我们只在第一帧图像中使用了SIFT检测算法。我们假设目标在第一帧出现,那么当程序在第一帧检测出目标并框出后,由于我们的目的是跟踪这个特定目标,因此只要在第一帧检测到目标,剩下的任务就可以交给跟踪算法,而不需要每一帧都进行目标检测。我们选择了KCF作为跟踪算法,KCF具有较好的精度和极好的实时性。通过跟踪得到结果后,进行显示等处理。对于处理视频,在视频每一帧中把框画出,在游戏中,根据跟踪得到的位置映射到游戏内部的操作。
![](https://www.writebug.com/myres/static/uploads/2021/10/28/24c03e67401b6edfa87c0be12aaa93c4.writebug)
# 四、算法原理
## 4.1 目标检测与匹配
### 4.1.1 SIFT综述
SIFT的全称是Scale Invariant Feature Transform,即尺度不变特征变换,由英属哥伦比亚大学教授David G. Lowe提出。SIFT特征具有旋转、尺度、亮度变化不变性,是一种非常稳定的局部特征。SIFT算法的实质是在不同的尺度空间上查找特征点,并计算出特征点的方向。SIFT所查找到的特征点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。
### 4.1.2 尺度空间极值检测
首先对图像做不同尺度的高斯模糊
![](https://www.writebug.com/myres/static/uploads/2021/10/28/7a47a26c2b7c14cb51d0c6e160e63ba6.writebug)
以及对图像做降采样,构造高斯金字塔,然后利用同一组内图像做差
![](https://www.writebug.com/myres/static/uploads/2021/10/28/3c7ffaf8970cee7cb43b9a298fce8170.writebug)
构造高斯差分(DoG)金字塔。对DoG金字塔中的每一像素,在三维邻域(两维图像、一维尺度)内判断是否为极值点,可以确定极值点的位置及尺度,极值的大小反映了极值处的对比度(反差)。
![](https://www.writebug.com/myres/static/uploads/2021/10/28/2e6dab8d8e91100db9c85ed3ed686b3e.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/10/28/790e15b158171236ac9f295b3cdc3add.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/10/28/d4b37d7011910cb9ea80ab31b74edd7f.writebug)
### 4.1.3 关键点定位
由于图像是离散化的,真正的极值点并不一定在整数点上,因此进行亚像素(子像素)精确定位:将原点移到极值点处,并将高斯差分在该极值点处展开,保留一阶项及二阶项,得到:
![](https://www.writebug.com/myres/static/uploads/2021/10/28/bc1a591fe44a4be832633f557fac2e52.writebug)
其中![](https://www.writebug.com/myres/static/uploads/2021/10/28/100671a8059ef7c8b325af307e4e0aed.writebug)。
令![](https://www.writebug.com/myres/static/uploads/2021/10/28/7b10130230fb6491112aa8529d497a9b.writebug),得:
![](https://www.writebug.com/myres/static/uploads/2021/10/28/66b16ea5b367fa0d928566d715040850.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/10/28/e91bf4b6f7ad93e0eb29727992acb144.writebug)
去除对比度较低的不稳定极值点:利用![](https://www.writebug.com/myres/static/uploads/2021/10/28/d04cdbb0a42aba4964a2f42856f7129f.writebug)处的高斯差分值![](https://www.writebug.com/myres/static/uploads/2021/10/28/e72516dddb197a29d70a2940c3c03b38.writebug) ,设对比度阈值为![](https://www.writebug.com/myres/static/uploads/2021/10/28/29107cb42b5f067eff6ed668a433c770.writebug),则当![](https://www.writebug.com/myres/static/uploads/2021/10/28/570a0238f4fb6b5aa55e0d2bda4217fc.writebug)时,去除极值点![](https://www.writebug.com/myres/static/uploads/2021/10/28/c757c61b0fda8fb3000f419432e5d0fa.writebug)。
去除边缘点:由于DoG算子对边缘点也很敏感,在边缘处也有很大的响应值。利用Hessian矩阵来处理边缘点。在极值点处,利用![](https://www.writebug.com/myres/static/uploads/2021/10/28/039f23ab4ce0024a08435193991d7079.writebug)计算Hessian矩阵
![](https://www.writebug.com/myres/static/uploads/2021/10/28/d90ccce01a262250a9789c65bef16e76.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/10/28/f119f084efe33306d869c54031cf0c1b.writebug)的主曲率,在边缘梯度的方向上比较大,而在沿着边缘的方向上则较小,且与![](https://www.writebug.com/myres/static/uploads/2021/10/28/23e1097df6ae0db91cd3b71381cffbf8.writebug)的特征值成正比。利用矩阵![](https://www.writebug.com/myres/static/uploads/2021/10/28/6c1ffc94107dbb446ffe925fde2843be.writebug)两个特征值的和等于![](https://www.writebug.com/myres/static/uploads/2021/10/28/78d0b4d6659723177aaefa3aeded3820.writebug)的迹,两个特征值的积等于![](https://www.writebug.com/myres/static/uploads/2021/10/28/6787a764744b63a4cbf4f673c1a1782c.writebug)的行列式,有
![](https://www.writebug.com/myres/static/uploads/2021/10/28/2344a134921561249fdc55bc0e671a3c.writebug)
其中![](https://www.writebug.com/myres/static/uploads/2021/10/28/82b0a0cc2f5bf46157e276fbcec2087b.writebug)为![](https://www.writebug.com/myres/static/uploads/2021/10/28/db195dd10bb5a5f87993e35477bb9cb8.writebug)的大特征值与小特征值之比。
设关于![](https://www.writebug.com/myres/static/uploads/2021/10/28/6d6ee644c3625323daf62d33edabbbf3.writebug)的阈值为![](https://www.writebug.com/myres/static/uploads/2021/10/28/b876ca9f65aeeb5b42f50eb7835a8f25.writebug),则当![](https://www.writebug.com/myres/static/uploads/2021/10/28/6c6459578bbc657b4f82b4aad5256da1.writebug)时,判断该极值点为边缘点,并去除。
### 4.1.4 获取关键点主方向
根据关键点的尺度,在高斯金字塔对应图像的关键点位置处的局部区域计算梯度方向直方图。直方图峰值对应得方向即为关键点的主方向。
![](https://www.writebug.com/myres/static/uploads/2021/10/28/99a197cd9d77f56ecab9f89c044d9fab.writebug)
### 4.1.5 关键点描述
首先确定用于计算关键点描述的局部区域,然后根据关键点主方向变换坐标系,在局部区域内对每个像素点求其梯度幅值和方向,生成方向直方图,最后为克服光照影响,将描述子向量归一化。
![](https://www.writebug.com/myres/static/uploads/2021/10/28/6c0943e3f1843d47c61be4e96800ceae.writebug)
![](https://www.writebug.com/myres/static/uploads/2021/10/28/eea6649f9549ae5bd0b8d9c273604b0e.writebug)
## 4.2 目标跟踪
### 4.2.1 KCF综述与总体实现流程图
KCF为核化相关滤波器。算法使用目标�
神仙别闹
- 粉丝: 4302
- 资源: 7532
最新资源
- matlab平台的车牌识别设计.zip
- 基于java的网上宠物店系统设计与实现.docx
- 基于java的网上蛋糕售卖店管理系统设计与实现.docx
- matlab平台的车牌识别GUI界面.zip
- 基于java的网上村委会业务办理系统设计与实现.docx
- 地理信息系统ARCGIS10.2安装教程:步骤解析与配置指导
- 基于java的网上购物系统设计与实现.docx
- 基于java的小区疫情购物系统设计与实现.docx
- 基于java的线上历史馆藏系统设计与实现.docx
- 基于java的协同过滤算法商品推荐系统设计与实现.docx
- 基于java的协同过滤算法的东北特产销售系统设计与实现.docx
- matlab平台的答题卡识别GUI.zip
- 基于java的校园失物招领系统设计与实现.docx
- 基于java的学生心理压力咨询评判系统设计与实现.docx
- 基于java的学生成绩分析和弱项辅助系统设计与实现.docx
- 基于java的学院商铺管理系统设计与实现.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈