在OpenCV中使用Caffe模型

时间:2019-06-12 06:30:39

标签: python opencv deep-learning caffe

我正在尝试将yahoo nsfw模型用于OpenCV。这是我尝试过的。我只是从存储库复制了int? HFID; int? PLServiceID; int? PLItemID; HFID = context.TblClaimAdmin .Where(c => c.ClaimAdminCode == model.claim_administrator_code && c.ValidityTo == null) .Select(x => x.Hfid).FirstOrDefault(); PLServiceID = context.TblHf .Where(h => h.HfId == HFID) .Select(x => x.PlserviceId).FirstOrDefault(); PLItemID = context.TblHf .Where(h => h.HfId == HFID) .Select(x => x.PlitemId).FirstOrDefault(); deploy.prototxt

resnet_50_1by2_nsfw.caffemodel

无论我输入的图像是什么import cv2 as cv cvNet = cv.dnn.readNetFromCaffe('deploy.prototxt','resnet_50_1by2_nsfw.caffemodel') image_path = 'adult.jpg' image = cv.imread(image_path) blob = cv.dnn.blobFromImage(image, 1, (224,224), (0,0,0), True, crop=False) cvNet.setInput(blob) detections = cvNet.forward() print(detections) ,第一个值始终较大。 我选择图像尺寸[[0.9855554 0.01444463]]是因为在(224, 224)中,我发现了以下内容:

deploy.prototxt

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我不确定您是否已经设法解决了这个问题,而且我不是专家,但是我发现很奇怪您在创建Blob时不执行均值减法(均值设置为(0 ,0,0))。查看您链接的Github存储库,作者确实在https://github.com/yahoo/open_nsfw/blob/master/classify_nsfw.py第114行中进行了均值减法:

caffe_transformer.set_mean('data', np.array([104, 117, 123]))

这可能会对网络的分类产生影响。我建议在您的OpenCV实现中使用它们的参数。