下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、、原理1.1 相似度度量指标 1.2 计算步骤Templa+1)。(w、代码实现2.1 单模板匹配单个标# 相关系数匹配法: cv2.TM_CCOEFFres = cv2.matchTemplate(img, template, cv2.TM_CCOEFF)min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)left_top = max_loc # 左上right_bottom = (left_top0 + w,left_top1 + h) # 右下cv2.rectangle(img, left_top, right_bottom, 2
2、55, 2) # 画出矩形位置plt.subplot(121), plt.imshow(res, cmap=gray)plt.title(Matching Result), plt.xticks(), plt.yticks()plt.subplot(122), plt.imshow(img, cmap=gray)plt.title(Detected Point), plt.xticks(), plt.yticks()plt.show()2.2 单模板匹配多个标import cv2import numpy as npimg_rgb = cv2.imread(mario.jpg)img_gray
3、= cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)template = cv2.imread(mario_coin.jpg, 0)h, w = template.shape:2res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)threshold = 0.8# 取匹配程度于%80的坐标loc = np.where(res = threshold)返回的坐标值(x,y)是,注意h,w的顺序for pt in zip(*loc:-1):bottom_right = (pt0 + w,p
4、t1 + h)cv2.rectangle(img_rgb, pt, bottom_right, (0, 0, 255), 2)cv2.imwrite(img.jpg,img_rgb)cv2.imshow(img, img_rgb)cv2.waitKey(0)3、算法精度优化NMS BSBDBIoUBBimport cv2import timeimport numpy as npdef py_nms(dets, thresh):Pure Python NMS baseline.#x1、y1、x2、y2、以及score赋值# (x1、y1)(x2、y2)为box的左上和右下标x1 = dets:,
5、 0y1 = dets:, 1x2 = dets:, 2y2 = dets:, 3scores = dets:, 4#每个候选框的积areas = (x2 - x1 + 1) * (y2 - y1 + 1)#order是按照score降序排序的order = scores.argsort():-1# print(order:,order)keep = while order.size 0:i = order0keep.append(i)#计算当前概率最矩形框与其他矩形框的相交框的坐标,会到numpy的broadcast机制,得到的是向量xx1 = np.maximum(x1i, x1order
6、1:)yy1 = np.maximum(y1i, y1order1:)xx2 = np.minimum(x2i, x2order1:)yy2 = np.minimum(y2i, y2order1:)#计算相交框的积,注意矩形框不相交时或算出来会是负数,代替w = np.maximum(0.0, xx2 - xx1 + 1)h = np.maximum(0.0, yy2 - yy1 + 1)inter = w * h#计算重叠度IOU:重叠积/(积1+积重叠积)ovr = inter / (areasi + areasorder1: - inter)#找到重叠度不于阈值的矩形框索引inds =
7、np.where(ovr = template_threshold)#于模板阈值的标坐标score = resres = template_threshold# 于模板阈值的标置信度#将模板数据坐标进处理成左上、右下的格式xmin = np.array(loc1)ymin = np.array(loc0)xmax = xmin+wymax = ymin+hxmin = xmin.reshape(-1,1)#变成列维度xmax = xmax.reshape(-1,1)#变成列维度ymax = ymax.reshape(-1,1)#变成列维度ymin = ymin.reshape(-1,1)#变成
8、列维度score = score.reshape(-1,1)#变成列维度data_hlist = data_hlist.append(xmin)data_hlist.append(ymin)data_hlist.append(xmax)data_hlist.append(ymax)data_hlist.append(score)data_hstack = np.hstack(data_hlist)# 将xmin、ymin、xmax、yamx、scores按照列进拼接thresh = 0.3#NMS的IOU交互阈值keep_dets = py_nms(data_hstack, thresh)pr
9、int(nms time:,time.time() - start_time)# 打印数据处理到nms运时间dets = data_hstackkeep_dets# 最终的nms获得的矩形框return detsif _name_ = _main_:img_rgb = cv2.imread(mario.jpg)#需要检测的图img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)#转化成灰template_img = cv2.imread(mario_coin.jpg, 0)#模板图template_threshold = 0.8#模板置信度dets = template(img_gray,template_img,template_threshold)cou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 货运管理安全知识
- 我的童话故事之狐狸和兔子作文7篇
- 货车乘务人员培训课件
- 起重特种作业安全培训
- 跨部门协作任务分配与跟进记录表
- 起重工知识教学课件
- 2025年海南省事业单位人事考试及答案
- 2025年考古学专业知识面试题库及答案
- 2025年海城事业单位笔试题及答案
- 2025年初中生物结构化面试题库及答案
- 实验:含锌药物的制备及含量测定教学设计-2025-2026学年中职专业课-化学实验技术-分析检验技术-生物与化工大类
- 雨课堂学堂云在线《临床思维与人际沟通 》单元测试考核答案
- 小儿发热护理讲课
- 妊娠合并甲状腺功能减退健康宣教
- 硫氧镁顶板施工方案
- 2025初会会计考试真题及答案
- 消防知识培训锦旗课件
- 新媒体与艺术教育-艺术教育中的新媒体技术
- 左心耳封堵术课件
- 招聘费用预算及方案(3篇)
- 导管室护理新技术:迷你中线导管的应用与推广
评论
0/150
提交评论