使用 Python 进行对象识别2025年1月11日 | 阅读 6 分钟 对象识别是计算机视觉领域的一项技术。这项技术能够识别图像和视频中存在的对象并对其进行跟踪。对象识别,也称为对象检测,有多种应用,如人脸识别、车辆识别、行人计数、自动驾驶汽车、安全系统等等。 对象识别的两个重要目标包括
在接下来的教程中,我们将了解如何使用 ImageAI 库在 Python 编程语言中执行对象识别。在本教程结束时,我们将使用 ImageAI 库在 Python 中创建一个基本的对象识别模型。 那么,让我们开始吧。 用于对象识别的深度学习深度学习技术在各种与对象识别相关的问题上都表现出了最先进的水平。以下是一些常用的深度学习方法用于对象识别:
然而,在本教程中,我们将了解 ImageAI 是什么,以及如何使用它进行对象识别。 理解 ImageAI 库Python 提供了一个库,旨在通过几行简单的代码脚本,赋能程序员和开发者构建具有自包含深度学习和计算机视觉功能的应用程序和系统。ImageAI 包含了几乎所有最先进的深度学习算法的 Python 实现,例如 RetinaNet, YOLOv3 和 TinyYOLOv3。 ImageAI 使用多个 API,这些 API 可以离线工作——它具有对象检测、视频检测和对象跟踪 API,无需访问互联网即可调用。ImageAI 使用预训练模型,并且可以轻松定制。 ImageAI 库的 ObjectDetection 类包含用于通过预训练模型对任何图像或一组图像执行对象检测的方法。使用 ImageAI,我们可以检测和识别八十种不同类型的常见日常物品。 设置环境在本教程的这一部分,我们将考虑安装所需的库,包括 ImageAI。 为了使用 ImageAI,我们需要安装一些依赖项。第一步是在系统上安装 Python。我们可以从 Python 官方网站下载并安装 Python 3:https://pythonlang.cn/。 成功在系统上安装 Python 后,我们需要使用 pip 安装程序安装以下依赖项
安装命令如下所示 语法 现在我们需要下载包含我们将用于对象识别的分类方法的 TinyYOLOv3 模型文件。 链接如下 https://github.com/Olafenwa Moses/ImageAI/releases/download/1.0/yolo-tiny.h5 使用 ImageAI 执行对象识别在本节中,我们将讨论如何在 Python 中利用 ImageAI 库。为了更好地理解和清晰,执行对象识别的过程分为几个步骤。 步骤 1第一步是创建必要的文件夹。在本教程中,我们需要以下文件夹:
创建必要的文件夹后,Object Recognition 文件夹应包含以下子文件夹 步骤 2第二步,我们将打开首选文本编辑器,在本例中为 Visual Studio Code,编写一个 Python 脚本并创建一个名为 recognizer.py 的新文件。 步骤 3现在,让我们开始从 ImageAI 库导入 ObjectDetection 类。语法如下所示 文件:recognizer.py 步骤 4现在已经导入了所需的 ImageAI 库和 ObjectDetection 类,接下来是创建 ObjectDetection 类的实例。让我们考虑以下代码片段。 文件:recognizer.py 步骤 5让我们使用以下代码片段指定模型、输入图像和输出图像的路径。 文件:recognizer.py 步骤 6一旦我们实例化了 ObjectDetection 类,我们就可以调用该类中的不同函数了。该类包含以下函数以调用预训练模型
在本教程中,我们将使用预训练的 TinyYOLOv3 模型,因此,我们将使用 setModelTypeAsTinyYOLOv3() 函数来加载模型。 让我们考虑以下代码片段 文件:recognizer.py 步骤 7现在,我们将调用 setModelPath() 函数。此函数将接受一个字符串,其中包含预训练模型的路径。 让我们考虑以下代码片段 文件:recognizer.py 步骤 8在此步骤中,我们将使用我们之前创建的 recognizer 实例调用 loadModel() 函数。此函数将加载 setModelPath() 类方法指定的路径中的模型。 让我们考虑相同的以下代码片段。 文件:recognizer.py 步骤 9我们必须使用之前创建的 recognizer 对象调用 detectObjectsFromImage() 函数。 此函数接受两个参数:input_image 和 output_image_path。input_image 参数是待识别图像所在的位置,而 output_image_path 参数是存储带有已检测对象的图像的位置。此函数将返回一个字典,其中包含图像中检测到的每个对象的名称和百分比概率。 其语法如下所示 文件:recognizer.py 步骤 10最后,我们可以通过迭代字典中的每个元素来访问字典元素。 其语法如下所示 文件:recognizer.py 对象识别模型的完整 Python 脚本让我们考虑以下对象识别模型的脚本。 文件:recognizer.py 输出 car : 88.85036110877991 car : 85.83406209945679 bus : 70.04978060722351 car : 80.88288903236389 car : 55.334705114364624 person : 61.084866523742676 car : 68.46083402633667 person : 56.165677309036255 person : 71.58655524253845 car : 59.49597954750061 person : 55.276620388031006 person : 69.08922791481018 person : 59.92640256881714 car : 82.73208141326904 person : 54.69227433204651 person : 67.25137233734131 car : 68.9003050327301 person : 77.32996344566345 person : 53.02640199661255 person : 81.33729696273804 person : 83.60849618911743 person : 50.34937262535095 原始图像 ![]() 对象识别后的图像 ![]() 最后,我们可以看到 ImageAI 已成功识别出图像中的汽车和人物。 下一主题Python VLC 模块 |
?Python 中的单因素方差分析 单因素方差分析(也称为“方差分析”)是一种测试,可用于确定各组结果之间是否存在任何显著的统计差异。假设:单因素方差分析基于以下备择假设和原假设。H0(原假设)...
阅读 2 分钟
简介 双轴快速排序是一种复杂的排序算法,它改进了原始的快速排序技术。这种方法背后的主要思想是通过使用两个轴心项而不是一个来有效地分割输入数组。对于各种输入数据集,双轴方法极大地增强了...
阅读 4 分钟
在下面的教程中,我们将学习如何借助 Python 编程语言的 Tkinter、OS 和 Shutil 模块构建一个基于 GUI 的文件浏览器。这个项目适合初学者,我们所需要的只是与所有这些模块相关的一些简要知识...
34 分钟阅读
Python IDE 和代码编辑器 您可以在本手册中找到许多适用于初学者和专家的 Python 集成开发环境和代码编辑器。用于编写和编辑代码的工具称为代码编辑器。它们通常是可移植的,并且对学习有益。使用 IDE 变得必要...
阅读 3 分钟
break 是 Python 中循环的控制语句。它用于管理循环的顺序。假设我们想结束一个循环并继续执行后面的代码;break 可以帮助我们做到这一点。当一个...
阅读 2 分钟
?函数是 Python 编程中不可或缺的一部分,它允许您将代码封装成可重用块。理解如何正确调用函数是编写有效 Python 代码的基础。在本文中,我们将探讨在 Python 中调用函数的各种方法,包括...
阅读 3 分钟
尽管移动和 Web 应用程序似乎占据了软件开发市场,但对传统的图形用户界面 (GUI) 桌面应用程序仍然存在需求。对于热衷于使用 Python 编程语言创建此类应用程序的开发人员来说,有...
阅读25分钟
在 Python 中,使用广度优先和深度优先搜索技术来搜索树或图。这两者都是每个新手 Python 程序员必须掌握的最重要的主题。我们将探讨 Python 中的广度优先搜索到底是什么,它的算法是如何工作的,如何...
阅读 6 分钟
任意轴上两点之间的欧几里得距离是它们之间的最短距离。换句话说,它是两点之间的位移长度。给定 2 维平面上的两点 A (a, b) 和 B (c, d),A 和 B 之间的欧几里得距离是...
阅读 3 分钟
在本教程中,我们将学习如何在 Python 中计算时间序列数据的移动平均线。移动平均线是指从固定长度的数据列表中获得的一组平均值的统计量。这些数据值是子集...
阅读 13 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India