darknet

目标检测算法之YOLOv1与v2

有些话、适合烂在心里 提交于 2021-01-30 14:05:13
YOLO:You Only Look Once(只需看一眼) 基于深度学习方法的一个特点就是实现端到端的检测,相对于其他目标检测与识别方法(如Fast R-CNN)将目标识别任务分成目标区域预测和类别预测等多个流程,YOLO将目标区域预测和类别预测整合到单个神经网络中,将目标检测任务看作目标区域预测和类别预测的回归问题。速度非常快,达到每秒45帧,而在快速YOLO(Fast YOLO,卷积层更少),可以达到每秒155帧。 与当前最好系统相比,YOLO目标区域定位误差更大,但是背景预测的假阳性(真实结果为假,算法预测为真)优于当前最好的方法。 一、YOLO的核心思想 1. YOLO的核心思想就是利用整张图作为网络的输入,直接在输出层回归bounding box(边界框)的位置及其所属类别 2. Faster R-CNN中也直接用整张图作为输入,但是Faster R-CNN整体还是采用了RCNN那种proposal + classifier的思想,只不过将提取proposal的步骤放在CNN中实现,而YOLO则采用直接回归的思路。 二、YOLO的实现方法 1. YOLO首先将图像分为SxS个网格(grid cell)。如果一个目标的中心落入格子,该格子就负责检测其目标。每一个网格中预测B个Bounding box和置信值(confidence score)

“opencv2: no such file or directory” while trying to build Darknet?

不想你离开。 提交于 2021-01-28 19:58:39
问题 I am trying to use Darkent with OpenCV and CUDA. I installed darknet according to these instructions: https://pjreddie.com/darknet/install/ I installed CUDA according to these instructions: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html Finally, I installed OpenCV according to these instructions: http://www.linuxfromscratch.org/blfs/view/svn/general/opencv.html I then added the following lines to the end of my bashrc: export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}

How to deal with “DNN module was not built with CUDA backend; switching to CPU” warning in C++?

帅比萌擦擦* 提交于 2021-01-27 08:30:50
问题 I am trying to run YOLOv3 on Visual Studio 2019 using CUDA 10.2 with cuDNN v7.6.5 on Windows 10 using NVidia GeForce 930M. Here is part of the code I used. #include <fstream> #include <sstream> #include <iostream> #include <opencv2/dnn.hpp> #include <opencv2/imgproc.hpp> #include <opencv2/highgui.hpp> using namespace cv; using namespace dnn; using namespace std; int main() { // Load names of classes string classesFile = "coco.names"; ifstream ifs(classesFile.c_str()); string line; while

你的YOLO V4该换了 | YOLO V4原班人马改进Scaled YOLO V4,已开源(附论文+源码)

风格不统一 提交于 2021-01-21 07:08:53
点击订阅【 人工智能初学者 】,让我们一起前行 YOLOv4-large在COCO上最高可达55.8 AP!速度也高达15 FPS!YOLOv4-tiny的模型实现了1774 FPS!(在RTX 2080Ti上测试) 作者单位:YOLOv4原班人马 1、简介 基于CSP方法的YOLOv4目标检测方法,可以上下缩放,并且适用于小型和大型网络,同时保持速度和准确性。基于此本文提出了一种网络缩放方法,该方法不仅可以修改深度、宽度、分辨率,还可以修改网络的结构。YOLOv4-Large模型达到了最先进的结果:在Tesla V100上以15FPS/s的速度,MS COCO数据集的AP为55.8% AP(73.3 % AP50)。这是目前所有已发表文章中COCO数据集的最高准确性。YOLOv4-tiny模型在RTX 2080Ti上以443FPS/s的速度实现了22.0%的AP(42.0%AP50),而使用TensorRT,batchsize=4和FP16精度,YOLOv4-tiny的模型实现了1774FPS/s。 2、Scaled YOLO V4 首先对YOLOv4进行了重新设计,提出了YOLOv4-CSP,然后在YOLOv4-CSP的基础上开发了Scaled-YOLOv4。在提出的Scaled-yolov4中讨论了线性缩放模型的上界和下界,并分析了小模型和大模型缩放时需要注意的问题。因此

