AlexeyAB DarkNet YOLOv3框架解析与应用实践(三)

ImageNet分类

您可以使用Darknet为1000级ImageNet挑战赛分类图像。如果你还没有安装Darknet,你应该先安装。

使用预先训练的模型分类

下面是安装Darknet、下载分类权重文件和在图像上运行分类器的命令:

git clone https://github.com/pjreddie/darknet.git

cd darknet

make

wget
https://pjreddie.com/media/files/darknet19.weights

./darknet classifier predict cfg/imagenet1k.data
cfg/darknet19.cfg darknet19.weights data/dog.jpg

本例使用Darknet19模型,您可以在下面有关它的信息。运行此命令后,您将看到以下输出:

ayer
filters size input output

0

conv 32 3 x 3 / 1
256 x 256 x 3 ->
256 x 256 x 32 0.113 BFLOPs

1

max 2 x 2 / 2 256 x 256 x
32 -> 128 x 128 x
32

2

conv 64 3 x 3 / 1
128 x 128 x 32 ->
128 x 128 x 64 0.604 BFLOPs

3

max 2 x 2 / 2 128 x 128 x
64 -> 64 x
64 x 64

4

conv 128 3 x 3 / 1
64 x 64 x 64
-> 64 x 64 x 128
0.604 BFLOPs

5

conv 64 1 x 1 / 1
64 x 64 x 128 ->
64 x 64 x 64
0.067 BFLOPs

6

conv 128 3 x 3 / 1
64 x 64 x 64
-> 64 x 64 x 128
0.604 BFLOPs

7

max 2 x 2 / 2 64 x
64 x 128 -> 32 x
32 x 128

8

conv 256 3 x 3 / 1
32 x 32 x 128 ->
32 x 32 x 256 0.604 BFLOPs

9

conv 128 1 x 1 / 1
32 x 32 x 256 ->
32 x 32 x 128 0.067 BFLOPs

10
conv 256 3 x 3 / 1
32 x 32 x 128 ->
32 x 32 x 256 0.604 BFLOPs

11
max 2 x 2 / 2 32 x
32 x 256 -> 16 x
16 x 256

12
conv 512 3 x 3 / 1
16 x 16 x 256 ->
16 x 16 x 512 0.604 BFLOPs

13
conv 256 1 x 1 / 1
16 x 16 x 512 ->
16 x 16 x 256 0.067 BFLOPs

14
conv 512 3 x 3 / 1
16 x 16 x 256 ->
16 x 16 x 512 0.604 BFLOPs

15
conv 256 1 x 1 / 1
16 x 16 x 512 ->
16 x 16 x 256 0.067 BFLOPs

16
conv 512 3 x 3 / 1
16 x 16 x 256 ->
16 x 16 x 512 0.604 BFLOPs

17
max 2 x 2 / 2 16 x
16 x 512 -> 8 x
8 x 512

18
conv 1024 3 x 3 / 1
8 x 8 x 512 ->
8 x 8 x1024
0.604 BFLOPs

19
conv 512 1 x 1 / 1
8 x 8 x1024 ->
8 x 8 x 512 0.067 BFLOPs

20
conv 1024 3 x 3 / 1
8 x 8 x 512 ->
8 x 8 x1024 0.604 BFLOPs

21
conv 512 1 x 1 / 1
8 x 8 x1024 ->
8 x 8 x 512 0.067 BFLOPs

22
conv 1024 3 x 3 / 1
8 x 8 x 512 ->
8 x 8 x1024 0.604 BFLOPs

23
conv 1000 1 x 1 / 1
8 x 8 x1024 ->
8 x 8 x1000 0.131 BFLOPs

24
avg 8 x 8 x1000
-> 1000

25
softmax
1000

Loading weights from
darknet19.weights…Done!

data/dog.jpg: Predicted in 0.769246
seconds.

42.55%: malamute

22.93%: Eskimo dog

