deep learning: heat Map

54 篇文章 1 订阅
51 篇文章 2 订阅

 reference: http://blog.csdn.net/liyaohhh/article/details/50990927

图像的heatMap是什么,一副图片的heatmap可以帮助我们在上面检测到想要的object,如下左图所示:
               可以直接的看到,人脸的的区域有红色区域,这个时候呢用sliding window在图片上进行检测,对于每一个窗口里面的object进行识别,就是检测这个window里面的object是不是红色的区域,是的话就是检测的到的人脸啦。这里我们首先看一下我们程序的结果: 右上方的图片最后的那个区域就是哦我们想要的,那个红色的区域就是我们想要的。
              具体的做法就是先在classification net上进行pre-train,之后去掉softmax层,改全部的fc层改成卷积层,如何该呢,参考这个链接,代码如下:
[python]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. def convert_full_conv(model_net,model_params,model_net_fc,model_params_fc):  
  2.     //原有的全连接层  
  3.      params = ['fc6''fc7']  
  4.      params_fc =  ['fc6-conv''fc7-conv']  
  5.     //加载原有的classification net  
  6.     net = caffe.Net(model_net, model_params, caffe.TEST)  
  7.     //提取fc层中的最后的两个fc层作为一个字典{layerName:(c*w*h,b)}  
  8.     fc_params = {pr: (net.params[pr][0].data, net.params[pr][1].data) for pr in params}  
  9.     //加载fc-conv net  
  10.     net_fc = caffe.Net(model_define_fc, model_weight, caffe.TEST)  
  11.     //fc-conv参数  
  12.     conv_params = {pr: (net_fc.params[pr][0].data, net_fc.params[pr][1].data) for pr in params_fc}  
  13.     //把fc层的后面的三个参数flat,也就是相乘  
  14.     for pr, pr_conv in zip(params, params_fc):  
  15.        conv_params[pr_conv][0].flat = fc_params[pr][0].flat  
  16.        conv_params[pr_conv][1][...] = fc_params[pr][1]  
  17.     net_fc.save(model_weight_fc)  
  18.     print 'convert done!'  
  19.     return net_fc  
     之后把原来的那张图片输入网络,就会得到最终的heatmap,之所以有那么多的heatmap是因为对图片进行了不同程度的放缩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值