Matlab 简单地进行图片检索

参考

模仿

  • 按照参考中的文档,进行特征抽取,建立图片数据库
  • 效果:
    many class
  • 改进: 更改svm,使输入可能同时匹配多个类,或者不匹配任何类;修改L2的bug,当每一类的训练数较小时,而要求返回的图片过多时,可能索引溢出;另外进行评估检验时的testIdx可能不覆盖所有的图片类,因此有一定概率出现这个bug.

matlab 函数

  • [idx,name]=grp2idx(s) : 对分类信息(字符组,数组等)建立索引
>> s={'hello','good','hello','good','world'};
>> [a,b]=grp2idx(s)
a =
     1
     2
     1
     2
     3
b = 
    'hello'
    'good'
    'world'
  • [train,test]=crossvalind(‘HoldOut’, N,P): 生成交叉验证索引
  • bsxfun:批量处理
  • svmtrain:SVM训练
  • svmclassify:应用SVM进行分类
  • mode:得到出现次数最多的数
  • confusionmat:生成混淆矩阵
  • sortrows:对行进行排序
  • arrayfun:对数据进行批量处理

问题

  1. 彩色图片与灰色图片问题:有些特征为彩色图片特有,因此,当数据库中既有彩色图片,又有灰色图片时,难道只能选择灰色图片支持的特征,色彩信息就无法进行利用?
  2. 当图片构成一个集合时(同一物体的不同角度的图片集),如何进行匹配检索?
  3. 本质上,SVM算法只进行二分类,输出为0或1。因此对N分类问题,可以通过训练(N,2)种SVM模型,即每两个类别训练一种模型,如下:
data/modelM1-2M1-3M1-NM(N-1)-N
D1131N
D2211N-1
D321NN
131N-1
DK11NN

这样,通过取众数(出现次数最多的数),就可以得到数据Di的分类


同样,也可以对每一类与剩余类进行训练,这样可以得到N种SVM模型,如下:

data/modelM1M2MN
D1100
D2011
D3000
111
DK001

这时,如果数据像D1或DK一样,只有一个分类器值为1,则可正确得到分类。反之,有可能多个分类器的值为1或者没有分类器的值为1. 即一个未知数据Di可以同时属于多个分类,或者不属于已知的任务分类。

提高

  • 2015 [Locality-sensitive hashing for region-based large-scale image indexing]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值