小编mcE*_*nge的帖子

如何将C++数组转换为opencv Mat

将C++数组转换为2D opencv Mat对象的最快方法是什么?蛮力方法将循环遍历2D垫的所有条目并用数组的值填充它们.
有更好/更快的方法吗?我能以某种方式将数组的指针指向2D矩阵吗?
(我正在使用opencv 2.4.8)

c++ opencv

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

如何将caffe prototxt转换为pytorch模型?

到目前为止,我使用的是pytorch-caffe-darknet-convert存储库.在克服了许多问题(concat和eltwise图层不可转换)后,我得到了一些看起来像暗网配置文件的东西:

python caffe2darknet.py my_prototxt.txt my_caffemodel.caffemodel new_net_file.cfg new_model.weights
Run Code Online (Sandbox Code Playgroud)

有人知道如何将输出new_net_file.cfg转换为pytorch吗?另外还有另一种将caffe原型文件转换成pytorch的方法吗?
我想和caffe-tensorflow有相同的行为 我会发布我的caffe prototxt和new_net_file.cfg下面的输出作为参考.

my_prototxt:

input: "data"
input_shape {
  dim: 1
  dim: 240
  dim: 144
  dim: 240
}

layer {
  name: "conv1_1"
  type: "Convolution"
  bottom: "data"
  top: "conv1_1"
  convolution_param {
    num_output: 16
    pad: 3
    pad: 3
    pad: 3
    kernel_size: 7
    kernel_size: 7
    kernel_size: 7
    stride: 2
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
    engine: CUDNN
    axis: 1
  }
}
layer {
  name: …
Run Code Online (Sandbox Code Playgroud)

torch caffe pytorch darknet

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

将数据转换为leveldb以获取caffe

我在Matlab中有一堆二维数据矩阵(没有图像数据,但有一些单精度数据).

有谁知道如何将2D matlab矩阵转换为caffe所需的leveldb格式来训练自定义神经网络?

我已经完成了关于如何训练图像(使用imagenet架构)和mnist(数字识别数据集)的教程.但是在后一个例子中,他们没有展示如何创建相应的数据库.在教程中,已经提供了数据库.

matlab leveldb caffe conv-neural-network matcaffe

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

在咖啡馆融合不同的输入渠道?

我想先分别处理不同类型的数据,然后将它们融合到一个公共层中.在Caffe中这是可能的,如果是的话,最好的方法是什么?

我已经读过可以在同一个原型文件中定义几个数据层.但如何融合他们呢?

我可以创建一个InnerProduct图层并指定多个bottom图层吗?或者我是否必须首先使用图层连接各个图层Concat

对于任何小代码示例,我将非常感谢!

caffe

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

Tensorflow:如何在语义分割期间忽略特定标签?

我正在使用tensorflow进行语义分割.在计算像素损失时如何告诉tensorflow忽略特定标签?

在这篇文章中读到,对于图像分类,可以将标签设置为-1,它将被忽略.如果这是真的,给定标签张量,我如何修改我的标签,以便将某些值更改为-1

在Matlab中它将是这样的:

ignore_label = 255
myLabelTensor(myLabelTensor == ignore_label) = -1
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在TF中这样做?

一些背景信息:
这是标签的加载方式:

label_contents = tf.read_file(input_queue[1])
label = tf.image.decode_png(label_contents, channels=1)
Run Code Online (Sandbox Code Playgroud)

这就是目前计算损失的方式:

raw_output = net.layers['fc1_voc12']
prediction = tf.reshape(raw_output, [-1, n_classes])
label_proc = prepare_label(label_batch, tf.pack(raw_output.get_shape()[1:3]),n_classes)
gt = tf.reshape(label_proc, [-1, n_classes])

# Pixel-wise softmax loss.
loss = tf.nn.softmax_cross_entropy_with_logits(prediction, gt)
reduced_loss = tf.reduce_mean(loss)
Run Code Online (Sandbox Code Playgroud)

def prepare_label(input_batch, new_size, n_classes):
    """Resize masks and perform one-hot encoding.

    Args:
      input_batch: input tensor of shape [batch_size H W 1].
      new_size: a tensor …
Run Code Online (Sandbox Code Playgroud)

tensorflow

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

将3D MatND拆分为2D Mat opencv的矢量

是否可以从opencv中存储为MatND的3D数据立方体中获取2D Mat对象?基本上我正在使用"mexopencv"将3D矩阵传递给MexFile.我通过使用MxArray(prhs [0]).toMatND()将矩阵转换为MatND对象.现在我想将这个数据立方体沿第三维分割成cv :: Mat矩阵的向量.我需要对这些2D矩阵进行操作,因此迭代第三维.是否有根据需要拆分数据立方体的功能?或者可能是一种获取3D数据立方体的2D子矩阵的指针的方法?

编辑:这是我的代码,它使用mexopencv将Matlab输入参数转换为MatND数组.我实现了@chappjc将3D数据代码分割成2D矩阵向量的方法.除了切换x和y尺寸这一事实外,一切都很好.

#include "mexopencv.hpp"
#include <iostream>

void mexFunction(int nlhs, mxArray *plhs[],
                 int nrhs, const mxArray *prhs[])
{
    // Check arguments
    if (nlhs!=1 || nrhs!=1)
        mexErrMsgIdAndTxt("myfunc:invalidArgs", "Wrong number of arguments");

    // 1) Convert MxArray to cv::Mat
    cv::MatND matnd = MxArray(prhs[0]).toMatND();

    // Extract planes from matrix
    int dims[] = { matnd.size[0],matnd.size[1],matnd.size[2]};
    std::vector<cv::Mat> matVec;
    for (int p = 0; p < dims[2]; ++p) {
        double *ind = (double*)matnd.data + p * dims[0] * dims[1]; // sub-matrix pointer
        matVec.push_back(cv::Mat(2, dims, …
Run Code Online (Sandbox Code Playgroud)

c++ opencv mex

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

如何使用浮点数向量初始化 cv::Mat?

cv::Mat有没有办法使用对象初始化opencv vector<float>?或者我是否需要循环遍历向量的每个条目并将其写入对象cv::Mat

opencv vector mat

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

Tensorflow:如何以相同的方式随机裁剪输入图像和标签?

我正试图从图像中随机拍摄.就像在Caffe中为了数据增加而做的一样.

我知道tensorflow已经有了一个功能

    img = tf.random_crop(img, [h, w, 3])
    label = tf.random_crop(label, [h, w, 1])
Run Code Online (Sandbox Code Playgroud)

但我不确定它是否需要相同的裁剪图像和标签.此功能也不能自动0-pad图像的一维或二维小于裁剪尺寸[h,w].

这又是由

    img = tf.image.resize_image_with_crop_or_pad(img, h, w)
    label = tf.image.resize_image_with_crop_or_pad(label, h, w)
Run Code Online (Sandbox Code Playgroud)

但它只需要中心作物而不是随机作物.

编辑:
这是一些代码如何填充:

# Cropping dimensions (crops of 700 x 800)
crp_h = tf.constant(700)
crp_w = tf.constant(800)

shape = tf.shape(img)
img_h = shape[0]
img_w = shape[1]    
img = tf.cond(img_h < crp_h, lambda: tf.image.pad_to_bounding_box(img, 0, 0, crp_h, img_w), lambda: img)
# Update image dimensions
shape = tf.shape(img)
img_h = shape[0]
img = tf.cond(img_w < crp_w, …
Run Code Online (Sandbox Code Playgroud)

tensorflow

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

Poetry Shell:如何缩短 bash 前缀

当激活诗歌 python shell 时,我在 bash 提示符中收到一个非常长的字符串:

(my-current-folder-pNzYm0GW-py3.8) (base) myusername@mycomputername>
Run Code Online (Sandbox Code Playgroud)

我希望它更短,也许像这样:

(py3.8) myusername@mycomputername>
Run Code Online (Sandbox Code Playgroud)

有谁知道这是怎么做到的吗?

(我猜这base来自于系统上也安装了 miniconda,我可以通过编辑我的 来修复它.bashrc

python pyenv python-poetry

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

Tensorflow:如何将张量的通道从RGB切换到BGR?

有没有一种快速的方法来转换将图像从RGB编码到BGR的张量?

在python中会是这样的:

image = image[:, :, [2,1,0]]
Run Code Online (Sandbox Code Playgroud)

tensorflow

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