多标签分类及其 caffe 实现总结

本文探讨了多标签分类任务的两种情形及其在caffe框架中的实现。第一种情形为每个样本对应多个二进制标签,第二种情形则允许标签拥有更多取值。文章详细介绍了不同情况下的数据输入方法及损失函数的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直对多标签分类(multi-label)“情有独钟”,因为一直感觉没有完全弄懂它。最近看博客看多了,看着看着突然有点感觉,所以就把目前的理解整理一下写下来。
目前我看到的多标签分类任务有下面的两种情况(如有错误,欢迎交流指正):

  1. 每个样本对应多个label,label的值非0即1,最后的损失函数使用SigmoidCrossEntropyLoss,比如:

    fig1.jpg 0 0 1      
    fig2.jpg 1 0 1      
    fig3.jpg 1 1 0  
    • 1
    • 2
    • 3

    caffe官网提供的Multi-label教程就是这种情况。在这种情况下,每一个label代表某一种属性的是与否。比如第一个标签可能表示图片中是否有人,第二个代表是否有狗等等。
    属于这一类型的例子有: link1link2

  2. 每个样本对应多个label,label可以有多于两个的取值,最后的损失函数使用多个SoftmaxWithLoss,比如:

    fig1.jpg 0 2 1      
    fig2.jpg 2 3 0      
    fig3.jpg 1 1 2      
    • 1
    • 2
    • 3

    在这种情况下,每一个label代表某一种属性的多种可能。比如第一个标签可能表示人的衣服是红色的、白色的还是蓝色的,第二个便签可能代表狗的颜色是白、黄、黑或者灰。
    属于这一类型的例子有: link3link4


上面是对多标签分类任务的一些认识,下面说一说用caffe具体的实现。
主要可以分为数据输入损失函数两个部分:

1 数据输入

因为caffe目前还没有明确给出制作多标签lmdb文件的功能,所以准备输入数据方面可以考虑下面的方法

  1. 使用HDF5存储方式制作输入数据。但是,当数据量大的时候,HDF5存储方式的硬盘消耗大,而且速度慢;
  2. 使用lmdb存储方式制作输入数据:
    1. data和label各存储在一个lmdb中。这一种修改的源码相对少一些,主要要修改的是生成lmdb文件对应的源码convert_imageset.cpp,可以参考上面提到的:link3link4
    2. data和label存储在同一个lmdb文件中。这一种方法需要修改的源码相对多一点。具体的可以参考上面提到的: link1
  3. 使用自己的python data layer直接读取图片和label。这一种也是caffe官网上给出的多标签分类教程( link5)使用的方法,可以参考上面提到的:link2
2 损失函数
  1. 使用SigmoidCrossEntropyLoss。只需要在最后的损失函数层使用这一损失函数即可(可以参考上面的 link1link2);
  2. 使用多个SoftmaxWithLoss。需要用Slice层将网络的label层进行分割,然后分别提供给不同的SoftmaxWithLoss层使用(可以参考上面的 link3link4 )。

可以根据实际需要选择损失函数,至于哪种比较有效,我也不是很清楚,如果知道的朋友欢迎留言分享。

目标识别是计算机视觉一个重要的研究领域,由此延伸出的车辆型号识别具有重 要的实际应用价值,特别是在当今交通状况复杂的大城市,智能交通系统成为发展趋 势,这离不开对车辆型号进行识别和分类的工作,本文围绕如何利用计算机视觉的方 法进行车辆型号的识别和分类展开了一系列研究: 本文对当前的目标识别和分类的特征和算法了总结和归纳。分析比较了作为图 像特征描述常见的特征算子,总结归纳了他们的提取方法、特征性能以及相互之间的 关联。另外,介绍了在目标识别工作中常用的分类方法,阐述了他们各自的原理和工作 方法。研究了深度神经网络的理论依据,分析比较了深度神经网络不同的特征学习方 法,以及卷积神经网络的训练方法。分析比较不同特征学习方法的特点选取 k-means 作为本文使用的特征学习方法,利用卷积神经网络结构搭建深度学习模型,进行车辆 车型识别工作。 本文为了测试基于深度学习的车辆型号分类算法的性能在 30 个不同型号共 7158 张图片上进行实验;并在相同数据上利用改进了的 SIFT 特征匹配的算法进行对比实验; 进过实验测试,深度学习方法在进行车型分类的实验中取得 94%的正确率,并在与 SIFT 匹配实验结果对比后进一步证实:深度学习的方法能够应用在车辆型号识别领域
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值