惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
Forbes - Security
Forbes - Security
WordPress大学
WordPress大学
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
Spread Privacy
Spread Privacy
D
Darknet – Hacking Tools, Hacker News & Cyber Security
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
P
Privacy International News Feed
A
About on SuperTechFans
T
Tailwind CSS Blog
I
InfoQ
S
Securelist
云风的 BLOG
云风的 BLOG
罗磊的独立博客
Recent Announcements
Recent Announcements
T
The Exploit Database - CXSecurity.com
B
Blog RSS Feed
V
Visual Studio Blog
Know Your Adversary
Know Your Adversary
The GitHub Blog
The GitHub Blog
Jina AI
Jina AI
腾讯CDC
Cyberwarzone
Cyberwarzone
有赞技术团队
有赞技术团队
AWS News Blog
AWS News Blog
博客园 - 【当耐特】
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
F
Full Disclosure
S
Secure Thoughts
博客园 - 司徒正美
J
Java Code Geeks
Y
Y Combinator Blog
Google Online Security Blog
Google Online Security Blog
GbyAI
GbyAI
N
News and Events Feed by Topic
Help Net Security
Help Net Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Project Zero
Project Zero
T
Tenable Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Tor Project blog
MyScale Blog
MyScale Blog
Scott Helme
Scott Helme
小众软件
小众软件
K
Kaspersky official blog

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事
房间是否有人
种瓜 · 2019-04-28 · via 夜行人

引子

房间是否有人,听起来像是要在这个题目下讨论一部悬疑电影,或是争论一个哲学问题。(罗素回忆维特根斯坦时提到: “我的德国工程师,我觉得,是个笨蛋。他认为经验的东西都不可认识—我要他承认这房间里没有一头犀牛,但他不肯。”)

然而,我们并不准备在这个题目下讨论哲学,如果采取维特根斯坦彻底的不可知论立场,永远也弄不清房间里是否有人。

让我们来关注一个非常形而下的问题。

问题背景: 为了省电

我有两个朋友在做酒店方案,他们分别都提到这个问题: 能否确定房间里是否有人,如果没人,则切断电源

由于这个问题听起来定义清晰,他们觉得我应该能用技术方案解决它。搞几个传感器,捣鼓几行代码,应该就能搞定吧。

意料之外

不知道你是怎么想,反正我第一次听到这个问题,觉得肯定可以在一个午休时间解决它。

经过一个午休时间,并没取得任何进展。在晚上洗澡时都没有想到好的解决方案,我就开始意识到问题的复杂性了。一般来说,如果有什么问题,连洗澡时,都想不清楚,它便值得认真对待了。

残思断想

先列出一些不成熟的思考片段。

第一人称视角

想象自己是个酒店服务员,接到前台发来的询问:406房间是否有人?,我们要怎么回答呢?在不考虑隐私的情况下,先用万能房卡进入房间,看看床上有没有人;看看床底下有没有人;看看阳台有没有人;看看卫生间有没有人。

经过这个想象,发现问题进一步复杂了: 客房可能有多个区域(至少有卫生间和卧室)。

如果我们采用寻找人在哪里的思路,不只要确定房间里有没有人,还要确定卫生间有没有人。

人是什么

如果每个房间都有一个服务员,以躲猫猫的方式展开搜寻:掀开被子、看看卫生间门后,总是能确认房间里是否有人的。

但我们希望自动化来做这件事,这意味着我们希望采用传感器之类的设备。

假设有一个人躺在床上,我们怎么知道那儿有一个人呢?这个问题本质上问的是:什么传感器能识别到

摄像头当然是个不错的主意,加上机器视觉,再加上我们的聊天记录和隐私组成的大数据,我们不仅能知道这是一个人,甚至能推测出被子里蒙着头的另一人是谁。

但往房间里安装摄像头这个建议,可能会让人怀疑你是个偷窥狂。

反正我用脚投票,是不会走进这种酒店的。

在不能用摄像头的情况下,我们可以考虑使用红外传感器,探测房间里是否有热源,或者是否有运动的热源。

激光雷达和Walabot

如果不差钱的话,或许可以试试激光雷达和Walabot。两者的策略都是利用波的反射,对整个空间进行扫描,寻找目标物体。只要算法够好,Walabot甚至允许你隔墙探测。

但两者的价格都贵得很,不知要节约多少电才抵得上它们的成本。

主动探测的困境

前头提到的这些传感器(包括摄像头),基本都是主动探测模式,困难似乎挺多,我们不仅得探测多个区域,而且还得考虑探测器的范围和死角。

如果客户睡觉时,头蒙在被子里?系统误判为房间无人,把空调关了,客户会热得蹬被子的。

机器学习

有什么事情是调参不能解决的呢?如果有,就多调一些参数!

