FastBup:计算机视觉大型图像数据集分析工具

这篇具有很好参考价值的文章主要介绍了FastBup:计算机视觉大型图像数据集分析工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0.简介

  • 官方github网址
  • 项目目的:当前大规模图像数据集一团糟,数据量巨大但质量堪忧,有时候训练集、验证集、测试集会有重复数据造成数据泄露。FastBup可以识别重复项、近似重复项、异常图像、错误标注、异常值,在cpu上就可以处理数百万的图片。

1.安装

  • 支持环境:Python 3.7 and 3.8 (Ubuntu 20.04 or Ubuntu 18.04 or Mac M1)
  • 安装python3.8 -m pip install fastdup
  • kaggle上安装!pip install fastdup matplotlib -Uq

2.简单使用

  • 基本
import fastdup

work_dir = "./fastdup_report"#分析结果输出文件夹
images_dir = "/train"#待分析图像所在文件夹

fd = fastdup.create(work_dir, images_dir)
fd.run(ccthreshold=0.9, threshold=0.8, overwrite=True)
  • 结果保存
#结果保存
fastdup.create_duplicates_gallery('similarity.csv', save_path='.')       #create a visual gallery of found duplicates
fastdup.create_duplicates_gallery('outliers.csv',   save_path='.')       #create a visual gallery of anomalies
  • 可视化显示重复图像,距离1代表完成相同,0代表完全不同,0.98以上认为是几乎相同
#可视化显示重复图像,距离1代表完成相同,0代表完全不同
fd.vis.duplicates_gallery(num_images=50)

FastBup:计算机视觉大型图像数据集分析工具- 可视化显示异常图

#可视化显示异常图
fd.vis.outliers_gallery()

FastBup:计算机视觉大型图像数据集分析工具- 查看最暗的图片

fd.vis.stats_gallery(metric='dark')

FastBup:计算机视觉大型图像数据集分析工具- 查看最亮的图片

fd.vis.stats_gallery(metric='bright')

FastBup:计算机视觉大型图像数据集分析工具- 查看最模糊的图片

fd.vis.stats_gallery(metric='blur')

FastBup:计算机视觉大型图像数据集分析工具- 可视化相似族,将相似图片划分为一簇

#可视化相似族,将相似图片划分为一簇
fd.vis.component_gallery()

FastBup:计算机视觉大型图像数据集分析工具

  • 表格形式查看相似图片,方便自定义可视化
#表格形式查看
fd.similarity()

FastBup:计算机视觉大型图像数据集分析工具