12.51%: Siberian husky

2.76%: bicycle-built-for-two

1.20%: mountain bike

Darknet在加载配置文件和权重时显示信息,然后对图像进行分类并打印图像的前10个类。海藻是一种混合品种的狗,但她有很多软弱无力,所以我们认为这是一个成功的!

您也可以尝试使用其他图像,如秃鹰图像:

./darknet classifier predict cfg/imagenet1k.data
cfg/darknet19.cfg darknet19.weights data/eagle.jpg

生成:

data/eagle.jpg: Predicted in 0.707070 seconds.

84.68%: bald eagle

11.91%: kite

2.62%: vulture

0.08%: great
grey owl

0.07%: hen

不错!

如果未指定图像文件,则在运行时将提示您输入图像。这样,您就可以在一行中对多个对象进行分类,而无需重新加载整个模型。使用命令:

./darknet classifier predict cfg/imagenet1k.data
cfg/darknet19.cfg darknet19.weights

然后您将得到一个提示,如下所示:

25: Softmax Layer: 1000 inputs

Loading weights from darknet19.weights…Done!

Enter Image Path:

每当你厌倦了分类图像,你可以使用Ctrl-C退出程序。

在ImageNet上验证

到处都可以看到这些验证集编号。也许你想再检查一下这些模型的实际工作情况。我们来吧!

首先需要下载验证图像和cls
loc注释。你可以把它们弄到这里,但你得记帐!下载完所有内容后,您应该有一个包含ILSVRC2012_bbox_val_v3.tgz和ILSVRC2012_img_val.tar的目录。首先我们打开包装:

tar -xzf ILSVRC2012_bbox_val_v3.tgz

mkdir -p imgs && tar xf ILSVRC2012_img_val.tar
-C imgs

现在我们有了图像和注释,但我们需要标记图像,以便Darknet能够评估其预测。我们使用这个bash脚本来实现这一点。它已经在脚本/子目录中了。我们只需再次获取并运行它:

wget
https://pjreddie.com/media/files/imagenet_label.sh

bash imagenet_label.sh

这将生成两个内容:一个名为labeled/的目录,其中包含指向图像的重命名符号链接;另一个名为inet.val.list的文件,其中包含标记图像的路径列表。我们需要将此文件移动到Darknet中的data/子目录:

mv inet.val.list
/darknet/data

现在你终于可以验证你的模型了!先把darknet重新make出来。然后运行验证例程,如下所示:

./darknet classifier valid cfg/imagenet1k.data
cfg/darknet19.cfg darknet19.weights

注意:如果不使用OpenCV编译Darknet,那么就无法加载所有ImageNet图像,因为其中一些图像是stbúu image.h不支持的奇怪格式。

如果不使用CUDA编译,您仍然可以在ImageNet上验证,但这将需要相当长的时间。不推荐。 预先训练的模型

这里有各种用于ImageNet分类的预训练模型。准确度在ImageNet上测量为单crop验证准确度。GPU计时是在Titan X上测量的,CPU计时是在单核Intel i7-4790K(4 GHz)上运行的。在OPENMP中使用多线程应该与cpu的比例成线性关系。

Alxnet

开始创新的模式!最初的模型是疯狂的分裂GPU的事情,所以这是一些后续工作的模型。

· Top-1
Accuracy: 57.0%

· Top-5
Accuracy: 80.3%

· Forward
Timing: 3.1 ms/img

· CPU Forward
Timing: 0.29 s/img

· cfg file

· weight file (238 MB)

Darknet参考模型

这个模型设计得很小但是很强大。它获得了与AlexNet相同的前1名和前5名的性能,但参数只有1/10。它主要使用卷积层,而没有在末端的大型完全连接层。它的速度大约是AlexNet在CPU上的两倍,这使得它更适合一些视觉应用。

· Top-1 Accuracy:
61.1%

· Top-5
Accuracy: 83.0%

