Azure Machine Learning - Azure可视化图像分类操作实战
目录
- 一、数据准备
- 二、创建自定义视觉资源
- 三、创建新项目
- 四、选择训练图像
- 五、上传和标记图像
- 六、训练分类器
- 七、评估分类器
- 概率阈值
- 八、管理训练迭代
在本文中,你将了解如何使用Azure可视化页面创建图像分类模型。 生成模型后,可以使用新图像测试该模型,并最终将该模型集成到你自己的图像识别应用中。
关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。
一、数据准备
- 一组用于训练分类模型的图像。 可以使用 GitHub 上的一组示例图像。 或者,可以根据下面的提示选择你自己的图像。
二、创建自定义视觉资源
若要使用自定义视觉服务,需要在 Azure 中创建“自定义视觉训练和预测”资源。 为此,在 Azure 门户中填写创建自定义视觉页上的对话框窗口,以创建“训练和预测”资源。
三、创建新项目
在 Web 浏览器中,导航到自定义影像服务网页,然后选择“登录” 。 使用登录 Azure 门户时所用的帐户进行登录。
- 若要创建首个项目,请选择“新建项目” 。 将出现“创建新项目”对话框 。
- 输入项目名称和描述。 然后选择自定义视觉训练资源。 如果登录帐户与 Azure 帐户相关联,则“资源”下拉列表将显示所有兼容的 Azure 资源。
注意
如果没有可用的资源,请确认已使用登录 Azure 门户时所用的同一帐户登录 customvision.ai。 此外,请确认在自定义视觉网站中选择的“目录”与自定义视觉资源所在 Azure 门户中的目录相同。 在这两个站点中,可从屏幕右上角的下拉帐户菜单中选择目录。
-
选择“项目类型”下的“分类”。 然后,在“分类类型”下,根据用例选择“多标签”或“多类”。 多标签分类将任意数量的标记应用于图像(零个或多个),而多类分类将图像分类为单个类别(提交的每个图像将被分类为最有可能的标记)。 以后可以更改分类类型(如果需要)。
-
接下来,选择一个可用域。 每个域都会针对特定类型的图像优化模型,如下表所述。 稍后可按需更改域。
域 目的 常规 针对各种图像分类任务进行优化。 如果其他域都不合适,或者不确定要选择哪个域,请选择“通用”域。 食物 针对餐厅菜肴的照片进行优化。 如果要对各种水果或蔬菜的照片进行分类,请使用“食品”域。 特征点 针对可识别的自然和人造地标进行优化。 在照片中的地标清晰可见的情况下,该域效果最佳。 即使照片中的人物稍微遮挡了地标,该域仍然有效。 零售 针对购物目录或购物网站中的图像进行优化。 若想对连衣裙、裤子和衬衫进行精准分类,请使用此域。 压缩域 针对移动设备上实时分类的约束进行优化。 可导出压缩域生成的模型在本地运行。 -
最后,选择“创建项目”。
四、选择训练图像
作为最低要求,我们建议在初始训练集中每个标记使用至少 30 张图像。 此外还需要收集一些额外的图像,以便在训练模型后测试模型。
为了有效地训练模型,请使用具有视觉多样性的图像。 选择在以下方面有所不同的图像:
- 照相机角度
- 照明
- background
- 视觉样式
- 个人/分组主题
- 大小
- type
此外,请确保所有训练图像满足以下条件:
- .jpg、.png、.bmp 或 .gif 格式
- 大小不超过 6 MB (预测图像不超过 4 MB)
- 最短的边不小于 256 像素;任何小于此像素的图像将通过自定义影像服务自动纵向扩展
五、上传和标记图像
在本部分中,将上传图像并手动标记图像以帮助训练分类器。
- 若要添加图像,请选择“添加图像”,然后选择“浏览本地文件” 。 选择“打开”以移至标记。 标记选择将应用于已选择要上传的整组图像,因此根据其应用的标记将图像分成单独的组更容易上传。 还可在上传图像后更改单个图像的标记。
- 若要创建标记,请在“我的标记”字段中输入文本,然后按 Enter 键。 如果标记已存在,它会在下拉列表菜单中显示。 在多标签项目中,可以将多个标记添加到图像,但多类项目中只能添加一个标记。 若要完成上传图像,请使用“上传 [编号] 文件”按钮。
- 上传图像后,选择“完成”。
若要上传另一组图像,请返回到本部分顶部并重复上述步骤。
六、训练分类器
若要训练分类器,请选择“训练”按钮。 分类器使用所有当前图像来创建模型,该模型可标识每个标记的视觉质量。 这个过程可能需要几分钟。
此训练过程应该只需要几分钟的时间。 在此期间,会在“性能”选项卡显示有关训练过程的信息。
七、评估分类器
完成训练后,评估并显示该模型的性能。 自定义视觉服务使用提交用于训练的图像来计算精确度和召回率。 精确度和召回率是分类器有效性的两个不同的度量:
- 精确度表示已识别的正确分类的分数。 例如,如果模型将 100 张图像识别为狗,实际上其中 99 张是狗,那么精确度为 99%。
- 召回率表示正确识别的实际分类的分数。 例如,如果实际上有 100 张苹果的图像,并且该模型将 80 张标识为苹果,则召回率为 80%。
概率阈值
请注意“性能”选项卡左窗格上的“概率阈值”滑块 。这是预测被视为正确时所需具有的置信度(用于计算精度和召回率)。
当解释具有高概率阈值的预测调用时,它们往往会以牺牲召回为代价返回高精度的结果 - 检测到的分类是正确的,但许多分类仍然未被检测到。 使用较低的概率阈值则恰恰相反 - 大多数实际分类会被检测到,但该集合内有更多误报。 考虑到这一点,应该根据项目的特定需求设置概率阈值。 稍后,在客户端接收预测结果时,应使用与此处所用概率阈值相同的概率阈值。
八、管理训练迭代
每次训练分类器时,都会创建一个新的迭代,其中包含已更新的性能指标。 可以在“性能”选项卡的左窗格中查看所有迭代。还可以找到“删除”按钮,如果迭代已过时,可以使用该按钮删除迭代。 删除迭代时,会删除唯一与其关联的所有图像。
请参阅[将模型与预测 API 配合使用],以了解如何以编程方式访问已训练模型。
关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。
相关文章:

