热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

paddlex,2.1.0识别预测代码(包含视频的)

官方目前训练完自带的predict.py里面只有识别图片的,没有识别视频的。各种百度踩坑后,今天写成!opencv-python是4.5

官方目前训练完自带的predict.py里面只有识别图片的,没有识别视频的。

各种百度踩坑后,今天写成!opencv-python 是 4.5.5.64版本的,比较新,所以语法有可能会不一样。请注意根据自己的版本修改,或者直接升级opencv-python

# 脚本运行依赖paddlex
# pip install paddlex
import cv2
import os
import paddlex as pdx
import argparse
import jsondef pred(args):if(args.use_gpu == False):predictor = pdx.deploy.Predictor(args.model_dir)else :predictor = pdx.deploy.Predictor(args.model_dir, use_gpu=True)if(args.img_file is not None):try:result = predictor.predict(img_file=args.img_file)print("result:" + json.dumps(result))pdx.det.visualize(args.img_file, result, threshold=0.5, save_dir=args.save_dir)except Exception as e :print(e) # 最好包一层 try catch 有时会识别不出来 会报 list index out rangeelif(args.video_file is not None):images_mats = video_to_image(args.video_file, args.fps)fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')videoWriter = cv2.VideoWriter(args.save_dir + getfilename(args.video_file), fourcc, int(args.fps), (int(images_mats[2]),int(images_mats[1])), True)for image in images_mats[0]:try:result = predictor.predict(img_file=image)print("result:" + json.dumps(result))image_res = pdx.det.visualize(image, result, threshold=0.5, save_dir=None)videoWriter.write(image_res)except Exception as e:videoWriter.write(image)print(e) # 最好包一层 try catch 有时会识别不出来 会报 list index out rangevideoWriter.release()return resultdef video_to_image(video_path, nfps):"""视频解析为图片到指定文件夹:param video_path:视频路径:param nfps:每秒多少张图片:return:"""# 加载视频文件camera = cv2.VideoCapture(video_path)# 帧数times = 0images = []# 帧率(frames per second) 原视频的fps = camera.get(cv2.CAP_PROP_FPS)# 总帧数(frames)frames = camera.get(cv2.CAP_PROP_FRAME_COUNT)# 视频高度frame_height = camera.get(cv2.CAP_PROP_FRAME_HEIGHT )# 视频宽带frame_width = camera.get(cv2.CAP_PROP_FRAME_WIDTH)# 求要取的帧数frame_frequency = int(fps/nfps)print("帧数:"+str(fps))print("总帧数:"+str(frames))print("视屏总时长:"+"{0:.2f}".format(frames/fps)+"秒")while True:times += 1res, image = camera.read()if not res:breakif times % frame_frequency == 0:images.append(image)return images, frame_height, frame_widthdef getfilename(path):return os.path.basename(path) #输出为 1.mp4def parse_args():parser = argparse.ArgumentParser()parser.add_argument('--use_gpu', default=False, type=bool)parser.add_argument('--model_dir', default='./inference_model', type=str)parser.add_argument('--gpu_id ', default=0, type=int)parser.add_argument('--img_file', default=None, type=str)parser.add_argument('--video_file', default=None, type=str)parser.add_argument('--fps', default=5, type=int) #识别后的视频的fps,考虑到识别效率一般设置小一点的数parser.add_argument('--save_dir', default='./output/', type=str)args = parser.parse_args()args.video_file="C:\\Users\\hurui\\Desktop\\1.mp4" # 方便vscode直接F5调试if (args.img_file is None and args.video_file is None): sys.exit(1)return argsif __name__ == '__main__':args = parse_args()result = pred(args)if result is not None:print('Done!')else:print('Does not any objects!')


