标签: convolutional-neural-network

YOLO 物体检测:算法如何预测大于网格单元的边界框?

我试图更好地了解 YOLO2 和 3 算法的工作原理。该算法处理一系列卷积,直到它得到一个13x13网格。然后它能够​​对每个网格单元内的对象以及这些对象的边界框进行分类。

在此处输入图片说明

如果您查看此图片,您会看到红色的边界框比任何单个网格单元格都大。此外,边界框以对象的中心为中心。

我的问题是当网络激活基于单个网格单元时,预测的边界框如何超过网格单元的大小。我的意思是网格单元之外的所有东西对于预测在该单元格中检测到的对象的边界框的神经元来说应该是未知的。

更准确地说,这是我的问题:

1.算法如何预测大于网格单元格的边界框?

2.算法如何知道对象的中心位于哪个单元格中?

computer-vision deep-learning tensorflow yolo convolutional-neural-network

13
推荐指数
2
解决办法
4098
查看次数

在Keras中,如何获取与模型中包含的"Model"对象关联的图层名称?

我在初始基础上使用VGG16网络构建了一个Sequential模型,例如:

from keras.applications import VGG16
conv_base = VGG16(weights='imagenet',
                  # do not include the top, fully-connected Dense layers 
                  include_top=False,
                  input_shape=(150, 150, 3))

from keras import models
from keras import layers

model = models.Sequential()
model.add(conv_base)
model.add(layers.Flatten())
model.add(layers.Dense(256, activation='relu'))
# the 3 corresponds to the three output classes
model.add(layers.Dense(3, activation='sigmoid'))
Run Code Online (Sandbox Code Playgroud)

我的模型看起来像这样:

model.summary()
Run Code Online (Sandbox Code Playgroud)

Layer (type)                 Output Shape              Param #   
=================================================================
vgg16 (Model)                (None, 4, 4, 512)         14714688  
_________________________________________________________________
flatten_1 (Flatten)          (None, 8192)              0         
_________________________________________________________________
dense_7 (Dense)              (None, 256)               2097408   
_________________________________________________________________
dense_8 (Dense)              (None, 3) …
Run Code Online (Sandbox Code Playgroud)

keras keras-layer convolutional-neural-network

12
推荐指数
4
解决办法
2万
查看次数

jpeg 压缩会影响使用卷积神经网络的训练和分类吗

我们正在与一家拥有超过 200 万张 jpeg 图像的公司合作。他们想收集更多的图像。图像的目的是机器分类并找到螺栓和小漏水等小物体。图像数量很多,但训练的例子很少,可能只有 100 个或更少的样本。

我们对公司的建议是以未压缩的原始 10 或 12 位 png/tiff 格式存储数据。他们想要使用 jpeg 格式,因为他们可以在更短的时间内收集更多数据(每秒 4 张图像)并且不需要所有磁盘空间。

有谁知道与 png 格式相比,jpeg 的存储将如何影响样本的训练以及稍后的查找/分类?

我已经用谷歌搜索过。它返回了许多关于如何使用深度学习提高 jpeg 质量的答案。其余的答案是关于如何使用互联网上的库来处理猫和狗。有一篇文章说 jpeg 压缩会影响识别,但很少涉及什么样的图像,你要寻找什么类型的对象等。

当您寻找像狗和猫这样的大型物体时,您将拥有许多可以使用的特征、曲线、颜色、直方图和其他特征。寻找具有很少特征的非常小的对象更为复杂。

有谁知道关于这个主题的任何文章?关键问题:我应该将图像存储在 png 或无损 tiff 中,还是可以使用 jpeg 压缩以供以后在深度学习中使用?

image machine-learning deep-learning convolutional-neural-network

9
推荐指数
2
解决办法
3975
查看次数

Dense(2)和Dense(1)之间的区别是二进制分类CNN的最后一层?

在用于图像的二进制分类的CNN中,输出的形状应该是(图像数量1)还是(图像数量2)?具体来说,这是CNN中的2种最后一层:

keras.layers.Dense(2, activation = 'softmax')(previousLayer)
Run Code Online (Sandbox Code Playgroud)

要么

keras.layers.Dense(1, activation = 'softmax')(previousLayer)
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,每个图像都有2个输出值(属于组1的概率和属于组2的概率)。在第二种情况下,每个图像只有1个输出值,即它的标签(0或1,label = 1表示它属于组1)。

哪一个是正确的?有内在的区别吗?我不想识别这些图像中的任何对象,只需将它们分为2组即可。

非常感谢!

classification deep-learning keras tensorflow convolutional-neural-network

8
推荐指数
2
解决办法
2415
查看次数

建议用于卫星图像中物体检测的CNN框架?

