![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
目标检测
文章平均质量分 85
lp_oreo
hahh
展开
-
从零构建神经网络-实现异或门操作
在这一部分内容中,我们的主要目标是使用神经网络从零开始构建一个与、或、异或等逻辑运算门,具体而言这一章节是使用神经网络构建异或逻辑门。逻辑运算门是构建电子单元模块的重要组成部门。顾名思义,逻辑运算门为我们提供逻辑运算操作。就拿异或门操作而言,如上图所示,只有当输入的信号不同的时候,逻辑门才会输出高电平;当输入的信号相同的时候,才会输出低电平。因此,后续将从零介绍如何使用神经网络实现这样一个异或门逻辑运算操作。1 导入模块 首先,我们需...翻译 2022-05-17 11:12:37 · 1993 阅读 · 1 评论 -
NMS算法实现
总结一下NMS算法C++代码以及Python代码的实现(已测试过)NMS算法是目标检测中取出冗余检测框的常用算法,它的基本步骤为:(1)选择某一类物体的所有的检测框和置信度,将其放到一个容器中(2)对检测框的置信度进行降序排序(3)选择容器中,检测框的置信度最大的bbox,将其保存下来,然后与容器中剩余的元素依次进行IOU计算(4)如果IOU计算的结果大于置信度阈值的话,将该检测框及其置信度从容器中剔除出去(5)重复3-4步骤,直至容器为空,才停止算法。1 C++代码实现NMS原创 2021-09-08 11:13:32 · 2419 阅读 · 4 评论 -
使用TensorRT对AlphaPose模型进行加速
最近刚完成使用TensorRT对AlphaPose人体姿态估计网络的加速处理,在这里记录一下大概的流程,具体代码我放在这里了。目前主要有三种方式构建TensorRT的engine模型。(1) 第一种是使用模型框架自带的方法生成engine模型,比如TensorFlow和MXNet框架支持直接转成TensorRT的engine模型,这种方式虽然便捷,但是运行效率较低;(2) 第二种是使用C++或者python的API直接构建检测模型,这种方式虽然效率上限高,但是实现步骤较为繁琐,兼容性较低,一旦原原创 2021-05-07 10:48:19 · 2690 阅读 · 22 评论 -
目标检测中mAP计算以及源码解析
目标检测中mAP的计算很基础、很重要,当然经常被别人忽略。这位博主对mAP的分析也非常详细了,但是缺少对整个mAP代码的分析,我斗胆在这里简单分析一下目标检测中mAP的代码。本文的主要代码源自于这个github源码。1. mAP的理论知识1.1 交并比(Intersection Over Union, IoU)交并比使用来衡量两个边界框的重叠程度。公式需要标注边界框和预测边界框,它可以用来判断当前检测的边界框是否有效。具体而言,当与之间的交并比大于交并比阈值的时候,我们将该次的预测边界框视为Tr原创 2020-12-25 11:19:37 · 2861 阅读 · 1 评论 -
评估深度学习模型的指标:混淆矩阵、准确率、精确率和召回率
在计算机视觉任务重,目标检测用来定位出一张图像上的一个或多个物体。。处理传统的目标检测方法,基于深度学习的模型比如R-CNN和YOLO算法在不同类型的物体检测上都有着优异的检测效果。这些模型接收一张图像作为输入数据,然后返回每一个所检测物体的边界框的坐标。这个教程将会讨论如何计算混淆矩阵、准确率、精确率和召回率。具体而言,主要内容如下:(1)二分类的混淆矩阵(2)多分类的混淆矩阵(3)使用Scikit-learn库来计算混淆矩阵(4)准确率、精确率和召回率计算公式(5)使用精确率还是..翻译 2020-12-14 10:47:18 · 10524 阅读 · 2 评论 -
pytorch-经典的网络架构
最近在学习如何使用pytorch构建网络架构,现在整理一些常见的网络架构1 VGGVGG是一个非常“整齐”和“美观”的网络架构,很多模型都是以VGG作为网络的backbone,VGG的网络架构是这样的下面是使用pytorch的网络架构的过程。我们在使用pytorch构建网络架构的时候,不需要关心feature map的尺寸,我们只需要关心输入输出的channels。在VGG中是使用maxpooling进行下采样的,maxpooling的kernel_size=2,stride=2,padd.原创 2020-07-26 19:43:08 · 954 阅读 · 0 评论 -
在win10下编译darknet-yolov4-cpu版
这篇博客是在win7下只使用cpu进行推理。使用gpu进行推理的可以参考我的上一篇博客。主要步骤分为:(1) 安装opencv,将其加到环境变量中,并且在vs2015中配置opencv(2)编译darknet_no_gou.sln文件,遇到bug就解决它。编译完之后,你就可以使用darknet进行推理了(3) 编译yolo_cpp_dll_no_gpu.sln和yolo_console_dll.sln文件。先编译前者,然后编译后者。0 安装opencv安装opencv的内容我..原创 2020-07-21 20:00:45 · 2103 阅读 · 1 评论 -
在win10下编译darknet-yolov4-gpu版
最近在研究yolov4在win10下如何进行编译,不说废话了,直接记录一下我研究的过程以及遇到的错误和解决方案,希望能够帮助大家。0环境系统:win 10GPU:GTX 2080TiCUDA:10.0cuDNN:7.4.1.5OpenCV:3.0.01安装OpenCV因为实验室win系统还没有安装OpenCV,所以需要安装OpenCV。我下载的版本是OpenCV3.0,下载之后将解压之后的文件放在了D盘,接着就需要将OpenCV的添加到环境变量中了。(1)...原创 2020-07-05 17:01:52 · 3120 阅读 · 1 评论 -
卷积神经网络综合指导
人工智能还在见证着计算机和人类能力之间差距不断缩小的巨大发展。研究者和狂热者一样,在各种各样不同领域工作去创造惊人的事情,其中的一个领域就是计算机视觉。这个领域的目标就是让机器人像人类一样观察世界,用相似的世界感知世界,甚至使用知识处理庞大的任务,比如图像和视频识别,图像分析和分类,媒体娱乐,推荐系统,自然语言处理等。随着时间的推移,使用深度学习的计算机视觉已经得到发展和完善,主要归功于一个特定的算法——卷积神经网络。1 介绍卷积神经网络(ConvNet/CNN)是一个深度学...翻译 2020-06-23 15:37:09 · 340 阅读 · 0 评论 -
如何使用YOLOV4的darknet训练自己的数据集?
0 我的环境ubuntu 16.04GPU 2080Ti如何训练(使用darknet训练并检测自己的数据)1 创建数据集文件目录如果不对yolov4源码进行修改的,但是想使用yolov4训练自己的数据集,我们需要按照yolov4读取数据集的方式,创建相应的数据集文件目录。最终的数据集目录结构是这个样子的:darknet-master ---- data ---- obj.names # 物体类别名称(如果有两类物体,就写原创 2020-06-16 11:26:02 · 6599 阅读 · 1 评论 -
在ubuntu16.04中安装pyenv和pipenv
因为最近在做安全帽检测的项目,下载的yolov4源码使用的python3.6,但是实验室服务器上的python是3.5,因为某些原因不能更新实验室的python3.5,所以打算pyenv和pipenv创建一个python3.6的虚拟环境。系统:ubuntu 16.04python版本:python3.51 pyenvpyenv可以在多个python版本之间进行转换。有两层意思:(1)使用pyenv改变当前系统的python版本:比如,目前ubuntu的python版本是python3.5原创 2020-06-02 15:24:34 · 703 阅读 · 1 评论 -
划分自己的数据集
最近正在使用yolov4来进行安全帽是否佩戴的检测。但是因为数据集是由不同的小组成员标定的,在标定的过程中有些相似的数据集虽然没有标定,但是也忘记删除了,这就导致了标签个数和数据集的个数不相符的现象出现(图片9608个,标签9263个)。因此,为了更方便的将数据集划分为训练集和测试集,我打算将没有进行标定的数据集进行删除,然后重新划分为训练集和测试集。1 删除未标定的图片1.1 明确数据和标签的个数# 获取指定文件夹下指定类型的数量def getFilsNum(path_dir, type_原创 2020-05-25 11:23:12 · 1000 阅读 · 0 评论 -
PySide2开发“安全帽检测”界面遇到的问题及其解决方案
0 说明系统:Win7python版本:python 3.7.4目标检测模型:yolo v31 实现的界面功能说明:在开始检测之前,需要手动选择视频进行检测,当点击“开始检测”的时候,会使用子线程进行yolov3目标检测,然后在主线程中更新界面(注意,一定要在子线程中处理耗时的操作,在主线程中进行界面的更新),主线程和子线程是采用signal和slot的通信方式。2 主要内容(遇到的问题及其解决方案)2.1 在子线程中进行检测,在主线程中更新界面最初的时候,我是重写pyt原创 2020-05-21 08:43:34 · 748 阅读 · 0 评论 -
Part5:设计输入输出通道
在这一个部分中,我们将会为我们的检测器构建一个输入输出的通道。这涉及(involves)到从磁盘上读取图片、做出预测、使用预测在图片上绘制边界框并且把他们保存在磁盘上。我们还会涉及如何让检测器在摄像机(camera feed)或者是在视频上实时的工作(have the detector work in)。我们将会介绍一些命令行标志,来允许对网络的超参数进行一些实验(allow some...翻译 2020-05-06 12:59:47 · 497 阅读 · 3 评论 -
YOLOv4,它到底做了什么?
还有看过YOLOv4的朋友可以看一下我们另外一篇博客:YOLOv4全文翻译YOLOv4它到底做了些什么,才能得到这么高的精度和速度,并且能够在一块1080Ti的GPU上就可以进行训练和测试?YOLOv4其实并没有提出什么特别大的创新点,它的主要内容可以概括为三个方面:目标检测算法综述+最新算法的大量实验+最优的算法组合。这三者是相互联系,层层递进的。在相关工作部分,组合将目标检测的整体框架...原创 2020-04-28 00:07:31 · 5607 阅读 · 0 评论 -
YOLOv4原文翻译 - v4它终于来了!
论文原文:https://arxiv.org/abs/2004.10934源码:https://github.com/AlexeyAB/darknet写在前面不久之前,YOLO创始人Redmon宣布退出CV界,很多人都觉得真的很惋惜,当然我也不例外。对我而言,YOLO系列的算法是我首个研究的目标检测的算法,我对YOLO算法的感情不言而喻。那天中午,当看到v4提出的消息的时候,真的很高兴...原创 2020-12-20 16:58:31 · 41755 阅读 · 9 评论 -
part 4:置信度阈值化和非极大值抑制
翻译原文:https://blog.paperspace.com/how-to-implement-a-yolo-v3-object-detector-from-scratch-in-pytorch-part-3/本篇文章是《如何使用PyTorch从零开始实现YOLO(v3)目标检测算法》的第四部分。这系列论文一共有五篇文章,五篇文章的主要内容在下文中有涉及。如果有问题欢迎和我交流~上...翻译 2020-04-23 10:35:14 · 2846 阅读 · 0 评论 -
Part 3:网络的前向传播
翻译原文:https://blog.paperspace.com/how-to-implement-a-yolo-v3-object-detector-from-scratch-in-pytorch-part-3/本篇文章是《如何使用PyTorch从零开始实现YOLO(v3)目标检测算法》的第三部分。这系列论文一共有五篇文章,五篇文章的主要内容在下文中有涉及。如果有问题欢迎和我交流~如何使...翻译 2020-04-23 07:19:44 · 524 阅读 · 0 评论 -
Part 2:创建YOLO网络层
翻译原文:https://blog.paperspace.com/how-to-implement-a-yolo-v3-object-detector-from-scratch-in-pytorch-part-2/本篇文章是《如何使用PyTorch从零开始实现YOLO(v3)目标检测算法》的第一部分。这系列论文一共有五篇文章,五篇文章的主要内容在下文中有涉及。如果有问题欢迎和我交流~如何使...翻译 2020-04-20 22:26:32 · 404 阅读 · 0 评论 -
Part 1:YOLO是如何工作的
翻译原文:https://blog.paperspace.com/how-to-implement-a-yolo-object-detector-in-pytorch/如何使用PyTorch从零开始实现YOLO(v3)目标检测算法?从零开始创建YOLO v3检测器的教程详细介绍了如何从配置文件中创建网络架构、加载权重和设计输入输出传输途径目标检测这个领域,从最近深度学习的发展中受益...翻译 2020-04-20 20:59:45 · 564 阅读 · 0 评论 -
PyTorch 101, part 3:使用PyTorch,让网络模型更深
PyTorch 101, part 3:使用PyTorch,让网络模型更深在这篇教程中,我们将深入挖掘PyTorch的函数,并将会涉及到高级的任务,比如使用不同的学习率,学习率的策略和不同权重初始化等等。 读者们你们好,这是我们PyTorch教程的另外一篇文章。这篇文章适合那些有PyTorch基础的、以及想要提高到中级水平的读者。尽管在前面的文章中我们已经涉及到如何...翻译 2020-04-02 15:34:38 · 182 阅读 · 0 评论 -
PyTorch 101, Part 2: 构建你的第一个卷积神经网络
PyTorch 101, Part 2: 构建你的第一个卷积神经网络 在这个部分,我们将会实现一个卷积神经网络,对CIFAR-10的图片进行分类。我们会涉及到实现卷积神经网络,数据加载管道和一个衰退学习率的策略。 在这篇文章中,我们将会讨论如何使用PyTorch去构建定制的神经网络架构,怎样去配置你的训练循环。我们将会实现一个RestNet网...翻译 2020-04-01 20:40:35 · 497 阅读 · 0 评论 -
PyTorch 101, Part1:计算图的理解、自动微分和Autograd模块
翻译原文:https://blog.paperspace.com/pytorch-101-understanding-graphs-and-automatic-differentiation/说在前面:这篇文章是Ayoosh Kathuria关于PyTorch教程的系列文章,非常喜欢他的系列教程,讲的很详细很有启发。因此把原文的系列教程翻译了下来,并结合了自己的部分理解。因为本人能力有限,...翻译 2020-03-31 23:38:22 · 1789 阅读 · 0 评论 -
构建自己的GhostNet网络(PyTorch)
这篇博客主要是对2020CVPR论文GhostNet: More Features from Cheap Operations的源码部分进行赏析,了解GhostNet网络的构建思路,并且使用PyTorch构建整体的网络架构。目录前沿知识:创建GhostNet网络第一部分:构建网络的第一层第二部分:构建inverted residual blocks模块2.1 GhostMo...原创 2020-03-04 13:56:05 · 4494 阅读 · 16 评论 -
GhostNet原文翻译
paper地址: GhostNet: 从廉价的运算中得到更到的特征摘要:因为有限的内存和计算资源,在嵌入式设备中部署卷积神经网络(CNNs)是困难的。特征图的冗余是那些成功CNNs的一个重要特征,但是很少有关于网络架构设计的研究。这篇论文提出了一个新颖的Ghost模型,从廉价的运算中得到更到的特征图。基于本征特征图集,我们应用一系列低成本的线性运算去生...翻译 2020-03-01 22:51:21 · 7274 阅读 · 0 评论