darknet

YOLOV3剪枝源码阅读---模型部署加速

被刻印的时光 ゝ 提交于 2020-08-13 09:49:13
YOLOV3剪枝 论文:Network Slimming-Learning Efficient Convolutional Networks through Network Slimming 剪枝项目参考 https://github.com/tanluren/yolov3-channel-and-layer-pruning 主要思路 1、利用batch normalization中的缩放因子γ 作为重要性因子,即γ越小,所对应的channel不太重要,就可以裁剪(pruning)。 2、约束γ的大小,在目标方程中增加一个关于γ的L1正则项,使其稀疏化,这样可以做到在训练中自动剪枝,这是以往模型压缩所不具备的。 剪枝过程 img 这里写图片描述 分为三部分,第一步,训练;第二步,剪枝;第三步,微调剪枝后的模型,循环执行 YOLOV3剪枝源码 1、正常剪枝 这部分分析来自该仓库 https://github.com/coldlarry/YOLOv3-complete-pruning ,但是更新的仓库也可以完成正常剪枝,prune.py。 使用了正常剪枝模式,不对short cut层(需要考虑add操作的维度一致问题)及上采样层(无BN)进行裁剪。 1、找到需要裁剪的BN层的对应的索引。 2、每次反向传播前,将L1正则产生的梯度添加到BN层的梯度中。 3、设置裁剪率进行裁剪。

YOLO V4的模型训练

余生长醉 提交于 2020-08-12 18:43:31
1、YOLO V4模型训练的基本思路    所有机器学习涉及模型训练,一般都有训练集、验证集、测试集,因此需要准备数据集。有了数据集,再调用训练的算法,获取训练的结果。v3、v4模型训练方法相同。 2、YOLO V4模型训练的体验    利用已有数据,体验一下模型训练的各个步骤。    网址: https://pjreddie.com/darknet/yolo/ 给出了模型训练的方法。 2.1、YOLO模型训练的数据集格式    YOLO训练所要求的数据格式是PASCAL VOC或者COCO等标准数据集格式。    darknet\build\darknet\x64\data\voc目录下,有一个voc_label.py文件,用于数据转换。涉及的数据集的格式为PASCAL VOC格式。    关于PASCAL VOC格式的介绍,参见: 《PASCAL VOC数据集的标注格式》( https://zhuanlan.zhihu.com/p/33405410 ); 《计算机视觉标准数据集整理—PASCAL VOC数据集》( https://blog.csdn.net/xingwei_09/article/details/79142558 ); 《VOC 2007数据集结构》( https://blog.csdn.net/qq_38273984/article/details

YOLOv5是真的吗?并不比YOLOv4强,不配这个名字

女生的网名这么多〃 提交于 2020-08-12 15:36:16
   YOLOv4 发布不到 2 个月,一个名叫 YOLOv5 的目标检测框架横空出世,但它真的够格继承 YOLO 之名并沿用社区公认的版本号吗?工程师 Ritesh Kanjee 近日在 Medium 上通过事实与社区观点对此给出了否定答案,并批评了这种「欺世盗名」的行为。      2020 年 4 月 23 日,YOLOv4 发布……   2020 年 6 月 10 日,YOLOv5 又来了……   是不是超厉害?这不正表明我们的研究和科技发展速度超快吗?毕竟这个广受欢迎的目标检测框架的新一代 v4 版本刚发布不久,下一代 v5 版本就横空出世了。YOLOv5 真的这么厉害以至于自成一代?还是说仅仅是个噱头?本文将尽可能客观地研究其中一些相关证据,看看 YOLOv5 究竟是否名副其实?      来自:https://github.com/ultralytics/yolov5   首先简单介绍一下 YOLO。YOLO 是一个实时目标检测框架,其意思是 You Only Look Once(你只看一次)。也就是说待检测的目标图像仅会通过全卷积神经网络(FCNN)一次。碍于篇幅,本文不会介绍 YOLO 的技术细节,感兴趣的读者可参阅机器之心的文章《教程 | 单级式目标检测方法概述:YOLO 与 SSD》及《YOLO v4 它来了:接棒者出现,速度效果双提升》。    事件回顾  

目标检测算法-YOLO算法纵向对比理解

