tensorflow 小于_坐姿不对,屏幕就变模糊!教你用TensorFlow做一款“隐形背背佳”...

7dddbd34fb40e81c69faa024ee43bfca.png

大数据文摘出品

作为一个上班族,每天坐在电脑前那么久,难免出现腰酸背痛的情况,时间长了甚至脊柱都歪曲变形了,这可不行!一定要克制住自己的坐姿。

这里有款“隐形背背佳”,要不要了解一下?

一位名叫Olesya Chernyavskaya的俄罗斯程序媛就用TensorFlow开发了一款坐姿监督工具,一旦你歪着身子,屏幕就会变模糊,在无形中帮你矫正坐姿~

48cad7dc-bc4b-eb11-8da9-e4434bdf6706.png

Olesya为这个项目专门做了一个网站,小姐姐表示这个网站不会窃取网友的数据,想体验这款坐姿监督工具的小伙伴可以猛戳:

https://fix-posture.glitch.me/

这听起来有点意思,文摘菌也来试试!

驼背、歪头、托腮通通逃不过系统的检测,眼看着屏幕变模糊

打开网站,最上面这个框里有个“开始”的按键,点击之后摄像头就开始检测你的坐姿啦,文摘菌侧下身子果然屏幕就变模糊了,这种感觉似曾相识,这难道不是本菌摘下眼镜的瞬间吗!

eadb4d8f78fc6fde66acf742e5cb2964.gif

吓得文摘菌赶紧坐直了,话说这款工具也不是特别灵敏,有时候会有一些延迟,即使坐直了也要等一会屏幕才能清晰,还有时候会识别不出来。

而且,只有在这个网站上才能实现自动模糊,在浏览其他网站或者微信私聊的时候就没什么变化啦。

尽管项目不太成熟,但创意依然可佳!就连TensorFlow官方也pick了这个项目。

c422ef0a40f52aa46a208dac530c68de.png

原来这是TensorFlow举办的一个名为“TFCommunitySpotlight”的参赛活动,旨在为年满18岁的程序员提供一个面向全球展示自己的平台,只要在项目中用TensorFlow框架开发就行,官方会选举出一些他们认为的技术与创意俱佳的作品进行展示。

cad27edd833c48ea9cc47bf2eefa0cf2.png

在报名涵上没有看到参赛的截止日期,这应该是一个长期的项目选秀,现在还可以报名哦,想展示自己项目的小伙伴还不快来~

https://services.google.com/fb/forms/tensorflowprojectrecognitionform/

说到这里,来和文摘菌一起看看Olesya是如何实现这个项目的吧。

记录初始体态位置,每秒检查坐姿,一旦发现不同屏幕立刻模糊

在这个项目中,她用了TensorFlow.js PoseNet模型来检测身体部位,并借助ml5.js构建PoseNet模型,还用了p5.js帮助处理画布和摄像头。

关于检测人体体态,Olesya有两个点子:

  1. 建一个模型,并教它理解什么是错误的坐姿;
  2. 让人一开始保持正确的坐姿,让模型记录眼睛和肩膀的位置正确。然后每秒钟check一遍新的位置,并与正确的位置进行比较。

Olesya果断选择了第二种方法,因为这更容易也更快实现。

具体来说,当模型开始采集人的体态时,会先记录下一个正确的坐姿,可以想象有一个垂直于双眼和双肩所在平行线的y轴,这样就可以记录正确坐姿下的数据特征。当你弯腰驼背时,模型可以检测出你双眼和双肩代表的两条平行线在y轴上的位移,由此判断出你没有好好坐着。

e4b1a5917d42fcbb60f2c0b9e9da7e10.png

那我不驼背,我悄悄托个腮总行了吧!除非你的眼睛和肩膀都没有歪,否则还是会被系统检测出你的坐姿不正确。Olesya还想到了很多种不良坐姿,以她可爱的画风展示在了图中,比如把脚放到了桌子上,或者脚踩椅子翘起膝盖,这些统统都能被检测到。

说完了体态检测的事情,该说一说如何模糊屏幕了。

话不多说,直接放出代码,要想屏幕变模糊,就得这么敲:

function blurScreen() {    document.body.style.filter = 'blur(10px)';    document.body.style.transition= '0.9s';}

要想变回清晰的屏幕,移除一下就行:

function removeBlur() {    document.body.style.filter = 'blur(0px)';}

当我们按下开始键,系统会记录眼睛的位置作为默认的正确位置。

while (defaultRightEyePosition.length < 1) {  defaultRightEyePosition.push(rightEye.y);}

开始检测后,系统就会一直比较默认位置和当前位置。如果差异超过15,就意味着没有保持良好的姿势,而且程序会调用模糊屏幕的功能:

if (Math.abs(rightEye.y - defaultRightEyePosition[0]) > 15) {  blurScreen();}

如果差异小于15,就说明坐姿保持的不错:

if (Math.abs(rightEye.y - defaultRightEyePosition[0]) < 15) {  removeBlur();}