被吹的神乎其神的Python都能干什么

送分小仙女□ 提交于 2021-01-12 06:54:43
文末领取免费学习福利 1. 前言 最近几年 Python 被吹的神乎其神,很多同学都不清楚 Python 到底能干什么就盲目去学习 Python,今天小胖哥就 Python 的应用领域来简单盘点一下,让想学习 Python 的同学找对方向。 2. Python 的特点 这里就谈谈自己的看法,首先 Python 是跨平台语言,语法很简洁,很短的代码干更多的事。另外它是脚本语言,随时随地写一段脚本就可以处理数据,十分方便。同时它也是面向对象语言,对初学者十分友好。Python 在处理各个领域的类库也十分丰富,爬虫、机器学习、数据处理、图像处理等等满足了大部分领域的需要。更重要的是 Python 是一种“胶水语言”,可以轻松调用主流的 C、C++、Java 类库。但是这就是 Python 被 “吹”起来的原因吗?当然不是!如果一门语言没有实际用武之地,即使它再优秀也没有意义,也不可能优秀。 3. Python 的使用领域 接下来我们就来看看 Python 在哪些领域有实际的运用。 3.1 数据爬虫 当今互联网数据成为任何一家公司最核心的资产,但是互联网的信息非常海量,未来快速获取有用的公开信息,爬虫就派上了用场。而 Python 语言非常善于编写爬虫,通过 requests 库抓取网页数据,使用 BeautifulSoup 解析网页并清晰和组织数据就可以快速精准获取数据

如何在自定义的数据集上训练YOLOv5

 ̄綄美尐妖づ 提交于 2021-01-07 08:54:06
YOLO系列的目标检测模型随着YOLOv5的引入变得越来越强大了。在这篇文章中,我们将介绍如何训练YOLOv5为你识别自己定制的对象。 本文我们使用公共血细胞检测数据集,你可以自己导出,也可以在自己自定义数据上使用本教程。 公共血细胞检测数据集: https://public.roboflow.ai/object-detection/bccd 为了训练检测器,我们采取以下步骤: 安装YOLOv5依赖项 下载自定义YOLOv5对象检测数据 定义YOLOv5模型配置和架构 训练一个定制的YOLOv5检测器 评估YOLOv5性能 可视化YOLOv5训练数据 对测试图像使用YOLOv5进行推断 导出并保存YOLOv5权重以供将来使用 YOLOv5的新技术点 就在两个月前,我们对googlebrain引入EfficientDet感到非常兴奋,并写了一些关于EfficientDet的博客文章。我们认为这个模型可能会超越YOLO家族在实时目标探测领域的突出地位,但事实证明我们错了。 三周内,YOLOv4在Darknet框架下发布,我们还写了很多关于YOLOv4技术解析的文章。 在写这些文章的几个小时之前,YOLOv5发布了,我们发现它非常清晰明了。 YOLOv5是在Ultralytics-Pythorch框架中编写的,使用起来非常直观,推理速度非常快。事实上

Understanding weird YOLO convolutional layer output size

和自甴很熟 提交于 2021-01-05 09:15:47
问题 I am trying to understand how Darknet works, and I was looking at the yolov3-tiny configuration file, specifically the layer number 13 (line 107). [convolutional] batch_normalize=1 filters=256 size=1 stride=1 pad=1 activation=leaky The size of the kernel is 1x1, the stride is 1 and the padding is 1 too. When I load the network using darknet, it indicates that the output width and height are the same as the input: 13 conv 256 1 x 1/ 1 13 x 13 x1024 -> 13 x 13 x 256 However, shouldn't the width

Demo分享丨看ModelArts与HiLens是如何让车自己跑起来的

