随着相机的改进,实时物体检测已成为越来越需要的功能。从自动驾驶汽车和智能监控系统到增强现实应用,该技术被用于多种情况。
计算机视觉是一个奇特的技术名称,它使用摄像头和计算机来执行上述操作,是一个广阔而复杂的领域。但是,您可能不知道您可以从舒适的浏览器中轻松开始实时对象检测。
本文介绍如何使用React创建实时对象检测应用程序并将该应用程序部署到 Kinsta。实时对象检测应用程序利用用户的网络摄像头反馈。
先决条件
以下是本指南中使用的主要技术的细分:
React – React 用于构建应用程序的用户界面 (UI)。 React 擅长渲染动态内容,并且有助于在浏览器中呈现网络摄像头源和检测到的对象。
TensorFlow.js – TensorFlow.js是一个 JavaScript 库,可为浏览器带来机器学习的强大功能。它允许您加载用于对象检测的预训练模型并直接在浏览器中运行它们,从而无需复杂的服务器端处理。
Coco SSD :该应用程序使用名为Coco SSD的预训练对象检测模型,这是一种能够实时识别各种日常对象的轻量级模型。尽管 Coco SSD 是一个强大的工具,但值得注意的是它是在通用对象数据集上进行训练的。如果您有特定的检测需求,您可以按照本指南使用 TensorFlow.js 训练自定义模型。
设置一个新的 React 项目
创建一个新的 React 项目。为此,请运行以下命令:
npm create vite@latest kinsta-object-detection --template react
这将使用vite为您创建一个基本的 React 项目。
接下来,通过在项目中运行以下命令来安装 TensorFlow 和 Coco SSD 库:
npm i @tensorflow-models/coco-ssd @tensorflow/tfjs
现在您已准备好开始开发您的应用程序。
配置应用程序
在编写对象检测逻辑的代码之前,让我们先了解一下本指南中开发的内容。该应用程序的用户界面如下所示:
该应用程序的屏幕截图包含标题和用于激活网络摄像头访问的按钮。
应用程序用户界面设计。
当用户按下“启动网络摄像头”按钮 时,系统会提示他们授像头流的权限。一旦获得许可,应用程序就会开始显示网络摄像头图像并检测其中存在的对象。然后,它创建一 圣诞岛公司电子邮件列表 个框来显示实时图像中检测到的对象,并向其添加标签。
首先,通过将以下代码粘贴到App.jsx文件中来创建应用程序的 UI :
import ObjectDetection from './ObjectDetection';
function App() {
return (
<div className="app">
<h1>Image Object Detection</h1>
<ObjectDetection />
</div>
);
}
export default App;
此代码片段指定页面的标头并导入名为 的自定义组件ObjectDetection。该组件包含捕获网络摄像头信号并实时检测对象的逻辑。