全文共1260字,预计学习时长7分钟

图源:morish

很多人都能运行操作计算机视觉应用程序。是的,学习并执行它并不难,现在有很多库可以用来执行如此强大的计算机视觉应用程序。

你有没有关注最近有没有看TensorFlow2020峰会?今年,TensorFlow团队发布了很多非常酷的产品,本文就将介绍如何使用tensorflow.js模型执行计算机视觉应用程序。

什么是TensorFlow.js?

TensorFlow.js是一个开源代码库,用于JavaScript中的机器学习应用程序和开发机器学习模型,并直接在浏览器或Node.js中使用机器学习。

什么是Tensorflow.js模型?

Tensorflow.js模型是经过预先训练的模型,用户无需为训练模型而准备/收集数据。这些模型托管在NPM(网络性能监控器)和unpkg上,可以应用于任何现成的项目。

本文将介绍tensorflow.js中的MediaPipeFacemesh模型。该模型是为移动设备上的前置摄像头设计的,在这些摄像头中,人脸往往会占据较大一部分画面。

Facemesh模型演示

facemesh模型会根据笔者的面部动作移动视频帧。执行下面的计算机视觉应用程序需要哪些步骤呢?

第1步:这些是执行计算机视觉应用程序的三个重要的独立运行脚本标签代码。

· TensorFlow.js核心,用于神经网络和数值计算的灵活API。

· TensorFlow.js转换器,将TensorFlowSavedModel导入TensorFlow.js的工具。

· facemesh包可查找图像中的面部边界和界标。

第2步:在主题内容中加入视频HTML标签,从而通过网络摄像头识别面部。

第3步:通过脚本处理(通常是JavaScript),使用画布标签动态绘制图形。

第4步:在画布标签上添加视频标签以播放视频帧,从而根据面部动作移动视频帧。

第5步:加载人脸模型并估计人脸大小,从而在图像中找到人脸边界和界标。

//load camerastream

const frame =document.getElementById("camera");//load movie stream

const movie =document.getElementById("movie");

movie.play();//preparecanvas

const canvas =document.getElementById("augmented_canvas");

const draw =canvas.getContext("2d");const result = awaitmodel.estimateFaces(frame, false);

第6步;在检测到的人脸上使用以下代码绘制视频帧。

//copy camerastream to canvas

draw.drawImage(frame,0, 0, 640, 480);//check if face is detected

if(result.length > 0)

{

for (let i = 0; i < result.length; i++) {

const start = result[i].topLeft;

const end = result[i].bottomRight;

const size = [end[0] — start[0], end[1] —start[1]]; //Render a rectangle over each detected face.

draw.drawImage(movie, start[0], start[1],size[0], size[1]);

}

}

图源:unsplash

完成啦!按照上面的六个步骤就可以执行计算机视觉应用程序。所有人都认为想成为数据科学家就必须熟悉python或R编程语言,现在,使用javascript就可以执行机器学习应用程序啦。

留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范

