首页 > 其他分享 >AI助手帮你轻松做好Imagenet数据集重命名与复制

AI助手帮你轻松做好Imagenet数据集重命名与复制

时间:2023-04-08 21:02:08浏览次数:42  
标签:重命名 img AI 文件夹 mode Imagenet path os 图片

AI助手帮你轻松做好Imagenet数据集重命名与复制

任务需求

我们对Imagenet数据集进行了水下的退化处理,保存的数据集所有图片的深度图,格式为.npy。但是命名存在一些问题,现有格式为:n02009912_1916.JPEG.npy,需要更改为n02009912_1916.npy,因此尝试用ChatGPT对数据集进行批量处理

要求点

  1. 文件夹形式为一个数据集result,路径为/home/lihuanyu/code/03AdaBins/result/,有train,test和val三个文件夹,每个文件夹又有若干的类别子文件夹,子文件夹是每一个类别的文件,文件的命名格式为如下所示:n02009912_1916.JPEG.npy
  2. 我们需要将所有的文件去掉.JPEG去掉。
  3. 最后将遍历的所有文件按照输入存储形式重新存入/home/lihuanyu/code/03AdaBins/result2中,result2下也是有train,test和val三个文件夹,每个文件夹又有若干的类别子文件夹,子文件夹是每一个类别的文件。
  4. 以python语言形式呈现。
  5. 注意我们是将原文件复制移动到新的文件夹,只是更改名字。
  6. 需要打印处理流程:处理到那张图片和处理完成的标志。

代码实现

这段代码实现了对原始文件夹下所有图片进行重命名并复制到新的文件夹中的功能,并且能够打印出每张图片的处理进度。

首先,外层的for循环遍历了三个模式(train、test、val),对应着三个文件夹。然后,通过os.path.join()函数将模式和根路径拼接得到该模式下的图片路径img_mode_path和新文件夹路径processed_mode_path,用于后续的操作。接着,内层的for循环遍历了该模式下所有类别的文件夹,并通过os.path.join()函数将类别名和图片路径拼接得到该类别下的图片路径img_class_path和新文件夹路径processed_class_path,同时判断新文件夹是否存在,如果不存在则创建。最后,for循环内部又嵌套了一个for循环,并通过os.listdir()函数遍历该类别下的所有图片文件,并通过os.path.join()函数将图片名和图片路径拼接得到该图片的绝对路径img_path。接着,判断该图片名是否包含.JPEG,如果是,则通过str.replace()函数将.JPEG去掉得到新的图片名new_img_name,再通过os.path.join()函数将新的图片名和新的文件夹路径拼接得到新的图片路径new_img_path,最后通过shutil.copy()函数将原图片复制到新的文件夹中,并更改文件名为去掉.JPEG的新文件名new_img_name,并打印出相应的处理进度。如果该图片名不包含.JPEG,则直接跳过,不进行任何操作。

每处理完一类别下所有图片,就会打印出“Finished processing all images in 类别路径”这样的提示语,表示该类别下所有图片处理完成。当处理完一个模式下的所有类别时,就会打印出“Processed all images in 模式 mode”这样的提示语,表示该模式下所有图片处理完成。最后,当处理完所有三个模式下的所有图片时,就会打印出“All done!”这样的提示语,表示整个程序运行完毕。

import os  
import shutil  
  
# 原始数据集路径  
img_data_root = "/home/lihuanyu/code/03AdaBins/result/"  
  
# 更改后的文件夹路径  
img_processed_root = "/home/lihuanyu/code/03AdaBins/result2/"  
  
# 遍历原始数据集所有图片  
for mode in ['train', 'test', 'val']:  
    img_mode_path = os.path.join(img_data_root, mode)  
    processed_mode_path = os.path.join(img_processed_root, mode)  
    for class_name in os.listdir(img_mode_path):  
        # 每个类别的文件路径  
        img_class_path = os.path.join(img_mode_path, class_name)  
        processed_class_path = os.path.join(processed_mode_path, class_name)  
        # 如果新文件夹不存在则创建  
        if not os.path.exists(processed_class_path):  
            os.makedirs(processed_class_path)  
        # 遍历该类别下所有的图片  
        for img_name in os.listdir(img_class_path):  
            # 图片的绝对路径  
            img_path = os.path.join(img_class_path, img_name)  
            # 如果图片名中包含.JPEG,则重命名为去掉.JPEG的文件名  
            if ".JPEG" in img_name:  
                new_img_name = img_name.replace(".JPEG", "")  
                new_img_path = os.path.join(processed_class_path, new_img_name)  
                shutil.copy(img_path, new_img_path)  
                print("Copying image {} and renaming to {}...".format(img_path, new_img_path))  
            # 如果图片名中包含.npy,则直接复制到新文件夹中  
            else:  
                pass  
        print("Finished processing all images in {}!".format(processed_class_path))  
    print("Processed all images in {} mode!".format(mode))  
