品牌网站怎么做seo,个人网页设计需求分析,鄂尔多斯做网站,做钓鱼网站会被抓判刑吗背景
由于我要做一个深度学习方向的计算机视觉项目#xff0c;需要一些数据集来进行训练#xff0c;我便想尝试捕获视频中的图片用来标注。
注意事项
如果视频中的场景单一#xff0c;那么使用该视频获取的数据集训练出的模型面对其他场景的泛化能力就会受到限制。为了提…背景
由于我要做一个深度学习方向的计算机视觉项目需要一些数据集来进行训练我便想尝试捕获视频中的图片用来标注。
注意事项
如果视频中的场景单一那么使用该视频获取的数据集训练出的模型面对其他场景的泛化能力就会受到限制。为了提高数据集的多样性可以采用多种不同场景的视频并且在获取数据时采用大间隔捕获的方式。采用大间隔捕获数据的方法可以捕获到的图片同质化降低从而进一步增加数据集的多样性。
import os
import sys
from concurrent.futures import ThreadPoolExecutor
import cv2def output_img(video_path,img_dir):
# 由视频逐帧输出图片
# video_path: 视频文件路径
# img_dir: 图片保存目录路径路径不支持中文os.makedirs(img_dir,exist_okTrue)
# img_dir表示要创建的目录路径。
# exist_okTrue表示如果目录已经存在时不抛出异常。如果将 exist_ok 设置为 True那么如果目录已经存在os.makedirs() 函数也不会报错如果设置为 False则会抛出一个 FileExistsError 异常。cv cv2.VideoCapture(video_path)frame_count 0 # 计数器n 0# 命名计数器while True:ret,frame cv.read()if not ret:breakframe_count 1if frame_count % 30 0:# 每隔三十帧获取一次图片n 1img_name 0000000{0}.jpg.format(n)img_file_path os.path.join(img_dir,img_name)if not os.path.exists(img_file_path):sys.stdout.write(创建文件: img_file_path \n)# 标准输出流将指定文本输出到控制台或其他输出设备中cv2.imwrite(img_file_path,frame,[cv2.IMWRITE_JPEG_QUALITY,100])# 将图像帧保存为jepg格式的图像质量最高为100else:sys.stderr.write(跳过: img_file_path \n)ret,frame cv.read()def run(video_dir,img_dir):pool ThreadPoolExecutor()# 创建一个线程池对象实例化ThreadPoolExecutor类将任务提交给线程池线程池会自动调度线程来执行这些任务for file in os.listdir(video_dir):if file[-4:] .mp4:video_file_path os.path.join(video_dir,file)img_dir_name os.path.join(img_dir,file[:-4])os.makedirs(img_dir_name,exist_okTrue)pool.submit(output_img,*(video_file_path,img_dir_name))
#* 和 ** 是用于解包参数的操作符。在这种情况下*(video_file_path, img_dir_name)
# 的作用是将元组 (video_file_path, img_dir_name) 中的元素解包并作为单独的参数传递给函数。if __name__ __main__:run(rE:\video,rE:\image)