WebAI.js 开源项目教程
WebAI.js A simple Web AI model deployment tool using JavaScript based on OpenCV.js and ONNXRuntime 项目地址: https://gitcode.com/gh_mirrors/we/WebAI.js
1. 项目介绍
1.1 项目概述
WebAI.js 是一个基于 OpenCV.js 和 ONNXRuntime 开发的 Web 前端 AI 模型部署工具。它允许开发者通过简单的 HTML 脚本标签或 Node.js 环境,快速部署和使用各种计算机视觉(CV)模型,如目标检测、图像分类和图像分割等。
1.2 主要特性
- 支持多种模型类型:包括目标检测(如 Yolo、ssd)、图像分类(如 MobileNet、EfficientNet)和图像分割(如 BiseNet、PPSeg)。
- 兼容多个套件:支持 PaddleDetection、PaddleClas 和 PaddleSeg 等套件的部分导出模型。
- 灵活的部署方式:支持 HTML 脚本标签引入和 Node.js 环境部署。
- 丰富的预处理配置:通过配置文件对模型的预处理进行详细配置。
2. 项目快速启动
2.1 安装
2.1.1 HTML 脚本标签引入
<script type="module" src="https://cdn.jsdelivr.net/gh/AgentMaker/WebAI.js@dev_v3/dist/webai.min.mjs"></script>
2.1.2 Node.js 安装
$ npm install webai-js
2.2 模型加载与推理
2.2.1 加载模型
// 加载基础模型
const model = new WebAI.Model(modelURL, sessionOption, init, preProcess, postProcess);
// 加载CV模型
const modelCV = new WebAI.CV(modelURL, inferConfig, sessionOption, getFeeds, postProcess);
// 加载检测模型
const modelDet = new WebAI.Det(modelURL, inferConfig, sessionOption, getFeeds, postProcess);
// 加载分类模型
const modelCls = new WebAI.Cls(modelURL, inferConfig, sessionOption, getFeeds, postProcess);
// 加载分割模型
const modelSeg = new WebAI.Seg(modelURL, inferConfig, sessionOption, getFeeds, postProcess);
2.2.2 模型推理
// 基础模型推理
model.infer(args);
// CV模型推理
modelCV.infer(args);
// 检测模型推理
modelDet.infer(imgRGBA, drawThreshold);
// 分类模型推理
modelCls.infer(imgRGBA, topK);
// 分割模型推理
modelSeg.infer(imgRGBA);
3. 应用案例和最佳实践
3.1 目标检测应用
使用 WebAI.js 部署一个目标检测模型,实时检测视频流中的物体。
const modelDet = new WebAI.Det('model.onnx', 'config.json');
function detectObjects(videoFrame) {
const result = modelDet.infer(videoFrame);
// 处理检测结果
}
3.2 图像分类应用
使用 WebAI.js 对上传的图像进行分类,返回置信度最高的前 K 个类别。
const modelCls = new WebAI.Cls('model.onnx', 'config.json');
function classifyImage(image) {
const result = modelCls.infer(image, 5);
// 处理分类结果
}
4. 典型生态项目
4.1 OpenCV.js
OpenCV.js 是一个用于图像处理的 JavaScript 库,WebAI.js 基于 OpenCV.js 提供了图像预处理功能。
4.2 ONNXRuntime
ONNXRuntime 是一个高性能的推理引擎,支持多种硬件加速,WebAI.js 使用 ONNXRuntime 进行模型推理。
4.3 PaddlePaddle
PaddlePaddle 是一个深度学习框架,WebAI.js 支持 PaddleDetection、PaddleClas 和 PaddleSeg 等套件的模型部署。
通过以上模块的介绍和示例代码,开发者可以快速上手并应用 WebAI.js 进行 AI 模型的前端部署。
WebAI.js A simple Web AI model deployment tool using JavaScript based on OpenCV.js and ONNXRuntime 项目地址: https://gitcode.com/gh_mirrors/we/WebAI.js
版权归原作者 虞亚竹Luna 所有, 如有侵权,请联系我们删除。