opencv - 用于语义分割的单热标签

标签 opencv computer-vision tensorflow deep-learning caffe

在阅读语义分割论文时,有时我会读到“掩模图像的单热标签”这样的术语。我不清楚这到底是什么意思?在阅读一些实现时,我可以看到它们通常具有 rows*columns*2

的形状

我的猜测是一个 channel 对应于前景,另一个 channel 对应于背景。是对的吗?此外,我如何知道哪一个是前景?如果现有训练集只有行*列*1形状。如何将其转换为这种类型的格式,即 rows*columns*2?我所做的只是使用 newimage[:,:,:,0] = original_imagenewimage[:,:,:,1] = 1-original_image。但不知道这样对不对?

最佳答案

像 1,2,3,4,5 等分类标签没有任何自然顺序。因此,使用这些数字可能意味着标签 5 大于标签 1,但冰箱和狗只是两个没有自然排序的标签。

因此我们将标签 1,2,3,4,5 转换为

[1,0,0,0,0], [0,1,0,0,0], ...,[0,0,0,0,1]

所以现在它们只是指向某个方向的向量,这使得逻辑回归和其他损失函数更容易使用。

您还可以使用行*列*1 对前景背景进行编码

只需将前景值设置为 1,背景值设置为 0,然后我们就得到了前景背景蒙版。

我需要查看何时使用 rows*columns*2 的示例,因为该示例并不常见,并且可能会根据您看到它的位置而有所不同。

关于opencv - 用于语义分割的单热标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40393735/

相关文章:

C++ BLOB 平均值

tensorflow - 在数据帧上运行通用句子编码器大迭代时出现内存泄漏

python - Tensorflow 使用 python 在 Windows 中将 .pb 文件转换为 .lite 文件

python - 没有获得 YOLO v3 模型的边界框

python - 如何使用 opencv 和 python 删除圆的外部区域

c++ - 将 cv::Mat 转换为 std::vector<double> 并发症

opencv - 如何重置 OpenCV 中的随机数生成器?

matlab - 提取不规则物体的垂直和水平尺寸

machine-learning - 一次可以向 Caffe 传递多少张图像?

image-processing - 带填充的平均池的期望行为是什么?