OpenCV多图像检测

2024-10-03 09:19:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试构建一个简单的图像检测算法,在该算法中可以对不同的对象进行分类,例如塑料杯、瓶子、手机等。使用openCV和python实现这一点的最佳方法是什么?谢谢


Tags: 对象方法图像算法瓶子分类opencv手机
2条回答

如果你正在寻找一个算法或模型,可以检测到各种对象,即分类给定的图像,你必须在Conv Nets(CNN)查找。在

CNN是一种深度学习模型,可以根据您想要检测的图像类别进行训练。随后,不同的图像可以提供给训练过的CNN,以获得预测结果。在

如果你对这些东西感兴趣,我建议你看看this的博客文章。在

你可以尝试做一些模式匹配的图像,但准确性将大大降低,如果有严重的变化。在

据我所知,你不能在OpenCV上训练/建立自己的网络。您可以使用OpenCV加载预先训练的模型并对一组图像执行检测。在

为了创建一个新模型,您可以使用caffe、torch或tensorflow框架,并在OpenCV中使用它来执行检测。在

要执行检测,您需要执行以下操作:

  • 首先,确保已经用contrib模块编译了OpenCV。如果您不简单地在您的终端上输入以下内容:pip install opencv-contrib-python。在
  • 首先确保您有cv2.dnn。如果不这样做,则需要更新OpenCV的版本。在
  • 现在您可以从以下框架中选择模型caffe、tensorflow、darkNet和torch:
    • readNetFromCaffe
    • readNetFromDarknet
    • readNetFromTensorflow
    • readNetFromTorch
  • 选择框架后,选择一个预先训练的模型。您可以从HERE获得预先训练的caffe模型,从HERE获得张量流模型。在github上好好搜索一下,你会发现更多的模型。在

在阅读了this blogpost by Adrian之后,我遇到了dnn模块。在

为了重新迭代,您可以在OpenCV上使用预先训练的模型执行检测,但不能创建新的模型。在

如何运行预先培训的模型?

  1. caffemodel= cv2.dnn.readNetFromCaffe(ResNet.prototxt.txt, ResNet.caffemodel),其中prototxt.txt文件包含体系结构,另一个文件包含模型权重。

  2. tensorflowmodel = cv2.dnn.readNetFromCaffe(ResNet.pb, ResNet.pbtxt),其中.pb文件包含network架构,.pbtxt包含模型权重。

有关详细信息,请参阅链接。在

相关问题 更多 >