· Forward
Timing: 2.9 ms/img

· CPU Forward
Timing: 0.14 s/img

· cfg file

· weight file (28 MB)

VGG-16

牛津大学的视觉几何小组为ILSVRC-2014比赛开发了VGG-16模型。它具有很高的分类精度和广泛的应用前景。我把这个版本改编自Caffe预先训练的模型。它被训练为另外6个阶段,以适应特定于darknet的图像预处理(而不是平均减法darknet调整图像介于-1和1之间)。

· Top-1
Accuracy: 70.5%

· Top-5
Accuracy: 90.0%

· Forward
Timing: 9.4 ms/img

· CPU Forward
Timing: 4.36 s/img

· cfg file

· weight file (528 MB)

Extraction

开发了这个模型作为GoogleNet模型的一个分支。它不使用“初始”模块,只使用1x1和3x3卷积层。

· Top-1
Accuracy: 72.5%

· Top-5
Accuracy: 90.8%

· Forward
Timing: 4.8 ms/img

· CPU Forward
Timing: 0.97 s/img

· cfg file

· weight file
(90 MB)

Darknet19

我修改了提取网络,使之更快更准确。这个网络是一种融合了darknet参考网络和特征提取以及众多论文(如网络中的网络、初始和批量规范化)的思想。

· Top-1
Accuracy: 72.9%

· Top-5
Accuracy: 91.2%

· Forward
Timing: 6.2 ms/img

· CPU Forward
Timing: 0.87 s/img

· cfg file

· weight file
(80 MB)

Darknet19
448x448

我用一个更大的输入图像大小448x448,为10多个时期训练了Darknet19。该模型性能明显更好,但速度较慢,因为整个图像更大。

· Top-1
Accuracy: 76.4%

· Top-5
Accuracy: 93.5%

· Forward
Timing: 11.0 ms/img

· CPU Forward
Timing: 2.96 s/img

· cfg file

· weight file
(80 MB)

Resnet
50

出于某种原因,人们喜欢这些网络,即使他们是如此缓慢。

· Top-1
Accuracy: 75.8%

· Top-5
Accuracy: 92.9%

· Forward
Timing: 11.4 ms/img

· CPU Forward
Timing: 1.13 s/img

· cfg file

· weight file
(87 MB)

Resnet
152

出于某种原因,人们喜欢这些网络,即使他们是如此缓慢。

· Top-1
Accuracy: 77.6%

· Top-5
Accuracy: 93.8%

· Forward
Timing: 28.6 ms/img

· CPU Forward
Timing: 3.31 s/img

· cfg file

· weight file
(220 MB)

Densenet
201

我Densenet!他们是如此深沉,如此疯狂,工作如此出色。像Resnet一样,仍然很慢,因为它们有很多层,但至少它们工作得很好!

· Top-1
Accuracy: 77.0%

· Top-5
Accuracy: 93.7%

· Forward
Timing: 32.6 ms/img

· CPU Forward
Timing: 1.38 s/img

· cfg file

· weight file
(67 MB)