采用机器学习的好处之一是,可以给项目起名叫基于AI的酒店解决方案!指不定能拿到一笔大融资!

思路是这样的,似乎找不到一个智能传感器能轻松确定房间有人,那么我们就布置若干廉价传感器,然后把这些数据喂给神经网络,当然,SVM或决策树应该也够用,但为了演讲和PPT,我劝你用神经网络。

我们把各种进出房间的情况,都用传感器记录下数据,只要有足量的典型的数据喂给我们的神经网络,客户有几人、客户是不是在厕所与我们躲猫猫、客户是不是躲在床底下,我们都能准确得出结论。在机器学习眼里,这是个简单的二值分类问题:有人还是没人。

由于传感器的触发顺序影响判断,可以考虑RNN或LSTM这类能处理序列数据的神经网络。

思路上,这个想法受到集成学习模型(如XGBoost)这类算法的启发,通过组合很多不精确的传感器,来提高整体预测精度。

计算视角

主动探测模式有些山穷水尽。让我们来换个思路,采用计算视角: 统计人员的进出,来确定房间里是否有人。

思路是这样的: 假如进入房间人次为1,离开房间人次为1,于是可以确认房间里没人,切断电源!

假如进入房间人次为1,离开房间人次为1 听起来非常容易用程序实现,只要对房间入口进行监测就行。想想到博物馆偷文物的电影桥段: 纵横交错的红外线,用来确定是否有窃贼闯入。使用树莓派(200块钱的微型电脑)采集进出人次的监测数据,统计一下,便可确定任意时段里,房间里是否有人。

但电影桥段里的红外线只能知道是否有人来,并不知道它的运动方向,我们怎么确定用户是进门还是出们? 这个不难,放置多道红外线,进门和出门时,人们依次路过这几道红外线,但进门和出门时,红外线被触发的顺序是不同的。于是就能知道客户是进门还是出门。

这里还会遇到一些问题,诸如有两人同时进入,简单的红外线系统很难知道同时有两人进入,尤其是他们并肩行走时。

上周与@David聊到这个话题,他试图引入质量来消解这个问题,诸如在进门处的地毯下安装一个压力传感器,能知道地毯上的质量。不过@Jackson指出工程上,实施起来十分困难,价格也不像红外传感器廉价。

@David还提到一个非常有趣的思路。我们别把思路聚焦在房间里。可以在房门口放置摄像头,而不是在房间内放置。

我们可以把房间里是否有人转化为刚才什么人进出房间。转化后的问题把我们视角带到外部,仿佛我们是个门卫。而在房间外部放置摄像头是可能的!

不过这里依然有隐私问题。比如我就十分不乐意进出房间,都被摄像头监控,仿佛软禁一般。

会不会是伪命题?

房卡是拿来干嘛的?

这是非常典型的反问。

房卡不就是拿来取电的吗?用户离开房间,带走房卡,不就断电了吗?十年前这些问题不都被解决了吗?

情况是这样的:当一个房间有多个住户的时候,经常会忘了拔房卡。

总结

目前还没想到理想的方案:精确度高、廉价、易实施。

这个问题比它初看起来要复杂许多, 可能还要耗费我好几个洗澡的时间。

欢迎加入讨论:)

补遗

在朋友圈里发了这篇文章,把一些有意思的留言放过来:

@xudong: 红外热感放在地面或头顶是否可行? 人的头顶我们可以简单的认为是某种圆形(用热感屏蔽杀马特发型) 按照门宽进行处理 假设正常人体头部厚度是10-20厘米 这里假设两个情侣抱在一起一边亲吻一边侧着进入 那么按照switch手柄上的红外摄像头 理论上是可以识别出一个葫芦形状的 也就是两个重叠的圆 那么我们是否可以认为 一个探测到圆心就是一个人?

@xudong: 虽然能解决大人牵着小孩 或者抱着孩子 但是 不能解决孩子骑在大人头上。

@maoyong: 我们弄了一年也没弄的很准, 我们用了两种方式
1.写程序统计,我们用窗磁,人体,开关等联合起来,只要是人触发的,就算有人。
2.通过ai 训练学习。
第一种在多人的情况下不是很准,第二种还可以。

@Tom.Riddle: 如果不统计人,而统计人的行为呢,只是判断有没有人的行为的话,能否用多条件来并行判断呢,只要满足任意人行为条件即为有人,反之则没人,条件可以定为房间插座有没有电量输出,开关状态有没有转变,如果稳定一段时间没有输出(对于房间原有设备可不进行考虑),网络设备有没有流量,用水有没有变化,还有一些声控传感器(可能有隐私问题)等一些条件,当多条件满足时就判定没人,如果怕存在问题还可以仅关闭大额电量,还暴露诸如台灯等设备插孔的供电,这样能省掉大额电力支出就可以算变相达到目的了

@HelloPlanet: 人体微博雷达