替换SlowFast中Detectron2为Yolov8
一 需求
FaceBookReserch中SlowFast源码中检测框是用Detectron2进行目标检测,本文想实现用yolov8替换detectron2
二 实施方案
首先,yolov8 支持有自定义库ultralytics(仅支持yolov8),安装对应库
pip install ultralytics
源码中slowfast/visualization.py 43行中
if cfg.DETECTION.ENABLE:self.object_detector = Detectron2Predictor(cfg, gpu_id=self.gpu_id)
根据ultralytics文档进行定义
创建对应YOLOPredictor类(加入了检测框及其标签,具体见前一篇文章)
class YOLOPredictor:def __init__(self, cfg, gpu_id=None):# 加载预训练的 YOLOv8n 模型self.model = YOLO('/root/autodl-tmp/data/runs/detect/train/weights/best.pt')self.detect_names, _, _ = get_class_names(cfg.DEMO.Detect_File_Path, None, None)def __call__(self, task):"""Return bounding boxes predictions as a tensor.Args:task (TaskInfo object): task object that containthe necessary information for action prediction. (e.g. frames)Returns:task (TaskInfo object): the same task info object but filled withprediction values (a tensor) and the corresponding boxes foraction detection task."""# """得到预测置信度"""# scores = outputs["instances"].scores[mask].tolist()# """获取类别标签"""# pred_labels = outputs["instances"].pred_classes[mask]# pred_labels = pred_labels.tolist()# """进行标签匹配"""# for i in range(len(pred_labels)):# pred_labels[i] = self.detect_names[pred_labels[i]]# preds = [# "[{:.4f}] {}".format(s, labels) for s, labels in zip(scores, pred_labels)# ]# """加入预测标签"""# task.add_detect_preds(preds)# task.add_bboxes(pred_boxes)middle_frame = task.frames[len(task.frames) // 2]outputs = self.model(middle_frame)boxes = outputs[0].boxesmask = boxes.conf >= 0.5pred_boxes = boxes.xyxy[mask]scores = boxes.conf[mask].tolist()pred_labels = boxes.cls[mask].to(torch.int)pred_labels = pred_labels.tolist()for i in range(len(pred_labels)):pred_labels[i] = self.detect_names[pred_labels[i]]preds = ["[{:.4f}] {}".format(s, labels) for s, labels in zip(scores, pred_labels)]"""加入预测标签"""task.add_detect_preds(preds)task.add_bboxes(pred_boxes)return task
相关文章:
替换SlowFast中Detectron2为Yolov8
一 需求 FaceBookReserch中SlowFast源码中检测框是用Detectron2进行目标检测,本文想实现用yolov8替换detectron2二 实施方案 首先,yolov8 支持有自定义库ultralytics(仅支持yolov8),安装对应库 pip install ultraly…...
轻量化网络--MobileNet V1
文章目录 depth-wise separable convolutions普通卷积depthwise conconvolutionspointwise convolutions网络结构进一步分析网络训练方式两个重要的超参数Width Multiplier: Thinner ModelsResolution Multiplier: Reduced Representation实验结果消融实验细粒度,高分辨率识别…...
gittee启动器
前言 很多小伙伴反馈不是使用gitee,不会寻找好的项目,在拿到一个项目不知道从哪里入手。 鼠鼠我呀就是宠粉,中嘞,老乡。整!!! git的基本指令 在使用gitee的时候呢,我们只需要记住…...
Spark数据倾斜_产生原因及定位处理办法_生产环境
在最近的项目中,历史和实时数据进行关联平滑时出现了数据倾斜,产生了笛卡尔积,具体现象如下:运行内存175GB,核数64,运行代码时,查看SparkUI界面的active jobs ,数据输入是1G…...
2023OceanBase年度发布会后,有感
很荣幸收到了OceanBase邀请,于本周四(11月16日)参加了OceanBase年度发布会并参加了DBA老友会,按照理论应该我昨天(星期五)就回到成都了,最迟今天白天就该把文章写出来了,奈何媳妇儿买…...
ubuntu18.04中代码迁移到20.04报错
一、 PCL库,Eigen库报错,如: /usr/include/pcl-1.10/pcl/point_types.h:903:29: error: ‘enable_if_t’ in namespace ‘std’ does not name a template type; did you mean ‘enable_if’?/usr/include/pcl-1.10/pcl/point_types.h:698:…...
QQ五毛项目记
问题与挑战:某公司为了实现某马总造福全人类,红旗插遍全球的宏伟目标,为应对后续用户激增的问题。特别安排了一次针对全体用户的秒杀活动:于XXXX年XX月XX日XX时XX分XX秒开始的秒杀五毛钱一百个QQ币的活动。每个账户仅限一次&#…...
小程序实现登录持久化
小程序实现登录持久化需要使用到小程序的缓存API,例如wx.getStorageSync()和wx.setStorageSync()等方法。以下是一个简单的代码实现: // App.js App({ // 在全局的App.js中定义全局变量userInfo,用于存放用户信息 globalData: { userInfo: …...
2023年亚太杯数学建模思路 - 案例:ID3-决策树分类算法
文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模…...
C复习-输入输出函数+流
参考: 里科《C和指针》 perror 定义在stdio.h中。当一个库函数失败时,库函数会在一个外部整型变量errno(在errno.h中定义)中保存错误代码,然后传递给用户程序,此时使用perror,会在打印msg后再打…...
duplicate复制数据库单个数据文件复制失败报错rman-03009 ora-03113
duplicate复制数据库单个数据文件复制失败报错rman-03009 ora-03113 搭建dg过程中,发现有一个数据文件在复制过程中没有复制过来,在备库数据文件目录找不到这个数据文件 处理方法: 第一步:主库备份86#数据文件 C:\Users\Admi…...
golang 解析oracle 数据文件头
package mainimport ("encoding/binary""fmt""io""os" ) // Powered by 黄林杰 15658655447 // Usered for parser oracle datafile header block 1 .... // oracle 数据文件头块解析 // KCBlockStruct represents the structure of t…...
van-popup滑动卡顿并且在有时候在ios上经常性滑动卡顿的情况
解决”pc端页面可以滚动,移动端手势无法滚动“问题的一次经历 - 掘金 <van-popup v-model"studentclassShow" :lock-scroll"false" position"bottom" style"z-index: 3000" :style"{ height: 55% }"><d…...
YOLOv7独家原创改进:最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度
💡该教程为属于《芒果书》📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 💡本篇文章为YOLOv7独家原创改进:独家首发最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度。 💡对自己数据集改进有效…...
ubuntu20.04中编译zlib1.2.11(源码编译)
1. 安装cmake-gui 2. 下载并解压zlib-1.2.11,在解压得到的文件夹内部创建一个“build”文件夹。 3. 打开cmake-gui,配置zlib1.2.11的configure文件(主要编辑build路径,安装路径,以及其他依赖选项)&#x…...
计算机毕业设计选题推荐-高校后勤报修微信小程序/安卓APP-项目实战
✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...
如何零基础自学AI人工智能
随着人工智能(AI)的快速发展,越来越多的有志之士被其强大的潜力所吸引,希望投身其中。然而,对于许多零基础的人来说,如何入门AI成了一个难题。本文将为你提供一份详尽的自学AI人工智能的攻略,帮…...
pm2使用
常用命令 pm2 delete/stop/restart/start/list/info/monit/log...
在Ubuntu或linux中为coreutils工具包的cp和mv命令添加进度条
1、查看当前最新的coreutils版本: http://ftp.gnu.org/gnu/coreutils/ 2、安装coreutils过程 # wget http://ftp.gnu.org/gnu/coreutils/coreutils-9.4.tar.xz # tar -xJf coreutils-9.4.tar.xz # cd coreutils-9.4/ 对照上面的,下载对应coreutils版本…...
力扣-58. 最后一个单词的长度
int lengthOfLastWord(char* s) {char* temp s;char* ret s;int count 0;/*返回的长度*/while (*temp){/*只记录空格后是字母的地址*/if ((*temp ) && (*(temp 1) ! \0) && (*(temp 1) ! )){ret temp 1;}temp;}while (*ret){if (isalpha(*ret) ! 0)…...
保姆级教程:用Qt Designer和stackedWidget快速搭建一个多页面配置工具(Windows/Linux通用)
保姆级教程:用Qt Designer和stackedWidget快速搭建多页面配置工具 每次打开系统设置或安装新软件时,那些整洁的多页面配置界面总让人眼前一亮。作为开发者,你是否想过自己也能轻松打造这样的界面?今天我们就用Qt的stackedWidget控…...
CANopen调试实战:当SDO读写失败时,如何像老司机一样快速读懂Abort报文里的错误码?
CANopen调试实战:SDO读写失败时快速解析Abort报文错误码 调试CANopen设备时,SDO通信失败是最常见的痛点之一。当设备返回Abort报文,屏幕上那一串十六进制代码往往让工程师陷入迷茫——是对象字典配置错误?还是网络通信问题&#…...
喜马拉雅音频下载终极指南:免费解锁付费内容的桌面神器
喜马拉雅音频下载终极指南:免费解锁付费内容的桌面神器 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 你是否曾因网络…...
工具推荐:HTML5+AI开发必备的前端调试工具
工具推荐:HTML5AI开发必备的前端调试工具 工具推荐:HTML5AI开发必备的前端调试工具📝 本章学习目标:本章聚焦职业发展,帮助读者规划HTML5AI的学习与职业路径。通过本章学习,你将全面掌握"工具推荐&…...
RTOS如何通过确定性调度与内存管理增强嵌入式系统安全可靠性
1. 项目概述:为什么我们需要关注实时操作系统的安全与可靠?在嵌入式、工业控制、汽车电子乃至航空航天这些领域里,系统一旦“死机”或“反应迟钝”,后果往往不是重启一下那么简单。轻则产线停摆、设备损坏,重则可能危及…...
效率翻倍!用VSCode和SumatraPDF打造你的LaTeX论文写作‘双向传送门’
效率翻倍!用VSCode和SumatraPDF打造你的LaTeX论文写作‘双向传送门’ 学术写作从来不是一件轻松的事,尤其是当你需要处理大量公式、图表和参考文献时。传统的LaTeX写作流程往往需要在编辑器、编译器和PDF阅读器之间反复切换,这种割裂的体验让…...
ControlPlane开发者指南:如何创建自定义证据源和动作插件
ControlPlane开发者指南:如何创建自定义证据源和动作插件 【免费下载链接】ControlPlane ControlPlane - context-sensitive computing for OS X 项目地址: https://gitcode.com/gh_mirrors/co/ControlPlane ControlPlane是一款功能强大的macOS上下文感知计算…...
从防御者视角看Fastjson 1.2.24漏洞:如何用Docker+vulhub快速搭建靶场并验证修复方案
防御视角下的Fastjson 1.2.24漏洞实战:Docker靶场搭建与修复方案验证 在当今的软件开发中,JSON处理库的安全性问题日益凸显。作为Java生态中最流行的JSON库之一,Fastjson因其高性能而广受欢迎,但同时也因其历史漏洞频发而备受关注…...
如何在5分钟内为MASA模组全家桶安装中文汉化包:实用指南
如何在5分钟内为MASA模组全家桶安装中文汉化包:实用指南 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 还在为Minecraft中MASA模组的英文界面而烦恼吗?MASA模组…...
Perplexity历史资料搜索失效真相大起底(时间戳偏移、缓存策略与知识图谱断层深度解析)
更多请点击: https://intelliparadigm.com 第一章:Perplexity历史资料搜索失效真相大起底(时间戳偏移、缓存策略与知识图谱断层深度解析) Perplexity 的历史资料检索能力在近期高频出现“查无结果”或“返回过期摘要”现象&#…...
