
点击下面的链接下载模型及附件
bvlc_googlenet.caffemodel
bvlc_googlenet.prototxt
synset_words.txt
import cv2 as cv
import numpy as np
from cv2 import dnn
'''
- 读取模型,并得到深度神经网络
- 读取图片、视频
- 将图片转为张量,送入深度神经网络
- 进行分析,并得到结果
'''
# 导入模型,创建神经网络
config = r'H:\opencv_extra-master\testdata\dnn\bvlc_googlenet.prototxt'
model = r'H:\opencv_extra-master\testdata\dnn\bvlc_googlenet.caffemodel'
net = dnn.readNetFromCaffe(config, model)
# 读取图片,转换张量
img = cv.imread('./dog.jpeg')
blob = dnn.blobFromImage(img, 1.0, (224, 224), (104, 117, 123))
net.setInput(blob)
r = net.forward()
# 读入类目
path = 'synset_words.txt'
classes = []
with open(path, 'rt') as f:
classes = [x[x.find(" ")+1:] for x in f]
order = sorted(r[0], reverse=True)
z = list(range(3))
for i in range(0, 3):
z[i] = np.where(r[0] == order[i])[0][0]
print("第", i+1, "项,匹配:", classes [z[i]], end='')
print("类所在行:", z[i]+1, " ", "可能性:", order[i])
C:\ProgramData\Anaconda3\envs\tensorflow\python.exe H:\python_study\opencv\BILILI\dnn.py
第 1 项,匹配: Pembroke, Pembroke Welsh corgi
类所在行: 264 可能性: 0.4090556
第 2 项,匹配: Eskimo dog, husky
类所在行: 249 可能性: 0.270965
第 3 项,匹配: Siberian husky
类所在行: 251 可能性: 0.15817644
进程已结束,退出代码0