我正在寻找海洋大型卫星场景中的船只.我成功地应用于matterport的面膜RCNN安装卫星图像的小的子集,但它是分析像世界观庞大的图像太慢.我正在寻找可以做边界框的快速的东西,在python中,在Keras中实现,并且理想地优化(或者有很好的文档以便我可以优化它)用于卫星图像.有什么建议?

我找到了几个有希望的线索:

我可能会根据YOLT论文的建议,尝试在Keras中自定义RetinaNet的这种实现卫星图像,但是会喜欢其他建议!

python object-detection satellite-image keras convolutional-neural-network

8
推荐指数
1
解决办法
557
查看次数

U-net与FCN背后的直觉用于语义分割

我不太了解以下内容:

Shelhamer等人提出的用于语义分割的FCN中,他们提出了像素到像素的预测以构造图像中对象的蒙版/精确位置。

在用于生物医学图像分割的FCN的略微修改版本中,U-net的主要区别似乎是“与从收缩路径中相应裁剪的特征图的串联”。

现在,为什么此功能特别是在生物医学细分方面有所作为?我可以指出的是,生物医学图像与其他数据集的主要区别在于,在生物医学图像中,定义对象的特征集不如每天常见的对象丰富。数据集的大小也受到限制。但是,此额外功能是否受这两个事实或其他原因的启发?

artificial-intelligence neural-network image-segmentation semantic-segmentation convolutional-neural-network

7
推荐指数
1
解决办法
3654
查看次数

CNN 中每个卷积层后生成的特征图数量

我的问题是关于每个卷积层后特征图的数量。根据我的研究,在每个卷积层中,基于我们想要的过滤器,我们得到了确切数量的特征图。但是在一些教程中我遇到了一些不遵循这一点的架构。例如在这个例子中:

在此处输入图片说明

池化后第一个卷积层的输出是 6 个特征图(红线)。在下一个卷积层中使用该特征图,产生了 16 个新特征图(绿线),但是如何呢?之前的每一层特征图都应该创建 1,2,3... 新的特征图,我们不应该在下一层得到 16 个新的特征图。这是怎么发生的?我的假设不对?

artificial-intelligence machine-learning neural-network deep-learning convolutional-neural-network

7
推荐指数
2
解决办法
5434
查看次数

在 Keras ImageDataGenerator 或 flow_from_directory 中裁剪图像的中心

我正在尝试使用 keras 在图像数据生成器中裁剪图像的中心。我有大小的图像,192x192我想裁剪它们的中心,以便输出批次150x150或类似的东西。

我可以在 Keras 中立即执行此操作ImageDataGenerator吗?我想不会,因为我看到target_sizedatagenerator 中的参数破坏了图像。

我找到了这个随机裁剪的链接:https : //jkjung-avt.github.io/keras-image-cropping/

我已经修改了作物如下:

def my_crop(img, random_crop_size):
  if K.image_data_format() == 'channels_last':
    # Note: image_data_format is 'channel_last'
    assert img.shape[2] == 3
    height, width = img.shape[0], img.shape[1]
    dy, dx = random_crop_size #input desired output size
    start_y = (height-dy)//2
    start_x = (width-dx)//2
    return img[start_y:start_y+dy, start_x:(dx+start_x), :]
  else:
      assert img.shape[0] == 3
      height, width = img.shape[1], img.shape[2]
      dy, dx = random_crop_size  # input desired output size
      start_y = …
Run Code Online (Sandbox Code Playgroud)

machine-learning image-processing conv-neural-network keras convolutional-neural-network

6
推荐指数
1
解决办法
5118
查看次数

反射填充 Conv2D

我正在使用 keras 构建一个用于图像分割的卷积神经网络,我想使用“反射填充”而不是“相同”填充,但我找不到在 keras 中做到这一点的方法。

inputs = Input((num_channels, img_rows, img_cols))
conv1=Conv2D(32,3,padding='same',kernel_initializer='he_uniform',data_format='channels_first')(inputs)
Run Code Online (Sandbox Code Playgroud)

有没有办法实现反射层并将其插入到 keras 模型中?

python padding keras zero-padding convolutional-neural-network

6
推荐指数
2
解决办法
1万
查看次数

在预训练的 pytorch 网络中加载单个图像

这里是新手,我正在使用这个pytorch SegNet 实现,其中包含一个 '.pth' 文件,其中包含来自 50 次训练的权重。如何加载单个测试图像并查看净预测?我知道这听起来像是一个愚蠢的问题,但我被卡住了。我有的是:

from segnet import SegNet
import torch

model = SegNet(2)
model.load_state_dict(torch.load('./model_segnet_epoch50.pth'))
Run Code Online (Sandbox Code Playgroud)

如何在单个测试图片上“使用”网络?

python image-segmentation deep-learning pytorch convolutional-neural-network

5
推荐指数
2
解决办法
1万
查看次数