MMDetection目标检测框架推理与参数量计算

模型推理

在使用MMDetection框架完成训练后便可以使用训练所得的权重文件进行推理了,具体可以使用MMDetection文件下的demo文件夹的image_demo.py文件。

from argparse import ArgumentParser
from mmengine.logging import print_log
from mmdet.apis import DetInferencerdef parse_args():parser = ArgumentParser()parser.add_argument('--inputs', type=str,default="/home/ubuntu/programs/mmdetection/tools/images/4.jpg", help='Input image file or folder path.')parser.add_argument('--model',type=str,default="/home/ubuntu/programs/mmdetection/output/faster-rcnn_r50_fpn_2x_coco.py",help='Config or checkpoint .pth file or the model name ''and alias defined in metafile. The model configuration ''file will try to read from .pth if the parameter is ''a .pth weights file.')parser.add_argument('--weights', default="/home/ubuntu/programs/mmdetection/output//epoch_24.pth", help='Checkpoint file')parser.add_argument('--out-dir',type=str,default='/home/ubuntu/programs/mmdetection/outputs/',help='Output directory of images or prediction results.')parser.add_argument('--texts', help='text prompt')parser.add_argument('--device', default='cpu', help='Device used for inference')parser.add_argument('--pred-score-thr',type=float,default=0.5,help='bbox score threshold')parser.add_argument('--batch-size', type=int, default=1, help='Inference batch size.')parser.add_argument('--show',action='store_true',help='Display the image in a popup window.')parser.add_argument('--no-save-vis',action='store_true',help='Do not save detection vis results')parser.add_argument('--no-save-pred',action='store_true',help='Do not save detection json results')parser.add_argument('--print-result',action='store_true',help='Whether to print the results.')parser.add_argument('--palette',default='none',choices=['coco', 'voc', 'citys', 'random', 'none'],help='Color palette used for visualization')# only for GLIPparser.add_argument('--custom-entities','-c',action='store_true',help='Whether to customize entity names? ''If so, the input text should be ''"cls_name1 . cls_name2 . cls_name3 ." format')call_args = vars(parser.parse_args())if call_args['no_save_vis'] and call_args['no_save_pred']:call_args['out_dir'] = ''if call_args['model'].endswith('.pth'):print_log('The model is a weight file, automatically ''assign the model to --weights')call_args['weights'] = call_args['model']call_args['model'] = Noneinit_kws = ['model', 'weights', 'device', 'palette']init_args = {}for init_kw in init_kws:init_args[init_kw] = call_args.pop(init_kw)return init_args, call_argsdef main():init_args, call_args = parse_args()inferencer = DetInferencer(**init_args)inferencer(**call_args)if call_args['out_dir'] != '' and not (call_args['no_save_vis']and call_args['no_save_pred']):print_log(f'results have been saved at {call_args["out_dir"]}')
if __name__ == '__main__':main()

在这里插入图片描述

参数量与计算量

关于参数量与flops的计算可以使用tools/analysis_tools/get_flops.py,这里就不再赘述了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/6177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS-IN-JS Emotion

为什么会有css-in-js 优点 缺点 使用emotion插件库 npm i emotion/core emotion/styled使用时需要解析css属性 使用方式一: 通过注释告诉babel不讲jsx转化为react.create Element的调用,而是转化为jsx语法。会导致一个警告react未使用。 使用方式二&am…

Redis__三大日志

文章目录 😊 作者:Lion J 💖 主页: https://blog.csdn.net/weixin_69252724 🎉 主题:Redis__三大日志 ⏱️ 创作时间:2024年04月30日 ———————————————— 对于MySQL来说, 有…

ShellScript脚本编程(一)

什么是Shell Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务 为什么…

Themis新篇章:老牌衍生品协议登陆Blast L2,探索全新经济模型

本文将深入分析 Themis 的最新经济模型,探讨其核心概念和机制、优势与创新之处、风险与挑战。 一、引言 随着区块链技术的不断发展,DeFi 衍生品项目逐渐成为市场的焦点。而用户体验的革新,进一步的金融创新,去中心化治理方案的优…

SpringCloud整合Gateway结合Nacos

目录 一、引入依赖 二、开启两个测试项目 2.1 order service ​编辑 2.2 user service 三、gateway项目 3.1 新建一个bootstrap.yml文件 3.2 将我们的的网关配置写道nacos里的配置里 3.3 测试:看能够根据网关路由到两个测试的项目 四、 优化 4.1 将项目打包…

字节跳动发起AI战争 寻找下一个TikTok

现如今在字节跳动,已近乎隐退的张一鸣,只重点关注两件事:其一,是风暴中的TikTok;其二,就是字节跳动正在全力追赶的AI战略业务。 提及字节的AI战略远望,多个接近字节的人士均认为,以Flow部门出品最为“正统…