python可以用来编写计算机网络程序吗_不必熟悉python或R编程语言,6步执行计算机视觉应用程序...相关推荐

  1. python可以用来编写计算机网络程序吗_python学习——网络程序设计

    一.前言 Socket是计算机之间进行网络通信的一套程序接口,最初由Berkeley大学研发,目前已经成为网络编程的标准,可以实现跨平台的数据传输.Socket是网络通信的基础,相当于在发送端和接收端 ...

  2. python可以用来编写计算机网络程序吗_计算机网络(基于python做的笔记 )

    计算机网络(UDP 和 TCP) 概述 为了让在不同的电脑上运行的软件,之间能够互相传递数据,就需要借助网络的功能 使用网络能够把多方链接在一起,然后可以进行数据传递 所谓的网络编程就是,让在不同的电 ...

  3. linux python开发环境sql数据迁移到mysql_运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库...

    运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 一.实验环境: Python2.7.10.pycharm.VM虚拟机.CentOS6.3.mys ...

  4. TensorFlow2020:如何使用Tensorflow.js执行计算机视觉应用程序?

    本文转载自公众号"读芯术"(ID:AI_Discovery). 很多人都能运行操作计算机视觉应用程序.是的,学习并执行它并不难,现在有很多库可以用来执行如此强大的计算机视觉应用程序 ...

  5. python函数的使用方法图解_零基础python之4函数重用-函数与模块(附详细的步骤和程序)...

    4代码重用--函数与模块 重用代码是构建一个可维护系统的关键. 代码组是Python中对块的叫法. 对之前的vowels代码功能创建一个函数名为search_for_vowels( ) 在函数调用时结 ...

  6. python可以开发web程序吗_【分享|python部署开发的web程序有9种方法】- 环球网校...

    [摘要]当今世界充满了各种数据,而python是其中一种的重要组成部分.然而,若想其有所应用,我们需要对这些python理论进行实践.其中包含很多有趣的的过程,然后将其用于某些方面.其中python部 ...

  7. python示例异常处理与程序调试_笔记:Python异常处理与程序调试

    Python异常处理与程序调试 Python提供了强大的异常处理机制,通过捕获异常可以提高程序的健壮性.异常处理还具有释放对象,中止循环的运行等作用.在程序运行的过程中,如果发生了错误,可以返回事先约 ...

  8. python在教育领域可以干什么_学了Python一般可以用来干什么呢?

    很多朋友可能会问,为什么要学Python, 就算学会了Python 可以用来干什么呢? 一般都会首先想到爬虫. 爬虫不是说的那种虫子哦, 爬虫其实就是 类似于百度蜘蛛,谷歌蜘蛛一样的. 会自动的爬取网 ...

  9. python美元汇率兑换程序代码_如何实现python汇率转换代码

    对于刚刚入门python的学习者们,最头疼的莫过于基础的功能实现代码了,很多函数可以实现意义是一样的,今天小编教大家实例--实现python汇率转换代码. Python中的货币转换器 tkinter ...

最新文章

  1. c语言小程序跑马灯,微信小程序实现跑马灯效果(完整代码)
  2. Spring Boot 2.0官方文档之 Actuator
  3. C#中判断某软件是否已安装
  4. oracle12c复制bdf,Oracle 备份与恢复学习笔记(12)
  5. STM32 (Cortex-M3) 中NVIC(嵌套向量中断控制)的理解
  6. Latex 加空格的方法
  7. 金属粉末增材制造行业调研报告 - 市场现状分析与发展前景预测
  8. Cocos2d-X开发中国象棋《三》開始场景的实现
  9. 全国计算机一级考试难度高吗,计算机等级考试分几级 考试难度大不大
  10. 快商通知识图谱工程:让信息不再零碎,构建全行业的知识库 |百万人学AI评选
  11. hive窗口函数和hive基础使用
  12. 云打印SDK来袭,支持飞鹅云,芯烨云,易联云,优声云等云打印机
  13. Boss直聘招聘数据分析-202104月版
  14. HTML5 学习总结(一)——HTML5概要与新增标签
  15. DNS被劫持如何处理?
  16. APMServ更新PHP,APMServ升级PHP至5.3
  17. java使用poi生成Excel文件并合并单元格
  18. 04、江苏专转本(专业课笔记)第四章、计算机网络与因特网
  19. 安装radis看我就可以了
  20. 支付业务名词及释义大全

热门文章

  1. 动态生成HTML页面
  2. 计算机竞赛作文,计算机打字比赛作文例文
  3. nginx html 替换,Nginx 服务内容替换功能(sub模块)
  4. Oracle与OpenJDK之间的区别
  5. 【MySQL】sysbench压测服务器及结果解读
  6. 计算php代码执行时间长短的类(精确到毫秒)
  7. Composer The openssl extension is required for SSL/TLS protection
  8. Elasticsearch 架构原理
  9. 解决nginx 504 Gateway Time-out的一些方法
  10. WeChat的catchtap与bindtap的区别:b(ubble)开头的方法会进行冒泡 形象理解:bind会有涟漪 以圈扩散 catch不会只会影响自己