人工智能学院;;;;;;;;;;;;自行查找资料
读取“lena02.png”
用盒式滤波器进行滤波;知识问答;;;;;FAST
FeaturesfromacceleratedSegmentTest
只负责检测固定尺度的特征点(角点)
速度更快
;选择一个点p,标出其领域内的点
圆周点
p1-p16;计算4个圆周点和中心点p的像素差
p1、p5、p9、p13
定义一个阈值t
0-255
与阈值t比较
是否至少3个差值都大于t或者都小于-t
如是,则p为候选角点
如否,则p不是角点
;对于候选点p,计算所有圆周点和点p的像素差
与阈值t比较,是否至少连续N个大于阈值t或者小于-t
N自选,如9、10、11、12
如是,则p是角点
如否,则p不是角点
;知识链接-FAST算法;BRIEF
BinaryRobustIndependentElementaryFeatures
只负责对已检测到的关键点建立描述符
计算速度快,匹配时间短;计算过程
高斯滤波,减少噪声干扰
选取特征点为中心的邻域窗口,随机选取像素点,比较大小,结果为1或0
重复上一个步骤N次,得到长度N的特征向量----描述符
;ORB
OrientedFASTandRotatedBRIEF
FAST+BRIEF的优化版
计算速度快
旋转不变性;opencv中,ORB算法可以通过cv2.ORB_create()函数进行调用。;知识问答;课堂讨论;特征提取
得到了目标图像与待匹配图像的特征点
然后根据特征点进行特征描述
特征描述符
比如一个128维向量
;课堂讨论;特征提取
特征点查找
描述符生成
特征匹配;暴力匹配
Bruteforce
;opencv-python中,暴力搜索算法可以通过cv2.BFMatcher()函数进行创建
;KNN
邻近算法
K最邻近
K-NearestNeighbor
就是K个最近的邻居的意思
图中k=3
;FLANN
FastApproximateNearestNeighborSearchLibrary
性能优化的KNN
FLANN算法可以通过cv2.FlannBasedMatcher(indexParams,searchParams)函数进行创建
indexParams和searchParams都是dict形式,键值根据用户指定的具体算法而变化
;课堂讨论;01;硬件条件
一台计算机
软件条件
Windows10,64位
PyCharmWindows社区版,Version:2021.1.2
OpenCV-Python4.5.3.56、Numpy1.19.5、Matplotlib3.3.4等;01;任务实施-项目任务概述;根据讲义内容,完成上述综合项目
如果使用讲义中的代码,播放会出现问题
请找到问题,定位相关的代码缺陷,进行修改
最后给我看的是能够流畅播放的版本
;使用摄像头
实时拍摄可??(雪碧)瓶,并显示图像
然后完成可乐(雪碧)瓶上的Logo定位
;任务实施-获取命令行输入;任务实施-初始化特征检测和匹配方法;任务实施-logo图片读取和计算特征点;任务实施-视频读取和特征点匹配;任务实施-提取可信的匹配特征对;任务实施-将匹配的特征区域用四边形方式展示;任务实施-结果示意图;01;项目中使用的是KNN作为特征匹配法
尝试替换为暴力搜索法
比较其效果
;01;学会如何提取图像特征
学会如何将这些特征用在查找和定位特定图像内容上;Thanks!