pthread线程相关

LWP :轻量级 进程,本质仍是进程 进程 :独立地址空间,拥有PCB 线程:有独立的TCB,但没有独立的地址空间(共享) 区别 :在与是否共享地址文件 进程 (独居)&am…

数据结构:最小生成树(Prim算法和Kruskal算法)、图的最短路径(Dijkstra算法和Bellman-Ford算法)

什么是最小生成树?Prim算法和Kruskal算法是如何找到最小生成树的? 最小生成树是指在一个连通图中,通过连接所有节点并使得总权重最小的子图。 Prim算法和Kruskal算法是两种常用的算法,用于寻找最小生成树。 Prim算法的步骤如下&…

文件API及其操作

这里介绍两类文件操作、三个文件类。包括文件系统操作(File类)、文件内容操作(操作字节流、操作字符流) 1.文件类File 1.1.认识File类 (1)什么是File类呢?其实就是可以操作文件的一个类。通过…

C# dateTimePicker控件存取数据库问题

存入数据库时,先设置, dateTimePicker1.Format DateTimePickerFormat.Custom; dateTimePicker1.CustomFormat "yyyy-MM-dd HH:mm:ss"; 然后,dateTimePicker1.Text 就和textBox1.Text一样方式存入数据库;…

【Java EE】Mybatis之XML详解

文章目录 🎍配置数据库连接和MyBatis🍀写持久层代码🌸添加mapper接口🌸添加UserInfoXMLMapper.xml🌸单元测试 🌲CRUD🌸增(Insert)🌸删(Delete)🌸改(Update)🌸…

低空经济+飞行汽车:eVTOL技术详解

低空经济是以各种有人驾驶和无人驾驶航空器的各类低空飞行活动为牵引,辐射带动相关领域融合发展的综合性经济形态。它广泛体现于第一、第二、第三产业之中,在促进经济发展、加强社会保障、服务国防事业等方面发挥着日益重要的作用。 飞行汽车&#xff0c…

Linux服务器常用命令总结

view查找日志关键词 注意日志级别,回车后等一会儿,因为文件可能比较大加载完需要时间 当内容显示出来后,使用“/关键词”搜索 回车就能搜到,n表示查找下一个,N表示查找上一个 find 查找 find Family -name book …

js APIS part2

什么是事件? 事件是在编程时系统内发生的 动作 或者发生的事情。比如用户在网页上 单击 一个按钮 什么是事件监听? 就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应,也称为 绑定事件或者注册…

Python爬取豆瓣电影Top250数据

任务 爬取豆瓣电影top250中的影片名称、影片海报、年份、地区、类型、评分、评价人数、总体评价,并输出到douban_top250.xlsx文件中 环境 Python 3.8 requests bs4 openpyxl 源码 # 创建一个新的Excel工作簿 workbook openpyxl.Workbook() # 获取默认的工作表…

酒水门店私域流量运营搭建执行规划方案

【干货资料持续更新,以防走丢】 酒水门店私域流量运营搭建执行规划方案 部分资料预览 资料部分是网络整理,仅供学习参考。 PPT可编辑(完整资料包含以下内容) 目录 精酿啤酒品牌私域执行运营的内容策划,涉及以下几个…

Messari 报告摘要 :Covalent Network(CQT)2024 年第一季度表现

摘要: 尽管 CQT 代币流通供应量增加了 20%(新增 1.04 亿枚 CQT),但 CQT 的质押百分比仅从 2023 年第一季度的 22% 增长到了 2024 年第一季度的 29%。 CQT 的市值季度环比增长了 28%,多次达到 2.75 亿美元&#xff0c…

全栈开发之路——前端篇(4)watch监视、数据绑定和计算属性

全栈开发一条龙——前端篇 第一篇:框架确定、ide设置与项目创建 第二篇:介绍项目文件意义、组件结构与导入以及setup的引入。 第三篇:setup语法,设置响应式数据。 辅助文档:HTML标签大全(实时更新&#xff…

Python | Leetcode Python题解之第64题最小路径和

题目: 题解: class Solution:def minPathSum(self, grid: List[List[int]]) -> int:if not grid or not grid[0]:return 0rows, columns len(grid), len(grid[0])dp [[0] * columns for _ in range(rows)]dp[0][0] grid[0][0]for i in range(1, r…

All In ai,Oracle 23C没了,等来了Oracle 23ai

今年一月份的Blog介绍Oracle命名规则的时候,说到Oracle的命名是紧紧跟随时代浪潮的前言科技的,在文章的最后还大胆预测也许Oracle的下一个版本就叫25A了,结果Oracle根本等不及,把原来已经海量宣传的Oracle 23C直接改名为23ai&…