3.详细的python API 文档

  • 官方全英github文档

  • input_dir

    • 字符串
    • 图片或视频的文件夹,会递归地处理该文件夹下的所有图片
    • 或者是一张纸图片的完整路径,每个图片占一行
  • work_dir

    • 字符串
    • 用来保存中间结果和最终输出的目录
      • 特征向量文件:默认文件名 features.dat,n行576列的二进制numpy数组
        由于二进制python不方便操作,所以提供了函数:

        file_list, mat_features = fastdup.load_binary('features.dat')
        

        返回的是长度为x的图片全程的列表和x行576列的np数组

      • 图片完整路径与特征向量映射的csv文件:默认文件名features.dat.csv(图片的处理顺序可能因为系统不同而发生改变,并且有些图片损坏无法计算特征,所以需要这个映射文件记录)

      • features.bad.csv里面会记录无法生成特征向量的损坏图像

      • 相似对列表:similarity.csv,三列(from,to,distance),并按distance降序排序,最大为1,表示两张图片完全一致(类似余弦距离)

      • faiss.index:使用faiss时生成的索引文件

      • components_info.csv:创建连通图时的每个联通节点(图片)

      • connected_components.csv:第一列是features.dat.csv文件中的索引(图像列表),文件根据列表排序,包括pagerank输出、角度分布和连通图的参数

  • compute

    • 字符串
    • 使用cpu还是gpu计算,默认是cpu
  • verbose

    • bool
    • 是否详细。默认False
  • num_threads

    • int
    • 线程数,默认-1,会自动设为cpu核数
  • num_images

    • int
    • 要计算的图片数,默认-1,计算输入路径下的所有图片
  • turi_param

    • str
    • turi的可选附加参数
      • nnmodel
        • 0/1/2
        • 聚类特征使用的最近邻模型
        • 仅对turi有效,对faiss无效
        • 0:brute_force,准确的
        • 1:ball_tree
        • 2:lsh:locality sensitive hashing,局部敏感散列
      • ccthreshold
        • [0,1]之间
        • 构建相似性图的阈值,相似度大于该值时构建相似度图
      • run_cc
        • 0/1
        • 是否进行相似度图上的连通分量计算
      • run_pagerank
        • 0/1
        • 是否进行相似图页面排名计算
      • run_degree
        • 0/1
        • 是否进行相似图角度分布计算
  • faiss相关参数

    • faiss_mode
      • str
      • HNSW32(默认)等faiss字符串
    • faiss_param
      • str
      • 如: ‘efSearch=175,nprobes=200’(指定faiss参数)
    • bounding_box
      • str
      • 在应用faiss前裁剪图像
      • 如:bounding_box=‘rows=100,cols=100,width=250,height=310’(行和列给出左上角坐标),裁剪图像范围 [rows:rows+height, cols:cols+width]
  • distance

    • str
    • 最近邻算法的距离度量
    • 余弦距离(cosine,默认)、欧几里得距离(euclidean)、平方欧几里得距离(squared_euclidean)、曼哈顿距离(manhattan)
  • threshold

    • float
    • 相似程度衡量的阈值
    • 默认0.85,大于该值认为图片非常相似,小于该值不会记为相似图片
  • lower_threshold

    • float
    • 衡量异常图片的阈值(和总体分布相比较远的离群点)
    • 默认0.3
  • model_path

    • str
    • ONNX模型文件的可选位置
    • 不应该被使用
  • version

    • bool,不需要传入任何参数
    • 是否打印版本信息
  • nearest_neighbors_k

    • int
    • 默认2,对每张照片寻找多少张相似图片
  • run_mode

    • int
    • 0/1/2、3、4,选择软件执行功能
    • 0:同时计算特征向量、NN embedding和相似度(默认,但对于大型数据集,更明智的办法是分成几步,这样即使出错也能保留下来部分中间数据)
    • 1.:只计算特征向量(可并行计算)
    • 2:只计算相似度(需要读取已有的特征文件):input_dir参数会被忽略,work_dir需要指向特征文件的完整路径和文件名
    • 3:计算特征向量和相似度(需读取faiss.index的NN模型):input_dir指定要计算相似度的图片文件夹,work_dir指向NN模型,用来将训练集上得到的NN模型直接用到新的测试集上来衡量相似度
    • 4:只计算相似度(需1里面的特征向量和2里面的NN模型):work_dir指向所需文件
  • nn_provider

    • turi/faiss
    • 最近邻算法的选择
  • 与并行计算图像子集划分有关参数

    • min_offset
      • int
      • 默认-1,在完整文件列表上开始迭代的可选最小偏移量(最小图像子集)。
    • max_offset
      • int
      • 默认-1,在完整文件列表上开始迭代的可选最大偏移量(最大图像子集)。
  • 返回值

    • 0/1
    • 0:成功
    • 1:失败
  • 举例fastdup.run('/path/to/folder', nn_provider='turi', nnmodel='brute_force')

  • 可视化输出文章来源地址https://www.toymoban.com/news/detail-470421.html

    • jupyter notebook能得到表格,其他环境得到的是html报告
    • 函数fastdup.create_duplicates_gallery(similarity_file, save_path, num_images=20, descending=True)
    • 或者fastdup.generate_duplicates_gallery(similarity_file, save_path, num_images=20, descending=True),官方文档写了两次,前后函数名字不一致
    • 由于参数里没有input_dir,所以要与前面的计算在同一台电脑上,保证输入图片路径完全一致
    • similarity_file
      • str
      • 之前计算出的相似度的csv文件
    • save_path
      • str
      • 可视化相关输出保存位置
    • num_images
      • int
      • 最多相似的照片数量,默认50
    • descending
      • bool
      • 默认True,从最相似到最不相似打印

