Tensorflow + ImageNet Inception-v3 摄像头视频图像识别
准备工作
编程环境:python 3.6.1, win7, x64
材料准备:
- Google基于2012年ImageNet
Challenge训练的模型:inception-2015-12-05.tgz - 非官方的python库(官方的python3.6版本还没有,如果是更旧一点的python版本可以查找一下官方的pip或者conda包)http://www.lfd.uci.edu/~gohlke/pythonlibs/。在里面下载:
Pillow-4.2.1-cp36-cp36m-win_amd64.whl
和
VideoCapture-0.9.5-cp36-cp36m-win_amd64.whl
安装
命令行进入到两个包所在目录,安装PIL和VideoCapture
pip install Pillow-4.2.1-cp36-cp36m-win_amd64.whl
pip install VideoCapture-0.9.5-cp36-cp36m-win_amd64.whl
可能出现:
PermissionError:[WinError 5] Access is denied:...
以python模块方法调用pip可以解决:
python -m pip install Pillow-4.2.1-cp36-cp36m-win_amd64.whl
python -m pip install VideoCapture-0.9.5-cp36-cp36m-win_amd64.whl
将inception-2015-12-05.tgz解压后放在当前目录的一个新的文件夹下,我这里取名model,如果自己起另外的目录名,脚本中对应的FLAGS调用地址也要做出修改。
model 中一共包含5个文件:
classify_image_graph_def.pb
cropped_panda.jpg
imagenet_2012_challenge_label_map_proto.pbtxt
imagenet_synset_to_human_label_map.txt
LICENSE
在python中测试摄像机的拍照、导出照片到jpg格式文件的功能:
from VideoCapture import Device
cam=Device()
cam.saveSnapshot('image_cap.jpg')
可能会出现以下错误:
Exception: fromstring() has been removed. Please call frombytes() instead.
这个最标准的解决方法应该是更新PIL包??。。。但是。。我的难道不是最新的吗??

所以组织上已经决定了,直接改源代码,在VideoCapture包的这个文件里,在报错信息上可以找到:
C:\Anaconda3\lib\site-packages\VideoCapture__

使用Tensorflow的Inception-v3模型,结合Python和摄像头进行实时视频图像识别。通过调整VideoCapture包源代码解决运行问题,程序从摄像头获取图像,进行识别并显示最可能的匹配类别。
最低0.47元/天 解锁文章
1136