print("All done!")

结果呈现

在这里插入图片描述

标签:重命名,img,AI,文件夹,mode,Imagenet,path,os,图片
From: https://blog.51cto.com/lihuanyu/6177890

相关文章

  • AI Prompt Engineering 提示工程:提升你的创意与效率
    参考引言AI工具种类也开始进入大繁荣时代。根据There'sanAIForThat网站显示,自2002年-至今,AI社区已经构建了超过2400个AI工具,覆盖577种用途类别(当然,还有很多未收录的AI工具)。虽然AI工具已经有了,但如何用好这些工具却是另外一回事。本文将向您推荐一种名为AIProm......
  • 【AIGC未来的发展方向】面向人工智能的第一步,一文告诉你人工智能是什么以及未来的方向
    人工智能的概念当人们提到“人工智能(AI)”时,很多人会想到机器人和未来世界的科幻场景,但AI的应用远远不止于此。现在,AI已经广泛应用于各种行业和生活领域,为我们带来了无限可能。AI是一个广泛的概念,它包括很多不同的技术,例如机器学习、深度学习、自然语言处理等等。这些技术都具有......
  • 迁移学习(SPI)《Semi-Supervised Domain Adaptation by Similarity based Pseudo-label
    论文信息论文标题:Semi-SupervisedDomainAdaptationbySimilaritybasedPseudo-labelInjection论文作者:AbhayRawat, IshaDua, SauravGupta, RahulTallamraju 论文来源:PublishedinECCVWorkshops5September2022论文地址:download 论文代码:download视屏讲解:click......
  • tailwindcss 安装
    #tailwindcsspnpmitailwindcsspostcssautoprefixer#生成tailwindcss配置文件npxtailwindcssinit-p//tailwind.config.jsmodule.exports={...content:['./public/**/*.html','./src/**/*.{js,jsx,ts,tsx,vue}'],}#新建/src/styl......
  • 人工智能在线AI智能模型聊天AI网站系统源码
    demo软件园每日更新资源,请看到最后就能获取你想要的:​ 1.人工智能在线AI智能模型聊天AI网站系统源码 PHP网站系统源码 API接口源码AI网站系统源码仅23kb,实现用户管理,一键添加接口,一键修改接口,在线ai5个模型聊天,文转图,图转图,并且实现5个不同模式的API接口源码提供用户对......
  • 人工智能AI需要什么配置的服务器开发搭建架设
    人工智能AI需要什么配置的服务器开发搭建架设我是艾西,最近很火的ChatGPT我相信应该不少小伙伴都有关注这个话题吧,随着网络以及技术上的更新迭代人工智能AI需要什么配置的服务器开发搭建呢?人工智能(AI)技术在各种领域中得到了越来越广泛的应用,但要想获得高质量的AI算法和模型,需要拥有......
  • 人工智能AI服务器配置需求
    人工智能AI服务器配置需求我是艾西,今天聊聊很火的话题人工智能AI。大家从网络上应该了解了不少关于使用人工智能的便捷之处,包括一些科幻电影里面都有展示不少让人想要的功能,那么搭建人工智能AI的系统需要什么配置的服务器呢?艾西也是根据网络上能找到的资料以及相关知识总结而出一......
  • Azure OpenAI入门(二):了解提示工程
    1 基础环境配置1. 测试先决条件:l Python3.7.1 或更高版本l 安装openai客户端和python-dotenv、langchainpipinstallopenaipython-dotenvlangchain2. 导入库和配置AzureOpenai相关凭据#初始化链接importopenaiimportosimportIPythonfromlangchain.llmsimportO......
  • Cesium案例(八) Terrain
    第一步正常建viewer,需要注意的是官网例子属性值比较老,最新版本的属性值有所差异,全copy官网会无法运行,提示函数未定义。第一处差异官网: 1constviewer=newCesium.Viewer("cesiumContainer",{2terrain:Cesium.Terrain.fromWorldTerrain({3requestWaterMask:t......
  • Hugging News #0407: Google AI 的 Pix2Struct 来啦、开发者资源页面发布
    每一周,我们的同事都会向社区的成员们发布一些关于HuggingFace相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「HuggingNews」,本期HuggingNews有哪些有趣的消息,快来看看吧!社区活动ControlNet微调冲刺活动为了帮......