到了这里,关于FastBup:计算机视觉大型图像数据集分析工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据挖掘与图像挖掘:计算机视觉的创新

    计算机视觉是人工智能领域的一个重要分支,它涉及到计算机对图像和视频数据进行分析和理解。数据挖掘则是数据科学领域的一个核心技术,它涉及到从大量数据中发现隐藏的模式和规律。随着数据量的增加,数据挖掘技术在计算机视觉领域得到了广泛应用,以提高计算机

    2024年04月17日
    浏览(47)
  • 数据应用开发的图像识别与计算机视觉

    图像识别和计算机视觉是计算机视觉领域的重要应用领域,它们涉及到人工智能、机器学习、深度学习等多个领域的技术。在这篇文章中,我们将讨论图像识别与计算机视觉的背景、核心概念、算法原理、最佳实践、应用场景、工具和资源推荐以及未来发展趋势与挑战。 图像

    2024年02月19日
    浏览(42)
  • 深度学习应用篇-计算机视觉-图像增广[1]:数据增广、图像混叠、图像剪裁类变化类等详解

    【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、

    2024年02月08日
    浏览(42)
  • 【图像分类】基于计算机视觉的坑洼道路检测和识别(ResNet网络,附代码和数据集)

    写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 (专栏订阅用户订阅专栏后免费提供数据集和源码一份,超级VIP用户不在服务范围之内,不想订阅专栏的

    2024年02月06日
    浏览(52)
  • 【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 30 日论文合集)

    Novis:端到端近在线视频实例分割实例 直到最近,视频实例分割(VIS)社区在以下共同信念下操作:离线方法通常优于逐帧在线处理。然而,最近在线方法的成功质疑这种信念,特别是对于具有挑战性和长视频序列。我们将这项工作理解为对最近观察结果的反驳,并呼吁社区

    2024年02月09日
    浏览(65)
  • 【计算机视觉 | 图像分类】arxiv 计算机视觉关于图像分类的学术速递(6月 29 日论文合集)

    基于多示例学习的全幻灯片图像分类的伪袋混合增强 论文地址: 鉴于十亿像素图像建模的特殊情况,多实例学习(MIL)已成为全幻灯片图像(WSI)分类最重要的框架之一。 在当前实践中,大多数 MIL 网络在训练中经常面临两个不可避免的问题:i)WSI 数据不足,ii)神经网络

    2024年02月11日
    浏览(52)
  • 【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(7 月 6 日论文合集)

    面向跨域语义分割的提示扩散表示法 虽然最初设计用于图像生成,扩散模型最近已证明提供了优秀的预训练的特征表示语义分割。这一结果引起了兴趣,我们开始探索扩散预训练表示如何推广到新的领域,这是任何表示的关键能力。我们发现,扩散预训练实现了非凡的领域泛

    2024年02月12日
    浏览(52)
  • 计算机视觉——图像视觉显著性检测

    目录 系列文章目录 零、问题描述 一、图像显著性检测 1.定义 2.难点 二、常用评价标准和计算方法 1.综述 2.ROS曲线详述 2.1 混淆矩阵 2.2 ROC曲线简介 2.3 ROC曲线绘制及其判别标准 2.4 ROC曲线补充 三、Fast and Efficient Saliency (FES) 1.算法简介 2.项目导入与解析 3.FES注意预测实践 4.评价

    2024年02月03日
    浏览(55)
  • 计算机视觉--图像拼接

    单应性变换是指一个平面上的点通过一个矩阵变换映射到另一个平面上的点,这个变换矩阵是一个 3 × 3 3 times 3 3 × 3 的矩阵,称为单应性矩阵。单应性变换可以分为仿射变换和投影变换两种类型。 在单应性变换中,仿射变换是其中一种特殊的变换。仿射变换是指在变换前后

    2024年02月04日
    浏览(49)
  • 计算机视觉----图像拼接

     一.简介 图像拼接(Image Stitching)是一种利用实景图像组成全景空间的技术,它将多幅图像拼接成一幅大尺度图像或360度全景图,接可以看做是场景重建的一种特殊情况,其中图像仅通过平面单应性进行关联。图像拼接在运动检测和跟踪,增强现实,分辨率增强,视频压缩和图

    2024年02月09日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包