我正在尝试将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
我做错了什么?
答案 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实现中使用它们的参数。