【caffe】用训练好的imagenet模型分类图像
因为毕设需要,我首先是用ffmpeg抽取某个宠物视频的关键帧,然后用caffe对这个关键帧中的物体进行分类。
1.抽取关键帧的命令:
E:\graduation design\FFMPEG\bin>ffmpeg -i .\3.mp4 -vf select='eq(pict_type\,I)',setpts='N/(25*TB)' .\%09d.jpg
2.用python编写脚本,利用在imagenet上训练的模型分类视频帧中的物体。
抽取得到的视频关键帧都存放在文件夹"/home/sunshineatnoon/Downloads/dogs/dogs/"中,利用python的walk函数遍历文件夹中的图像并分类。
代码如下:
1 import numpy as np 2 import matplotlib.pyplot as plt 3 import os 4 5 caffe_root = '/home/sunshineatnoon/Downloads/caffe/' 6 import sys 7 sys.path.insert(0,caffe_root+'python') 8 9 import caffe 10 11 MODEL_FILE = caffe_root+'models/bvlc_reference_caffenet/deploy.prototxt' 12 PRETRAINED = caffe_root+'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel' 13 14 #cpu模式 15 caffe.set_mode_cpu() 16 #定义使用的神经网络模型 17 net = caffe.Classifier(MODEL_FILE, PRETRAINED, 18 mean=np.load(caffe_root + 'python/caffe/imagenet/ilsvrc_2012_mean.npy').mean(1).mean(1), 19 channel_swap=(2,1,0), 20 raw_scale=255, 21 image_dims=(256, 256)) 22 imagenet_labels_filename = caffe_root + 'data/ilsvrc12/synset_words.txt' 23 labels = np.loadtxt(imagenet_labels_filename, str, delimiter='\t') 24 25 #对目标路径中的图像,遍历并分类 26 for root,dirs,files in os.walk("/home/sunshineatnoon/Downloads/dogs/dogs/"): 27 for file in files: 28 #加载要分类的图片 29 IMAGE_FILE = os.path.join(root,file).decode('gbk').encode('utf-8'); 30 input_image = caffe.io.load_image(IMAGE_FILE) 31 32 #预测图片类别 33 prediction = net.predict([input_image]) 34 print 'predicted class:',prediction[0].argmax() 35 36 # 输出概率最大的前5个预测结果 37 top_k = net.blobs['prob'].data[0].flatten().argsort()[-1:-6:-1] 38 print labels[top_k]
一张图像的分类结果如下图所示:
分类结果:
这里不得不感叹下caffe和神经网络的强大,尽管视频帧的分辨率已经这么低了,还是在前5个预测中得到了正确的分类:corgi
还有一张特别惊讶的:
分类结果:
这样都能检测出giant panda和cat,太牛了!
分类:
caffe
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2014-07-26 【leetcode刷题笔记】Surrounded Regions
2014-07-26 【leetcode刷题笔记】Text Justification
2014-07-26 【leetcode刷题笔记】Median of Two Sorted Arrays
2014-07-26 【leetcode刷题笔记】Palindrome Partitioning II
2014-07-26 【leetcode刷题笔记】Minimum Window Substring
2014-07-26 【leetcode刷题笔记】Interleaving String
2014-07-26 【leetcode刷题笔记】Wildcard Matching