除此之外,Olesya连她做这个网站的过程也都贴心的写了下来,感兴趣的小伙伴可以猛戳:

https://fix-posture.glitch.me/

Github指路:

https://github.com/monolesan/fix-posture

这是一位沉浸在自己编程世界里的程序媛

好奇的文摘菌想看看这位小姐姐还做过什么项目。

4eebda3bc9aca1eba67f5d6399e83904.png

看了她的推特,文摘菌觉得这是一位内心很有想法的程序媛,对编程有着强烈的热爱,总是能做出一些创意小项目,完全是兴趣使然。

Olesya经常会分享一些项目过程中她认为有趣的地方,比如一个可以跟随人脸移动的“大卫”:

479aabdf5ce2a18a651c2fa9859bf946.gif

比如当她在用TensorFlow的手势模型做项目时,系统识别到了她拿起杯子的手,她觉得很有趣就做了个“别人喝茶和我喝茶时”对比的表情包。

4c016fe414d2263d3d9c760046d6303b.png

沉浸在自己的编程世界里,做着自己热爱的项目,想必是很愉快的事情~ 和文摘菌一样好奇的同学可以去她的推特感受一下:

https://twitter.com/monolesan

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

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

相关文章

python处理csv文件列错位_CSV文件分割与列异常处理的python脚本

#codingutf-8 ‘‘‘脚本说明 用来解决csv文件的列异常问题&#xff08;以逗号分隔符为例&#xff09;&#xff1a; csv文件有些列含有换行符、逗号等特殊符号&#xff0c;这就导致csv文件出现列异常的情况。 此脚本将csv文件输出成如下文件&#xff1a;源文件名-正确列-文件序…

文本分类和提取关键词算法_文本内容之间的关键词提取和相似度计算

文本分类和提取关键词算法背景 Web应用程序变得越来越智能。 从网站上使用服务的日子已经一去不复返了&#xff0c;用户不得不填写一个巨大的表格。 假设您有一个适合书迷的网站。 在Web 2.0之前&#xff0c;像这样的网站曾经以诸如年龄&#xff0c;阅读的书籍&#xff0c;喜欢…

python里随机抽取样本_概率分布和抽样分布基础知识及Python实现

本文主要介绍推论统计中的概率分布和抽样分布,本文结构如下: 一、概率分布 随机变量:在一定条件下,某件事情可能发生或者不发生,这个事件就叫随机事件。例如抛硬币哪面朝上。随机变量X就是用来量化随机事件的函数,是将随机事件每一个可能出现的结果映射到数值的一个函数。…

php 创建目录_使用SMB绕过PHP远程文件包含限制

译文声明本文是翻译文章&#xff0c;文章原作者mannulinux&#xff0c;文章来源&#xff1a;mannulinux.org 原文地址&#xff1a;http://www.mannulinux.org/2019/05/exploiting-rfi-in-php-bypass-remote-url-inclusion-restriction.html译文仅供参考&#xff0c;具体内容表达…

eas系统服务器地址,EAS7.0EAS7.5服务端及其客户端标准配置介绍

金蝶EAS是基于JavaEE的大型企业应用。目前服务端支持以下主流软硬件环境。适用版本&#xff1a;EAS7.0 EAS703 EAS7.51.金蝶EAS服务端支持的软硬件环境注&#xff1a;标志为部署支持的环境&#xff0c;可以正常安装配置&#xff0c;但是正式运行前需联系金蝶技术支持。2.客户端…

Java的Kafka:构建安全,可扩展的消息传递应用程序

使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 今天尝试Okta。 当今的用户希望可以通过其计算机&#xff0c;手机&#xff0c;平板电脑或任何其他设备访问您的应用程序&#xff01; …

background复合属性顺序_CSS有哪些好用的字体属性?

本文创建于2020年9月&#xff0c;以下为正文&#xff1a;CSS中有哪些字体属性呢&#xff1f;font&#xff1a;复合属性。设置或检索对象中的文本特征。font-style&#xff1a;设置或检索对象中的字体样式。用于定义字体的风格&#xff0c;如&#xff1a;斜体&#xff08;italic…

转译和编译_10个有趣又能编译为JavaScript的语言,你用过哪些?

点击上方“IT平头哥联盟”&#xff0c;选择“置顶或者星标”你的关注意义重大&#xff01;来源&#xff1a;https://www.sitepoint.com/现代应用相比普通的网页有不同的要求。但是浏览器是一个有着一套(大部分)固定可用的技术的平台&#xff0c;JavaScript依然是web应用的核心语…

OPC服务器如何采集设备的信息,如何将OPC服务器采集的设备数据转为MQTT方式,实现云端发布或订阅...

通过与PLC、智能仪表等硬件设备&#xff0c;以及OPC服务器、数据库等软件建立通讯&#xff0c;进行实时数据采集监控&#xff0c;然后将相关数据转换为数据库、OPC&#xff0c;以及MQTT、HTTP等多种服务接口&#xff0c;实现各类自动化与信息化系统软件灵活对接。MQTT智能网关案…

