本文共 685 字,大约阅读时间需要 2 分钟。
使用 OpenCV 和 Caffe 实现图像分类
在我的项目中,我选择了 OpenCV 4.1.1 和 Caffe 框架来进行图像分类任务。起初,我打算单独使用专门的猫狗分类模型,但未能找到合适的模型,最终决定使用 bvlc_reference_caffenet.caffemodel 作为替代方案。配合 deploy.prototxt 作为模型配置文件,这两项资源被放置在项目的 model 文件夹中,其中 caffemodel 文件被重命名为 model.caffemodel。
接下来,我选择了一张猫的图片存储在 image 文件夹中,并测试了这一配置。bvlc_reference_caffenet.caffemodel 模型的尺寸为 232 MB,能够提供正确的分类结果。而为了优化性能,我还尝试使用 SqueezeNet_v1.1 模型,其大小仅为 4.72 MB,同样能够正确分类图片。
在实验中,我使用以下代码进行图像分类:首先读取caffemodel 和deploy.prototxt文件,然后通过 OpenCV 的 blobFromImage 函数将输入图片归一化并适应模型要求。随后,调用网络进行推理,获取分类结果。最终,代码能够正确识别图片中的猫,返回尽收结果。
尽管预期得到的是猫的分类结果,实际上我得到了编号 287 的分类结果。在 ImageNet 的物种分类中,287 对应的是 'lynx, catamount',表示山猫或野猫。这表明尽管选择了猫相关的模型,预测结果并不完全准确,我可能需要进一步调整网络结构或引入特定训练的分类模型。
转载地址:http://hrqiz.baihongyu.com/