Caffe可以直接对图像的像素进行分类吗?

2023-11-22

我想将图像的像素分类为“是街道”或“不是街道”。我有一些训练数据KITTI数据集我看到 Caffe 有一个IMAGE_DATA图层类型。 标签以与输入图像大小相同的图像形式存在。

除了 Caffe 之外,我解决这个问题的第一个想法是在应该分类的像素周围提供图像补丁(例如,上/左/右/下 20 个像素,导致我想要分类的每个像素有 41×41=1681 个特征) 。
但是,如果我可以告诉 caffe 如何使用标签,而不必手动创建这些图像补丁(以及图层类型IMAGE_DATA似乎表明这是可能的)我更喜欢这样。

Caffe可以直接对图像的像素进行分类吗?这样的 prototxt 网络定义会是什么样子?如何向 Caffe 提供有关标签的信息?

我猜输入层会是这样的

layers {
  name: "data"
  type: IMAGE_DATA
  top: "data"
  top: "label"
  image_data_param {
    source: "path/to/file_list.txt"
    mean_file: "path/to/imagenet_mean.binaryproto"
    batch_size: 4
    crop_size: 41
    mirror: false
    new_height: 256
    new_width: 256
  }
}

但是,我不确定什么crop_size确切的意思是。真的是居中吗? caffe如何处理角点像素?什么是new_height and new_width适合什么?


Caffe可以对像素进行分类吗?理论上我认为答案是肯定的。我自己没有尝试过,但我认为没有什么可以阻止你这样做。

Inputs:
你需要两个IMAGE_DATA层:一层加载 RGB 图像,另一层加载相应的标签掩模图像。请注意,如果您使用convert_imageset实用程序中,您无法独立地对每个集合进行洗牌 - 您将无法将图像与其标签蒙版相匹配。

An IMAGE_DATA图层有两个“顶部”,一个用于“数据”,一个用于“标签”我建议您将两个输入层的“标签”设置为图像/标签蒙版的索引,并添加一个实用程序层来验证索引always匹配,这将防止您在错误的标签掩码上进行训练;)

Example:

layer {
  name: "data"
  type: "ImageData"
  top: "data"
  top: "data-idx"
  # paramters...
}
layer {
  name: "label-mask"
  type: "ImageData"
  top: "label-mask"
  top: "label-idx"
  # paramters...
}
layer {
  name: "assert-idx"
  type: "EuclideanLoss"
  bottom: "data-idx"
  bottom: "label-idx"
  top: "this-must-always-be-zero"
}

损失层:
现在,您可以对输入数据执行任何您喜欢的操作,但最终要获得逐像素标记,您需要逐像素损失。因此,您必须让最后一层(损失之前)产生一个预测same宽度和高度为"label-mask"并非所有损失层都知道如何处理多个标签,但是"EuclideanLoss"(例如)可以,因此你应该有一个损失层,例如

layer {
  name: "loss"
  type: "EuclideanLoss"
  bottom: "prediction" # size on image
  bottom: "label-mask"
  top: "loss"
}

I think "SoftmaxWithLoss"有一个较新的版本可以在这种情况下使用,但您必须自己检查。在这种情况下"prediction"形状应为 2×h×w(因为您有 2 个标签)。

补充笔记:
一旦你在参数中设置了输入大小"ImageData"您可以修复网络中所有斑点的大小。您必须将标签尺寸设置为相同尺寸。您必须仔细考虑如何处理不同形状和大小的图像。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Caffe可以直接对图像的像素进行分类吗? 的相关文章

