如何在Web页面中集成AI图像识别功能

2024-05-29 12:04

本文主要是介绍如何在Web页面中集成AI图像识别功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

在信息时代,Web 页面成为我们与世界交互的重要窗口。AI 技术的迅猛发展,特别是图像识别技术,为 Web 页面带来了革命性的变化。通过在 Web 页面上实现图像识别,我们即将迈入一个更加智能与便捷的时代。这种技术不仅使网页能够理解图像内容,还为用户提供了前所未有的互动体验。本文将带你一步步实现这一功能,揭开 AI 赋能 Web 页面的神秘面纱。

具体步骤

HTML 部分

首先,我们需要创建一个简单的 HTML 框架来实现文件上传和显示图片。我们可以通过 Emmet 语法快速生成以下代码:

main.container>label.custom-file-upload>input#file-upload+div#image-container+p#status

生成的 HTML 代码如下:

<main class="container"><label for="file-upload" class="custom-file-upload"><input type="file" accept="image/*" id="file-upload">上传图片</label><div id="image-container"></div><p id="status"></p>
</main>

在这段代码中,我们使用了 main 标签而不是 div,因为 main 更具语义化,表示页面的主体内容。label 标签用于关联文件上传输入框,input 标签的 type 属性为 file,并且通过 accept 属性限制只接收图像文件。

JavaScript 部分

JavaScript 部分是实现图像识别功能的核心。我们将分三步来实现这一功能。

第一步:引入库并处理文件输入

我们首先需要引入远程的 transformers 库,并禁止使用本地模型:

import { pipeline, env } from "https://cdn.jsdelivr.net/npm/@xenova/transformers@2.6.0";
env.allowLocalModels = false;

接下来,我们添加事件监听器以处理文件输入:

const fileUpload = document.getElementById('file-upload');
const imageContainer = document.getElementById('image-container');fileUpload.addEventListener('change', function (e) {const file = e.target.files[0];const reader = new FileReader();reader.onload = function (e2) {const image = document.createElement('img');image.src = e2.target.result;imageContainer.appendChild(image);detect(image);}reader.readAsDataURL(file);
});

在这段代码中,当用户选择文件时,会触发 change 事件,通过 FileReader 对象读取文件,并在页面上显示图片。

第二步:AI 对象检测

为了实现对象检测,我们需要创建一个检测器并处理图像:

const status = document.getElementById('status');const detect = async (image) => {status.textContent = "分析中...请稍等一会";const detector = await pipeline("object-detection", "Xenova/detr-resnet-50");const output = await detector(image.src, {threshold: 0.1,percentage: true});output.forEach(renderBox);
}

在这段代码中,我们通过异步函数 detect 调用对象检测模型,并在页面上显示“分析中”的提示信息。

第三步:渲染检测结果

最后,我们需要在图像上绘制检测到的对象边界框并显示标签:

function renderBox({ box, label }) {const { xmax, xmin, ymax, ymin } = box;const boxElement = document.createElement("div");boxElement.className = "bounding-box";Object.assign(boxElement.style, {borderColor: '#123123',borderWidth: '1px',borderStyle: 'solid',left: 100 * xmin + '%',top: 100 * ymin + '%',width: 100 * (xmax - xmin) + "%",height: 100 * (ymax - ymin) + "%"});const labelElement = document.createElement('span');labelElement.textContent = label;labelElement.className = "bounding-box-label";labelElement.style.backgroundColor = '#000000';boxElement.appendChild(labelElement);imageContainer.appendChild(boxElement);
}

在这段代码中,我们创建了一个 div 元素作为边界框,并将其添加到图像上。同时,我们还创建了一个 span 元素用于显示检测到的对象标签。

CSS 部分

为了使页面更美观,我们需要添加一些基本的 CSS 样式:

.container {margin: 40px auto;width: max(50vw, 400px);display: flex;flex-direction: column;align-items: center;
}.custom-file-upload {display: flex;align-items: center;cursor: pointer;gap: 10px;border: 2px solid black;padding: 8px 16px;border-radius: 6px;
}#file-upload {display: none;
}#image-container {width: 100%;margin-top: 20px;position: relative;
}#image-container>img {width: 100%;
}.bounding-box {position: absolute;box-sizing: border-box;
}.bounding-box-label {position: absolute;color: white;font-size: 12px;
}

