画saliency intensity map图, caffe

以JAA检测笑脸为例,已经有一个训练好的模型了,现在要查看saliency intensity map。

基本想法是给一张图片,forward之后再backward回来,看data层的diff。

1)deploy.prototxt增加一行force_backward: true,否则caffe不支持backword
在这里插入图片描述
2) 先forward再backward,把data的diff保存下来
注意代码中

  1. 对au_net.blobs[‘au_probNAU’].diff的赋值, 根据实际图片情况来,比如我这张图片是AU6和AU12,分别是第4和第6个AU,其他AU没有出现
  2. diffs = au_net.backward(start=‘au_prob_slice’)[‘data’],这里代表从’au_prob_slice’层backwards到’data’
  3. dif = np.array(au_net.blobs[‘data’].diff).reshape((3,176,176)) , 取出data的diff,即是我们所求
import numpy as np
import matplotlib.pyplot as plt

import os
import sys
import numpy as np
import cv2
from PIL import Image
os.environ["GLOG_minloglevel"] = "2"
sys.path.insert(0,"Algorithms/JAA/caffe/python")
import caffe
def load_image(path):
    img = cv2.imread(path,cv2.IMREAD_COLOR) # BGR
    img = cv2.resize(img,(176,176))
    im = (img-128.0)*0.0078125        
    return im
crop_offset = 12
crop_size = 176
gpu = 0
caffe.set_mode_gpu()
caffe.set_device(gpu)
img_name = "smile.jpg"
#load model
img_path_prefix = "Algorithms-Test/Database/algined_faces/"
au_net_model = "Algorithms-Test/JAA/deploy.prototxt"     
au_net_weights = "Algorithms-Test/JAA/models/2-3-AUNet_iter_160000.caffemodel"
au_net = caffe.Net(au_net_model, au_net_weights, caffe.TEST)
transformer = caffe.io.Transformer({
   "data": au_net.blobs["data"]
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值