余生长醉 提交于 2020-08-11 14:23:42
目标检测算法-YOLO算法纵向对比理解 DeepLearning的目标检测任务主要有两大类:一段式,两段式 其中两段式主要包括RCNN、FastRCNN、FasterRCNN为代表, 一段式主要包括YOLO,SSD等算法 由于一段式直接在最后进行分类(判断所属类别)和回归(标记物体的位置框框),所以现在一段式大有发展。 YOLO v1 论文地址: You Only Look Once: Unified, Real-Time Object Detection YOLOv1是one-stage detector鼻祖、real-time detector鼻祖。 所谓one-stage,即不需额外一个stage来生成RP,而是直接分类回归出output: YOLOv1直接将整张图片分成 S×S的小格子区域,每个小格子区域生成 B个bbox(论文中B=2),每个bbox用来预测中心点落在该格的物体。但是每个格子生成的所有B个bbox共享一个分类score YOLOv1最后一层的输出是一个S×S×(B∗5+C) 的tensor 其中,S为每维的格子段数,B为每格生成的bbox数,C为前景类别数。 YOLO v1包括24个conv layer + 2 fc layer YOLOv1采用了山寨版的GoogleNet作为backbone,而不是VGG Net; 在第24层时

Amazon Sagemaker 与 NVIDIA Jetson 平台结合打造智能边缘

北慕城南 提交于 2020-08-11 10:42:22
  随着物联网和AI芯片的发展,未来将会有越来越多的数据在边缘侧处理。很多业务场景已经对边缘智能提出了明确的需求,比如自动驾驶的汽车每天会产生5TB的数据,而智能工厂每天产生的数据高达1PB,其中包含视频和传感器的数据。如果不能借助边缘智能技术而依靠Internet网络把数据传输至云端处理,会造成网络延迟和拥塞,影响推理结果的实时性,造成生产事故甚至于安全事故。所以本篇将介绍使用Amazon SageMaker和Nvidia Jetson使用云+端结合的方式打造一个边缘推理的方案,整体方案架构如下:      在正式了解Amazon Sagemaker与NVIDIA Jetson平台之前,我们先了解一下什么是目标检测和YOLO。    目标检测与 YOLO(You Only Look Once)   目标检测是计算机视觉中的一个重要分支,但由于在边缘设备或移动端中部署神经网络模型需要很大的算力或GPU处理能力。近年来由于边缘AI芯片的算力增强,再加上边缘智能有着更广泛的应用场景,围绕机器学习模型在边缘设备上的高效应用等研究课题逐步火热。   目前在目标检测领域的深度学习方法主要分为两类:一类是 two stage的目标检测算法;另外一类是 one stage的目标检测算法。   前者是先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本分类;后者one

目标检测——YOLOv3(六)

社会主义新天地 提交于 2020-08-11 06:41:56
简介 在前面已经介绍了很多目标检测算法,特别是R-CNN为代表两阶段算法系列。但是两阶段算法的速度太慢是一个不容忽视的问题,对于实时性要求很高的场景非常致命。而YOLO——you only look one的诞生就是为了解决识别速度的问题,它直接在输出层回归bounding box的位置和bounding box所属类别,从而实现one-stage。 原论文地址: https://arxiv.org/pdf/1804.02767.pdf YOLOv3的前世今生 YOLOv1 (2015,CVPR): 主干网络结构借鉴了GoogleNet,直接将输入图片划分成7×7=49个网格,每个网格预测两个边界框。由于网格设置比较稀疏,所以总体预测精度不高,且对小物体的检测效果较差。 缺陷:输入图像必须是固定尺寸,因为输出层是全连接层;每个网格只输出一个类别;在损失函数中,对小物体变化的置信度和大物体变化的置信度惩罚相同,实际小物体变化应该加大惩罚。 YOLOv2 (2016): 主干网络采用DarkNet-19;取消了Dropout,全采用BN层;去掉全连接层,通过Anchor boxes回归位置,k-means聚类来确定anchor的尺寸;多尺度训练,因为网络为全卷积层,所以同样的网络可以预测不同分辨率的输入。 YOLOv3 (2018): 主干网络DrakNet-53,引入了残差块

如何消灭飞机的“黑色十分钟”,AI来帮忙

