用Azure Custom Vision 零代码创建一个口罩识别模型

  新冠肺炎下,地球是一家,不分国籍,不分种族,或者现在只能呆在家中,但是也是一种对抗疫的支持。停课不停学留在家中,不仅是对学生,对于所有人都是有用的。在现阶段,大家可能最需要的不是金钱,而是一个口罩。一个小小的口罩在这次新冠肺炎起到防护作用。今天就从一个口罩开始,零代码做一个口罩识别模型。

公有云的好处是降低企业在IT投入的巨大成本外,在开发上还提供各式各样的PaaS / SaaS 让你零代码就可以接入一些需要专业人士才能完成的工作。微软Azure Custom Vision 就是在公有云上提供计算机视觉零代码训练的一个项目。(https://www.customvision.ai/)

01

你需要注册一个Azure账号(https://signup.azure.com/)


注册后你就可以进入Custom Vision的门户,直接可以创建你的计算机视觉项目了。

02

点击New Project,创建一个计算机视觉项目,选择好资源位置(在国内建议用东亚)

这里介绍一下,计算机视觉一般有两种,一种是图像分类,一种是物体识别,简单来说我们要划分图片类型时基本上用分类,而要判断图片里面有什么的时候我们就用物体识别,因为我们需要判断图片里面的人是否有戴口罩,这个时候就是物体识别。当我们选择完物体识别后,我们需要选择场景,建议选用General(compact)通过Custom Vision的模型可以适配到移动设备上。

03

创建成功后,门户上就会出现生成的项目,点击进入你就可以对这个项目进行使用,这里我们首先要去Tags创建一个标签,因为这里是辨识口罩,所以我在这里添加一个口罩的标签mask,按保存。

04

接下来选择Add images 添加数据,这里要注意Custom  Vsion只是简化了你不需要写算法的操作,但是前期数据采集还是需要人工的,毕竟人工智能= 人工 + 智能 ,而人工>智能 , 原始数据图片可以通过Bing /Baidu 图片查找,我也整理了在我的Azure Notebook上,文章后面我会把我的Notebook地址分享出去。

05

图片导入后,就需要打标记工作,选择Untagged 标记对每张图片,口罩的位置打标签。

当标签打完后选择tag你可以看到完成的状态,以及对应mask标签的汇总

06

标签完成后,就可以选择Train进行训练,你可以选择不同的场景,因为是例子关系,我用了Quick Training。

训练完成分后,会有相关的一些参数,例如Precision, Recall , mAP, 如果你对结果不满意,可以通过增加数据集的方式,或者调整参数的方式进行多次训练。

可以通过Quick Test的方式进行快速测试

07

如果测试结果满意,你可以把模型下载下来,给自己的不同应用场景使用,选择Performance,然后选择Export 即可导出相关模型。

08

这里我导出ONNX 模型,通过Notebook 展示一下相关代码。

  通过Azure Custom Vision你可以零代码完成相关的模型训练,而且模型可以在线导出非常方便,你可以快速搭建一个基于计算机视觉的解决方案,而且你不需要投入很多算例去完成这项工作,节约了资金和团队成本。对于一个没有AI基础的人或者团队,是非常好的工具。大家一起动手试试吧。

相关材料

附上我的Azure Notebook : (https://customvisionmaskdemo-kinfey.notebooks.azure.com/j/notebooks/sample01.ipynb)

备注一些线上文档:

(https://docs.microsoft.com/en-us/azure/cognitive-services/custom-vision-service/)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++拷贝构造函数调用时机分析

让我们来分析下面这段代码&#xff1a; #include <iostream> #include <string> using namespace std;class Employee {private:static int sn;public:Employee() {cout << "Employee()" << endl;mysn sn;}Employee(const string &s) …

java开发中准则怎么写_Java开发中通用的方法和准则20条

1. 不要在常量和变量中出现易混淆的字母包名全小写、类名首字母全大写、常量全部大写并下划线分割、变量采用驼峰命名等&#xff0c;这些是最基本的Java编码规范。public class TestDemo {public static void main(String[] args) {long i 1l;System.out.println("i的两倍…

百万年薪程序员的7点能力

作者介绍findyi&#xff0c;腾讯、360码农&#xff0c;前哒哒少儿英语技术VP&#xff0c;现任土豆教育CTO。几周前&#xff0c;微盟爆了个大雷&#xff0c;数据库让内部员工删库跑路。写了篇文章&#xff0c;做了一些我的判断&#xff1a;从微盟36小时故障&#xff0c;谈谈数据…

《C++ Primer》13.1.1节练习

练习13.1: 如果构造函数的第一个参数是自身类类型的引用&#xff0c;且所有其他参数&#xff08;如果有的话&#xff09;都有默认值&#xff0c;则此构造函数是拷贝构造函数。拷贝构造函数在以下几种情况下会被使用&#xff1a; ●拷贝初始化&#xff08;用定义变量&#xff09…

Java将五个整数存入整形数组_异常处理:从命令行输入5个整数,放入一整型数组,然后打印输出。。。...

从命令行输入5个整数&#xff0c;放入一整型数组&#xff0c;然后打印输出。要求&#xff1a;如果输入数据不为整数&#xff0c;要捕获输入不匹配异常&#xff0c;显示“请输入整数”&#xff1b;如果输入数据多余5个&#xff0c;捕获数组越界异常&#xff0c;显示“请输入5个整…

优秀的开发者从命名开始

有人说&#xff0c;命名能力也能体现一个程序员的基本编程素养。我很赞成这句话&#xff01;作为开发人员逃不过起名字这一关的,大到项目名、模块名&#xff0c;小到类名、方法名、参数名、参数名、变量名。而命名又对代码的质量和可读性起到很关键的决定。如何码出高质量的代码…

《C++ Primer》13.1.2节练习

练习13.6&#xff1a; 拷贝赋值运算符本身是一个重载的赋值运算符&#xff0c;定义为类的成员函数&#xff0c;左侧运算对象绑定到隐含的this参数&#xff0c;而右侧运算对象是所属类类型的&#xff0c;作为函数的参数&#xff0c;函数返回指向其左侧运算对象的引用。 当对类对…

PHP自动判断用户会员过期,php,_定时扣除用户过期积分,但平台用户量比较大,有没有好的解决方法?,php - phpStudy...

定时扣除用户过期积分&#xff0c;但平台用户量比较大&#xff0c;有没有好的解决方法&#xff1f;最近网站实行用户积分过期制度&#xff0c;只保留用户近三月积分&#xff0c;三月前未使用积分进行扣除但平台用户量比较大&#xff0c;感觉这样做会出问题&#xff0c;有没有好…

【复杂系统迁移 .NET Core平台系列】之认证和授权

源宝导读&#xff1a;微软跨平台技术框架—.NET Core已经日趋成熟&#xff0c;已经具备了支撑大型系统稳定运行的条件。本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验。一、背景随着ERP的产品线越来越多&#xff0c;业务关联也日益复杂&#xff0c;…

《C++ Primer》13.1.3节练习

练习13.9: 析构函数完成与构造函数相反的工作&#xff1a;释放对象使用的资源&#xff0c;销毁非静态数据成员。从语法上看&#xff0c;它是类的一个成员函数&#xff0c;名字是波浪号接类名&#xff0c;没有返回值&#xff0c;也不接受参数。 当一个类没有定义析构函数时&…

php冒泡程序讲解,PHP冒泡排序程序代码与源代码

冒泡排序是php中众多排序中的一个最简单的排序方法了下面一聚教程小伙伴就同各位介绍一个冒泡排序的例子&#xff0c;希望能帮助到各位。冒泡排序简介&#xff1a;冒泡排序(Bubble Sort)&#xff0c;是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列&#…

.NET Core开发实战(第30课:领域事件:提升业务内聚,实现模块解耦)--学习笔记...

30 | 领域事件&#xff1a;提升业务内聚&#xff0c;实现模块解耦我们在领域的抽象层定义了领域事件和领域事件处理的接口IDomainEventnamespace GeekTime.Domain {public interface IDomainEvent : INotification{} }这是一个空接口&#xff0c;它只是标记出来某一个对象是否是…

《C++ Primer》8.1.2节练习

练习8.1: #include <iostream> #include <stdexcept> using namespace std;istream &f(istream &in) {int v;while (in >> v, !in.eof()) {if (in.bad())throw runtime_error("IO流错误");if (in.fail()) {cerr << "数据错误&…

mac升级php7,MAC更新自带php版本到7.0

说一下我最近更新mac自带php版本的经历&#xff0c;我是按照网上的教程更新的&#xff0c;主要参考的是这篇博客http://blog.csdn.net/takunha/article/details/52484769&#xff0c;通过Homebrew来安装&#xff0c;安装过程除了速度有点慢之外&#xff0c;其他都还算顺利。可装…

.NET 5 Preview 1的深度解读和跟进

这几天微软.NET 团队发布了.NET 5 Preview 1, 如约而至。很兴奋&#xff0c;因为.NET Core和.NET Framework终于实现了大一统&#xff0c;同时也很期待&#xff0c;期待.NET 5能给我们带来哪些好的新特性。让我们先把时间拨回到2019年...一、2019年.NET 5的提前剧透去年2019年 …

程序员羽化之路--假如需要一百万个对象

点击上方蓝字关注我们菜菜哥&#xff0c;救命呀又被产品经理砍了&#xff1f;这次搞不好真要被砍了&#xff0c;线上一个用户系统内存溢出了&#xff0c;占用内存太高了用户基数大&#xff0c;内存占用高正常高的不太正常了&#xff0c;我觉得可能和我的设计有关那说说你的用户…

iis php打开空白页,windows+IIS+php 访问显示空白页 php版本信息访问正常

10:48:46 A session had already been started - ignoring session_start() in E:\zentaopms\module\common\model.php on line 24 when visiting10:48:46 ERROR: 鎮ㄨ闂殑鍩熷悕 172.25.8.82:8080 娌℃湁瀵瑰簲鐨勫叕鍙搞€&#xfffd; in E:\zentaopms\module\common\mo…

《C++ Primer》8.2.1节练习(部分)

练习8.4: #include <iostream> #include <fstream> #include <string> #include <vector> using namespace std;int main() {//打开文件ifstream in("D:\\CCCCCCCCCCCCCCCCCCC\\yyhaif.txt");if (!in) {cerr << "无法打开输入文…

WTM 3.5发布,VUE来了!

千呼万唤中&#xff0c;WTM的Vue前后端分离版本终于和大家见面了&#xff0c;我曾经跟群里1000多位用户保证过Vue版本会在春天到来&#xff0c;吹过的牛逼总算是圆上了。卧槽&#xff0c;NB啊!我等到花都谢了风太大&#xff0c;吹瞎了朕的双眼我是谁&#xff0c;我在哪儿&#…

《C++ Primer》8.3.1节练习

练习8.9: #include <iostream> #include <sstream> #include <string> #include <stdexcept>using namespace std;istream &f(istream &in) {string v;while (in >> v, !in.eof())//直到遇到文件结束符才停止读取{if (in.bad())throw r…