目标检测:1预备知识
开始涉及目标检测内容,总结一下学习记录
1、目标检测的基本概念
(一)什么是目标检测
目标检测(Object Detection) 的任务是找出图像中所有感兴趣的目标(物体),不同于分类和回归问题,目标检测还需要确定目标在图像中的位置 (定位),而确定识别目标的类别和位置 (分类和定位),是计算机视觉领域的核心问题之一。

(二)目标检测的任务
计算机视觉中关于图像识别有四大类任务:
(1)分类-Classification:解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标。
(2)定位-Location:解决“在哪里?”的问题,即定位出这个目标的的位置。
(3)检测-Detection:解决“在哪里?是什么?”的问题,即定位出这个目标的位置并且知道目标物是什么。
(4)分割-Segmentation:解决“每一个像素属于哪个目标物或场景”的问题。从像素级别回答了“在哪里?是什么”的问题
(如下图)
2、深度学习框架
深度学习框架是进行深度学习研究和开发的必备工具,它提供了一组完整的工具和接口,帮助用户轻松构建和训练复杂的深度学习模型。以下是一些主流的深度学习框架:

- TensorFlow:由Google开发的TensorFlow是一款支持分布式训练的深度学习框架,具有高度的灵活性和可扩展性。它支持使用Python、C++和Java等语言进行模型的开发和实现,并提供了丰富的API和工具来简化复杂的深度学习任务。
- PyTorch:由Facebook开发的PyTorch是一款简单易用的深度学习框架,支持动态计算图,使得模型的调试和开发更加直观简单。PyTorch还支持GPU加速,可以充分利用NVIDIA显卡等硬件进行高效的计算。
- Keras:Keras是一个高层次的深度学习框架,它提供了简洁的API和模块化的设计,使得模型的构建和训练变得更加容易。Keras支持多种后端(如TensorFlow、Theano和CNTK),可以轻松地扩展到不同的深度学习平台。
- Theano:Theano是一个Python库,用于定义、优化和计算数学表达式,特别是多维数组(张量)。它是一个强大的深度学习框架,尤其适合处理大型多维数组数据。
- Caffe:Caffe是一个快速开源深度学习框架,适用于卷积神经网络(CNN)和循环神经网络(RNN)等模型。它的设计简洁直观,易于使用和扩展。
- TensorRT针对 NVIDIA 系列显卡具有其他框架都不具备的优势,如果运行在 NVIDIA 显卡上, TensorRT 一般是所有框架中推理最快的。一般的主流的训练框架如T ensorFlow 和 Pytorch 都能转换成 TensorRT 可运行的模型。当然了,TensorRT 的限制就是只能运行在 NVIDIA 显卡上,同时不开源 kernel。
- ONNXRuntime是可以运行在多平台 (Windows,Linux,Mac,Android,iOS) 上的一款推理框架,它接受 ONNX 格式的模型输入,支持 GPU 和 CPU 的推理。唯一不足就是 ONNX 节点粒度较细,推理速度有时候比其他推理框架如 TensorRT 较低。
- OpenVINO是 Intel 家出的针对 Intel 出品的 CPU 和 GPU 友好的一款推理框架,同时它也是对接不同训练框架如 TensorFlow,Pytorch,Caffe 等。不足之处可能是只支持 Intel 家的硬件产品。
- NCNN,MNN不同于以上三款推理框架推理框架推理框架,这两款框架都是针对手机端的部署。ncnn 是腾讯开源的,MNN 是阿里开源。ncnn的 优势是开源较早,有非常稳定的社区,开源影响力也较高。MNN 开源略晚,但也是目前比较有影响力的手机端推理框架。
3、深度学习模型
深度学习模型是由深度学习框架实现的各种算法模型,如卷积神经网络(CNN)、循环神经网络(RNN)、转化器(Transformer)等。以下是一些常见的深度学习模型:
- CNN:CNN是一种广泛应用于计算机视觉领域的深度学习模型,它利用局部连接和卷积运算有效地捕捉图像或视频中的特征。经典的CNN模型包括LeNet、AlexNet、VGG、GoogLeNet和ResNet等。
- RNN:RNN是一种适用于序列数据的深度学习模型,它通过将前一个时间步长的隐藏状态输入到当前时间步长,从而捕捉序列数据中的时间依赖关系。经典的RNN模型包括Vanilla RNN、LSTM和GRU等。
- Transformer:Transformer是一种基于自注意力机制的深度学习模型,它在处理长序列数据和全局信息时具有强大的能力。经典的Transformer模型包括Encoder-Decoder架构和Transformer Encoder等。
- BERT:BERT是一种预训练的深度学习模型,旨在解决自然语言理解任务中的两个核心问题:语言的表示问题和语言的解码问题。它通过预训练的方式学习语言中的上下文信息,并取得了在多项自然语言处理任务中的显著性能。
- GAN:GAN是一种生成式深度学习模型,由两个神经网络组成:生成器(Generator)和判别器(Discriminator)。生成器的目标是生成逼真的假数据,而判别器的目标是区分真实数据和生成的数据。GAN在图像生成、数据补全和强化学习等领域具有广泛的应用。
- YOLO算法的全称是You Only Look Once,这也正是它的特点所在:只需一次前向传递,即可完成目标检测任务。
4、框架与模型的关系
深度学习框架和模型之间存在明显的联系和区别。框架是一个开发环境,提供了构建和训练深度学习模型的工具和接口;而模型是针对特定任务的学习算法,由框架实现和支持。
深度学习框架通常包括以下功能:
模型的定义、构建和训练:框架提供了各种API和工具来帮助用户定义、构建和训练各种深度学习模型。
优化器和损失函数:框架提供了各种优化器和损失函数来帮助用户进行模型的训练和优化。
评估和测试:框架提供了各种工具来评估模型的性能和进行模型的测试。
可视化和调试:框架提供了各种可视化工具来帮助用户进行模型的调试和可视化。
5、总结
检测器通常能够被分为两类,一类是two-stage检测器,最具代表的为faster R-CNN;另一类是one-stage检测器,包括YOLO,SSD等。一般来说,two-stage检测器具有高定位和识别准确性,而one-stage则有速度上的优势。其在结构上的区别就是two-stage检测器有一个生成region proposal的步骤,然后对其进行预测和分类;而one-stage则是直接对预测框进行回归和分类预测。
Two-stage模型:Faster RCNN、Cascade RCNN、MaskRCNN
One-stage模型:Yolo系列、SSD、RetinaNet、FCOS、CornerNet
一个完整的深度识别应该包含两个主要部分,即训练(training)和推理(inference)
训练(Training)
打个比方,你现在想要训练一个能区分苹果还是橘子的模型,你需要搜索一些苹果和橘子的图片,这些图片放在一起称为训练数据集(training dataset),训练数据集是有标签的,苹果图片的标签就是苹果,橘子亦然。一个初始神经网络通过不断的优化自身参数,来让自己变得准确,可能开始10张苹果的照片,只有5张被网络认为是苹果,另外5张认错了,这个时候通过优化参数,让另外5张错的也变成对的。这整个过程就称之为训练(Traning)。
推理(Inference)
你训练好了一个模型,在训练数据集中表现良好,但是我们的期望是它可以对以前没看过的图片进行识别。你重新拍一张图片扔进网络让网络做判断,这种图片就叫做现场数据(live data),如果现场数据的区分准确率非常高,那么证明你的网络训练的是非常好的。我们把训练好的模型拿出来遛一遛的过程,称为推理(Inference)。
部署(deployment)
想要把一个训练好的神经网络模型应用起来,需要把它放在某个硬件平台上并保证其能运行,这个过程称之为部署(deployment)。
下面会慢慢学习具体内容。下一课讲解数据集
相关文章:
目标检测:1预备知识
开始涉及目标检测内容,总结一下学习记录 1、目标检测的基本概念 (一)什么是目标检测 目标检测(Object Detection) 的任务是找出图像中所有感兴趣的目标(物体),不同于分类和回归问题…...
【Linux取经路】进程控制——进程等待
文章目录 一、进程创建1.1 初识 fork 函数1.2 fork 函数返回值1.3 写时拷贝1.4 fork 的常规用法1.5 fork 调用失败的原因1.6 创建一批进程 二、进程终止2.1 进程退出场景2.2 strerror函数2.3 errno全局变量2.4 程序异常2.5 进程常见退出方法2.6 exit 函数2.7 _exit 函数和 exit…...
虹科干货 | 如何使用nProbe Cento构建100 Gbit NetFlow 传感器
本文是一份全面的指南,解释了如何使用nProbe Cento构建一个高效的100 Gbit NetFlow传感器。旨在帮助大家充分利用NetFlow技术,以监控和分析高速网络流量。 当需要监控分布式网络,了解流经上行链路或关键网段的网络流量时,NetFlow…...
Web前端入门 - HTML JavaScript Vue
ps:刚开始学习web前端开发,有什么不正确、不标准的内容,欢迎大家指出~ Web简介 90年代初期,Web1.0,静态页面,不和服务器交互,网页三剑客指Dreamweaver、Fireworks、Flash2000年代中期…...
(Sping Xml方式整合第三方框架)学习Spring的第十天
Spring整合mybatis 1 . 导入Mybatis整合Spring的相关坐标 <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.13.RELEASE</version></dependency><dependency><…...
单片机驱动多个ds18b20
目录 1设计内容 2ds18b20介绍 2.1传感器引脚及原理图 2.2寄存器配置 3程序实现 3.1配置初始化 3.2配置寄存器 3.3ROM读取 3.4温度读取 1设计内容 通过51单片机,读取总线上挂载的多个ds18b20的温度信息。 如下图,成功读取到3路温度数据。 2ds18…...
GitLab16.8配置webhooks、Jenkins2.4配置GitLab插件实现持续集成、配置宝塔面板实现持续部署(其三)
看本篇文章的前提是已经部署完GItlab和Jenkins服务器,已经可以手动构建成功,并且经过了很多次实践,对这两款软件基本熟悉。 建议大家按以下顺序看 前端自动化(其一)部署gitlab 前端自动化(其二࿰…...
鸿蒙会取代Android吗?听风就是雨
现在说取代还谈不上,毕竟这需要时间。安卓作为全球第一的手机操作系统,短时间内还无法取代。持平iOS甚至超过iOS有很大可能,最终会呈现“三足鼎立”有望超过安卓基数。 作为全新的鸿蒙操作系统,其现在已经是全栈自研底座。按照鸿…...
检测CUDA 是否能访问GPU时回应速度慢【笔记】
SUPWEMICRO 418G-Q20X12 维护记录: 两台设备均已安装CUDA与Pytorch,在检测CUDA 是否能访问GPU,执行torch.cuda.is_available()命令时,一台设备速度秒回应True,但另外一台设备回应速度慢(1分钟左右ÿ…...
大模型运行成本对比:GPT-3.5/4 vs. 开源托管
在过去的几个月里,生成式人工智能领域出现了许多令人兴奋的新进展。 ChatGPT 于 2022 年底发布,席卷了人工智能世界。 作为回应,各行业开始研究大型语言模型以及如何将其纳入其业务中。 然而,在医疗保健、金融和法律行业等敏感应用…...
fastadmin后台自定义按钮和弹窗
工具栏自定义按钮-ajax请求 前端代码 1.在对应模块的模板文件index.html添加自定义按钮,注意按钮要添加id以绑定点击事件 <div class"panel panel-default panel-intro">{:build_heading()}<div class"panel-body"><div id&qu…...
《高性能MySQL》
文章目录 一、创建1. 磁盘1.1 页、扇区、寻道、寻址、硬盘性能 2. 行结构row_format2.1 Compact紧凑2.1.1 行溢出2.1.2 作用2.1.3 内容1-额外信息1、变长字段长度2、NULL值列表3、记录头信息 2.1.4 内容2-真实数据4、表中列的值5、transaction_id6、roll_point7、row_id 2.2 dy…...
postman用法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、postman怎么使用json输出 总结 前言 提示:这里可以添加本文要记录的大概内容: 提示:以下是本篇文章正文内容࿰…...
MySQL之数据库DQL
文章目录 数据查询DQL基本查询运算符算数运算符比较运算符逻辑运算符位运算符 排序查询聚合查询分组查询分页查询INSERT INTO SELECT语句SELECT INTO FROM语句 数据查询DQL 数据库管理系统一个重要功能就是数据查询,数据查询不应只是简单返回数据库中存储的数据&am…...
《区块链简易速速上手小册》第9章:区块链的法律与监管(2024 最新版)
文章目录 9.1 法律框架和挑战9.1.1 基础知识9.1.2 主要案例:加密货币的监管9.1.3 拓展案例 1:跨国数据隐私和合规性9.1.4 拓展案例 2:智能合约的法律挑战 9.2 区块链的合规性问题9.2.1 基础知识9.2.2 主要案例:加密货币交易所的合…...
Spring Boot 中操作 Bean 的生命周期
1.InitializingBean和DisposableBean InitializingBean接口提供了afterPropertiesSet方法,用于在bean的属性设置好之后调用; DisposableBean接口提供了destroy方法,用于在bean销毁之后调用; public class TestComponent implem…...
Linux ---- Shell编程三剑客之AWK
一、awk处理文本工具 1、awk概述 awk 是一种处理文本文件的语言,是一个强大的文本分析工具。AWK是专门为文本处理设计的编程语言,也是行处理软件,通常用于扫描、过滤、统计汇总工作。用来处理列。数据可以来自标准输入也可以是管道或文件。…...
Netty入门使用
为什么会有Netty? NIO 的类库和 API 繁杂,使用起来比较麻烦,需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等。开发工作量和难度都非常大,例如客户端面临断线重连、网络闪断、心跳处理、半包读写、网络拥塞和异…...
go并发编程-runtime、Channel与Goroutine
1. runtime包 1.1.1. runtime.Gosched() 让出CPU时间片,重新等待安排任务(大概意思就是本来计划的好好的周末出去烧烤,但是你妈让你去相亲,两种情况第一就是你相亲速度非常快,见面就黄不耽误你继续烧烤,第二种情况就是你相亲速度…...
HTTP概述
HTTP概述 HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议。它是在客户端和服务器之间进行通信的基础,常用于 Web 应用中。在 Java 后端开发中,HTTP 扮演着重要的角色。以下是Java 后端视角下的 HTTP 概述&a…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
