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年02月19日
    浏览(31)
  • 数据挖掘与图像挖掘:计算机视觉的创新

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

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

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

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

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

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

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

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

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

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

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

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

    目录 系列文章目录 零、问题描述 一、图像显著性检测 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日
    浏览(43)
  • 计算机视觉----图像拼接

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

    2024年02月09日
    浏览(42)
  • 计算机视觉 -- 图像分割

    引入问题: 在自动驾驶系统中,如果用之前的检测网络(例如Faster-Rcnn),试想,倘若前方有一处急转弯,系统只在道路上给出一个矩形标识,这样一来车辆很有可能判断不出是该避让还是径直上前,车祸一触即发。因此,对新技术的诉求应运而生,该技术须能识别具体路况

    2024年02月11日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包