我们详细介绍了如何使用 HTML、JavaScript 和 CSS 实现在 Web 页面上进行 AI 图像识别。我们分步骤实现了文件读取、AI 分析和结果渲染。希望这些内容能为你的项目提供帮助,助你迈向更加智能化的未来。通过灵活的封装和模块化思想,我们可以轻松实现复杂的功能,并提升 Web 页面的互动性和智能化水平。

插入 PlugLink 的巧妙之处

在实现上述功能时,我们可以利用 PlugLink 来管理和部署我们的 AI 插件。PlugLink 作为一个开放的插件平台,能够让开发者轻松创建、管理和共享插件,从而提升开发效率和代码复用性。例如,我们可以将上面的图像识别功能打包成一个 PlugLink 插件,通过 PlugLink 平台进行分发和管理。

PlugLink 的插件开发标准方法非常简单,按照 PlugLink 提供的示例代码和开发文档,可以快速将现有的功能打包成插件。并且,PlugLink 支持多种插件的无缝集成和自动化工作流,让你的 Web 应用更具灵活性和扩展性。

目前发布了开源版和应用版,开源版下载地址:
Github地址:https://github.com/zhengqia/PlugLink
Gitcode地址:https://gitcode.com/zhengiqa8/PlugLink/overview
Gitee地址:https://gitee.com/xinyizq/PlugLink

应用版下载地址:
链接:https://pan.baidu.com/s/19tinAQNFDxs-041Zn7YwcQ?pwd=PLUG
提取码:PLUG

这篇关于如何在Web页面中集成AI图像识别功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1013610

相关文章

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

AI儿童绘本创作

之前分享过AI儿童绘画的项目,但是主要问题是角色一致要花费很长的时间! 今天发现了这款,非常奈斯! 只需输入故事主题、风格、模板,软件就会自动创作故事内容,自动生成插画配图,自动根据模板生成成品,测试效果如下图。 变现方式:生成儿童绘本发布到各平台,吸引宝妈群体进私域。  百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

JavaScript全屏,监听页面是否全屏

在JavaScript中,直接监听浏览器是否进入全屏模式并不直接支持,因为全屏API主要是关于请求和退出全屏模式的,而没有直接的监听器可以告知页面何时进入或退出全屏模式。但是,你可以通过在你的代码中跟踪全屏状态的改变来模拟这个功能。 以下是一个基本的示例,展示了如何使用全屏API来请求全屏模式,并在请求成功或失败时更新一个状态变量: javascriptlet isInFullscreen =

SpringBoot集成Netty,Handler中@Autowired注解为空

最近建了个技术交流群,然后好多小伙伴都问关于Netty的问题,尤其今天的问题最特殊,功能大概是要在Netty接收消息时把数据写入数据库,那个小伙伴用的是 Spring Boot + MyBatis + Netty,所以就碰到了Handler中@Autowired注解为空的问题 参考了一些大神的博文,Spring Boot非controller使用@Autowired注解注入为null的问题,得到

vue项目集成CanvasEditor实现Word在线编辑器

CanvasEditor实现Word在线编辑器 官网文档:https://hufe.club/canvas-editor-docs/guide/schema.html 源码地址:https://github.com/Hufe921/canvas-editor 前提声明: 由于CanvasEditor目前不支持vue、react 等框架开箱即用版,所以需要我们去Git下载源码,拿到其中两个主

android 免费短信验证功能

没有太复杂的使用的话,功能实现比较简单粗暴。 在www.mob.com网站中可以申请使用免费短信验证功能。 步骤: 1.注册登录。 2.选择“短信验证码SDK” 3.下载对应的sdk包,我这是选studio的。 4.从头像那进入后台并创建短信验证应用,获取到key跟secret 5.根据技术文档操作(initSDK方法写在setContentView上面) 6.关键:在有用到的Mo

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现

Android我的二维码扫描功能发展史(完整)

最近在研究下二维码扫描功能,跟据从网上查阅的资料到自己勉强已实现扫描功能来一一介绍我的二维码扫描功能实现的发展历程: 首页通过网络搜索发现做android二维码扫描功能看去都是基于google的ZXing项目开发。 2、搜索怎么使用ZXing实现自己的二维码扫描:从网上下载ZXing-2.2.zip以及core-2.2-source.jar文件,分别解压两个文件。然后把.jar解压出来的整个c