萝らか妹 提交于 2020-08-10 18:27:58
近年来,“AI的应用和落地”逐渐成了具化的关键词,它和很多事物很多行业结合在一起,形成了奇妙的“化学反应”。例如,在日常生活中,AI可以推送我们喜欢的新闻或视频,可以在拍照的时候识别场景提升照片的美感……. 而今天笔者要说的,可能是从很多人都密切相关但大多很陌生的一个“神秘”的职业说起:机场塔台指挥中心。上海麦图信息科技有限公司,借助华为云ModelArts一站式开发与管理平台,开发出跑道防侵系统。 AI 给了我一双“慧眼” 在机场的每一架飞机起飞或者着陆,从飞机推离停机位到离开机场空域,或相反的降落过程中,背后都需要依靠管制员之间的协作。飞机起降的间隔非常短暂且风险大,有着“黑色十分钟”之说。管制员也被称为是飞行员背后的“眼睛”,对于他们的要求是非常严苛的,需要超长时间集中注意力,尤其在航班密集的时候,管制员需要在极短的时间内对复杂的情况,做出正确判断,这也让管制员们担负着极大的压力。对于普通乘客来说,这可能只是一次普通的空中之旅,但对于管制员来说,每一次飞机起停都伴随着重大责任。 “跑道侵入事件” 是所有管制员们的“噩梦”。飞机起降架次的增多,再加上恶劣天气的影响,跑道侵入事件已成为民航领域航空器地面安全运行的头等问题,跑道安全事故在民用航空事故中也占有很大的比例。然而,随着机场规模和航班密度增加,对于大型机场的塔台而言,单点视野物理受限,数字化程度提升的同时

YOLO V4的模型训练

非 Y 不嫁゛ 提交于 2020-08-10 12:50:34
1、YOLO V4模型训练的基本思路    所有机器学习涉及模型训练,一般都有训练集、验证集、测试集,因此需要准备数据集。有了数据集,再调用训练的算法,获取训练的结果。v3、v4模型训练方法相同。 2、YOLO V4模型训练的体验    利用已有数据,体验一下模型训练的各个步骤。    网址: https://pjreddie.com/darknet/yolo/ 给出了模型训练的方法。 2.1、YOLO模型训练的数据集格式    YOLO训练所要求的数据格式是PASCAL VOC或者COCO等标准数据集格式。    darknet\build\darknet\x64\data\voc目录下,有一个voc_label.py文件,用于数据转换。涉及的数据集的格式为PASCAL VOC格式。    关于PASCAL VOC格式的介绍,参见: 《PASCAL VOC数据集的标注格式》( https://zhuanlan.zhihu.com/p/33405410 ); 《计算机视觉标准数据集整理—PASCAL VOC数据集》( https://blog.csdn.net/xingwei_09/article/details/79142558 ); 《VOC 2007数据集结构》( https://blog.csdn.net/qq_38273984/article/details

pytorch版yolov3训练自己数据集

↘锁芯ラ 提交于 2020-08-09 20:39:04
目录 1. 环境搭建 2. 数据集构建 1. xml文件生成需要Labelimg软件 2. VOC2007 数据集格式 3. 创建*.names file, 4. 更新data/coco.data,其中保存的是很多配置信息 5. 更新cfg文件,修改类别相关信息 6. 数据集格式说明 3. 训练模型 4. 测试模型 5. 评估模型 6. 可视化 7. 高级进阶-网络结构更改 1. 环境搭建 将github库download下来。 git clone https://github.com/ultralytics/yolov3.git 建议在linux环境下使用anaconda进行搭建 conda create -n yolov3 python=3.7 安装需要的软件 pip install -r requirements.txt 环境要求: python >= 3.7 pytorch >= 1.1 numpy tqdm opencv-python 其中只需要注意pytorch的安装: 到 https://pytorch.org/ 中根据操作系统,python版本,cuda版本等选择命令即可。 关于深度学习环境搭建请参看: https://www.cnblogs.com/pprp/p/9463974.html anaconda常用用法: https://www.cnblogs.com

如何使用yolov3训练自己的数据集

北战南征 提交于 2020-08-09 06:44:19
博客主要结构 1. 如何在ubuntu18.04上安装yolo 2 .如何配置yolov3 3 .如何制作自己的训练集测试集 4 .如何在自己的数据集上运行yolov3 1. 在ubuntu18.04下安装yolov3 安装darknet 按ctrl+atl+t 打开终端, 并在终端下依次输入以下命令 git clone https://github.com/pjreddie/darknet.git cd darknet make   如果成功的话你会看到以下信息 mkdir -p obj gcc -I/usr/local/cuda/include/ -Wall -Wfatal-errors -Ofast.... gcc -I/usr/local/cuda/include/ -Wall -Wfatal-errors -Ofast.... gcc -I/usr/local/cuda/include/ -Wall -Wfatal-errors -Ofast.... ..... gcc -I/usr/local/cuda/include/ -Wall -Wfatal-errors -Ofast -lm.... 编译完成后键入以下命令运行darknet ./darknet 你将会看到以下输出结果 usage: ./darknet <function> 使用GPU编译(可选)