AI+前端 —— 实现图片识别功能


前言

在当今的技术环境中,人工智能(AI)与前端开发的融合越来越普遍。其中一个显著的应用是在图像识别中,AI算法可以检测和标记图像中的对象,增强用户体验,并在网站或应用程序上实现创新功能。

下面是完成图片识别功能简易代码示例及讲解:

### 先决条件

在继续之前,请确保您对HTML、CSS和JavaScript有基本的了解。另外,熟悉与AI和图像处理相关的概念将会有所帮助。

#### Step1:导入必要的模块

```javascript

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

env.allowLocalModels = false;

```

此代码从CDN(内容传送网络)中导入必要的模块。`pipeline`和`env`是来自`@xenova/transformers`包中的。

#### Step2:文件上传事件监听器

```javascript

const fileUpload = document.getElementById('file-upload');

const imageContainer = document.getElementById('image-container')

fileUpload.addEventListener('change', function (e) {

// 当选择文件时触发的事件监听器

});

```

此部分代码从HTML文档中选择文件上传输入框和图像容器。它向文件上传输入框添加了一个事件监听器,当选择文件时触发一个函数。

#### Step3:FileReader读取上传的图像

```javascript

const reader = new FileReader();

reader.onload = function (e2) {

// 文件读取完成时执行的函数

};

reader.readAsDataURL(file);

```

当选择文件时,创建了一个`FileReader`对象。一个`onload`事件监听器被附加到读取器上,当文件读取完成时执行一个函数。

#### Step4:显示上传的图像

```javascript

const image = document.createElement('img');

image.src = e2.target.result;

imageContainer.appendChild(image);

```

在`onload`函数内部,创建了一个<`img>`元素。图像的`src`属性设置为读取文件作为数据URL的结果。图像元素被追加到HTML文档中的图像容器中。

#### Step5:启动AI检测

```javascript

detect(image);

```

显示上传的图像后,使用上传的图像作为参数调用`detect`函数。

#### Step6:使用AI模型进行对象检测

```javascript

const detector = await pipeline("object-detection", "Xenova/detr-resnet-50");

const output = await detector(image.src, {

threshold: 0.1,

percentage: true

});

```

使用`pipeline`函数从指定的模型("Xenova/detr-resnet-50")实例化一个对象检测模型("object-detection")。然后使用`await`等待`detector`对象,确保模型完全加载后再继续。接着使用`detector`对象在上传的图像上执行对象检测。

#### Step7:渲染检测到的框

```javascript

output.forEach(renderBox);

```

对输出中检测到的每个对象,调用`renderBox`函数以渲染边界框。

#### Step8:渲染边界框

```javascript

function renderBox({ box, label }) {

// 渲染边界框的函数

}

```

在`renderBox`函数内部,创建一个<`div>`元素来表示边界框。应用CSS样式来根据检测到的对象的坐标来定位和样式化边界框。创建一个<`span>`元素来在边界框内显示检测到的对象的标签。

#### 完整代码

```javascript

nlp之图片识别,两种语言

上传图片

效果图

还需要调整参数,加强精确度

这篇文章探讨了将人工智能(AI)对象检测与前端Web开发无缝集成的方法。通过按照文中所述步骤并利用现成的AI库,开发人员能够为其Web应用程序添加强大的图像识别功能。这种AI和前端技术的融合为在Web上创建智能和交互式用户体验提供了广阔的可能性。

前往揭秘前端+AI的真相:juejin.cn/post/735919…

前端实战项目——音乐播放页面:juejin.cn/post/736733…

AI大模型+prompt——实现HTML结构解析和用户评论情感分析:juejin.cn/post/736908…