一 ,ml5.js是什么

ml5.js 它是基于Tensorflow.js的一个非常简便易用的接口,目的是让更广泛的受众更容易使用机器学习。(结合官网食用)

其他知识点索引点这里

FeatureExtractor特征提取器

您可以使用神经网络来识别图像的内容。大多数情况下,您将使用在大型数据集上训练的“预训练”模型将图像分类为一组固定的类别。但是,您也可以使用预训练模型的一部分:features。这些功能允许您为新的自定义任务“重新训练”或“重用”模型。这被称为迁移学习。

此类允许您通过预先训练的模型提取图像的特征,并使用新数据重新训练该模型。

classification识别视频里面的是个什么东西demo

<html><head><meta charset="UTF-8"><title>Image classification using MobileNet and p5.js</title><script src="../p5.min.js"></script><script src="../ml5.js"></script>
</head>
<!-- 特征提取器 -->
<body><!-- <h1>Image Regression using Feature Extraction with MobileNet. Built with p5.js</h1><h2>(Train a Neural Network to move the red square)</h2><div id="videoContainer"></div><h6><span id="modelStatus">Loading base model...</span> | <span id="videoStatus">Loading video...</span></h6><p><input type="range" name="slider" id="slider" min="0.01" max="1.0" step="0.01" value="0.5"                             /></p><br /><p><button id="addSample">Add Sample</button></p><p><span id="amountOfSamples">0</span> Sample Images</p><br /><p><button id="train">Train</button><span id="loss"></span></p><br /><p><button id="buttonPredict">Start predicting!</button><br /></p><script src="./script.js"></script>
--><button onclick="add()">add</button>
<button onclick="train()">train</button>
<button onclick="classify()">classify</button>
<script src="./script2.js"></script>
</body></html>
let video
let classifierfunction setup() { // p5自动调用createCanvas(340, 280);// Create a video elementvideo = createCapture(VIDEO);video.hide();// 创建特征提取器// 可以使用的模型“MobileNet”、“Darknet”和“Darknet-tiny”、“DoodleNet”,或在 Teachable Machine 中训练的任何图像分类模型,或者导入自己的训练集const featureExtractor = ml5.featureExtractor('MobileNet', modelLoaded);// 模块加载成功function modelLoaded() {console.log('Model Loaded!');}// 创建一个分类器 (视频,回调函数)会调浏览器的摄像头(谷歌浏览器会有权限localhost/127.0.0.1或者https证书的才能调用摄像头)classifier = featureExtractor.classification(video, videoReady);// Triggers when the video is readyfunction videoReady() {console.log('The video is ready!');}}
function add() {// 添加要你要预测的视频中的物品('物品名',回调函数)classifier.addImage('man',()=>{console.log("train ok");});
}
function train() {// 训练classifier.train((lossValue) => {console.log('Loss is', lossValue);});
}
function classify() {// 得到预测的训练结果集classifier.classify((err, result) => {console.log(result); // Should output 'man'});
}
function draw() {// p5自动不断调用// 显示视频内容image(video, 0, 0, 340, 280);
}

运行效果

首先点击add按钮添加训练集
然后点击train按钮训练
然后点击classify按钮识别视频中的物品是个什么
可以看出控制台输出men的概率为1(100%)

你还可以添加不同的训练集

classifier.addImage('woman',()=>{console.log("train ok");});classifier.addImage('dog',()=>{console.log("train ok");});

如果你想你可以导出你的训练集,提供下次使用


classifier.save(?callback, ?name);//回调函数,名字
classifier.load(input,callback)//加载源,回调函数

下面是一个regression demo

<html><head><meta charset="UTF-8"><title>Image classification using MobileNet and p5.js</title><script src="../p5.min.js"></script><script src="../ml5.js"></script>
</head>
<!-- 特征提取器 -->
<body><h1>Image Regression using Feature Extraction with MobileNet. Built with p5.js</h1><h2>(Train a Neural Network to move the red square)</h2><div id="videoContainer"></div><h6><span id="modelStatus">Loading base model...</span> | <span id="videoStatus">Loading video...</span></h6><p><input type="range" name="slider" id="slider" min="0.01" max="1.0" step="0.01" value="0.5"                             /></p><br /><p><button id="addSample">Add Sample</button></p><p><span id="amountOfSamples">0</span> Sample Images</p><br /><p><button id="train">Train</button><span id="loss"></span></p><br /><p><button id="buttonPredict">Start predicting!</button><br /></p><script src="./script.js"></script><!-- <button onclick="add()">add</button>
<button onclick="train()">train</button>
<button onclick="classify()">classify</button> -->
<!-- <script src="./script2.js"></script> -->
</body></html>
let featureExtractor;
let regressor;
let video;
let loss;
let slider;
let samples = 0;
let positionX = 140;function setup() {createCanvas(340, 280);// Create a video elementvideo = createCapture(VIDEO);// Append it to the videoContainer DOM elementvideo.hide();// Extract the features from MobileNetfeatureExtractor = ml5.featureExtractor("MobileNet", modelReady);// Create a new regressor using those features and give the video we want to useregressor = featureExtractor.regression(video, videoReady);// Create the UI buttonssetupButtons();
}function draw() {image(video, 0, 0, 340, 280);noStroke();fill(255, 0, 0);rect(positionX, 120, 50, 50);
}// A function to be called when the model has been loaded
function modelReady() {select("#modelStatus").html("Model loaded!");
}// A function to be called when the video has loaded
function videoReady() {select("#videoStatus").html("Video ready!");
}// Classify the current frame.
function predict() {regressor.predict(gotResults);
}// A util function to create UI buttons
function setupButtons() {slider = select("#slider");// When the Dog button is pressed, add the current frame// from the video with a label of "dog" to the classifierselect("#addSample").mousePressed(function() {regressor.addImage(slider.value());select("#amountOfSamples").html((samples += 1));});// Train Buttonselect("#train").mousePressed(function() {regressor.train(function(lossValue) {if (lossValue) {loss = lossValue;select("#loss").html(`Loss: ${loss}`);} else {select("#loss").html(`Done Training! Final Loss: ${loss}`);}});});// Predict Buttonselect("#buttonPredict").mousePressed(predict);
}// Show the results
function gotResults(err, result) {if (err) {console.error(err);}if (result && result.value) {positionX = map(result.value, 0, 1, 0, width);slider.value(result.value);predict();}
}

。。。。。。
本节就到这里

就先写到这里吧 下一篇 KNNClassifier最邻近结点算法

需要源码找我就行了haha

ml5.js入门二(介绍)+featureExtractor特征提取器相关推荐

  1. 用QRCode.js制作二维码解析器(qrcode.decode方法解析二维码)

    由于近期公司要求制作一个移动端的'长按识别二维码'的功能,但是该功能最本质的就是解析二维码,在网上找了很多,发现效果是有了,就是没有那种可以直接用的,后来在根据网上的资料,自己研究了一下,发现二维码解 ...

  2. android 原生开发 3d地图 下载_arcgis api 3.x for js 入门开发系列二不同地图服务展示(附源码下载)...

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  3. Day15(Js入门、jquery入门、ajax入门、前后端分离开发跨域问题、linux环境准备、jdk_tomcat环境搭建、docker介绍及应用(docker安装、基本命令、安装tomcat))

    js入门 js代码辅助 window–>preferences–>javaScript–>Content Assist .abcdefghijklmnopqrstuvwxyz alt ...

  4. linux内核开发入门二(内核KO模块介绍、开发流程以及注意事项)

    linux内核开发入门二(内核KO模块介绍.开发流程以及注意事项) 一.什么是内核模块 内核模块:ko模块(Kernel Object Module)是Linux内核中的可加载模块,它可以动态地向内核 ...

  5. js入门笔记整理(二)——操作符

    上一篇:js入门笔记整理 一元操作符 递增 递增分为前置递增和后置递增 前置型--两个加号(++)放在前面 var num = 1;++num; 这个操作其实就是给num加1,上面的列子等效于: va ...

  6. React.js入门笔记

    # React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...

  7. Three.js进阶篇之4 - 着色器

    "渲染"(Rendering)是即使非计算机专业的都不会觉得陌生的词,虽然在很多人说这个词的时候,并不清楚"渲染"究竟意味着什么.相反,"着色器&qu ...

  8. 【深度学习】特征提取器:Transformer,Rnn,CNN之间的相互比较

    在辞旧迎新的时刻,大家都在忙着回顾过去一年的成绩(或者在灶台前含泪数锅),并对2019做着规划,当然也有不少朋友执行力和工作效率比较高,直接把2018年初制定的计划拷贝一下,就能在3秒钟内完成2019 ...

  9. Transformer、rnn与cnn三大特征提取器的比较

    自然语言处理中的三大特征处理器:RNN.CNN.Transformer,它们目前谁各方面占据优势?未来谁又更有前途呢?这篇文章用目前的各种实验数据给出了说明,结论是:放弃幻想,全面拥抱Transfor ...

  10. Ember.js入门教程、博文汇总

    第一章 对象模型 Ember.js 入门指南--类的定义.初始化.继承 Ember.js 入门指南--类的扩展(reopen) Ember.js 入门指南--计算属性(compute properti ...

最新文章

  1. 蓝桥杯来了?最后节点了,这不得共享一波资源?
  2. 【Web安全】Web开发中常见的安全误区
  3. JAVA基础知识(2)
  4. bootstrap到底是用来做什么的(概念)
  5. 抽象工厂模式java_抽象工厂模式
  6. 解决Visual Studio 2015启动慢的问题
  7. 基于组织目标采用合适的敏捷方法
  8. 13-微信小程序商城 产品简介布局(微信小程序商城开发、小程序毕业设计、小程序源代码)(黄菊华-微信小程序开发教程)
  9. 机刷实名认证软件_代刷网已上架抖音代实名认证和抖音音乐人认证
  10. Prescan基础知识
  11. SQL语句的执行计划
  12. java实现电子面单pdf生成_常用快递电子面单批量打印api接口对接demo-JAVA示例
  13. ORACLE的jdbc驱动包版本
  14. 查杀linux服务器木马,定时查杀病毒并隔离
  15. Python Selenium破解滑块验证码最新版!
  16. 三问新能源车险:亲自下场卖保险,意欲何为?
  17. LOGO的国际标准规范
  18. User must be authenticated with Spring Security before authorization can be completed.解决方法
  19. Java向word文档中添加水印
  20. [fpga基础]基础元器件

热门文章

  1. vue-pdf 报错 RenderingCancelledException:Rendering cancelled, page 1
  2. JAVA+=运算程序诡异事件
  3. 服务器响应302是什么意思,HTTP 状态中的 301 和 302 是什么意思?二者有何不同?...
  4. 使用ADSL拨号服务器搭建自己的代理IP
  5. 蓝桥杯 算法训练 寂寞的数
  6. 敏捷经验教训, 开发总结!
  7. day8--socket回顾
  8. php返回token什么意思,token什么意思
  9. 手机幻灯片html代码,html5手机幻灯片制作手指滑动触屏手机幻灯片代码
  10. python ocr 识别发票_在Python中使用Tesseract进行OCR识别