当前位置: 首页 > news >正文

帮人做图挣外快的网站学做快餐在哪个网站

帮人做图挣外快的网站,学做快餐在哪个网站,上海自适应网站,设计网站推荐平面高效率制作数据集【按这个流程走#xff0c;速度很顶】 本次制作#xff0c;1059张图片【马路上流动车辆】 几乎就是全自动了#xff0c;只要视频拍得好#xff0c;YOLO辅助制作数据集就效率极高 视频中的图片抽取#xff1a; 【由于视频内存过大#xff0c;遇到报错执行…高效率制作数据集【按这个流程走速度很顶】 本次制作1059张图片【马路上流动车辆】 几乎就是全自动了只要视频拍得好YOLO辅助制作数据集就效率极高 视频中的图片抽取 【由于视频内存过大遇到报错执行失败解决方法已附加在代码下面】 import cv2 import os import pdb import numpy as np #from glob2 import globvideos_src_path F:\\testkk\\vivivi\\ # 提取图片的视频文件夹# 筛选文件夹下MP4格式的文件 # videos os.listdir(videos_src_path) # 用于返回指定的文件夹包含的文件或文件夹的名字的列表。 # videos filter(lambda x: x.endswith(mp4), videos) dirs os.listdir(videos_src_path) # 获取指定路径下的文件 count 0 # 写入txt f F:\\testkk\\images\\data.txt with open(f, w) as file:file.write(-----start-----\n)# 循环读取路径下的文件并操作 for video_name in dirs:outputPath F:\\testkk\\images\\video_name[:-4] \\# os.mkdir(outputPath)print(start\n)print(videos_src_path video_name)vc cv2.VideoCapture(videos_src_path video_name)# 初始化,并读取第一帧# rval表示是否成功获取帧# frame是捕获到的图像rval, frame vc.read()# 获取视频fpsfps vc.get(cv2.CAP_PROP_FPS)# 获取每个视频帧数frame_all vc.get(cv2.CAP_PROP_FRAME_COUNT)print([INFO] 视频FPS: {}.format(fps))print([INFO] 视频总帧数: {}.format(frame_all))# 每隔n帧保存一张图片frame_interval 30# 统计当前帧frame_count 1# count0while rval:rval, frame vc.read()# 隔n帧保存一张图片if frame_count % frame_interval 0:# 当前帧不为None能读取到图片时if frame is not None:filename outputPath Kidney_tumors_{}.jpg.format(count)# 水平、垂直翻转frame cv2.flip(frame, 0)frame cv2.flip(frame, 1)# 旋转180°frame np.rot90(frame)frame np.rot90(frame)cv2.imwrite(filename, frame)count 1print(保存图片:{}.format(filename))frame_count 1# 将成功抽帧的视频名称写入txt文件方便检查file open(f, a)file.write(video_name \n)# 关闭视频文件vc.release()print([INFO] 总共保存{}张图片\n.format(count))遇到问题 global cap_ffmpeg_impl.hpp:1541 grabFrame packet read max attempts exceeded, if your video have multiple streams (video, audio) try to increase attempt limit by setting environment variable OPENCV_FFMPEG_READ_ATTEMPTS (current value is 4096) 解决方法 Windows给OPENCV_FFMPEG_READ_ATTEMPTS 设置一个和视频大小一样的value值然后重启电脑再来执行就解决了。 Linux终端执行 $ export OPENCV_FFMPEG_READ_ATTEMPTS4001989068 抽出来的图片接下来用YOLO的目标检测模型预测得到坐标文件 from ultralytics import YOLO# 读取模型这里传入训练好的模型 model YOLO(yolov8m.pt)# 模型预测saveTrue 的时候表示直接保存yolov8的预测结果 metrics model.predict(sourceF:\\testkk\\images\\GH040001,imgsz640,projectruns/detect,saveTrue)【预测结果已经还OK了几乎不用咋修改标注文件了】 然后【txt转json】 import os import json import base64 import cv2def read_txt_file(txt_file):with open(txt_file, r) as f:lines f.readlines()data []for line in lines:line line.strip().split()class_name line[0]bbox [coord for coord in line[1:]]data.append({class_name: class_name, bbox: bbox})return datadef convert_to_labelme(data, image_path, image_size):labelme_data {version: 4.5.6,flags: {},shapes: [],imagePath: json_image_path,imageData: None,imageHeight: image_size[0],imageWidth: image_size[1]}for obj in data:dx obj[bbox][0]dy obj[bbox][1]dw obj[bbox][2]dh obj[bbox][3]w eval(dw) * image_size[1]h eval(dh) * image_size[0]center_x eval(dx) * image_size[1]center_y eval(dy) * image_size[0]x1 center_x - w/2y1 center_y - h/2x2 center_x w/2y2 center_y h/2# x1 eval(obj[bbox][0]) * image_size[1]# y1 eval(obj[bbox][1]) * image_size[0]# x2 eval(obj[bbox][2]) * image_size[1]# y2 eval(obj[bbox][3]) * image_size[0]if obj[class_name] 0: #判断对应的标签名称写入json文件中label str(person)elif obj[class_name] 2:label str(car)else:continueshape_data {label: label,points: [[x1, y1], [x2, y2]],group_id: None,shape_type: rectangle,flags: {}}labelme_data[shapes].append(shape_data)return labelme_datadef save_labelme_json(labelme_data, image_path, output_file):with open(image_path, rb) as f:image_data f.read()labelme_data[imageData] base64.b64encode(image_data).decode(utf-8)with open(output_file, w) as f:json.dump(labelme_data, f, indent4)# 设置文件夹路径和输出文件夹路径 txt_folder D:\\yoloProject\\ultralytics-registry\\runs\\detect\\predict5\\labels # 存放LabelImg标注的txt文件的文件夹路径 output_folder F:\\testkk\\images\\GH040001_json # 输出LabelMe标注的json文件的文件夹路径 img_folder F:\\testkk\\images\\GH040001 #存放对应标签的图片文件夹路径# 创建输出文件夹 if not os.path.exists(output_folder):os.makedirs(output_folder)# 遍历txt文件夹中的所有文件 for filename in os.listdir(txt_folder):if filename.endswith(.txt):# 生成对应的输出文件名output_filename os.path.splitext(filename)[0] .json# 读取txt文件txt_file os.path.join(txt_folder, filename)data read_txt_file(txt_file)# 设置图片路径和尺寸image_filename os.path.splitext(filename)[0] .jpg # 图片文件名与txt文件名相同后缀为.jpgimage_path os.path.join(img_folder, image_filename)# image_size (1280, 720) # 根据实际情况修改json_image_path image_path.split(\\)[-1]image_size cv2.imread(image_path).shape# 转化为LabelMe格式labelme_data convert_to_labelme(data, image_path, image_size)# 保存为LabelMe JSON文件output_file os.path.join(output_folder, output_filename)save_labelme_json(labelme_data, image_path, output_file) 最后修改OK后再把JSON转TXT作为样本数据集 https://blog.csdn.net/weixin_43624549/article/details/139532142
http://www.yingshimen.cn/news/2492/

