https://zhuanlan.zhihu.com/p/383660741?utm_source=wechat_session&utm_medium=social&utm_oi=1226647290779140096&utm_campaign=shareopn
https://blog.csdn.net/qq_41895190/article/details/90286082?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163333682516780265449011%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163333682516780265449011&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_v2~rank_v29-6-90286082.pc_v2_rank_blog_default&utm_term=yolov3%E8%AE%AD%E7%BB%83%E8%87%AA%E5%B7%B1%E7%9A%84%E6%95%B0%E6%8D%AE&spm=1018.2226.3001.4450
主要:
划分训练集和验证集遇到的问题:
先执行make.Txt.py
后执行voc_label.py
make.Txt.py生成:
voc_label.py生成data文件夹下的:
视频切帧
框框内代表:这个目录下需要切帧的文件名称。每秒钟的切帧数。生成图片格式。
框框内代表:这个目录下需要切帧的文件名称。每秒钟的切帧数。生成图片命名规范和格式。
图片按需求抽取
框框内:每间隔9张选一张出来,这里每6张选1张出来
代码:
import os
import random
import shutil
#source_file:源路径, target_ir:目标路径
def cover_files(source_dir, target_ir):
for file in os.listdir(source_dir):
source_file = os.path.join(source_dir, file)
if os.path.isfile(source_file):
shutil.copy(source_file, target_ir)
def ensure_dir_exists(dir_name):
"""Makes sure the folder exists on disk.
Args:
dir_name: Path string to the folder we want to create.
"""
if not os.path.exists(dir_name):
os.makedirs(dir_name)
def moveFile(file_dir, save_dir):
ensure_dir_exists(save_dir)
path_dir = os.listdir(file_dir)
filenumber = len(path_dir)
path_dir_list = os.listdir(file_dir)
rate = 0.2 # 自定义抽取图片的比例,比方说100张抽10张,那就是0.1
picknumber = int(filenumber * rate) # 按照rate比例从文件夹中取一定数量图片
sample = random.sample(path_dir, picknumber) # 随机选取picknumber数量的样本图片
# print (sample)
for name in sample:
shutil.copy(file_dir + name, save_dir + name)
def test(file_dir, save_dir):
path_dir = os.listdir(file_dir)
l = len(path_dir)
for i in range(0,l,9):
shutil.copy(file_dir + path_dir[i], save_dir + path_dir[i])
#切记win10路径D:你的路径\\,最后一定要有\\才能进入目标文件
if __name__ == '__main__':
file_dir = r'E:\1Study\Dataset\初筛数据集\kaggleCall\\' # 源图片文件夹路径
save_dir = r'E:\1Study\Dataset\初筛数据集\kaggleCall抽帧\\' # 移动到目标文件夹路径
# moveFile(file_dir, save_dir)
test(file_dir, save_dir)