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


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

    Nightmare

    从前,在一所大学的大楼里,西蒙尼亚、维达第和齐瑟曼有一个很好的主意,几乎和你现在坐的大楼完全不同。他们想,嘿,我们一直在向前运行这些神经网络,它们工作得很好,为什么不也向后运行呢?这样我们就能知道电脑在想什么。。。             

    由此产生的图像是如此恐怖,如此怪异,以至于他们的尖叫声可以听到一路坦普顿。

     许多研究人员已经扩大了他们的工作范围,包括谷歌一篇广为人知的博客文章。              这是我抄袭那些抄袭那些有好主意的人。

    Darknet做恶梦             

    如果没有安装Darknet,请先安装!我们将使用VGG-16预训练模型来做噩梦。但是,我们不需要整个模型,只需要卷积层,所以我们可以使用vgg-conv.cfg文件(应该已经在cfg/子目录中有了这个文件)。你需要在这里下载预训练重量(57MB)。              

    现在我们可以生成您在第一段中看到的尖叫图像:

    ./darknet nightmare cfg/vgg-conv.cfg vgg-conv.weights data/scream.jpg 10

    命令分解如下:首先是可执行的子例程,./darknet nightmare,然后是配置文件和权重文件cfg/vgg-conv.cfg vgg-conv.weights。最后,我们得到了要修改的图像和要瞄准的配置文件层data/scream.jpg 10。             

    这可能需要一段时间,特别是如果您只使用CPU。在我的机器上大约需要15分钟。我强烈建议让CUDA更快地产生噩梦。启用CUDA后,在泰坦X上大约需要7秒。             

    你可以尝试较低的层次,以获得更艺术的感觉:

    ./darknet nightmare cfg/vgg-conv.cfg vgg-conv.weights data/dog.jpg 7

     或者用更高的层次来获得更复杂的紧急行为:

    ./darknet nightmare cfg/vgg-conv.cfg vgg-conv.weights data/eagle.jpg 13

     Special Options

    你可能会注意到你的尖叫家伙看起来和我的不太一样。那是因为我有一些特别的选择!我实际使用的命令是:

    ./darknet nightmare cfg/vgg-conv.cfg vgg-conv.weights

    data/scream.jpg 10 -range 3 -iters 20 -rate .01 -rounds 4

    Darknet在连续的回合中生成图像,上一轮的输出将进入下一轮。每一轮的图像也被写入磁盘。每一轮由若干次迭代组成。在每次迭代中,Darknet都会对图像进行修改,以在一定比例上增强选定的层。音阶是从一组八度音阶中随机选取的。该层是从一系列可能的层中随机选择的。修改此过程的命令包括:             

    --rounds n:更改轮数(默认为1)。多轮意味着生成的图像越多,通常对原始图像的更改也越多。             

    -iters n:更改每轮的迭代次数(默认为10)。更多的迭代意味着每轮图像的更多更改。             

    -range n:更改可能图层的范围(默认值1)。如果设置为1,则每次迭代时仅选择给定层。否则,一个层将在比范围内随机选择(例如10-范围3将在层9-11之间选择)。             

    -八度音阶n:更改可能的音阶数(默认为4)。在一个倍频程下,只检查全尺寸图像。每增加一个八度音阶,图像就会增加一个更小的版本(前一个八度音阶的3/4大小)。              

    -rate x:更改图像的学习速率(默认值为.05)。越高意味着每次迭代对图像的更改越多,但也有一些不稳定性和不精确性。             

    -thresh x:更改要放大的特征的阈值(默认值为1.0)。在目标层中,仅放大偏离平均值超过x个标准差的特征。较高的阈值意味着放大的特征较少。             

    -zoom x:更改每一轮后应用于图像的缩放(默认为1.0)。您可以选择添加放大(x<1)或缩小(x>1)以在每一轮后应用于图像。             

    -rotate x:更改每一轮后应用的旋转(默认为0.0)。每轮后可选旋转。

    A Smaller Model

    VGG-16是一个非常大的模型,如果内存不足,请尝试使用这个模型!             

    cfg文件在cfg/子目录中(或者这里),您可以下载权重(72mb)。

    ./darknet nightmare cfg/jnet-conv.cfg jnet-conv.weights

    data/yo.jpg 11 -rounds 4 -range 3

     Comparison With Deep Dream and GoogleNet             

    这些例子使用VGG-16网络。虽然古格伦似乎专注于狗和蛞蝓,但VGG喜欢生产獾,一种啮齿动物和猴子之间的奇怪杂交:

     VGG也没有GoogleNet所拥有的本地响应规范化层。因此,它的梦魇经常被彩色的星光暴过度饱和。

  • 相关阅读:
    laravel 安装及入门
    mysql事务处理的意义
    PHP项目:如何用PHP高并发检索数据库?
    inner join、left join、right join等的区别
    百度地图引入网页中
    google地图引入网页
    thinkphp的mvc理解
    SpringBoot+Shiro入门小栗子
    Springboot+WebSocket+Kafka(写着玩的)
    Windows下安装单机Kafka
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/12817904.html
Copyright © 2020-2023  润新知