目标检测与分割:深度学习在视觉中的应用
🔍 PART 1:目标检测(Object Detection)
1️⃣ 什么是目标检测?
目标检测是计算机视觉中的一个任务,目标是让模型“在图像中找到物体”,并且判断:
-
它是什么类别(classification)
-
它在哪里(localization)
输出通常是:一个或多个 bounding box + 对应类别
🧠 举例:看一张街景图,目标检测系统会输出:
[{"class": "car", "bbox": [50, 80, 200, 300]},{"class": "person", "bbox": [210, 100, 250, 300]}
]
2️⃣ 传统方法演变史
(1)R-CNN(Region-based CNN)
关键词:提候选区域 + 独立分类器
🛠️ 步骤:
-
使用 Selective Search 等方法,生成 2000+ 候选框(region proposals)
-
对每个框裁剪、resize,送入 CNN 提取特征(如 AlexNet)
-
用 SVM 对特征进行分类(猫狗车人等)
-
用边框回归器微调预测框的位置
✅ 优点:
-
检测准确率高,首次将 CNN 引入目标检测
-
引领了后续目标检测研究方向
❌ 缺点:
-
每张图像跑 2000 多次 CNN,速度慢如蜗牛
-
整个流程是分步骤训练,不能端到端训练
-
中间特征要保存,占用大量磁盘空间
(2)Fast R-CNN
关键词:共享特征图 + ROI Pooling + 单阶段训练
🔁 改进方法:
-
整张图只跑一次 CNN,生成特征图
-
使用 ROI Pooling 从特征图中裁剪候选框区域
-
在一个网络中同时做分类 + 边框回归
✅ 优点:
-
更快、更省内存
-
可端到端训练(使用 Softmax + Smooth L1 Loss)
❌ 缺点:
-
仍然依赖外部模块(如 Selective Search)来生成候选框
(3)Faster R-CNN
关键词:自带 RPN(Region Proposal Network)
Faster R-CNN 把“提候选框”的模块也变成一个神经网络,称为 RPN。
🚀 模型结构:
图像 → CNN → 特征图
↘→ RPN 生成候选框
↘→ ROI Pooling → 分类 + 回归
🧠 RPN 工作方式:
-
用卷积滑窗在特征图上滑动
-
每个滑窗预测:
-
是不是物体?(二分类)
-
如果是,框在哪里?(坐标回归)
-
✅ 总结优点:
-
全模型端到端训练(backprop 到最前面)
-
精度高,速度比前两者快
-
成为基准检测器(benchmark)
❌ 缺点:
-
实时性差(约 7 FPS)
-
对小物体不敏感(因层次深、特征粗)
3️⃣ YOLO(You Only Look Once)
关键词:单阶段、速度极快、端到端预测
YOLO 不再分“提框”和“分类”两步,而是一次性直接输出所有框和类别。
🧠 工作原理:
-
把输入图像划分为 S×S 网格
-
每个格子负责预测若干个 bounding box + 置信度 + 类别概率
-
最后筛选 + NMS(非极大值抑制)去掉重复框
✅ 优点:
-
快!(可达 45–155 FPS)
-
训练和预测都是端到端的
-
特别适合实时场景,如无人车、机器人
❌ 缺点:
-
精度不如 Faster R-CNN(特别是小物体)
-
对重叠目标不够敏感(因为格子限制)
4️⃣ SSD(Single Shot Detector)
关键词:多层多尺度预测、一次性输出
-
相比 YOLO,SSD 在不同尺度的 feature maps 上都进行预测
-
每个位置使用多个 aspect ratio 的 anchor box
✅ 特点:
-
保留 YOLO 的速度
-
提升对小物体、多物体的适应能力
-
应用广泛,如移动端部署
5️⃣ RetinaNet(高精度 + 快)
关键词:Focal Loss + Feature Pyramid Network
-
面对的问题:正负样本极度不平衡(99% 都是背景框)
-
引入 Focal Loss,使容易分类的样本损失变小,专注难样本
-
同时使用 FPN(从低层和高层抽取特征)
✅ 优势:
-
精度接近 Faster R-CNN,速度接近 SSD
-
成为很多工业检测系统的首选
✅ 小结对比表
方法 | 速度 | 精度 | 优势 |
---|---|---|---|
R-CNN | 慢 | 高 | 思想开创,流程复杂 |
Fast R-CNN | 较慢 | 高 | 特征共享,训练简单 |
Faster R-CNN | 中 | 非常高 | RPN 端到端 |
YOLO | 非常快 | 一般 | 实时场景首选 |
SSD | 非常快 | 中高 | 多尺度处理,小目标好 |
RetinaNet | 快 + 准 | 很高 | 焦点损失 + 多层检测 |
🧠 Part 2:语义分割 & 实例分割
🔍 1️⃣ 什么是语义分割(Semantic Segmentation)?
就是要让模型对图像中的“每一个像素”做出分类。
换句话说,它不再是识别整张图里有没有狗,而是要把“狗的每个像素”标出来。
📷 举个例子:
一张图片里有:
-
天空
-
建筑
-
一辆车
-
一只狗
那么语义分割模型就要把:
-
所有天空像素 → 标记为 class 0
-
所有建筑像素 → class 1
-
所有车的像素 → class 2
-
所有狗的像素 → class 3
结果输出是一张和原图一样大小的图片,每个像素是一个类别编号(mask)。
🎯 用处有哪些?
应用场景 | 解释 |
---|---|
自动驾驶 | 车道线、人、车、障碍物像素级分割 |
医学图像分析 | 脑肿瘤、器官、血管等结构分割 |
卫星遥感 | 地表分类(农田、建筑、道路) |
🧱 2️⃣ 怎么实现语义分割?——FCN
🏗️ FCN:Fully Convolutional Network
🧠 思想:
我们不能再用全连接层(FC),因为它把图像“压成一维向量”了。
所以我们把原来分类网络的 FC 层去掉,全部换成卷积层!
✅ FCN 架构:
-
编码器部分(像 VGG、ResNet):提取图像高级语义特征(但大小变小)
-
上采样部分(Upsampling / Transposed Conv):把特征图“放大回原图大小”
-
像素级预测层:对每个像素输出分类结果(比如 softmax over 21 类)
📐 下采样 → 上采样:
-
原图输入:512×512
-
编码器卷积后:32×32(高层抽象)
-
上采样恢复回 512×512,每个像素分类!
🚧 问题:上采样后信息模糊
FCN 中的上采样有时候会“糊掉”细节,比如边缘不清晰、物体轮廓不完整。
🧬 3️⃣ U-Net:更强的语义分割网络
U-Net 是专为医学图像设计的分割网络,结构长得像字母 “U”。
🧱 U-Net 结构:
编码器部分(左边) | 解码器部分(右边) |
---|---|
多层卷积 + Pooling | 多层转置卷积 + 上采样 |
把图像越压越小,提取特征 | 把特征图还原成原图尺寸 |
🌉 核心创新点:Skip Connections(跳跃连接)
-
将编码器中每层的特征图 直接连接到解码器的对应层
-
这样就把 低层的边缘细节 + 高层的语义信息融合起来了!
🔍 好处:
-
保留边界、轮廓信息
-
不会因为上采样而“糊”掉小物体
-
极其适合小样本学习,医学图像超常用!
👨👩👧 4️⃣ 什么是实例分割(Instance Segmentation)?
和语义分割的区别在于:
-
语义分割:你知道哪些像素是“人”,但不知道有几个“人”
-
实例分割:你不仅知道哪些像素是“人”,还知道是第1个人、第2个人…
比如:
-
语义分割 → 把 3 个苹果都标为 class=apple
-
实例分割 → 给 3 个苹果不同 mask(Apple1, Apple2, Apple3)
🧰 实例分割的代表:Mask R-CNN
Mask R-CNN 是在 Faster R-CNN 的基础上加了“像素级掩膜预测”的分支。
🧠 Mask R-CNN = Faster R-CNN + Mask head
架构如下:
输入图像 → → CNN backbone 提取特征 → → RPN 生成候选框 → → ROIAlign → 分类 & 回归(原来 Faster R-CNN 的输出) → + 额外的 Mask 分支 → 输出 28×28 的像素掩膜
💡 关键技术:ROIAlign
ROI Pooling 是把框中的区域裁剪为固定大小。但它会导致像素 misalignment(对不齐)。
ROIAlign 使用双线性插值方法保留空间对齐关系,大幅提升 mask 的像素级精度。
✅ 小结表:语义分割 vs 实例分割
特征 | 语义分割 | 实例分割 |
---|---|---|
每个像素分类? | ✅ | ✅ |
能区分实例? | ❌ 所有人都一样 | ✅ 每个对象单独编号 |
适用模型 | FCN, U-Net | Mask R-CNN |
应用场景 | 自动驾驶、遥感、医学图 | 智能标注、COCO竞赛 |
🎓 PART 3:训练技巧与优化方法(Training & Regularization)
🎯 为什么要学习训练技巧?
在深度学习中,构建一个模型不是最难的,真正让它训练成功才是挑战!
常见训练中的“坑”包括:
问题 | 描述 |
---|---|
过拟合 Overfitting | 在训练集表现很好,测试集效果很差 |
梯度爆炸/消失 | 网络太深或参数初始化不当 |
收敛慢、震荡大 | 学习率不合适、训练不稳定 |
数据不平衡 | 有些类别样本很多,有些很少 |
📌 我们将介绍的核心训练技巧:
技术名 | 用处 |
---|---|
✅ 数据增强 | 让数据更多样,减少过拟合 |
✅ 正则化(L2) | 限制模型复杂度 |
✅ Dropout | 训练时随机“关掉”一部分神经元 |
✅ Batch Normalization | 训练更稳定,加快收敛 |
✅ Early Stopping | 验证集不再变好时就提前终止训练 |
✅ 迁移学习 | 用别人训练好的模型做自己任务 |
🧪 1️⃣ 正则化(Regularization)
📌 什么是正则化?
就是在损失函数中“惩罚”太复杂的模型,避免模型过拟合训练集。
🎯 目标:
-
想让模型在新数据上也表现好(泛化能力强)
-
而不是只会“记住”训练数据
✍️ 数学上怎么做?
💡 简单理解:
你给模型加了个“规则”:参数别乱搞太大,除非你真的很需要这么大。
🎛️ 2️⃣ Dropout(随机失活)
在训练过程中,随机让部分神经元“暂时消失”。
为什么这么做?
-
强迫模型不能依赖某个特定神经元
-
等于模拟多个不同的子网络 → 提高泛化能力
🧠 举例:
假设某一层有 100 个神经元,设置 Dropout rate = 0.5
-
每次前向传播,随机“屏蔽”掉 50 个神经元
在测试时:
-
不 Dropout,而是保留全部神经元,但乘以 0.5(期望值保持一致)
✅ 效果:
-
减少 co-adaptation(神经元之间互相依赖)
-
显著减轻过拟合
🧪 3️⃣ Batch Normalization(BN)
在每一层之后对输出进行标准化(均值为 0,方差为 1)
✨ 为什么 BN 有用?
-
深层网络中,分布会不断变动(叫 Internal Covariate Shift)
-
BN 让每一层的输入“保持稳定”,训练更快更稳
🎯 效果:
-
网络可以用更大学习率
-
收敛更快
-
训练更不容易陷入震荡
⏱️ 4️⃣ Early Stopping(早停)
如果验证集准确率不再提升,就提前停止训练
📌 为什么?
-
一般训练久了后,模型会开始过拟合
-
我们使用验证集判断模型什么时候“学得刚刚好”
怎么实现?
-
每训练一个 epoch,监控 validation loss
-
如果连续 N 次验证都没有变好,就停!
✅ 常见参数:
EarlyStopping(monitor='val_loss', patience=5)
📸 5️⃣ 数据增强(Data Augmentation)
用各种“微小变换”生成更多样的训练数据
🤸♀️ 举例:
方法 | 作用 |
---|---|
翻转 | 让模型识别左右翻的图像 |
随机裁剪 | 学会注意局部信息 |
加噪声 | 增强鲁棒性 |
颜色扰动 | 提高模型对亮度/饱和度容忍 |
Cutout/Mixup | 深度增强方法 |
📈 数据增强效果:
-
让模型看到“更多样的情况”
-
减少模型对背景、位置、颜色的依赖
-
显著提高模型在测试集的性能
🔄 6️⃣ 迁移学习(Transfer Learning)
利用别人已经训练好的模型来解决你的问题
💡 举例:
-
用别人训练好的 ResNet50(在 ImageNet 上)来做猫狗分类
-
你可以:
-
冻结原始网络参数,只训练最后几层(特征提取)
-
或 整体微调,重新训练所有层(fine-tune)
-
✅ 优点:
-
训练更快(因为预训练模型已经学了“通用特征”)
-
减少对大量标注数据的依赖
-
特别适合小样本任务!
🧠 总结:常见训练技巧一览表
技术 | 作用 | 是否减轻过拟合 |
---|---|---|
L2 正则化 | 限制权重增长 | ✅ |
Dropout | 模拟多个子网络 | ✅ |
Batch Norm | 稳定训练,提高效率 | ❌(但有辅助效果) |
Early Stopping | 只训练到最优点 | ✅ |
Data Augmentation | 提高泛化能力 | ✅ |
Transfer Learning | 加速训练,提高性能 | ✅(尤其小数据) |
4.例题
🧠 通俗+专业解释如下:
✅ 什么是 Transfer Learning?
迁移学习(Transfer Learning) 是指:我们不从头开始训练模型,而是使用别人已经训练好的模型来解决我们的新任务。
💡 举个现实例子:
比如你要训练一个识别“古代陶瓷”的模型,但你没有几千张图,也没有 GPU 跑几天:
你可以下载一个别人训练好的模型(如 ResNet50)
然后用它来“提取图像特征”
最后只在最后一两层训练自己的分类任务
这就叫 迁移学习
✅ 为什么要这样做?
训练 CNN 非常耗资源(数据 + 时间 + 算力)
很多低层卷积层学到的特征是“通用”的(比如边缘、角、纹理)
复用别人的模型能:
节省时间
提升小样本任务效果
加快收敛速度
📌 回到选项分析:
选项 内容 正确与否 理由 A 从零开始训练每个新任务 ❌ 正好是迁移学习的反面 B 使用预训练模型 + 微调 ✅ ✅ 完整迁移学习流程 C 把图像转文字再学 ❌ 不相关,混淆概念 D 合并多个 CNN 提升性能 ❌ 那叫集成学习,不是迁移学习
相关文章:
目标检测与分割:深度学习在视觉中的应用
🔍 PART 1:目标检测(Object Detection) 1️⃣ 什么是目标检测? 目标检测是计算机视觉中的一个任务,目标是让模型“在图像中找到物体”,并且判断: 它是什么类别(classif…...
npm和npx的作用和区别
npx 和 npm 是 Node.js 生态系统中两个常用的工具,它们有不同的作用和使用场景。 1. npm(Node Package Manager) 作用: npm 是 Node.js 的包管理工具,主要用于: 安装、卸载、更新项目依赖(包&a…...
OpenCV 图形API(36)图像滤波-----形态学操作函数morphologyEx()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 执行高级形态学变换。 该函数可以使用腐蚀和膨胀作为基本操作来执行高级形态学变换。 任何操作都可以原地进行。在处理多通道图像时,…...
Python入门到精通6:CSS网页美化入门1
CSS(层叠样式表)是网页设计的核心语言之一,它让我们的网页从单调的结构变得生动美观。今天,我将带大家快速了解CSS的基础知识,包括基本概念、引入方式、选择器、字体与文本样式以及调试工具的使用。 1. CSS基本概念 …...
【深入C++多态:基于消息解析器的设计、实现与剖析】
深入C多态:基于消息解析器的设计、实现与剖析 前言多态代码示例代码结构C多态的核心知识点多态的底层机制深入剖析多态的设计模式总结 前言 在C面向对象编程中,多态(Polymorphism)是实现灵活性和扩展性的核心特性,允许…...
Dockerfile 文件常见命令及其作用
Dockerfile 文件包含一系列命令语句,用于定义 Docker 镜像的内容、配置和构建过程。以下是一些常见的命令及其作用: FROM:指定基础镜像,后续的操作都将基于该镜像进行。例如,FROM python:3.9-slim-buster 表示使用 Pyt…...
Redis--持久化
一、持久化 Redis支持RDB和AOF两种持久化机制持久化功能有效地避免因进程退出造成数据丢失问题, 当下次重启时利用之前持久化的文件即可实现数据恢复。 二、RDB RDB 持久化是把当前进程数据⽣成快照保存到硬盘的过程,触发 RDB 持久化过程分为手动触发和…...
Markdown学习
Typora下载 Typora教程 标题 井号加空格——回车即可形成标题,几级标题几个井号。 字体 斜体——前后各一个*,回车 粗体——前后各两个*,回车 既斜体又粗体——前后各三个*,回车 删除线——前后各两个~(波浪号…...
Vulhub-DarkHole靶机通关攻略
下载链接:https://www.vulnhub.com/entry/darkhole-1,724/ 扫描ip arp-scan -l扫描端口 nmap 192.168.112.144 -p-扫描目录 dirsearch -u http://192.168.112.144/有一个登录页面,还有一个upload目录,但是还没有找到上传点 先注册一个用…...
UniRig ,清华联合 VAST 开源的通用自动骨骼绑定框架
UniRig是清华大学计算机系与VAST联合开发的前沿自动骨骼绑定框架,专为处理复杂且多样化的3D模型而设计。基于强大的自回归模型和骨骼点交叉注意力机制,UniRig能够生成高质量的骨骼结构和精确的蒙皮权重,大幅提升动画制作的效率和质量。 UniR…...
深入解析 sklearn 中的 LabelEncoder:功能、使用场景与注意事项
标题:深入解析 sklearn 中的 LabelEncoder:功能、使用场景与注意事项 摘要: LabelEncoder 是 sklearn 中用于类别标签编码的重要工具,能够将离散的类别型标签转换为模型可识别的数值格式。本文详细解析 LabelEncoder 的核心功能…...
红帽Linux网页访问问题
配置网络,手动配置 搭建yum仓库红帽Linux网页访问问题 下载httpd 网页访问问题:首先看httpd的状态---selinux的工作模式(强制)---上下文类型(semanage-fcontext)---selinux端口有没有放行semanage port ---防火墙有没有active---…...
Muduo库代码剖析 : EventLoop
本文初发于 “天目中云的小站”,同步转载于此 EventLoop 详解 EventLoop类似于Reactor模型中的反应堆(Reactor)和事件分发器(Demultiplex)的合并, 其目的在于高效的接收事件, 并正确分配给对应的事件处理器. EventLoop中有两类关键的子控件 : Channel 和 Poller. C…...
Python网络爬虫设计(一)
目录 一、网络爬虫 1、基本的爬虫 2、获取URL 3、查找网页源码关键字 4、代码实现 二、requests库 1、requests的优势和劣势 2、获取网页的其他库 (1)selenium库 (2)pyppeteer库 三、pyppeteer库 1、pyppeteer库的来历…...
GEO供应商盈达科技发布:AI信源占位白皮书
副标题:生成式AI时代的企业认知主权争夺战 发布日期:2025年4月15日 一、范式重构:从流量入口到认知主权的战略迁移 生成式AI的规则革命 73%的用户决策直接依赖AI生成内容,但68%的引…...
L1-4 拯救外星人
题目 你的外星人朋友不认得地球上的加减乘除符号,但是会算阶乘 —— 正整数 N 的阶乘记为 “N!”,是从 1 到 N 的连乘积。所以当他不知道“57”等于多少时,如果你告诉他等于“12!”,他就写出了“479001600”这个答案。 本题就请你…...
业务摆渡解锁信息孤岛,重塑数字医疗未来
某三甲医院的急诊科突然亮起红灯,一名车祸患者被紧急送入,主治医师需要调取其三个月前在科研专网存储的增强CT影像。若在两年前,这需要两位管理员手动导出、杀毒、跨网传输,耗时40分钟;而现在,系统自动触发…...
OpenCV中的轮廓近似方法详解
文章目录 引言一、什么是轮廓近似?二、OpenCV中的轮廓近似方法2.1Douglas-Peucker算法原理2.2函数原型 三、代码示例3.1. 基本使用 四、参数选择技巧五、与其他轮廓方法的比较六、总结 引言 在计算机视觉和图像处理中,轮廓是物体边界的重要表示形式。Op…...
4种方法将文件映射到内存提升读写速度
背景 考虑到以下应用需求,常将文件映射到内容,以提升读写效果。 高效文件读写:大文件操作时,避免多次read/write系统调用的开销。进程间通信(共享内存):多个进程映射同一文件,实现…...
367. 有效的完全平方数
给你一个正整数 num 。如果 num 是一个完全平方数,则返回 true ,否则返回 false 。 完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。 不能使用任何内置的库函数,如 sqrt 。 示例 1…...
Ubuntu2404装机指南
因为原来的2204升级到2404后直接嘎了,于是要重新装一下Ubuntu2404 Ubuntu系统下载 | Ubuntuhttps://cn.ubuntu.com/download我使用的是balenaEtcher将iso文件烧录进U盘后,使用u盘安装,默认选的英文版本, 安装后,安装…...
爬虫框架 - Coocan
安装 pip install coocan 演示...
S06-Kep的跨通道传输
每次分享一小点,进步都是实实在在。小编今天又来分享了!之前我们讲到的KepServer软件,是一个具备强大通讯能力的软件,但是当你的上位软件不够灵活的时候,又有多个通道的数据交互的需求,Kep的跨通道传输就为…...
Zookeeper单机三节点集群部署(docker-compose方式)
前提: 服务器需要有docker镜像zookeeper:3.9.3 或能连网拉取镜像 服务器上面新建文件夹: mkdir -p /data/zk-cluster/{data,zoo-cfg} 创建三个zookeeper配置文件zoo1.cfg、zoo2.cfg、zoo3.cfg,配置文件里面内容如下(三个文件内容一样): tickTime=2000 initLimit=10 …...
C++| 深入剖析std::list底层实现:链表结构与内存管理机制
引言 std::list的底层实现基于双向链表,其设计哲学与std::vector截然不同。本文将深入探讨其节点结构、内存分配策略及迭代器实现原理,揭示链表的性能优势和潜在代价。 1. 底层数据结构:双向链表 每个std::list节点包含: 数据域…...
mysql数据库的线程连接数、状态 、最大并发数、缓存等参数配置
mysql数据库的线程连接数、状态 、最大并发数、缓存等参数配置 https://www.modb.pro/db/1784385883449397248 mysql数据库的线程连接数、状态 、最大并发数、缓存等参数配置 SQL命令行临时设置操作 #查看mysql数据库的线程连接数: mysql> show global statu…...
HarmonyOS-ArkUI V2状态-PersistenceV2:持久化存储UI状态
PersistenceV2类是一个与AppStorageV2类用法非常相似的类。因为它俩是子类和父类的关系。如果不了解AppStorageV2,可以先跳转至了解一下这个类。 HarmonyOS-ArkUI V2工具类:AppStorageV2:应用全局UI状态存储-CSDN博客 PersistenceV2相比于其父类AppStorageV2而言,它存储的…...
App测试小工具
前言 最近app测试比较多,每次都得手动输入日志tag,手动安装,测完又去卸载,太麻烦。就搞了小工具使用。 效果预览 每次测试完成,点击退出本次测试,就直接卸载了,usb插下一个手机又可以继续测了…...
ZEP: 一种用于智能体记忆的时序知识图谱架构
摘要 我们介绍了Zep,一种新型的智能体记忆层服务,在深度记忆检索(DMR)基准测试中,超越了现有的最先进系统MemGPT。此外,Zep在比DMR更全面、更具挑战性的评估中表现优异,这些评估更好地反映了现实世界企业应用的需求。尽管现有的基于大语言模型(LLM)的检索增强生成(R…...
800 中值定理
文章目录 前言365366367368369370371372373总结 前言 中值定理貌似是压轴题,但是也没什么难的,我一定可以拿下。 background music : 《还是分开》张叶蕾 365 构造出罗尔定理需要的 F(x) 我现在没啥问题,然后就是要找出两个相等的点&…...
安装fvm可以让电脑同时管理多个版本的flutter、flutter常用命令、vscode连接模拟器
打开 PowerShellfvm安装 dart pub global activate fvm安装完成后,如果显示FVM无法识别,那么需要去添加环境变量path添加这个:C:\Users\Administrator\AppData\Local\Pub\Cache\bin 常用命令 fvm releases 查看用户可以装的flutter版本fvm l…...
多线程、JUC——面试问题自我总结
1、创建线程有几种方式 答:1、通过继承Thread类,但需要注意的是一个类继承Thread就不能继承其他的类了 2、实现Runnable接口 3、实现Callable接口,重写Call方法 4、线程池 2、线程状态是怎么转换 3、实现线程的方式Callable与Runnable区别 …...
LivePortrait 使用指南:让静态照片“动”起来的魔法工具
欢迎来到涛涛聊AI,先看效果 项目地址:https://github.com/KwaiVGI/LivePortrait 在人工智能技术飞速发展的今天,静态照片的“动态化”已成为数字创意领域的热门方向。LivePortrait 凭借其高效性、可控性和逼真效果,成为用户将照片转化为动态视频的首选方案。本文将从技术原…...
Aosp13 文件应用点击apk无反应的处理
最近遇到一个问题,在A13上,打开文件管理应用时,点击apk 无反应或者启动安装进程后安装完成或取消安装进程,再次点击apk 无反应。在此记录该问题。 做一下修改:root/package/ providers/DownloadProvider/下 jenkinsdel…...
用python比较两个mp4是否实质相同
下面这个脚本会使用 ffmpeg 和 ffprobe 检查两个视频文件在以下方面是否“实质相同”: ✅ 检查内容: 分辨率(宽高)帧率视频总帧数音频轨道数量和采样率视频时长视频帧哈希(可选) — 对比前 N 帧的图像感知…...
jmeter中文使用手册
1. 简介 Apache J JMeter 是 100%纯 java 桌面应用程序,被设计用来测试 C/S 结构的软件(例如 web 应用程序)。它可以被用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象&a…...
【Linux】系统入门
【Linux】系统初识 起源开源 闭源版本内核内核编号 Linux的安装双系统(不推荐)WindowsLinuxvmware虚拟机vitualbox操作系统的镜像centos 7/ubuntu云服务器租用 Linux的操作lsmkdir 文件名pwdadduser userdel -rrm文件名cat /proc/cpuinfolinux支持编程vim code.c./a.out 运行程…...
DP34 【模板】前缀和 -- 前缀和
目录 一:题目 二:算法原理 三:代码实现 一:题目 题目链接:【模板】前缀和_牛客题霸_牛客网 二:算法原理 三:代码实现 #include <iostream> #include <vector> using namespac…...
2025年机动车授权签字人考试题库及答案
一、单选题 1、汽车一般由发动机、( )、车身、电气和电子设备四大部分组成。 A、底盘 B、变速箱 C、离合器 D、驾驶室 答案: A 2、轮式汽车的驱动形式常用符号"nm"表示,其中n代表车轮总数,m代表 ( )。 A、…...
【项目】构建高性能多线程内存池:简化版 tcmalloc 实现指南
00 引言 在高并发应用中,频繁的小块内存申请与释放不仅会带来性能瓶颈,还容易导致内存碎片问题。为此,内存池技术应运而生,而 tcmalloc(Thread-Caching Malloc)作为 Google 开源的高性能内存分配器&#x…...
C++23 Lambda 表达式上的属性:P2173R1 深度解析
文章目录 一、背景与动机(一)Lambda 表达式的发展历程(二)属性的重要性(三)P2173R1 提案的动机 二、语法与使用(一)属性的放置位置1. 普通 Lambda 表达式2. 泛型 Lambda 表达式3. 多…...
libaom 码率控制实验:从理论到实践的深度探索
libaom 码率控制模式介绍 在 libaom 中定义了四种码率控制模式,分别是 VBR、CBR、CQ、Q;枚举类型会被用在编码器配置结构体 aom_codec_enc_cfg 中,通过 rc_end_usage 字段来设置编码器的码率控制策略。具体应用范围如下: AOM_VBR…...
golang的slice扩容过程
Go 语言中的切片扩容机制是 Go 运行时的一个关键部分,它确保切片在动态增加元素时能够高效地管理内存。这个机制是在 Go 运行时内部实现的,涉及了内存分配、数据拷贝和容量调整。扩容的实现主要体现在 runtime.growslice 函数中。下面我们将深入分析 Go …...
MCP 集合网站
分享个超全 MCP 网站,以后找资源不用愁,不谢。 MCPServers | Model Context Protocol Implementation | MCPServers.cnMCPServers - Model Context Protocol Servers for AI model serving. The official platform for MCP, MCPServer, and Model Contex…...
C++: Initialization and References to const 初始化和常引用
cpp primer 5e, P97. 理解 这是一段很容易被忽略、 但是又非常重要的内容。 In 2.3.1 (p. 51) we noted that there are two exceptions to the rule that the type of a reference must match the type of the object to which it refers. The first exception is that we …...
ES通过API操作索引库
1. 导入restClient依赖 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.12.1</version></dependency> 2. 了解ES核心客户端API 核心区别…...
MySQL:存储函数和存储过程
系列文章目录 1.MySQL编程基础 2.程序控制流语句 3.存储过程 4.游标 5.嵌入式SQL 文章目录 系列文章目录前言一、程序控制流语句:二、存储函数: 1.存储函数的特点:2.存储函数的定义:3.调用存储函数 三、存储过程:…...
visual studio安装字体
以下是在 Windows 系统中将 Visual Studio 字体更换为 JetBrains 字体(如 JetBrains Mono)的完整指南,涵盖从下载安装到高级优化的全流程: 一、下载并安装 JetBrains 字体 获取字体文件 访问 JetBrains Mono 官方下载页面&#x…...
网络安全·第四天·扫描工具Nmap的运用
今天我们要介绍网络安全中常用的一种扫描工具Nmap,它被设计用来快速扫描大型网络,主要功能包括主机探测、端口扫描以及版本检测,小编将在下文详细介绍Nmap相应的命令。 Nmap的下载安装地址为:Nmap: the Network Mapper - Free Se…...
SSM考研助手管理系统
🍅点赞收藏关注 → 添加文档最下方联系方式咨询本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅 项目视频 03…...