入门——使用TensorFlow.js进行AI图像分类
目录
使用TensorFlow.js的好处
它可以在任何地方运行。
您将获得良好的性能。
您可以加载现有模型。
您可以重新训练导入的模型。
您可以直接在浏览器中创建模型。
预测狗的品种
导入模型和图像
使用模型
放在一起
下一步是什么?
- 下载源-10.6 MB
在过去的几年中,软件行业发展迅速。随着软件架构的改进,计算能力的快速提高以及机器中嵌入的决策能力,用户现在可以与更智能的系统进行交互。从Facebook的“您可能认识的人”功能到智慧城市和自动驾驶汽车,公司正在寻找新的方法在其产品和服务中利用AI的“银弹”。
图像识别是AI引起广泛关注的关键领域之一,随着越来越复杂的工具的出现,图像识别的普及度也在不断增长。借助AI和计算机视觉中的先进工具和技术,已经可以在Web浏览器中进行图像识别,这意味着我们不再需要将输入图像发送到服务器。而是仅发送检测到的结果。这意味着您的用户将不必担心隐私。
使用TensorFlow.js的好处
TensorFlow.js是Google开发的JavaScript库,允许开发人员在浏览器中训练和使用机器学习(ML)模型。这也使熟悉JavaScript的开发人员无需学习新的编程语言即可构建和使用机器学习模型。它是TensorFlow的配套库,TensorFlow是一个流行的Python ML库。那么为什么在有TensorFlow时选择TensorFlow.js?让我们快速分析TensorFlow.js提供的内容。
它可以在任何地方运行。
作为JavaScript,它可以在任何位置运行,而无需任何先决条件安装。以前,要运行ML模型,需要托管一个模型并为用户提供处理能力,或者用户需要下载并安装所有必需的软件包才能运行模型,这对于商业产品而言是不可行的设置。TensorFlow.js无需托管静态站点,而是允许我们实际使用用户的处理能力为我们的业务做出明智的决策。
您将获得良好的性能。
TensorFlow.js提供了令人惊讶的良好性能,因为它使用了WebGL(JavaScript图形API),因此是硬件加速的。为了获得更高的性能,可以使用tfjs-node(TensorFlow的Node.js版本)。
您可以加载现有模型。
TensorFlow.js允许您直接在浏览器中加载预训练的模型。如果您已使用Python离线训练过TensorFlow或Keras模型,则可以将其保存到网络上可用的位置,然后将其加载到浏览器中进行推理。您还可以使用其他库来包括诸如图像分类和姿势检测之类的功能,而无需从头开始训练模型。在本系列的后面,我们将看到这种情况的示例。
您可以重新训练导入的模型。
TensorFlow.js还允许您使用迁移学习来使用浏览器中收集的少量数据来提升现有模型。这使我们能够快速有效地训练准确的模型。在本系列的后面,我们还将看到一个实际应用中的转移学习示例。
您可以直接在浏览器中创建模型。
在最基本的级别上,您可以使用TensorFlow.js完全在浏览器中定义、训练和运行模型。
如前所述,使用TensorFlow.js意味着您无需安装即可在静态HTML文档中创建和运行AI模型。在撰写本文时,TensorFlow.js涵盖了TensorFlow几乎90%的功能。根据您要解决的问题,很可能已经存在一个预先训练的模型供您导入代码。
预测狗的品种
假设我们对预测狗的品种(图像分类)感兴趣。我们可以使用的最受欢迎的图像分类模型之一是通过TensorFlow.js进行预训练的模型,称为MobileNet。MobileNet是参数化的小型、低延迟、低功耗模型,可以满足各种使用案例的资源限制。这些模型已经在数百万张图像上进行了训练,以识别大约1000种不同的类别,包括我们将要看到的狗的品种。您可以轻松地基于这些模型来分类、检测和分割图像。
导入模型和图像
接下来,请使用您喜欢的文本编辑器或IDE创建一个静态HTML文档。然后,我们开始在HTML文档的head标签中导入所需的模型和MobileNet模型:
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs/dist/tf.min.js"> </script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet"></script>
为了使图像可被浏览器识别,我们将在HTML文档的正文中添加一个图像元素,该元素将用于预测:
<img id="image" alt="dog breed" src="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQ05Ityl0QQfz-ZHTHyJcPLuyKcxMZKyVdrPg&usqp=CAU" crossorigin='anonymous'/>
我们包含了该crossorigin='anonymous'
属性,以便我们可以在浏览器中打开HTML文档,而无需为图像设置服务器。如果要使用本地图像,一种方法是通过允许cors的服务器来提供图像。您可以在命令行中使用http-server,如下所示:
http-server -c1 --cors
使用模型
我们需要创建一个函数来加载经过预先训练的MobileNet模型,并对image标记中指定的图像进行分类。
const predictBreed = async () => {console.log("Model is loading...");const model = await mobilenet.load();console.log("Model loaded Successfully!")const predictions = await model.classify(image);console.log('Predictions: ', predictions);}
放在一起
一切就绪后,您的代码应如下所示:
<html lang="en"><head><meta charset="UTF-8"><title>Predict dog breed</title><script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs/dist/tf.min.js"> </script><script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet"></script></head><body><h3>Predicting the breed of the dog</h3><img id="image" alt="dog breed" src="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQ05Ityl0QQfz-ZHTHyJcPLuyKcxMZKyVdrPg&usqp=CAU" crossorigin='anonymous'/><script>const image = document.getElementById('image');const predictBreed = async () => {console.log("Model is loading...");const model = await mobilenet.load();console.log("Model loaded Successfully!")const predictions = await model.classify(image);console.log('The dog in the picture could be: ', predictions);}predictBreed();</script></body>
</html>
此代码将返回按概率得分排序的三个预测的数组。如果在浏览器中打开开发人员工具的控制台,则输出应类似于以下内容:
下一步是什么?
在本文中,我们使用TensorFlow.js加载了预先训练的模型,以预测Web浏览器中狗的种类。接下来可能是什么?如果我们想识别超出定义标签范围的对象怎么办?
在本系列的下一篇文章中,我们将创建一个Web应用程序,该应用程序可以随时随地训练分类器并识别脾气暴躁的面部表情。
入门——使用TensorFlow.js进行AI图像分类相关推荐
- 使用TensorFlow.js进行AI在网络摄像头中翻译手势和手语
目录 起点 检测手势 其他手势和手语 技术脚注 终点线 下一步是什么? TensorFlow + JavaScript.现在,最流行,最先进的AI框架支持地球上使用最广泛的编程语言,因此,让我们在我们 ...
- 使用TensorFlow.js的AI聊天机器人三:改进了文本中的情感检测
目录 使用通用语句编码器设置TensorFlow.js代码 GoEmotion数据集 通用句子编码器 训练AI模型 让我们发现情绪 终点线 下一步是什么? 下载项目代码-9.9 MB TensorFl ...
- 使用TensorFlow.js的AI聊天机器人一:检测文本中的情绪
目录 设置TensorFlow.js代码 GoEmotion数据集 言语包 训练AI模型 检测文本中的情绪 终点线 下一步是什么? 下载项目代码-9.9 MB TensorFlow + JavaScr ...
- 使用TensorFlow.js的AI聊天机器人六:生成莎士比亚独白
目录 设置TensorFlow.js代码 小莎士比亚数据集 通用句子编码器 莎士比亚独白在行动 终点线 总结 下载项目代码-9.9 MB TensorFlow+JavaScript.现在,最流行.最先 ...
- 使用TensorFlow.js的AI聊天机器人五:创建电影对话聊天机器人
目录 设置UpTensorFlow.js代码 康奈尔电影报价数据集 通用句子编码器 电影聊天机器人在行动 终点线 下一步是什么? 下载项目文件-9.9 MB TensorFlow+JavaScript ...
- 使用TensorFlow.js的AI聊天机器人四:改进的Trivia Expert
目录 使用通用语句编码器设置TensorFlow.js代码 TriviaQA数据集 通用句子编码器 聊天机器人在行动 终点线 下一步是什么? 下载项目代码-9.9 MB TensorFlow+Java ...
- 使用TensorFlow.js的AI聊天机器人二:训练Trivia Expert AI
目录 设置TensorFlow.js代码 TriviaQA数据集 单词嵌入和标记 训练AI模型 聊天机器人(Trivia Chatbot)在行动 终点线 下一步是什么? 下载项目文件-9.9 MB T ...
- 使用TensorFlow.js在浏览器中进行深度学习入门
目录 设置TensorFlow.js 创建训练数据 检查点 定义神经网络模型 训练AI 测试结果 终点线 内存使用注意事项 下一步是什么?狗和披萨? 下载TensorFlowJS示例-6.1 MB T ...
- JavaScript武力值飙升!用TensorFlow.js轻松实现在浏览器里搞深度学习......
近年来,AI 与人类的生活越来越紧密,慢慢变得无处不在.那么提到 AI ,我们会想到什么?小编最先想到的是机器人.早在小学作文中,我就写到 2021 年到处都是机器人,机器人汽车到处飞.结果 2021 ...
最新文章
- 算法炒房三月亏20多亿!房地产巨头大翻车!
- 2019年度苏州之春摄影作品展
- PostgreSQL入门,PostgreSQL和mysql
- vue 中实现异步加载模块
- mysql常用语句整理
- 与python相关的爬虫工具_python爬虫常用工具集合
- web developer tips (74):在 Visual Studio 2008设计器里添加或移除AJAX Extenders
- JDBC中的SPI实现
- 3.0的USB,我们都用错了。
- 没有人躲得过:被数学支配的噩梦
- 植物病害鉴定真的需要深度CNN吗?
- win11触屏模式在哪 Windows11触屏模式的设置方法
- c语言bubblesort函数,C++实现冒泡排序(BubbleSort)
- 自助BI项目实施可行性分析报告
- 关于html的英文参考文献,英文参考文献标准格式
- MATLAB符号运算小技巧
- Javascript设计模式-18-状态模式
- 程序员如何写好自己的简历,一位 5 年中大厂老哥跟你聊聊
- 移动端自动轮播可滑动轮播图
- IME输入法编程:第一章 Windows9x系统下汉字输入法的基本原理
热门文章
- python程序开机自启动_Linux下Python脚本自启动和定时启动的详细步骤
- mysql+导入+306_mysql常用命令二
- androidstuio实现页面跳转_vue-router 基础:4类路由跳转示例
- vb.net 打开ie 传参数_FF与IE对javascript和CSS的区别?
- 平面海报设计素材|几何风格极简流行风,继续
- UI设计师样机模型|超酷折叠屏UI设计指南
- UI设计干货素材|动效导航,漂亮的悬停动效
- app素材模板|ui界面的导航设计实用干货
- 牛客网编程题03--明明的随机数
- Linux Zero-copy零拷贝技术:源码示例