five

qgyd2021/wechat_or_qq_icon_detection

收藏
Hugging Face2023-08-24 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/qgyd2021/wechat_or_qq_icon_detection
下载链接
链接失效反馈
官方服务:
资源简介:
该数据集用于从图像中检测出WeChat或QQ图标的位置。检测方法基于OpenCV库,使用SIFT或SURF图像特征进行检测。实现步骤包括特征点生成、聚类、特征点匹配、匹配点筛选和图标中心计算等。由于SURF和SIFT算法的专利限制,安装环境需要特定版本的Python和OpenCV库。bbox对应类别的文字描述包括多种WeChat和QQ图标的样式。
提供机构:
qgyd2021
原始信息汇总

数据集概述

任务描述

从图像中检测出 WeChat 或 QQ 图标的位置。

实现方法

基于 OpenCV 库,通过 SIFT 或 SURF 图像特征进行检测。

环境要求

  • Python 版本: 3.6.5
  • OpenCV 库版本: opencv-contrib-python==3.4.2.16

实现步骤

  1. 采用 OpenCV 库的 SIFT 或 SURF 图像特征 cv.xfeatures2d.SIFT_create() 对目标区域生成特征点向量。
  2. 为减少特征点数量,对所有的特征点向量做聚类,将聚类中心作为特征点,得到 template_descriptors
  3. 计算目标图像中的所有 SIFT 或 SURF 图像特征点,得到 scene_descriptors
  4. 采用 flann.knnMatch 方法进行特征点匹配,如果最近匹配距离比第二匹配距离的 0.7 倍还要小,则认为这个点是 good_match
  5. 最小要有3个 good_match 才认为图标匹配成功。
  6. 最后根据 good_match 点的分布计算图标的中心,计算点集中心和平均距离,将大于平均距离的点丢弃,重复此过程,直到半径小于阈值。

涉及的方法

python import cv2 as cv

sift = cv.xfeatures2d.SIFT_create()

index_params = dict(algorithm=0, trees=5) search_params = dict(checks=50) flann = cv.FlannBasedMatcher(index_params, search_params)

keypoints, descriptors = sift.detectAndCompute(image, None)

matches = flann.knnMatch( queryDescriptors=template_descriptors, trainDescriptors=scene_descriptors, k=2 )

good_matches = [] for m, n in matches: if m.distance < 0.7 * n.distance: good_matches.append(m)

k = 3 if len(good_matches) > k: print(good_matches) else: print("Not enough matches are found - %d/%d" % (len(good_matches), k))

类别定义

text CATEGORIES = [ "红黑白QQ图标", "绿边白色微信图标", "淡蓝底全白QQ图标", "绿底全白微信图标", "大绿小白微信图标", "纯色微信图标", "纯色QQ图标" ]

5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作