推荐阅读
  • 抠图前vsPython自动抠图后在日常的工作和生活中,我们经常会遇到需要抠图的场景,即便是只有一张图片需要抠,也会抠得我们不耐烦ÿ ... [详细]
  • 本文详细介绍了在Windows操作系统上使用Python 3.8.5编译支持CUDA 11和cuDNN 8.0.2的TensorFlow 2.3的步骤。文章不仅提供了详细的编译指南,还分享了编译后的文件下载链接,方便用户快速获取所需资源。此外,文中还涵盖了常见的编译问题及其解决方案,确保用户能够顺利进行编译和安装。 ... [详细]
  • Python正则表达式详解:掌握数量词用法轻松上手
    Python正则表达式详解:掌握数量词用法轻松上手 ... [详细]
  • 如何在Linux系统中部署TensorFlow的详细指南
    本文详细介绍了在Linux系统中部署TensorFlow的过程。作者基于北京大学曹建教授的MOOC课程进行学习,但由于课程内容较旧,环境配置方面遇到了不少挑战。经过多次尝试,最终成功解决了这些问题,并总结了一套详细的安装指南,帮助初学者快速上手TensorFlow。 ... [详细]
  • 早晨七点半。北京初秋的凉风叫醒了住在望京西的你,睁开眼睛,一想到又要为人类的信息化事业贡献满满的正能量,你不禁哼唱起那句“早晨起来 ... [详细]
  • Jupyter 使用Anaconda 虚拟环境内核
    Anaconda虚拟环境中使用JupyterNotebook安装好Anaconda之后,进入AnacondaPrompt,创建虚拟环境, ... [详细]
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
  • 在Windows命令行中,通过Conda工具可以高效地管理和操作虚拟环境。具体步骤包括:1. 列出现有虚拟环境:`conda env list`;2. 创建新虚拟环境:`conda create --name 环境名`;3. 删除虚拟环境:`conda env remove --name 环境名`。这些命令不仅简化了环境管理流程,还提高了开发效率。此外,Conda还支持环境文件导出和导入,方便在不同机器间迁移配置。 ... [详细]
  • 深入解析 Unity URP/SRP 渲染管线:匠心打造的全面指南
    本文深入探讨了Unity中的URP、SRP和HDRP渲染管线,详细解析了它们之间的关系及各自的特点。首先介绍了SRP的基本概念及其在Unity渲染架构中的作用,随后重点阐述了URP和HDRP的设计理念与应用场景。文章还分析了SRP诞生的背景,解释了为何Unity需要引入这一灵活的渲染框架,以满足不同项目的需求。通过对比URP和HDRP,读者可以更好地理解如何选择合适的渲染管线,以优化项目的性能和视觉效果。 ... [详细]
  • 在第七天的深度学习课程中,我们将重点探讨DGL框架的高级应用,特别是在官方文档指导下进行数据集的下载与预处理。通过详细的步骤说明和实用技巧,帮助读者高效地构建和优化图神经网络的数据管道。此外,我们还将介绍如何利用DGL提供的模块化工具,实现数据的快速加载和预处理,以提升模型训练的效率和准确性。 ... [详细]
  • 运用Isotonic回归算法解决鸢尾花数据集中的回归挑战
    本文探讨了利用Isotonic回归算法解决鸢尾花数据集中的回归问题。首先介绍了Isotonic回归的基本原理及其在保持单调性方面的优势,并通过具体示例说明其应用方法。随后详细描述了鸢尾花数据集的特征和获取途径,最后展示了如何将Isotonic回归应用于该数据集,以实现更准确的预测结果。 ... [详细]
  • 在探索 Unity Shaders 的过程中,我逐渐意识到掌握 OpenGL 基础知识的重要性。本文将详细介绍 OpenGL 的核心概念和基本操作,帮助读者从零开始理解这一图形编程技术。通过实例和代码解析,我们将深入探讨如何利用 OpenGL 创建高效的图形应用。无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。 ... [详细]
  • 【高效构建全面的iOS直播应用】(美颜功能深度解析)
    本文深入探讨了如何高效构建全面的iOS直播应用,特别聚焦于美颜功能的技术实现。通过详细解析美颜算法和优化策略,帮助开发者快速掌握关键技术和实现方法,提升用户体验。适合对直播应用开发感兴趣的开发者阅读。 ... [详细]
  • 聊聊 中国人工智能科技产业 区域竞争力分析及趋势
    原文链接:聊聊中国人工智能科技产业区域竞争力分析及趋势最近看了一个关于国内AI的报告《中国新一代人工智能科技产业区域竞争力评价指数(2021ÿ ... [详细]
  • 世界人工智能大赛OCR赛题方案!
     Datawhale干货 作者:阿水,北京航空航天大学,Datawhale成员本文以世界人工智能创新大赛(AIWIN)手写体OCR识别竞赛为实践背景,给出了OCR实践的常见思路和流 ... [详细]
author-avatar
死性不改2502857027
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有