不羁的心 提交于 2020-12-29 10:53:11
摘要: 基于HiLens Kit已经基本开发完成,可部署到HiLens Kit,模型的选择为基于DarkNet53的YOLOv3模型,权重为基于COCO2014训练的数据集,而车道线的检测是基于OpenCV的传统方法实现的,可通过ModelArts AI Gallery与HiLens Kit全流程端云协同开发部署。 点击传送门,先来看看最终视频效果吧→→ (PS:请忽略背景音乐)! 主体流程介绍 : (可选,忽略亦可,取决于摄像头质量,对于相机畸变较大的需要先计算相机的畸变矩阵和失真系数,对图片进行校正)图片校正; 截取感兴趣区域,仅对包含车道线信息的图像区域进行处理; 对感兴趣区域使用透视变换; 针对不同颜色的车道线,不同光照条件下的车道线,不同清晰度的车道线,根据不同的颜色空间使用不同的梯度阈值,颜色阈值进行不同的处理。并将每一种处理方式进行融合,得到车道线的二进制图; 提取二进制图中属于车道线的像素; 对二进制图片的像素进行直方图统计,统计左右两侧的峰值点作为左右车道线的起始点坐标进行曲线拟合; 使用二次多项式分别拟合左右车道线的像素点(对于噪声较大的像素点,可以进行滤波处理,或者使用随机采样一致性算法进行曲线拟合); 计算车道曲率及车辆相对车道中央的偏离位置; 效果显示( 可行域显示 , 曲率 和 位置显示 )。 检测驾驶过程中道路中其他车辆状态,显示 车辆类别 、 置信度

Yolov3&Yolov4核心基础知识详解

泪湿孤枕 提交于 2020-12-29 07:22:34
作者: 江大白 知乎链接: https://zhuanlan.zhihu.com/p/143747206 本文仅供学习参考,如有侵权,请联系删除! 文章目录 1. 论文汇总 2. Yolov3核心基础内容 2.1 网络结构可视化 2.2 网络结构图 2.3 核心基础内容 3. Yolov3相关代码 3.1 python代码 3.2 C++代码内容 3.3 python版本的Tensorrt代码 3.4 C++版本的Tensorrt代码 4. Yolov4核心基础内容 4.1 网络结构可视化 4.2 网络结构图 4.3 核心基础内容 4.3.1 输入端创新 4.3.2 Backbone创新 4.3.3 Neck创新 4.4.4 Prediction创新 5. Yolov4相关代码 5.1 python代码 5.2 C++代码 1.论文汇总 Yolov3论文名:《Yolov3: An Incremental Improvement》 Yolov3论文地址:https://arxiv.org/pdf/1804.02767.pdf Yolov4论文名:《Yolov4: Optimal Speed and Accuracy of Object Detection》 Yolov4论文地址:https://arxiv.org/pdf/2004.10934.pdf 2.YoloV3核心基础内容 2

yolov3 使用自带的python接口darknet.py 处理单张图片和视频

天大地大妈咪最大 提交于 2020-12-21 14:22:16
目标 使用 darknet (https://github.com/pjreddie/darknet) 自带的 python 接口处理图片和视频。 project 下载 git clone https://github.com/pjreddie/darknet cd darknet #改一些配置 ,具体操作见 我的上一份博客的结尾部分 #(https://blog.csdn.net/qq_20241587/article/details/111176541) make 处理单张图片 即:指定一张图片的路径,指定检测结果新图片的存放位置,进行 model检测+画框+另存为新图片 . 下图中,左边是处理前的样子,右边是处理后的样子,两张图位置在代码中指定 代码如下。 核心改动处 : 1 # lib = CDLL("libdarknet.so", RTLD_GLOBAL) , 改成自己的项目的具体地址 2 使用 cv2.rectangle 画框框, 使用cv2.putText 放文字,为了避免框框和文字交叉,我加了一丢丢的偏移量。 其中 yolov3的输出是 : label_i = box_i[0] #标签 prob_i = box_i[1] #标签置信度 x_ = box_i[2][0] y_ = box_i[2][1] w_ = box_i[2][2] h_ = box_i[2][3