如何搜集图片数据集(方法论)

目标检测数据集构建指南

目标概述: 当前项目旨在创建一个专注于灭火器的单一类别目标检测数据集。

数据集搜集策略

一,搜集目前已存在的数据集

1.Kaggle数据集(kaggle)

2.谷歌数据集(谷歌)

3.Amazon数据集(Amazon)

4.UCI机器学习资源库(UCI)

5.微软数据集(微软)

二,爬虫大法

1.首先在网站上搜索图片:

2.接着找到图片下面的链接,排除广告链接,需要找到图片网站的链接。

3.点进去发现又是一个可以搜集图片的网站。循环往复可以搜集到很多可以爬取图片的网站。

4.使用爬虫对网站进行爬取。

三,整理并且标注图片


一,搜集目前已存在的数据集:利用知名数据集平台,搜集与灭火器相关的图像资源。

1.Kaggle数据集(kaggle

2.谷歌数据集(谷歌

3.Amazon数据集(Amazon

4.UCI机器学习资源库(UCI)

5.微软数据集(微软)

二,爬虫大法

  • 初始阶段,通过百度、Bing、搜狗等主流搜索引擎进行图片搜集。
  • 若现有资源不足,可采用以下进阶方法:
    • 细化搜索关键词,提高图片搜集的针对性和效率。
    • 考虑使用专业的图像搜索工具或平台,以获取更高质量的图片资源。

1.首先在网站上搜索图片:

2.接着找到图片下面的链接,排除广告链接,需要找到图片网站的链接。

3.点进去发现又是一个可以搜集图片的网站。循环往复可以搜集到很多可以爬取图片的网站。

4.使用爬虫对网站进行爬取。

技术资源分享

在构建目标检测数据集的过程中,我已经整理了一系列高效的网络爬虫代码,它们能够从多个知名平台抓取所需的图片资源。以下是支持的平台列表:

  • 百度图片搜索
  • Bing图片搜索
  • Hipopx(一个提供高分辨率图片的网站)
  • XSJ.699pic(一个图片分享平台)

如果您在数据搜集阶段需要技术支持或希望提高搜集效率,欢迎随时与我联系。我将乐于分享这些代码资源,并提供必要的帮助与指导。

三,整理并且标注图片

1. 图片整理阶段:

  • 筛选与删除: 首先,对搜集到的图片进行筛选,移除不符合条件的图片。
  • 重命名与格式转换: 将图片名称进行统一重命名,并确保所有图片都以.jpg格式存储,以便于后续处理。
  • 颜色空间转换: 对于非RGB颜色空间的图片,进行必要的转换,确保它们能够被标注工具labelme正常使用。
import os
import shutil
from datetime import datetime

# 源文件夹路径
source_folder = 'Fire_Extinguisher8/images_ori'
# 目标文件夹路径
target_folder = 'Fire_Extinguisher8/images'

# 确保目标文件夹存在
if not os.path.exists(target_folder):
    os.makedirs(target_folder)
# 初始化计数器
counter = 0
# 遍历源文件夹中的所有文件
for filename in os.listdir(source_folder):
    # 检查文件是否是图片(这里假设图片扩展名为.jpg,可以根据需要添加其他格式)
    if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):
        # 构造源文件的完整路径
        source_path = os.path.join(source_folder, filename)
        # 生成基于当前时间的新文件名
        timestamp = datetime.now().strftime('%Y%m%d%H%M%S%f')[:17]
        new_filename = f"{timestamp}_{counter}{os.path.splitext(filename)[1]}"
        if new_filename[-3:] == 'png':
            new_filename = new_filename.replace('.png', '.jpg')
        # 构造目标文件的完整路径
        target_path = os.path.join(target_folder, new_filename)
        # 复制文件
        shutil.copy2(source_path, target_path)
        print(f'Copied {filename} to {new_filename}')
        counter += 1
print('All images have been copied and renamed.')
def rgba_to_rgb(path_in, path_out):
    # 批量更改图片格式
    file_in = os.listdir(path_in)
    for name in file_in:
        old_img_dir = os.path.join(path_in, name)
        new_img_dir = os.path.join(path_out, name)
        # 取决于自己的图片命名方式
        img = Image.open(old_img_dir)
        print(img.mode)
        if img.mode != "RGB":
            img = img.convert('RGB')
            print(old_img_dir)
        img.save(new_img_dir)

2. 图片标注阶段:

  • 使用Labelme标注: 利用labelme工具对图片进行标注,确保目标对象被准确识别。
  • 筛选标注结果: 在标注过程中,可能会遇到一些无法标注的图片。对于这些图片,我们将不予保留,只将成功标注的图片转移到新的文件夹中。
  • 格式转换: 将标注完成后生成的.json文件转换为YOLO格式,以满足目标检测模型的训练需求。
def label_to_image(txt_dir, old_img_dir, new_img_dir):
    # 存在label的图片将被复制到新文件夹
    for name in os.listdir(txt_dir):
        img_name = name[:-4] + 'jpg'
        old = os.path.join(old_img_dir, img_name)
        new = os.path.join(new_img_dir, img_name)
        shutil.copy(old, new)

 数据集标注质量检查

在完成数据集的整理和标注工作后,为了确保标注的准确性和一致性,我们建议进行可视化检查。这一步骤至关重要,因为它可以帮助我们直观地评估标注结果,并及时修正任何可能的错误。

可视化检查流程:

  • 使用可视化工具: 利用专门的可视化函数或软件,对标注的图片进行展示,以便进行质量评估。
  • 评估标注质量: 通过可视化结果,检查目标对象的边界框是否准确,以及标签是否正确无误。
  • 修正与优化: 如果在检查过程中发现问题,及时进行修正,以确保数据集的质量。

技术支持: 如果您需要进一步的技术支持或希望获取可视化检查的代码示例,欢迎随时与我联系。我将提供必要的帮助和指导,以确保您的数据集标注工作达到最佳效果。

数据集构建与标注流程总结

在进行目标检测项目的数据集构建时,我们采取了以下步骤确保数据的质量和标注的准确性:

  1. 数据搜集:从多个知名数据集平台和网络爬虫技术搜集灭火器图片,确保了数据的多样性和丰富性。

  2. 数据整理

    • 筛选并删除不符合要求的图片。
    • 对图片进行重命名,并统一转换为.jpg格式。
    • 将非RGB颜色空间的图片转换为RGB,以适配标注工具。
  3. 数据标注

    • 使用labelme工具对图片进行精确标注。
    • 对标注结果进行筛选,仅保留成功标注的图片,并创建新的文件夹存储。
    • .json标注文件转换为YOLO格式,以满足特定模型的训练需求。
  4. 质量检查

    • 采用可视化工具对标注结果进行质量检查。
    • 评估标注的准确性,并及时修正发现的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值