Azure Machine Learning - Azure可视化图像分类操作实战
目录 一、数据准备二、创建自定义视觉资源三、创建新项目四、选择训练图像五、上传和标记图像六、训练分类器七、评估分类器概率阈值 八、管理训练迭代 在本文中,你将了解如何使用Azure可视化页面创建图像分类模型。 生成模型后,可以使用新图像测试该模型…...

PaddleOCR学习笔记
Paddle 功能特性 PP-OCR系列模型列表 https://github.com/PaddlePaddle/PaddleOCR#%EF%B8%8F-pp-ocr%E7%B3%BB%E5%88%97%E6%A8%A1%E5%9E%8B%E5%88%97%E8%A1%A8%E6%9B%B4%E6%96%B0%E4%B8%AD PP-OCR系列模型列表(V4,2023年8月1日更新) 配置文…...

安卓用SQLite数据库存储数据
什么是SQLite? SQLite是安卓中的轻量级内置数据库,不需要设置用户名和密码就可以使用。资源占用较少,运算速度也比较快。 SQLite支持:null(空)、integer(整形)、real(小…...

MMFN-AL
MMFN means ‘multi-modal fusion network’ 辅助信息 作者未提供代码...

7、独立按键控制LED状态
按键的抖动 对于机械开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个开关在闭合时不回马上稳定地接通,在断开时也不会一下子断开,所以在开关闭合及断开的瞬间会伴随一连串的抖动 #include <REGX52.H…...

香蕉派BPI-M4 Zero单板计算机采用全志H618,板载2GRAM内存
Banana Pi BPI-M4 Zero 香蕉派 BPI-M4 Zero是BPI-M2 Zero的最新升级版本。它在性能上有很大的提高。主控芯片升级为全志科技H618 四核A53, CPU主频提升25%。内存升级为2G LPDDR4,板载8G eMMC存储。它支持5G WiFi 和蓝牙, USB接口也升级为type-C。 它具有与树莓派 …...
微信小程序内部跳到外部小程序
要在微信小程序中跳转到外部小程序,可以使用wx.navigateToMiniProgram函数。以下是一个示例: wx.navigateToMiniProgram({appId: 外部小程序的appId,path: 外部小程序的路径,extraData: {id: xxx},success(res) {// 跳转成功} })在这个示例中࿰…...
Spring Boot中设置文件上传大小限制
在Spring Boot中,可以通过以下步骤来设置上传文件的大小: 在application.properties或application.yml文件中,添加以下配置: 对于application.properties: spring.servlet.multipart.max-file-size128MB spring.se…...
8、独立按键控制LED显示二进制
独立按键控制LED显示二进制 #include <REGX52.H>void Delay(unsigned int xms) //12.000MHz {unsigned char i, j;while(xms--){i 2;j 239;do{while (--j);} while (--i);} }void main() {//数据类型刚好是8位与51单片机IO口寄存器位数相同(默认高电平&am…...

命名空间、字符串、布尔类型、nullptr、类型推导
面向过程语言:C ——> 重视求解过程 面向对象语言:C ——> 重视求解的方法 面向对象的三大特征:封装、继承和多态 C 和 C 在语法上的区别 1、命名空间(用于解决命名冲突问题) 2、函数重载和运算符重载…...

力控软件与多台PLC之间ModbusTCP/IP无线通信
Modbus TCP/IP 是对成熟的 Modbus 协议的改编, 因其开放性、简单性和广泛接受性而在工业自动化系统中发挥着举足轻重的作用。它作为连接各种工业设备的通用通信协议,包括可编程逻辑控制器 (PLC)、远程终端单元 (RTU) 和传感器。它提供标准化的 TCP 接口&…...

第96步 深度学习图像目标检测:FCOS建模
基于WIN10的64位系统演示 一、写在前面 本期开始,我们继续学习深度学习图像目标检测系列,FCOS(Fully Convolutional One-Stage Object Detection)模型。 二、FCOS简介 FCOS(Fully Convolutional One-Stage Object D…...
常用的git命令完整详细109条
Git是一个很强大的分布式版本控制系统,以下是一些常用的git命令: git init:在当前目录下创建一个新的Git仓库。git add 文件名:将指定的文件添加到暂存区,准备提交。git commit -m “备注”:提交暂存区的文…...
Ansible的错误处理
环境 管理节点:Ubuntu 22.04控制节点:CentOS 8Ansible:2.15.6 ignore_errors 使用 ignore_errors: true 来让Ansible忽略错误(运行结果是 failed ): --- - hosts: alltasks:- name: task1shell: cat /t…...

MySQL-04-InnoDB存储引擎锁和加锁分析
Latch一般称为闩锁(轻量级锁),因为其要求锁定的时间必须非常短。在InnoDB存储引擎中,latch又分为mutex(互斥量)和rwlock(读写锁)。 Lock的对象是事务,用来锁定的是…...

tcp/ip协议2实现的插图,数据结构2 (19 - 章)
(68) 68 十九1 选路请求与消息 函rtalloc,rtalloc1,rtfree (69) 69 十九2 选路请求与消息 函rtrequest (70)...

2023.11.22 -数据仓库的概念和发展
目录 https://blog.csdn.net/m0_49956154/article/details/134320307?spm1001.2014.3001.5501 1经典传统数仓架构 2离线大数据数仓架构 3数据仓库三层 数据运营层,源数据层(ODS)(Operational Data Store) 数据仓库层&#…...

java springboot测试类虚拟MVC环境 匹配请求头指定key与预期值是否相同
上文 java springboot测试类虚拟MVC环境 匹配返回值与预期内容是否相同 (JSON数据格式) 版 中 我们展示 json匹配内容的方式 那么 本文我们来看看Content-Type属性的匹配方式 首先 我们从返回体可以看出 Content-Type 在请求头信息 Headers 中 我们直接将测试类代码更改如下 …...

Rust生态系统:探索常用的库和框架
大家好!我是lincyang。 今天我们来探索Rust的生态系统,特别是其中的一些常用库和框架。 Rust生态系统虽然相比于一些更成熟的语言还在成长阶段,但已经有很多强大的工具和库支持各种应用的开发。 常用的Rust库和框架 Serde:一个…...

01-了解微服务架构的演变过程和微服务技术栈
微服务 微服务架构演变 单体架构:将业务的所有功能集中在一个项目中开发最后打成一个包部署 优点: 架构简单, 部署成本低,适合小型项目缺点: 耦合度高, 升级维护困难 分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发称为一个服务 优点: 降低服务耦合…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...