• 深度学习视觉数据准备


    针对视觉任务中的数据准备进行记录:

    1.从视频中获取图片数据

    1. 首先从视频中剪辑出指定长度(2-3s)的有效片段,直接使用剪辑工具即可(推荐 快剪辑)

    1. 将视频片段拆分成帧图片。

      • 首先右键查看视频片段的 属性,然后转 详细信息 查看 帧速率,此速率即为后期生成图片的一个重要参数。

      • 可使用工具 ffmpeg 来生成图片,也可直接写脚本程序完成此项工作。这里记录下使用 ffmpeg 的操作过程:

        安装及环境配置,详见:https://blog.csdn.net/weixin_33895016/article/details/93944142

        使用:进入视频文件所在目录,shift + 右键 在此处打开 Powershell ,输入命令:

        ffmpeg -i "video.mp4" -r 1 -q:v 2 -f image2 vid_%d.jpg
        # ffmpeg -i 视频 -r 每秒帧数 -q:v 图片质量参数 -f 图片命名格式
    1. [可选] 文件重新命名。需要将上面生成的文件名更改成 000x.jpg, 00xx.jpg, 0xxx.jpg 的形式,可以使用以下脚本:

      def rename(file_path):
          """
          将给定目录下的图像文件重新命名(0000.jpg 格式)
          :param file_path:
          :return:
          """
          # 首先得到所有的图片(list)
          images = []
          # key=lambda x: int(x[:-4]) : 倒着数第四位'.'为分界线,按照'.'左边的数字从小到大排序(注意这里的逻辑是根据上面第2步的命名 vid_%d.jpg 来写的)
          for f in sorted(os.listdir(os.path.join(file_path)), key=lambda x: int(x[4:-4])):  # 获取的列表是乱序的,记得排一下序
              sub_path = os.path.join(file_path, f)
              if os.path.isfile(sub_path):
                  images.append(sub_path)
          print(images)
          # 重新命名
          count = 0
          for img in images:
              if count < 10:
                  os.rename(img, os.path.join(file_path, '000' + str(count) + ".jpg"))
              elif count < 100:
                  os.rename(img, os.path.join(file_path, '00' + str(count) + ".jpg"))
              elif count < 1000:
                  os.rename(img, os.path.join(file_path, '0' + str(count) + ".jpg"))
              count += 1
          print("rename completed!")

    2.直接获取图片数据

    这没什么好说的。

    3.图片标注

    这里主要记录了 windows 下目标检测数据的标注,标注格式为 Pascal VOC 格式。其余系统同理。

    1. 首先要选定一款数据标注工具,推荐 labelme 。不推荐网上的命令行式安装,可以去这里下载[提取码:ldxp],解压后会有一个 data 文件夹和一个 labeme.exe 程序。

      [可选] data 文件夹中有一个 txt 文件,其中用来配置标注的对象的类别,之后便可在标注时弹出类别选项而无需手动输入。比如有 a,b,c,d,e 5类,txt 文件如下:

    1. 标注时直接打开 labelme.exe 即可。点击左侧边栏 open Dir 打开数据所在的文件来导入图片数据,点击 Create RectBox 或使用快捷键 w 来新建标注框,完了 ctrl+s 保存成 xml 文件。

    参考:https://blog.csdn.net/weixin_33895016/article/details/93944142

  • 相关阅读:
    SSM——事务配置
    SSM——Spring+Mybtis整合(代理【mapper】开发模式)
    objective-c(五)关于代码块的使用
    objective-c(四)内存管理
    objective-c(三)类与对象的方法调用
    objective-c(二)基本数据类型介绍
    objective-c(一)关于基本数据类型打印输出方式
    Eclipse启动发生的错误:An internal error occurred during: "Initializing Java Tooling".
    单例模式
    Java 代理模式
  • 原文地址:https://www.cnblogs.com/zishu/p/12596016.html
Copyright © 2020-2023  润新知