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

Faster R-CNN

文章目录

  • 摘要
  • Abstract
  • 1. 引言
  • 2. 框架
    • 2.1 RPN
      • 2.1.1 网络结构
      • 2.1.2 损失函数
      • 2.1.3 训练细节
    • 2.2 训练过程
  • 3. 创新点和不足
    • 3.1 创新点
    • 3.2 不足
  • 参考
  • 总结

摘要

  Faster R-CNN是针对Fast R-CNN缺点改进的目标检测模型。为了解决候选区域生成耗时长的问题,Faster R-CNN提出了候选区域网络RPN,RPN首先能利用与检测网络Fast R-CNN共享的卷积网络来得到图片的特征图,然后利用 3 × 3 3\times3 3×3的滑动窗口生成以滑动窗口为中心、不同尺度和横纵比的锚点区域,接着把滑动窗口映射成一个维度为512的特征向量,最后特征向量被送入两个平行的子层,一个用于分类任务,另一个用于边界框回归任务。由于滑动窗口把512维的特征向量映射到颜色通道的缘故,滑动窗口、分类层和回归层均可以由卷积层来实现,因此RPN另一个显著的优点是,它是一个全卷积网络,能处理不同形状的输入并且高效地捕获图片的特征。此外,RPN使用不同尺度和横纵比来生成锚点区域,再通过训练锚点区域到真实区域的映射来生成不同形状的候选区域。尽管RPN具备以上的优点,但是它也引入了一个问题——RPN和Fast R-CNN无法联合训练,只能交替优化。

Abstract

  Faster R-CNN is an object detection model improved from Fast R-CNN to address its drawbacks. To solve the problem of slow region proposal generation, Faster R-CNN introduces the Region Proposal Network (RPN). RPN first uses the convolutional network shared with the detection network Fast R-CNN to obtain feature maps of the image. Then, it employs a 3 × 3 3\times3 3×3 sliding window to generate anchor regions of different scales and aspect ratios centered around the sliding window. The sliding window is then mapped into a 512-dimensional feature vector, which is passed through two parallel sub-layers: one for classification and the other for bounding box regression. Since the sliding window maps the 512-dimensional feature vector to the color channels, the sliding window, classification layer, and regression layer can all be implemented using convolutional layers. Therefore, another significant advantage of RPN is that it is a fully convolutional network, capable of handling input of varying shapes and efficiently capturing image features. Furthermore, RPN generates anchor regions at different scales and aspect ratios, and through training, it maps anchor regions to the ground truth to generate candidate regions of various shapes. Despite these advantages, RPN introduces a problem—RPN and Fast R-CNN cannot be jointly trained and must be optimized alternately.

1. 引言

  尽管Fast R-CNN在保证识别准确率的情况下加速了预测的过程,但候选区域生成耗时长的问题仍然没有解决。Fast R-CNN依赖选择性搜索来生成候选区域,这个生成方法使用CPU来计算候选区域,没有利用GPU来加速候选区域的计算。因此Faster R-CNN提出了与检测网络共享图像卷积特征的候选区域网络RPN来生成候选区域。

2. 框架

  Faster R-CNN由两部分组成:RPN和Fast R-CNN,其中RPN负责生成候选区域,Fast R-CNN负责检测任务。

2.1 RPN