相关文章:

  • 做网站的公司有哪些岗位常用的app开发制作
  • 手机网站模板源码中国做网站的公司有哪些
  • 揭阳网站建设公司哪个好上海广告公司联系方式
  • 湖北在线网站建设苏州网站建设营销
  • 深圳做装修网站费用多少钱临泉做网站
  • php 自动做网站点击量成都小型软件开发公司
  • 网站是什么时候出现的网络舆情的应对及处理
  • 自己做的网站是怎么赚钱做视频课程网站
  • 大专网站建设资料深圳网页制作与网站建设服务器
  • asp 网站模板反网站搭建一条龙
  • 专业网站建设网站价格做视频网站技术壁垒在哪里
  • 娄底手机网站制作石家庄网站建设选汉狮
  • 网站建设需要具备哪些知识电商网站建设技术
  • 网站建设后备案多少钱怎么做百度推广运营
  • 专做母婴的网站网站开发设计各部门职责
  • 做穿越火线的网站资料网站建设与管理专业好不好就业
  • 网站艺术设计云南高端建设网站
  • 定做网站多少钱WordPress新的页面
  • 广州排名网站关键词优化微商城电商系统开发商
  • 淘宝优惠券返利网站怎么做龙岗网站制作讯息
  • 如何做免费网站推广wordpress禁止谷歌字体
  • 南京网站设计ui二维码制作
  • 建设申请网站东营做网站多少钱
  • 婚庆网站模板免费下载品牌建设及龙头企业
  • 上海教育网站官网引擎网站
  • 金华网站建设微信开发山东建设信息网站
  • 顺德网站建设案例wordpress加广告
  • 怎么挖掘网站的关键词网站为什么要服务器
  • 泉州网站制作维护河南省建筑资质查询
  • 虎丘苏州网站建设新乡市建设路小学网站