jboss7 关闭日志打印_使用自定义日志记录处理程序在JBoss AS 7中跟踪SQL语句

jboss7 关闭日志打印使用ORM从您的特定数据库中提取数据并让其创建和发布您必须亲自编写的所有SQL语句似乎很方便。 这就是使ORM解决方案受欢迎的原因。 但是它也有一个缺点&#xff1a;由于ORM为您做了很多工作&#xff0c;您在某种程度上失去了对生成SQL的控制&#xff0c;因…

微信小程序摄像头监控_微信必备黑科技小程序!

↑点击上方蓝字关注极物推荐欢迎分享到朋友圈-不花冤枉钱&#xff0c;历史见真谛对于喜欢购物的朋友们&#xff0c;这绝对是一把利器。只需把商品链接复制粘贴到上面&#xff0c;就可以轻松的查阅到该商品的历史价格&#xff0c;轻松直观的了解商品过去的价格波动&#xff0c;同…

无线打印 airprint 服务器,如何让 Windows 的共享打印机支持 AirPrint

对很多办公室环境来说&#xff0c;局域网共享打印机往往都是刚需&#xff0c;而如果局域网内的设备大多为 Windows 设备&#xff0c;通过 网络共享 的方式就可以轻松将所连接的 USB 打印机共享到局域网。但对同一个局域网内的 Apple 设备而言&#xff0c;因为很多打印机的 Mac …

硒测试中所需的功能和示例

所需功能是用于声明一组基本要求&#xff08;例如浏览器&#xff0c;操作系统&#xff0c;浏览器版本等的组合&#xff09;的类&#xff0c;以对Web应用程序执行自动跨浏览器测试。 当我们尝试通过Selenium自动化测试来自动化测试脚本时&#xff0c;我们需要考虑这些组合&…

边沿触发是什么意思_集基耦合双稳电路,集成化单稳电路,数字逻辑电路,门电路,触发器...

1).箝位器能把脉冲电压维持在某个数值上而使波形保持不变的电路称为箝位器。它也是整形电路的一种。例如电视信号在传输过程中会造成失真&#xff0c;为了使脉冲波形恢复原样&#xff0c;接收机里就要用箝位电路把波形顶部箝制在某个固定电平上。下图中反相器输出端上就有一个箝…

鲸鱼优化算法_盘点 35 个 Java 代码优化细节

代码优化&#xff0c;一个很重要的课题。可能有些人觉得没用&#xff0c;一些细小的地方有什么好修改的&#xff0c;改与不改对于代码的运行效率有什么影响呢&#xff1f;这个问题我是这么考虑的&#xff0c;就像大海里面的鲸鱼一样&#xff0c;它吃一条小虾米有用吗&#xff1…

powerbi导入地图_Power BI系列教程之powerBI功能介绍及使用导引(一)

作为从事数据分析相关工作的小伙伴&#xff0c;我们总会遇到一些工作是每周、每月甚至每天都是重复做的工作&#xff0c;这个时候我们有没有一种结构化的方法来处理这一些数据呢&#xff1f;答案是肯定的&#xff0c;微软为了满足广大职场数据分析人员的需求&#xff0c;开发了…

模糊搜索怎么实现_干货 | 你真的了解自己是怎么搜索的吗_01

「干货」栏目的开启是为了帮大家科普学习关于品牌出海、数字营销与跨境电商行业相关的知识&#xff0c;以及我们在业内会遇到的情况和一些规避的方法。第一讲搜索者我们整个搜索营销活动都是围绕搜索者展开的我们的目的是把搜索者转化为我们的销售机会所以&#xff0c;研究搜索…

JUnit 5和Selenium –改善项目配置

Selenium是一组支持浏览器自动化的工具和库&#xff0c;主要用于Web应用程序测试。 Selenium的组件之一是Selenium WebDriver&#xff0c;它提供客户端库&#xff0c;JSON有线协议&#xff08;与浏览器驱动程序进行通信的协议&#xff09;和浏览器驱动程序。 Selenium WebDrive…

linux shc shell脚本_详解shell脚本加密解密软件—gzese和shc

概述以我个人的需求为例&#xff0c;有时写一个脚本需要传密码&#xff0c;如果直接把密码写在脚本里会存在安全问题&#xff0c;一般是把密码写在脚本里&#xff0c;作为参数传给脚本&#xff0c;而保存密码的脚本&#xff0c;使用某种手段加密&#xff0c;令其不可读但是可执…

python3 for计数_python怎么实现计数?

python中实现计数的一般方法&#xff1a;1、使用字典解决(dict)字典计数是最常用的计数方法&#xff0c;逐个遍历数据结构中元素&#xff0c;将元素作为键&#xff0c;元素个数作为值进行统计&#xff0c;依次加入字典中。实例演示test_lst [a, b, c, d, e, f, g, a, f, s, b,…