2.1.1 网络结构

  RPN的输入可以是任意尺寸的图片,最终的输出为一系列带有得分的候选区域的集合。RPN使用VGG16的前17层得到图片的特征图,然后在特征图上滑动一个大小为 3 × 3 3\times 3 3×3,步长为1的窗口,把窗口内的特征图映射成一个维度为512的特征向量(下图中的256维向量对应于原文使用的另一个卷积神经网络模型),最后把这个特征向量送入两个全连接层,一个全连接层进行边界框回归,而另一个全连接层进行分类。
  RPN通过移动锚点区域生成候选区域,每个锚点区域都是以滑动窗口为中心的,并与尺度和横纵比相关联。原文使用了3个尺度 128 × 128 128\times128 128×128 256 × 256 256\times256 256×256 512 × 512 512\times512 512×512(这3个尺度对应的是原图)和3个横纵比 1 : 2 1:2 1:2 1 : 1 1:1 1:1 2 : 1 2:1 2:1,如此便能产生9个锚点区域。RPN在每个滑动窗口的位置同时预测 k = 9 k=9 k=9个锚点区域,因此边界框回归层有 4 × 9 = 36 4\times9=36 4×9=36个输出,分类层有 2 × 9 = 18 2\times9=18 2×9=18个输出。对于每个候选区域,分类层分别估计每个锚点区域中含有物体的可能性和不含物体的可能性,而边界框回归层计算每个锚点区域的偏移量。
在这里插入图片描述
  滑动窗口可以用卷积核大小为 3 × 3 3\times3 3×3、过滤器个数为512和步长为1的卷积层来实现,分类任务的全连接层可以用卷积核大小为 1 × 1 1\times1 1×1、过滤器个数为 2 × 9 = 18 2\times9=18 2×9=18和步长为1的卷积层来实现,边界框回归任务的全连接层可以用卷积核大小为 1 × 1 1\times1 1×1、过滤器个数为 4 × 9 = 36 4\times9=36 4×9=36和步长为1的卷积层来实现。因此RPN是一个全卷积神经网络。
  下面举个例子来理解一下RPN的计算过程。假设一张图片经过VGG16前17层计算后得到的特征图大小为 36 × 36 36\times36 36×36,通道数默认为512。它经过一个卷积核大小为 3 × 3 3\times3 3×3,过滤器个数为512和步长为1的卷积层并经过ReLU激活后的特征图大小为 34 × 34 34\times34 34×34,通道数仍为512,其中特征图中每个 1 × 1 1\times1 1×1的正方形在颜色通道是一个512维的特征向量。分类层和回归层需要对这个 34 × 34 34\times34 34×34的特征图应用 1 × 1 1\times1 1×1大小的卷积核,并根据各自不同的要求使用不同数量的过滤器,即可完成对每个滑动窗口的9个锚点区域的分类和回归任务。

2.1.2 损失函数

  对于每个锚点区域,如果它与真实区域有最高的IOU或者IOU大于0.7,则它的标签为1即物品;如果它与所有真实区域的IOU小于0.3,则它的标签为0即背景。计算IOU时,需要把在经过VGG16前17层后特征图上的锚点区域(锚点区域可能会超出特征图范围,如此需要把它裁剪到特征图范围内)缩放回原图再计算。
  在单个图片上的损失函数为:
L ( { p i } , { t i } ) = 1 N c l s ∑ i L c l s ( p i , p i ∗ ) + λ N r e g ∑ i p i ∗ L r e g ( t i , t i ∗ ) . L(\{p_i\},\{t_i\})=\frac{1}{N_{cls}}\sum_{i}L_{cls}(p_i, p_i^*)+\frac{\lambda}{N_{reg}}\sum_{i}p_i^*L_{reg}(t_i, t_i^*). L({pi},{ti})=Ncls1iLcls(pi,pi)+NregλipiLreg(ti,ti).
其中 i i i是一个批量中锚点区域的索引, p i p_i pi是锚点区域 i i i是物品的概率, p i ∗ p_i^* pi是锚点区域 i i i的标签, t i t_i ti是预测边界框的四元组向量, t i ∗ t_i^* ti是标签为1的锚点区域对应的真实区域四元组。
  分类损失为 L c l s ( p i , p i ∗ ) = p i ∗ l o g ( p i ) + ( 1 − p i ∗ ) l o g ( 1 − p i ) L_{cls}(p_i, p_i^*)=p_i^* log(p_i) + (1-p_i^*)log(1-p_i) Lcls(pi,pi)=pilog(pi)+(1pi)log(1pi)。回归损失为 L r e g ( t i , t i ∗ ) = R ( t i − t i ∗ ) L_{reg}(t_i, t_i^*)=R(t_i-t_i^*) Lreg(ti,ti)=R(titi),其中 R R R是Smooth L1函数, s m o o t h L 1 ( x ) = { 0.5 x 2 , i f ∣ x ∣ < 1 , ∣ x ∣ − 0.5 , 其他 . smooth_{L_1}(x)=\left\{\begin{aligned}0.5x^2\quad,&if |x|\lt1,\\|x|-0.5,&其他.\end{aligned}\right. smoothL1(x)={0.5x2,x0.5,ifx<1,其他. t i = [ x − x a w a , y − y a h a , l o g ( w w a ) , l o g ( h h a ) ] t_i=[\frac{x-x_a}{w_a}, \frac{y-y_a}{h_a}, log(\frac{w}{w_a}), log(\frac{h}{h_a})] ti=[waxxa,hayya,log(waw),log(hah)] t i ∗ = [ x ∗ − x a w a , y ∗ − y a h a , l o g ( w ∗ w a ) , l o g ( h ∗ h a ) ] t_i^*=[\frac{x^*-x_a}{w_a}, \frac{y^*-y_a}{h_a}, log(\frac{w^*}{w_a}), log(\frac{h^*}{h_a})] ti=[waxxa,hayya,log(waw),log(hah)] [ x , y , w , h ] [x, y, w, h] [x,y,w,h]是预测区域的四元组, [ x a , y a , w a , h a ] [x_a, y_a, w_a, h_a] [xa,ya,wa,ha]是锚点区域的四元组, [ x ∗ , y ∗ , w ∗ , h ∗ ] [x^*, y^*, w^*, h^*] [x,y,w,h]是真实区域的四元组。

2.1.3 训练细节

  每个批次以1:1的比例在一张图片上采样标签为1和0的锚点区域来计算损失,批次大小为256。如果标签为1的锚点区域小于128,则用标签为0的锚点区域填充,直至批次大小为256。

2.2 训练过程

  由于Fast R-CNN依赖生成的候选区域来训练,因此RPN和Fast R-CNN无法联合训练。原文使用了四部训练法,它通过交替优化来学习两者共享的特征。
  第一步,使用在ImageNet上预训练的VGG16,再微调RPN来进行候选区域生成任务。第二步,使用第一步的RPN生成的候选区域来训练Fast
R-CNN。第三步,使用Fast R-CNN和RPN共享的卷积网络来初始化RPN中共享的卷积网络,固定共享的层,只微调RPN中独有的层。第四步,固定Fast R-CNN和RPN共享的卷积网络,只微调全连接层。

3. 创新点和不足

3.1 创新点

  相较于传统耗时长的选择性搜索,Faster R-CNN提出了RPN来进行候选区域生成,RPN可以利用与Faster R-CNN共享的卷积网络得到图片的卷积特征图,避免了重复计算。由于滑动窗口把512维的特征向量映射到颜色通道的缘故,滑动窗口、分类层和回归层均可以由卷积层来实现,因此RPN是一个全卷积网络,能处理不同形状的输入并且高效地捕获图片的特征。此外RPN可以使用不同尺度和横纵比在卷积特征图上生成锚点区域,以满足不同形状边界框的需要。
  不同于之前的边界框回归任务,RPN边界框回归使用的特征大小相同,均为 3 × 3 3\times3 3×3,并且每个边界框回归器只负责一个尺度和横纵比。

3.2 不足

  由于Fast R-CNN依赖RPN生成的候选区域,Faster R-CNN中的RPN和Fast R-CNN无法联合训练,这是一个显著的问题。

参考

Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks.

总结

  Faster R-CNN由两部分模型组成——RPN和Fast R-CNN,RPN负责候选区域的生成,Fast R-CNN负责检测任务。RPN首先利用VGG16前17层得到图片的卷积特征图,然后以窗口大小为 3 × 3 3\times3 3×3的滑动窗口生成以滑动窗口为中心、不同尺度和横纵比的锚点区域,接着利用卷积核大小为 3 × 3 3\times3 3×3、过滤器个数为512和步长为1的卷积层把滑动窗口内的特征图映射成颜色通道上的特征向量,最后利用卷积核大小为 1 × 1 1\times1 1×1、过滤器个数不同的分类层和回归层分别得到每个滑动窗口上的所有锚点区域包含或不包含物体的得分和边界框的偏移量。尽管RPN的引入解决了候选区域生成耗时长的问题,但它同时也带来了一个问题——RPN和Fast R-CNN无法联合训练,只能交替优化。

相关文章:

Faster R-CNN

文章目录 摘要Abstract1. 引言2. 框架2.1 RPN2.1.1 网络结构2.1.2 损失函数2.1.3 训练细节 2.2 训练过程 3. 创新点和不足3.1 创新点3.2 不足 参考总结 摘要 Faster R-CNN是针对Fast R-CNN缺点改进的目标检测模型。为了解决候选区域生成耗时长的问题&#xff0c;Faster R-CNN提…...

MySQL数据库锁

MySQL中读写不互斥&#xff08;前提是没有使用串行化隔离级别&#xff09;&#xff0c;但是写写操作要互斥才行&#xff0c;MySQL中使用锁机制来实现写写互斥。 按照锁的粒度可以分为&#xff1a;全局锁、表锁、行锁以及其他位于二者之间的间隙锁。 全局锁 锁定整个数据库&…...

树莓派A+安装lnmp-第一步,安装mariadb

20:26 2024/12/27 第一件事情&#xff0c;当然是超频&#xff01;&#xff01;&#xff01; raspi-config 4 Performance Options&#xff0c;选择P1 Overclock&#xff0c;可配置超频 不要贪心&#xff0c;选择900就可以&#xff01;&#xff01;&#xff01; rootpia4:~#…...

C++:单例模式

创建自己的对象&#xff0c;同时确保对象的唯一性。 单例类只能有一个实例☞静态成员static☞静态成员 必须类外初始化 单例类必须自己创建自己的唯一实例 单例类必须给所有其他对象提供这一实例 静态成员类内部可以访问 构造函数私有化☞构造函数私有外部不能创建&#x…...

【数据结构】数据结构整体大纲

数据结构用来干什么的&#xff1f;很简单&#xff0c;存数据用的。 &#xff08;这篇文章仅介绍数据结构的大纲&#xff0c;详细讲解放在后面的每一个章节中&#xff0c;逐个击破&#xff09; 那为什么不直接使用数组、集合来存储呢 ——> 如果有成千上亿条数据呢&#xff…...

网页数据的解析提取之Beautiful Soup

前面博客介绍了正则表达式的相关用法&#xff0c;只是一旦正则表达式写得有问题&#xff0c;得到的结果就可能不是我们想要的了。而且每一个网页都有一定的特殊结构和层级关系&#xff0c;很多节点都用id或 class 作区分所以借助它们的结构和属性来提取不也可以吗? 本篇博客我…...

Ai写作人工智能官网模板源码

Mortal是响应式的Tailwind CSS 模板&#xff0c;适用于AI写作和文案智能生成网站。 可用于撰写博客内容、数字广告文案、技术写作、SEO内容、登陆页面文案、社交媒体内容、电子邮件营销、网站文案等。使用世界上流行的响应式CSS框架Tailwind CSS、HTML5、CSS3 和 Javascript构…...

VSCode 插件开发实战(七):插件支持了哪些事件,以及如何利用和监听这些事件

前言 VSCode 作为现代开发者的首选编辑器之一&#xff0c;其核心优势在于其高度可扩展性。通过自定义插件&#xff0c;开发者可以根据自己的需求对编辑器进行功能扩展和优化。在这些插件开发过程中&#xff0c;事件处理和监听机制尤为重要&#xff0c;它们允许插件在特定事件发…...

现货量化合约跟单系统开发策略指南

随着加密货币市场的日益发展&#xff0c;量化交易和合约跟单已经成为了投资者在市场中获取稳定收益的重要手段。现货量化合约跟单系统作为一种自动化交易工具&#xff0c;可以帮助用户自动执行交易策略&#xff0c;同时也能跟随成功的交易者进行复制交易&#xff0c;从而降低投…...

Flink的Watermark水位线详解

一、Flink的时间语义 Flink有如下三种时间语义&#xff1a; Flink的三种时间语义-CSDN博客 在实际应用中&#xff0c;一般会采用事件时间语义。而正如前面所说的&#xff0c;事件时间语义需要等窗口的数据全部到齐了&#xff0c;才能进行窗口计算。那么&#xff0c;什么时候数…...

香港 GPU 服务器托管引领 AI 创新,助力 AI 发展

在当今科技飞速发展的时代&#xff0c;中国人工智能市场呈现出蓬勃发展的态势&#xff0c;对高性能计算资源的需求日益增长&#xff0c;而香港 GPU 服务器托管服务凭借其卓越的优势&#xff0c;成为众多企业的首选&#xff0c;同时其三地灾备方案更是为企业数据安全和业务连续性…...

FFmpeg来从HTTP拉取流并实时推流到RTMP服务器

当使用FFmpeg来从HTTP拉取流并实时推流到RTMP服务器时&#xff0c;你可以使用以下命令&#xff1a; ffmpeg -i http://输入流地址 -c:v copy -c:a copy -f flv rtmp://RTMP服务器地址/应用名称/流名称 这是一个基本的命令示例&#xff0c;其中&#xff1a; - -i http://输入流地…...

vue 集成 webrtc-streamer 播放视频流 - 解决阿里云内外网访问视频流问题

资料&#xff1a; 史上最详细的webrtc-streamer访问摄像机视频流教程-CSDN博客 webrtc目录 前端集成 html文件夹里的webrtcstreamer.js&#xff0c;集成到前端&#xff0c;可以访问webrtc&#xff0c;转换rtsp为webrtc视频流&#xff0c;在前端video中播放 <videoref&quo…...

Spring创建异步线程池方式

在Java 11中&#xff0c;可以通过多种方式创建异步线程池&#xff0c;包括使用原生的ExecutorService和Spring的异步支持&#xff08;如Async注解结合线程池&#xff09;。以下是具体实现方式。 方式 1&#xff1a;使用原生ExecutorService Java 11 的ExecutorService提供灵活…...

《PHP MySQL 插入数据》

《PHP MySQL 插入数据》 介绍 PHP是一种广泛使用的服务器端脚本语言&#xff0c;而MySQL是一种流行的关系型数据库管理系统。在Web开发中&#xff0c;经常需要将用户输入的数据存储到数据库中。本文将详细介绍如何使用PHP和MySQL实现数据的插入操作。 环境准备 在开始之前&…...

2022博客之星年度总评选开始了

作者简介&#xff1a;陶然同学 专注于Java领域开发 熟练掌握Java、js等语言的“Hello World” CSDN原力计划作者、CSDN内容合伙人、Java领域优质作者、Java领域新星作者、51CTO专家、华为云专家、阿里云专家等 &#x1f3ac; 陶然同学&#x1f3a5; 由 陶然同学 原创&#…...

0055. shell命令--useradd

目录 55. shell命令--useradd 功能说明 语法格式 选项说明 选项 退出值 相关文件 /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/skel/ /etc/login.defs /etc/default/useradd 实践操作 注意事项 55. shell命令--useradd 功能说明 useradd 命令是 Lin…...

HTML5适配手机

要使 HTML5 网站适配手机设备&#xff0c;您可以遵循以下几个步骤和最佳实践&#xff1a; 1. 使用视口&#xff08;Viewport&#xff09; 在 HTML 文档的 <head> 部分添加视口元标签&#xff0c;以确保页面在移动设备上正确缩放和显示&#xff1a; <meta name"…...

网络安全 | 5G网络安全:未来无线通信的风险与对策

网络安全 | 5G网络安全&#xff1a;未来无线通信的风险与对策 一、前言二、5G 网络的技术特点2.1 超高速率与低延迟2.2 大容量连接与网络切片 三、5G 网络面临的安全风险3.1 网络架构安全风险3.2 设备终端安全风险3.3 应用场景安全风险3.4 用户隐私安全风险 四、5G 网络安全对策…...

Markov test笔记

补充知识 来源于数学之美第五章&#xff1a; 到了 19 世纪&#xff0c;概率论的发展从相对静止的随机变量的研究发展到随机变量的时间序列 ( s 1 , s 2 , s 3 , … ) (s_1, s_2, s_3, \dots) (s1​,s2​,s3​,…)&#xff0c;即随机过程&#xff08;动态的&#xff09;。这在…...

docker 搭建集群

准备3台机器&#xff1a; #dockermaster 192.168.31.150 sudo hostnamectl set-hostname dockermaster #初始化主节点 docker swarm init --advertise-addr 192.168.31.150 #查看集群是否搭建成功 docker node ls #dockernode1 192.168.31.151 sudo hostnamectl set-hostname …...

C# WPF读写STM32/GD32单片机Flash数据

1.安装jlink 下载你需要的Jlink版本 JLink-Windows-V792k-x86-64 JLink-Windows-V810k-x86-64 https://download.csdn.net/download/hmxm6/90178195 2.Visual Studio创建WPF项目 如果没有这个选项请看 https://blog.csdn.net/hmxm6/article/details/132914337 创建完…...

[图形渲染]【Unity Shader】【游戏开发】 Shader数学基础17-法线变换基础与应用

在计算机图形学中,法线(normal) 是表示表面方向的向量。它在光照、阴影、碰撞检测等领域有着重要作用。本文将介绍如何在模型变换过程中正确变换法线,确保其在光照计算中的正确性,特别是法线与顶点的变换问题。 1. 法线与切线的基本概念 法线(Normal Vector) 法线(或…...

MySQL外键类型与应用场景总结:优缺点一目了然

前言&#xff1a; MySQL的外键简介&#xff1a;在 MySQL 中&#xff0c;外键 (Foreign Key) 用于建立和强制表之间的关联&#xff0c;确保数据的一致性和完整性。外键的作用主要是限制和维护引用完整性 (Referential Integrity)。 主要体现在引用操作发生变化时的处理方式&…...

Axure10

如果还是不行就将字体图标安装在控制面板–字体下 打开原型了之后&#xff0c;icon没有 一定要将字体库放到–》控制面板\外观和个性化\字体 里面...

数据结构(单向循环链表)

循环单向链表 所谓的循环&#xff0c;指得是将链表末尾节点的后继指针指向头结点。比如&#xff0c;单向链表变成循环链表的示意 图如下所示&#xff1a; 循环链表的操作跟普通链表操作基本上是一致的&#xff0c;只要针对循环特性稍作修改即可。 sclist.h #ifndef __SCLIST_…...

springboot项目搭建

springboot搭建 问题描述不够清晰&#xff0c;无法提供具体的代码解决方案。"springboot搭" 这个表述不明确是要进行什么操作&#xff0c;比如搭建项目、搭建环境、搭建服务等。 如果你是想要创建一个基本的Spring Boot项目&#xff0c;可以使用Spring Initializr&…...

五模型对比!Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量时间序列预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 光伏功率预测&#xff01;五模型对比&#xff01;Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量时间序列预测(Matlab2023b 多输入单输出) 1.程序已经调试好&#xff0c;替换数据集后&#xff0c;仅运…...

02-18.python入门基础一基础算法

&#xff08;一&#xff09;排序算法 简述&#xff1a; 在 Python 中&#xff0c;有多种常用的排序算法&#xff0c;下面为你详细介绍几种常见的排序算法及其原理、实现代码、时间复杂度以及稳定性等特点&#xff0c;并对比它们适用的场景。 冒泡排序&#xff08;Bubble Sor…...

条款19 对共享资源使用std::shared_ptr

目录 一、std::shared_ptr 二、std::shared_ptr性能问题 三、control block的生成时机 四、std::shared_ptr可能存在的问题 五、使用this指针作为std::shared_ptr构造函数实参 六、std::shared_ptr不支持数组 一、std::shared_ptr<T> shared_ptr的内存模型如下图&…...

TCP-UDP调试工具推荐:Socket通信测试教程(附详细图解)

前言 在网络编程与应用开发中&#xff0c;调试始终是一项不可忽视的重要环节。尤其是在涉及TCP/IP、UDP等底层网络通信协议时&#xff0c;如何确保数据能够准确无误地在不同节点间传输&#xff0c;是许多开发者关注的核心问题。 调试的难点不仅在于定位连接建立、数据流控制及…...

算法练习——模拟题

前言&#xff1a;模拟题的特点在于没有什么固定的技巧&#xff0c;完全考验自己的代码能力&#xff0c;因此有助于提升自己的代码水平。如果说一定有什么技巧的话&#xff0c;那就是有的模拟题能够通过找规律来简化算法。 一&#xff1a;替换所有问号 题目要求&#xff1a; 解…...

Windows下播放文件作为麦克风声源的一种方式

近期测试一种外语的ASR识别成功率&#xff0c;样本素材是懂这门语言的同事录制的mp3文件。测试client端原本是从麦克风拾音生成媒体流的。 这样&#xff0c;就需要想办法把mp3文件转换为测试client的输入声音。物理方式上&#xff0c;可以用一根音频线&#xff0c;把电…...

微信流量主挑战:用户数30!新增文档转化功能,解决docker运行jar包报错SimSun找不到的问题(新纪元5)

哎呀&#xff0c;今天忙到飞起&#xff0c;文章晚点更新啦&#xff01;不过好消息是&#xff0c;我们的小程序用户终于突破30啦&#xff0c;感谢大家的支持&#xff01;而且&#xff0c;大家期待已久的文档转化功能明天就要上线啦&#xff0c;目前支持word转pdf&#xff0c;pdf…...

BUU LFI COURSE 1

BUU LFI COURSE 1 启动环境 isset函数检查输入是否为空&#xff0c;使用GET传参file&#xff0c;然后赋值给$str 在调用传参内容 我们是找flag那我们输入?file/flag试试 输入后就得到了flag flag{8c108da2-a579-4ec4-b447-92d9265b8dd4}...

Spark SQL DML语句

【图书介绍】《Spark SQL大数据分析快速上手》-CSDN博客 《Spark SQL大数据分析快速上手》【摘要 书评 试读】- 京东图书 Spark本地模式安装_spark3.2.2本地模式安装-CSDN博客 DML&#xff08;Data Manipulation Language&#xff0c;数据操作语言&#xff09;操作主要用来对…...

逻辑控制语句

一、逻辑控制语句 条件判断 if循环 for、while 二、条件判断 if 1、语法 if 条件:条件为真的操作条件为真的操作 else:条件为假的操作条件为假的操作 data_01 int(input("数字: "))if data_01 > 10:print("ok!!!")print("正确!!!")prin…...

PlasmidFinder:质粒复制子的鉴定和分型

质粒&#xff08;Plasmid&#xff09;是一种细菌染色体外的线性或环状DNA分子&#xff0c;也是一种重要的遗传元素&#xff0c;它们具有自主复制能力&#xff0c;可以在细菌之间传播&#xff0c;并携带多种重要的基因(如耐药基因与毒力基因等)功能。根据质粒传播的特性&#xf…...

OSCP打靶大冒险之Solidstate:多端口获取信息,shell逃逸,计划任务提权

声明&#xff01; 学习资源来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…...

【Java-tesseract】OCR图片文本识别

文章目录 一、需求二、概述三、部署安装四、技术细节五、总结 一、需求 场景需求:是对识别常见的PNG,JPEG,TIFF,GIF图片识别&#xff0c;环境为离线内网。组件要求开源免费&#xff0c;并且可以集成Java生成接口服务。 二、概述 我不做选型对比了,我筛选测试了下Tesseract(v…...

sqlserver 数据库误删-用mdf和ldf文件恢复

1.准备好需要恢复的文件 2.安装sqlserver数据库&#xff0c;安装设置的实例目录要记清 3.将需要恢复的文件拷到实例所在目录下的DATA文件夹下 D:\安装时的实例目录\MSSQL10_50.MSSQLSERVER\MSSQL\DATA 4.打开 SQL Server Management Stadio执行以下命令 CREATE DATABASE 数…...

机器学习算法基础知识1:决策树

机器学习算法基础知识1&#xff1a;决策树 一、本文内容与前置知识点1. 本文内容2. 前置知识点 二、场景描述三、决策树的训练1. 决策树训练方式&#xff08;1&#xff09;分类原则-Gini&#xff08;2&#xff09;分类原则-entropy&#xff08;3&#xff09;加权系数-样本量&am…...

使用EasyExcel来动态生成表头

本文记录下使用EasyExcel来动态生成表头 文章目录 概述 概述...

梳理你的思路(从OOP到架构设计)_介绍Android的Java层应用框架03

目录 1、认识Android框架的实践技术 4个嫡系基类 誰來創建子類的對象呢? 2、Intent-based Programming 技术 嫡系应用子类之间如何互相沟通呢&#xff1f; 1、认识Android框架的实践技术 4个嫡系基类 • Android框架里提供了4个嫡系的基类&#xff0c;包括&#xff1a;…...

Html——10 关键字和描述

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>淘宝网</title><meta name"keywords" content"我要自学网,自学HTML,自学CSS"/><meta name"description" content"要设置…...

汇编学习笔记

汇编 1. debug指令 -R命令(register) 查看、改变CPU寄存器的内容 r ax 修改AX中的内容 -D命令(display) 查看内存中的内容 -E命令(enter) 改写内存中的内容 -U命令(unassenble反汇编) 将内存中的机器指令翻译成汇编指令 -T命令(trace跟踪) 执行一条机器指令 -A命令…...

【C++】统计正整数的位数:题目解析与代码优化

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述**题目要求&#xff1a;统计正整数的位数** &#x1f4af;我的代码实现**核心逻辑解析** &#x1f4af;老师的代码实现**老师代码逻辑解析** &#x1f4af;我的代码…...

CF2043b-B. Digits

题目链接 题意&#xff1a;给定两个整数n、d&#xff0c;要求找出排列成n!个d之后的数可以被1-9中奇数整除的数 题解&#xff1a; 主要是考察分类讨论&#xff1a; 被3整除&#xff0c;当d能被3整除时一定成立或者n > 3&#xff0c;当n > 3时n!一定包含因数3 被5整除&a…...

[文献阅读]ReAct: Synergizing Reasoning and Acting in Language Models

文章目录 摘要Abstract:思考与行为协同化Reason(Chain of thought)ReAct ReAct如何协同推理 响应Action&#xff08;动作空间&#xff09;协同推理 结果总结 摘要 ReAct: Synergizing Reasoning and Acting in Language Models [2210.03629] ReAct: Synergizing Reasoning an…...

React 高阶组件(HOC)

文章目录 一. 高阶组件&#xff08;HOC&#xff09;的定义二. HOC 的作用和优势三. HOC 的使用方式四. HOC 的注意事项和潜在问题五. 应用场景1. 权限控制与认证2. 数据获取与预加载3. 样式和主题管理4. 性能优化 - 缓存数据或组件渲染结果5. 日志记录与调试辅助 六. 总结 一. …...