使用OpenCV_python中的DNN调用CaffeModel识别图像只需30行代码
2017-11-08 12:47
871 查看
OpenCV3.3开始正式支持DNN,有C++,Python的Sample,只要下载CaffeModel,识别图像的代码非常简洁。
OpenCV-Python 下载:https://pypi.python.org/pypi/opencv-python
代码下载:http://download.csdn.net/download/zw010101/10109152 (含bvlc_googlenet.caffemodel,bvlc_googlenet.prototxt,bvlc_googlenet_synset_words.txt)
#coding:utf-8 from __future__ import print_function import numpy as np import cv2 from cv2 import dnn import sys cm_path='caffemodel/' def get_class_list(): with open(cm_path+'bvlc_googlenet_synset_words_cn1.txt', 'rt') as f: return [x[x.find(" ") + 1:] for x in f] def dnn_show_result(prob,classes,n): y = sorted(prob[0],reverse = True) #从大到小排序 z=range(n) #前n名 for i in range(0, n): z[i]=np.where(prob[0] == y[i])[0][0] print(u"第",i+1,u"匹配:", classes[z[i]],end='') print(u"类所在行:", z[i]+1," ",u"可能性:", y[i]) if __name__ == "__main__": if len(sys.argv) < 2: print ("USAGE: googlenet_z.py images/tiger.jpg") sys.exit() fn=sys.argv[1] blob = dnn.blobFromImage(cv2.imread(fn), 1, (224, 224), (104, 117, 123)) print("Input:", blob.shape, blob.dtype) net = dnn.readNetFromCaffe(cm_path+'bvlc_googlenet.prototxt', cm_path+'bvlc_googlenet.caffemodel') net.setInput(blob) prob = net.forward() print("Output:", prob.shape, prob.dtype) classes = get_class_list() dnn_show_result(prob,classes,3)
OpenCV-Python 下载:https://pypi.python.org/pypi/opencv-python
代码下载:http://download.csdn.net/download/zw010101/10109152 (含bvlc_googlenet.caffemodel,bvlc_googlenet.prototxt,bvlc_googlenet_synset_words.txt)
相关文章推荐
- 百度定制化图像开放平台使用--调用识别接口(python3代码)
- Opencv如何使用dnn读取caffemodel进行识别
- 【图像识别】 Python+Opencv调用摄像头实现人脸识别并保存视频
- 七.使用OpenCv进行图像颜色识别
- 【python下使用OpenCV实现计算机视觉读书笔记2】图像与字节的变换
- Python下opencv使用笔记(三)(图像的几何变换)
- 移动设备上使用opencv 1.10做图像识别的例子
- 编译代码在Android中使用JNI调用Opencv本地代码 配置方式 边缘检测 范例代码
- Python下opencv使用笔记(五)(图像的平滑与滤波)
- Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法实现边缘检测代码(2)
- Python下opencv使用笔记(一)(图像简单读取、显示与储存)
- 基于Python使用CloudSight API实现简单的图像识别(image Recognition)
- 移动设备上使用opencv 1.10做图像识别的例子
- Python下opencv使用笔记(九)(图像直方图)
- Python下opencv使用笔记(四)(图像的阈值处理)
- Windows下使用android NDK(JNI)调用OpenCV本地代码——流程梳理
- 在Android中使用JNI调用Opencv本地代码 配置方式 边缘检测 范例代码
- Python下opencv使用笔记(六)(图像的形态学转换)
- 图像识别:Android中使用OpenCV
- 图像识别 python+opencv的简单人脸识别