AlexeyAB DarkNet YOLOv3框架解析与应用实践(三)相关推荐

  1. AlexeyAB DarkNet YOLOv3框架解析与应用实践(六)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(六) Tiny Darknet 听过很多人谈论SqueezeNet. SqueezeNet很酷,但它只是优化参数计数.当大多数高质量的 ...

  2. AlexeyAB DarkNet YOLOv3框架解析与应用实践(五)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(五) RNNs in Darknet 递归神经网络是表示随时间变化的数据的强大模型.为了更好地介绍RNNs,我强烈推荐Andrej K ...

  3. AlexeyAB DarkNet YOLOv3框架解析与应用实践(四)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(四) Nightmare 从前,在一所大学的大楼里,西蒙尼亚.维达第和齐瑟曼有一个很好的主意,几乎和你现在坐的大楼完全不同.他们想,嘿 ...

  4. AlexeyAB DarkNet YOLOv3框架解析与应用实践(二)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(二) 版本3有什么新功能? YOLOv3使用了一些技巧来改进训练和提高性能,包括:多尺度预测.更好的主干分类器等等.全部细节都在我们的 ...

  5. AlexeyAB DarkNet YOLOv3框架解析与应用实践(一)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(一) Darknet: C语言中的开源神经网络 Darknet是一个用C和CUDA编写的开源神经网络框架.它速度快,易于安装,支持CP ...

  6. alexeyab darknet 编译_【目标检测实战】Darknet—yolov3模型训练(VOC数据集)

    原文发表在:语雀文档 0.前言 本文为Darknet框架下,利用官方VOC数据集的yolov3模型训练,训练环境为:Ubuntu18.04下的GPU训练,cuda版本10.0:cudnn版本7.6.5 ...

  7. yolov3(三:算法框架解析)

    应用见: https://blog.csdn.net/Darlingqiang/article/details/103889245 https://blog.csdn.net/Darlingqiang ...

  8. 蚂蚁集团网络通信框架 SOFABolt 功能介绍及协议框架解析 | 开源

    简介:开源网络通信框架 SOFABolt 首次线上直播文字回顾. ,有趣实用的分布式架构频道. 回顾视频以及 PPT 查看地址见文末.欢迎加入直播互动钉钉群 : 30315793,不错过每场直播. 大 ...

  9. 1、RPC框架解析:开篇-什么是RPC?

    1.1.简介 从客户端转后台开发已经快三年了,决定沉淀一些系统性的东西,想了很多题目,最终决定写一篇关于RPC框架相关的吧. 准备从概念,应用,到实践总结出一个系列. 1.2.涉及知识 以gRPC为示 ...

最新文章

  1. Axis2 webservice入门--Webservice的发布与调用
  2. 60颗卫星被五手火箭送上天!马斯克疯狂的卫星互联网计划不远了
  3. C语言做一个通讯录程序(在console里面运行)
  4. java第一份工作_Java 学到什么程度可以找到第一份工作 ?
  5. line-height:2和line-height:2em的区别,它们是有区别的
  6. php 5.2.6升级,Centos5.5 简单方法升级php到php5.2.6
  7. 红米手机 android 版本,#MIUI#关于红米手机4高配版 Android版本适配的说明【miui9吧】_百度贴吧...
  8. 【JS】引用类型之String
  9. 2021年中国单硝酸异山梨酯市场趋势报告、技术动态创新及2027年市场预测
  10. hdoj 1071 The Area 求面积
  11. dnastar拼接反向互补序列_反向互补、反向、互补序列有何区别?
  12. 主板怎么开启csm_B460主板BIOS设置CSM选项无法开启的解决方法
  13. matlab运行.m文件的命令,Matlab:从命令行运行m文件
  14. Android 关于AIDL通信,RemoteCallbackList实现Server回调Client
  15. svg常用元素和属性
  16. 无锡:车联网先导区“排头兵”,编织的自动驾驶产业雄心!
  17. DP问题(动态规划)
  18. 那个可能会改变世界的参议员
  19. 市面上有哪几种门_目前市面上的成品木门有哪几种
  20. JS引起内存泄漏的情况

热门文章

  1. ttf,woff2字体转化为png图片,python读取图片
  2. 自动驾驶解决方案架构
  3. BEP 7:CUDA外部内存管理插件(下)
  4. CUDA 内存统一分析
  5. 视频系列:RTX实时射线追踪(上)
  6. python的服务器、客户端被拒绝访问_python – uWSGI服务器日志…权限被拒绝读取......
  7. jenkins ssl证书报错问题解决
  8. mybaties分页
  9. ASP.NET MVC Identity 兩個多個連接字符串問題解決一例
  10. 2022-2028年中国新能源公交车行业深度调研及投资前景预测报告