随机推荐

  • Make +y UP,移动原点 C# System.Drawing.Graphics

    我希望原点位于窗口的中心 o gt NET 希望它位于左上角 gt V 点网和我正在努力相处 有谁知道如何在 C 中仅使用 Graphics 对象来做到这一点 Graphics TranslateTransform 不会执行此操作 因为它会
  • 使用 Axis2 附加客户端证书?

    是否可以轻松地将客户端证书附加到使用 wsdl2java 生成的 Axis2 存根 我需要根据每个请求动态更改客户端证书 因此简单地将其存储在密钥库中不适用于我们的情况 我找到了针对非 SOAP 调用执行此操作的示例 但找不到与使用 Axi
  • 来自 AJAX 调用的 res.redirect

    我正在尝试在 ajax 之后进行重定向put要求 我计划使用纯 JS 客户端进行验证 Client document ready function login gt var username name username val var pa
  • 在Eclipse中,是否可以找到项目中采用某种参数类型的所有方法?

    这基本上就是我的问题 我正在参数化方法中将所有方法 ArrayList 转换为 HashMap 但我不想将所有 ArrayList 转换为 HashMap 因为有一些方法是在本地使用的 这更多的是出于好奇 但它会很有用 那么 在 Eclip
  • 带有图像

    我将 JSF 与 Primefaces 一起使用 我想使用仅包含图像的单选按钮按钮集 但我无法使其工作 这是代码
  • 我应该将 Maven 项目的应用程序配置文件放在哪里?

    我正在使用Maven 应用程序组装器用于从我的 Java 项目生成独立可执行文件的插件 应用程序读取配置文件 包括 Spring 文件 应用程序汇编器插件有一个选项 默认激活 可以将 etc 目录添加到应用程序的类路径中 但是我应该怎么做才
  • 来自类的 Java 资源与线程

    有什么区别 getClass getResource some resource file txt vs Thread currentThread getContextClassLoader getResource some resourc
  • 如何在 OpenCV 中找到二值骨架图像的端点?

    我有一个二进制像素的骨架 如下所示 我想找到该骨架端点的坐标 在本例中有四个 如果适用 请使用 Open CV 效率很重要 因为我正在从视频源中实时分析其中的许多内容 并且需要同时做许多其他事情 请注意 抱歉 上面的屏幕截图已调整了人工制品
  • ggplot2:将各个facet_wrap面保存为单独的绘图对象

    我是以下的忠实粉丝facet wrap 尽管在 R 中分割大数据框 绘制多个图并进行探索的速度很快 但它并不总是在纸张或幻灯片中呈现的最佳工具 我发现自己在比例 binwidths 和字体大小上浪费了很多时间 并最终在 inkscape 上
  • C# 创建没有 的 XML 输出文件

    我是 C 开发新手 所以这里可能是一个非常简单的问题 我试图获得这样的输出
  • 自定义 pip install 命令未运行

    我正在尝试为我正在编写的 pip 库运行一些预安装命令 我的安装文件如下所示 from setuptools import setup from setuptools command install import install class
  • 如何对 __m128 类型变量中的浮点元素取反(更改符号)?

    是否有任何单个指令或函数可以反转符号 m128 内的每个浮点数 IE a r0 r1 r2 r3 gt a r0 r1 r2 r3 我知道这可以通过 mm sub ps mm set1 ps 0 0 a 但它不是可能很慢吗 mm set1
  • 在WPF网格中绘制对角线

    我想我正在尝试在 WPF 中做一些相对简单的事情 但我无法弄清楚如何做 我认为我可能正处于将其过于复杂化的边缘 如果我有一个 3 行 3 列的网格 并且我想连接两个单元格的角以创建对角边框 那么最好的方法是什么 理想情况下 如果调整控件的大
  • 在 Angular 8 中,如何从浏览器控制台访问注入的服务?

    我正在使用 Angular 8 我想从浏览器控制台 Chrome 开发工具 访问注入的服务 我可以像这样从浏览器控制台访问注入器 ng probe document querySelector app root injector 我想在开发
  • 声音文件作为 android MediaPlayer 中的变量

    在学习 android java 的过程中 我想创建一个可以从原始文件夹中播放特定声音的函数 我试图将声音文件定义为字符串 以便可以重用该函数 但是我陷入了 无法解析符号 的困境 public class MainActivity exte
  • 与共享主键的一对一关系生成 n+1 个选择;有什么解决方法吗?

    想象一下关系数据库中有 2 个表 例如人员和计费 这些实体之间定义了一个 非强制性 OneToOne 关联 并且它们共享 Person 主键 即 PERSON ID 在 Person 和 Billing 中定义 并且它是后者的外键 通过命名
  • Java Socket和ServerSocket在使用端口上的区别

    在服务器端 我们使用 Socket server serverSocket accept 创建一个套接字 创建套接字后 我们可以创建一个新线程来处理该套接字的输入 输出流 因此 如果有进一步的连接请求进来 我们可以返回监听同一端口并创建新的
  • 这超出了 GitHub 的文件大小限制 [重复]

    这个问题在这里已经有答案了 我的 github 存储库中有一些大文件 我尝试添加 提交 推送 但推送命令给出了以下错误 远程 错误 文件 app dump sql 为 106 67 MB 这超出了 GitHub 的文件大小限制 100 00
  • 创建交互式登录会话

    我正在尝试创建一个类似于微软废弃的实用程序超快速用户切换器 download 它允许快速用户切换 而无需通过欢迎屏幕 我有一个使用未记录的工作实现WinStationConnectWAPI 以及WTSEnumerateSessions 但只
  • Caffe可以直接对图像的像素进行分类吗?

    我想将图像的像素分类为 是街道 或 不是街道 我有一些训练数据KITTI数据集我看到 Caffe 有一个IMAGE DATA图层类型 标签以与输入图像大小相同的图像形式存在 除了 Caffe 之外 我解决这个问题的第一个想法是在应该分类的像