怕智能音箱泄漏隐私?给它种个“小蘑菇”

作者:长空无名

自从亚马逊Echo大热之后,喜欢智能音箱的人渐渐多了起来。

包括国内的天猫精灵和小米小爱,用的人也不少。

但随之而来的隐私泄露问题又来了,音箱总是在收听状态,一不小心把私人谈话传播出去怎么办?

2018年5月,西雅图当地媒体KIRO7称,在美国俄勒冈州波特兰市的一个家庭中,放置在室内的 亚马逊 Echo 记录了用户在家中的谈话,并将此对话发给了该用户电话簿中的某联系人。

尽管亚马逊和谷歌始终强调他们的智能音箱并不会收集用户对话,只是为了监听特定的唤醒词以便于随时待命,但谁也不能保证一个全天候开机的麦克风不会误录隐私信息。

于是各大厂商又纷纷给音箱加上硬件开关,但这来回开关总有忘记的时候。且不说洗衣服做饭如厕的时候,物理接触也不方便。

还有更好的办法吗?

让我们来看看 “ Project Alias ”。

这个项目的宗旨就是在不用物理接触的情况下,给智能音箱加个“声音开关”。

原理:通过扬声器不断播放“白噪音”阻止麦克风的聆听功能,直到用户说出唤醒词,Project Alias才会中止这种持续的噪音,让用户和智能音箱进行真正的交互。

目前Project Alias仅适用于Google Home和亚马逊Echo两款智能音箱,但该项目团队已经把相关设计文件和代码都公布了,世界各地的创客可以根据这些来给其他品牌的智能音箱量身定做类似的“小蘑菇”。

相关设计文件下载地址:https://www.instructables.com/id/Project-Alias/

相关代码(欢迎参与和维护该项目):

https://github.com/bjoernkarmann/project_alias

硬件清单:

1、树莓派3A+
2、ReSpeaker双麦克风扩展卡
3、 两个16毫米小型扬声器
4、 JST 2.0连接器或老的Jack接头
5、 4个螺丝
6、 一些电线
7、“蘑菇”外壳

制作流程:

1、首先你要有个树莓派,安装好Raspbian系统后,启用SSH并联网。

2、安装ReSpeaker麦克风驱动、TensorFlow、Keras以及其他依赖的软件Flask、Flask-SocketIO、python_speech_features等。

3、搭建好一切软件环境并部署程序后,用手机浏览器打开树莓派的5050端口,对它喊4-6次名字训练它,这个“小蘑菇”就能识别出你的声音了。

Project Alias曾被创建者描述为“寄生虫”(parasite),但我倒是觉得它更像一个“保镖”,为我们的智能生活增添了一份安全感。

相关视频链接:http://v.qq.com/x/page/d0832qrsj5x.html

情人节让伴侣会心一笑的“爱情鸟”

作者:Alex Bate

情人节快到了,各位男同胞准备给女朋友或妻子一个什么礼物呢?

如果你不想采购现成的商品,不如为你心爱的人制作一个可爱的语音装置吧。

“爱情鸟”例子视频:https://v.qq.com/x/page/q0830fgrsbi.html

“Blah blah blah 说声‘我爱你’。我的手机已经能做到了,为什么还要搞这些?”有人可能会这么问。

答案也很简单。虽然你可以使用手机,但是“爱情鸟”语音装置的重点在于其本身表达的意义。移动电话是你日常工作生活的所在,里面有你的银行信息,商务沟通等等。

但使用 “爱情鸟” ,你向她传递的信息将会更专注更有诚意。

该项目的发起人 Olivier Ros  表示,即使那些不怎么懂技术的人,该装置也很容易使用:

“用爱情鸟通话只需一个按钮。对于儿童,不喜欢智能手机的老年人,异地恋,或者只是希望通过简单方式进行私密交流的夫妇来说,这很酷。”

打造爱情鸟(一个或两个都行)

每个“爱情鸟”设备需要一个Raspberry Pi,虽然Olivier的版本用的是Pi Zero W,但Raspberry Pi 2或3也可以。

你还需要一个麦克风和扬声器。 而且,幸运的是,Raspiaudio提供了一个同时包含两者的HAT!

你也可以从其他树莓派配件制造商那里找到类似的电路板,或者使用标准的USB麦克风和扬声器,这些在电子卖场和网上商城都可以买到。

怎么让“小鸟”啁啾提示呢?

为了让盒子上的“爱情鸟”跳舞,你还需要一个伺服电机。或者你可以尝试闪烁的发光二极管或播放声音作为通知。我们总是希望看到人们如何将自己的天份加到开源项目中。

相关代码 (欢迎参与维护这个项目):

https://github.com/kheperV3/LoveBirds/

Telegram

别忘了你还需要注册Telegram,以便通过互联网安全地发送语音信息。同样,还有其他可用的服务,具体你就看情况改代码吧。

译者注:如果在中国不方便使用Telegram的话,可以使用网易云信或声网的服务来实现类似功能。

来源:raspberrypi.org

编译:王文文,前51CTO安全频道主编,阿里巴巴资深安全工程师,现供职UCloud技术市场,IoT前哨站创始人。

IT工程师都死了,世界会怎样?

都说日本人脑洞大,没想到他们在IT求职&培训领域的想法也很多。

日本IT求职&培训平台PAIZA近期推出了一个编程游戏《工程师死绝的世界》。

背景是全世界所有IT工程师都感染病毒死亡,而后国家秩序混乱,世界濒临崩坏。

玩家要帮助一位人造人妹子找回失去的记忆并拯救世界!游戏支持使用Python、Ruby、C#、JAVA、PHP、Scala、Go、Haskell、Erlang、Bash、R、JavaScript、CoffeeScript、Cobol、VB、F#、Clojure、D等24种语言。

此外游戏还设置了排行榜(目前前三甲被C#和Java玩家占据),榜首的玩家可以获得价值1万日元的亚马逊代金券,排名前50的玩家则是500日元。感兴趣的程序员可以尝试进行挑战。有推特,Facebook,GitHub账号即可登陆。

价格:免费

风格:冒险解谜

宣传片地址:http://v.qq.com/x/page/y0830bddjr1.html

相关游戏地址:https://paiza.jp/botchi

活动时间: 2019年1月22日(火)~2019年2月22日(金)

用一行命令把树莓派变成视频后视镜

大家在冬季骑行的时候少不了要穿一堆厚衣服,戴上帽子围巾什么把自己裹得紧紧的。

比如像这样

这样暖和是暖和了,但安全问题来了 —— 不方便回头看背后是否有车或行人靠近,万一有车在加速,你又正好在转弯,那可就惨了。

能不能给自行车装一个视频后视镜?这样不用回头也能知道后方发生的一切。

一个叫 Alex Eames 的外国人就是这么做的。 他戏称冬天的自己戴着“忍者”模式的巴拉克拉瓦帽和自行车头盔让他看起来像个“山雀”。

某天他出门的时候,有辆车差点和他撞上。幸好他们都及时刹住了车,但离得已经很近了。

原本他买了一面小镜子,但效果不太理想。于是想到了摄像头和显示屏的组合,这样不但可以实时看到车况,而且还能当记录仪用。

他先是在亚马逊上看了一些产品,但要么不合适,要么价格太贵(200英镑以上)。而他的需求主要就是能实时了解车前后的状况(主要是后面)。而且他对GPS之类的功能并无需求,最多也就是希望能拍到野生兔子路过这种有趣的镜头。

那基于树莓派的项目如何呢?

在重新发明轮子之前,看看别人已经做了什么是个好主意。

在(http://pidashcam.blogspot.com)上有一个很好的“双摄像头行车记录仪”实现,该项目使用了一个树莓派II代,Pi摄像头和USB摄像头。

看起来很棒,但 Alex Eames 不想在这个阶段使用GPS,只需要一个屏幕来实时查看他身后的情况,另外还想使用一些自己买过的零件。

两年前他在ebay上花20英镑买了一个Keidei HDMI 3.5英寸屏幕,可以通过HDMI连接树莓派。而且有电阻触控。

3.5英寸KeDei屏幕背面
3.5英寸可触控Kedei屏幕正面(带HDMI接口)

“如果要追求效果,我可以升级显示屏以便拥有更高的分辨率。然后用一个全新的Pi 3A+,配上Pi摄像头在前面。再弄一个Pi Zero W带摄像头在后面。” Alex Eames 说道。

测试中

前面的树莓派将作为无线接入点和后面的Pi Zero W连起来。

这两个树莓派都将被设置为开机后自动运行。后方的Pi Zero W将其视频传输到端口8090。然后前面的Pi将抓取视频流并显示它,此处可以使用vlc。这样他就能在屏幕上看到身后的东西了。

装好树莓派后视镜的自行车

好了,最关键的一招是怎么实现的呢?一句命令就可以搞定,那就是:

raspivid -o – -t 0 | tee test_video.h264 |
cvlc -v stream:///dev/stdin –sout ‘#standard{access=http,mux=ts,dest=:8090}’ :demux=h264

如果你有冬季骑行的习惯,不妨也给自己也做个树莓后视镜吧。有相关技术问题欢迎在“IoT前哨站”公众号上给我私信。

相关素材来自:Raspi.tv

编译:王文文,前51CTO安全频道主编,阿里巴巴资深安全工程师,现供职UCloud技术市场,IoT前哨站创始人。

Scratch3.0正式发布 脱胎换骨扩展强大

作者:王文文

Scratch是一款由麻省理工学院(MIT)设计开发的少儿编程工具。

早期版本基于Adobe AIR,因此一直无法让iOS和Android的设备运行。近日Scratch官方终于发布了以Blocky为核心的Scratch 3.0,采用Node.js + Html5技术, 支持积木拖拽式 图形界面开发,可以在iOS & Android手机平板及桌上电脑跨平台使用,为青少年编程降低了难度!

而且Scratch 3.0可以向下兼容,因此你不必担心以前的作品无法调试。

你可以访问:https://scratch.mit.edu/create在线编辑,

也可以从:https://scratch.mit.edu/download下载最新的离线编辑器。

新版Scratch界面

此版本更新内容包括:

1、采用JS+Html5的页面技术,除了笔记本或台式机之外,还可以在平板电脑上创建和展示项目。

2、声音引擎(Audio Engine)重新设计,程序画面的速度因为WebGL的加速,达到40 fps,比Scratch 2.0的30fps快了一些,支持16:9画面。

3、新的精灵和背景,还有全新的扩展库,允许连接到Micro:bit、LEGO MINDSTORMS EV3等硬件,40多种语言支持。(连语音识别都给你准备了)

4、将舞台移到了编辑器右边(我倒是觉得放左边更好)。

5、新的运算符,使文本(字符串)更容易使用。

6、新的笔块(pen blocks),支持透明度。

7、IDE的小猫图标都改成字母了。

8、还有其他更新内容请自行发掘。

新版扩展区

从此次大改版大家应该能看出,Scratch志向不小。特别是新加的几个扩展,都是流行的IoT和AI应用。如果你的孩子在家用它搞出什么黑科技,千万不要惊讶。

树莓派北美团队 vs 树莓派驱动的“密室逃脱”

作者:Christina Foust

编译:IoT前哨站

几天前,树莓派北美团队在旧金山体验了一个非常特别的,由树莓派驱动的密室逃脱店。

这就是由Palace Games运营的一个充满灯光、传感器和大量惊喜体验的“爱迪生密室”。

以下是关于我们如何进入、探索并最终逃离这个房间的经过。

在今年的世界创客大会(World Maker Faire)上,我们的社交媒体明星亚历克斯•贝特(Alex Bate)遇到了乔丹•邦克(Jordan Bunker),他是制作Palace Games的艺术家之一。

经过电子邮件的连番轰炸后,树莓派北美团队订好日期,“直面交锋”爱迪生密室!

密室逃脱

“密室逃脱”是一种物理世界的冒险游戏,玩家通过线索、逻辑和策略来解决一系列的谜题和谜语,从而完成游戏的目标。许多密室逃脱设计师使用实体互动装置来控制玩家体验中涉及的众多传感器和触发器。

树莓派北美团队 vs 爱迪生密室

进入爱迪生密室后,我和我的团队很快意识到自己身处一个像巨型计算机一样的复杂系统中!所以即使这是我们第一次玩密室逃脱,也不是一个劣势。

(小编语:难道你们很擅长巨型计算机?)

我们的目标是完成各种任务。包括解决许多谜题,在任何事情中寻找隐藏的线索,完成电路,移动地板,并进行一些试验。

然而,真正的考验是我们之间的沟通和合作 —— 我们在这方面做得非常出色!

我们做了分工,以便有效地找出不同的谜题和线索,大家不停的在房间里大喊:“试试这样做”,“也许它是这个意思”,“如果它应该那样做呢?”

当我们完成最后一个挑战并最终逃脱时,我们欣喜若狂!每个人都戴上了爱迪生思维帽。

内部机制

逃离密室后,我们有机会去幕后一探究竟。

我们发现了一个由多个树莓派组成的本地网络,这些Pi由一个中心服务器(也是树莓派)协调。而Python写的Banyan框架(The Python Banyan framework)是树莓派及其附属组件之间的连接关键。

该框架帮助Pi和中心服务器之间的内网通信。树莓派被用来读取各种类型的传感器,控制灯光、开门或播放音乐。上面还跑着一个用来让工作人员设置和跟踪游戏的控制面板。

“树莓派让我们进步,它是我们密室的核心和灵魂。” ——伊丽莎白·桑德,密室设计师兼产品经理说道。

我们强烈推荐你去Palace Games(https://palace-games.com/)玩一个密室。这是一种很好的团建方式,可以让你了解和你一起工作的人。最后感谢Palace Games团队对我们的接待,希望不久以后能再回去探索他们的密室!

让ARM紧张的RISC-V是个啥?

北京时间2018年7月11日凌晨,ARM发言人承认了质疑RISC-V架构的网站(riscv-basics.com)确实是ARM发布的,“本意是为了增进大家讨论芯片架构,而不是恶意攻击RISC-V”,并且宣布已经将该网站下线。

但战火并没有停止,在很多硬件或开源技术社区里,有关RISC-V和ARM的辩论依旧激烈。

作为一个物联网爱好者,肯定会好奇为什么 RISC-V 会让如日中天的ARM这么紧张?

那么多挑战者,不是都没掀起大浪吗?

这个事情还得从头说起。

××××××××××××××××××

最早的时候大家整天被“等灯、等灯”的Intel广告洗脑,我们的PC和服务器也大多使用Intel或AMD的x86处理器来运行我们的程序。

移动时代来临之后,精简指令集的ARM仰仗自己的低功耗和低成本,迅速在手机和平板等终端确立了霸主地位。 华为、高通、Samsung、苹果等大厂都在基于ARM做着自己的软硬件产品。

目前,ARM占据全球移动通讯领域90%的市场,而且还把触角伸向了企业基础架构以及人工智能两大领域。

ARM和x86两大阵营互相攻伐,几乎无视第三方竞争者。

可是过了一段时间,大家发现IoT时代到了!新需求又来了!

如果把当前的阶段当作IoT时代的初期,ARM依然有着强大的优势,不管是架构还是工具链、系统、应用……

但领先的玩家已经把目光放到了IoT时代的中期,在他们的视角里,万物互联的时代,CPU必须结构更简单,性价比更高。很明显,ARM在那个时候可能会力不从心。

为什么会这么说?

1、复杂度已经大幅提高

作为商用架构,要保持向后兼容性,不得不保留许多过时的定义,导致其指令数目多,指令冗余严重,文档数量庞大,所以要在这些架构上开发新的操作系统或者直接开发应用门槛很高。

如果把ARM和x86的架构文档做个对比,就能发现复杂度快差不多了。为了保持兼容度,提高安全性,提高性能……ARM不得不承载过多的“背负”,慢慢变得有点像它以前讨厌的样子。

2、授权费不便宜

ARM虽然开放,但并不开源。ARM公司本身并不靠自有的设计来制造或出售CPU,而是将处理器架构授权给有兴趣的厂家。ARM 提供了多样的授权条款,包括售价与散播性等项目。

ARM授权方式主要有三种:架构层级授权、内核层级授权、使用层级授权。价格根据客户要求有高有低。授权条款虽然比Intel好一些,但也仅仅是好一些而已。ARM在指令集授权上非常吝啬,获得ARM32授权的公司一只手都能数的过来,ARM64授权虽然多,但授权费却异常昂贵,法国芯片创业公司Greenwave表示,他们如果使用ARM架构,要花掉1500万美元的授权费。而且授权到期后,是否继续授权和授权费用都要重新谈判。

物联网时代的芯片要有什么特点?

芯片是实现物物相连的关键,物联网的芯片偏重于解决低功耗、高整合度,低功耗连接使开发人员能够为功耗受限的设备添加更多功能,同时保持尺寸小巧,从而扩大了其应用可能性。添加集成度越来越高的元件,通过即插即用方案简化新应用的开发,快速将新设备推向市场。

以上这段是用ARM的设备商用来捧ARM的,但却恰恰说到了物联网时代的芯片关键。

ARM可能部分符合这段文字,但当前最符合这段文字的,可能是我们接下来要说到的 —— RISC-V。

RISC-V读作RISC Five,意思是第五代精简指令处理器。取这个名字只是因为美国伯克利研究团队的David Patterson教授在此之前已经研制了四代精简指令处理器芯片。

RISC-V有什么可取之处?

1、授权更开放,更宽松。

作为ARM的同门师弟(ARM和RISC-V都是精简指令集),RISC-V并不是第一个开源芯片架构。

在它之前,还有一个雷声大,雨点小的OpenRISC。由于采用了GPL和LGPL作为其开源协议(其中硬件设计采用LGPL,而模型和固件采用GPL)。让大部分商业公司望而却步,发展缓慢。

为了吸取OpenRISC的教训,RISC-V采用了BSD协议,这个协议的要求非常宽松,没有任何限制包括闭源和商用。很显然,RISC-V采用这个协议是为了吸引更多的人和公司参与到社区和生态的建设当中。当然,BSD协议本来就是Berkelay的东西(最早是用发布BSD Unix),从伯克利的文化风格来讲,RISC-V采用BSD也算是情理之中。

2、更小更精,模块化

RISC-V基础指令集则只有40多条,加上其他的模块化扩展指令总共几十条指令。

目前的“RISC-V架构文档”分为“指令集文档”(riscv-spec-v2.2.pdf)和“特权架构文档”(riscv-privileged-v1.10.pdf)。“指令集文档”的篇幅为145页,而“特权架构文档”的篇幅也仅为91页。相对上手和入门较快。

RISC-V架构不仅短小精悍,而且其不同的部分还能以模块化的方式组织在一起,从而可以通过一套统一的架构满足各种不同的应用场景。

用户能够灵活选择不同的模块组合,来实现自己定制化设备的需要,比如针对于小面积低功耗嵌入式场景,用户可以选择RV32IC组合的指令集,仅使用Machine Mode(机器模式);而高性能应用操作系统场景则可以选择譬如RV32IMFDC的指令集,使用Machine Mode(机器模式)与User Mode(用户模式)两种模式。

3、系统和工具链支持

从Linux 4.15内核开始,RISC-V已经获得Linux基金会和社区的支持。

软件生态方面也在逐步构建,比如调试工具链、中断控制器、JVM、LLVM、Python等开发者常用的工具都在完善之中。

此外,RISC-V还获得了Rust 语言支持。详见:https://github.com/dvc94ch/riscv-rust-toolchain(Rust 是一门由 Mozilla 开发和维护的系统编程语言。它有着惊人的运行速度,能够防止段错误,并保证线程安全)。

RISC-V Rust toolchain 的开发者还使用了由 lowRISC 基金会开发的 RISC-V LLVM 构建自己的端口,以及发布了一个 Rust 库,为 HiFive1 板提供 BSP,并为其外围设备提供支持。

×××××××××××××

相比ARM指令集,RISC-V的历史很短,2010年诞生于加州大学伯克利分校,当时的Krste Asanovic教授希望寻找一个合适的CPU指令架构,但x86架构复杂臃肿、ARM架构需要授权费、开源的OpenRISC架构又太老旧了,所以他最终决定自己做个开源CPU架构,在2015年最终成立了RISC-V基金会,专门推动RISC-V发展。

现在的RISC-V基金会成员也扩大到了80多人,包括Google、HP、Oracle、西数等公司都开始支持RISC-V架构。而且国内的公司也开始积极参与 RISC-V 生态系统,2018年 10 月份在中国上海成立了中国 RISC-V 产业联盟,包括芯原微电子、北京君正、安徽华米、上海小蚁、苏州国芯、紫光展锐等公司也加入了 RISC-V 联盟。

在美国,已经有不少知名高校开始把原本使用的MIPS指令集启蒙教材换成RISC-V了。更瞩目的是在软件业发达的印度,已经将RISC-V列为国家标准指令集。

也许未来五年,IoT领域依然是ARM的天下,但五年后呢?

现在你们知道ARM为啥紧张了吧?

作者:长空无名

来源:IoT前哨站

本文相关引用:

《大道至简——RISC》

https://wallstreetcn.com/articles/3280667

《什么是RISC-V》

https://zhuanlan.zhihu.com/p/49176102

《ARM 授权费用太贵 科技巨头欲转向开源架构 RISC-V》

https://www.leiphone.com/news/201805/8Nubo2qqdS7P8YRD.html

新款Linux病毒心机重 入侵后先袭中国安全软件

俄罗斯杀毒软件公司 Dr.Web 在近期发现了被称为 Linux.BtcMine.174 的木马,比传统的恶意程序更复杂,包含了大量恶意功能。

它本身是一个巨大的 shell 脚本,有超过 1000 行代码,感染之后的第一件事是寻找具有写入权限的目录,将自己拷贝进去,然后下载更多恶意模块。

如果发现系统缺乏相关组件,还会自行安装。

之后它会利用 CVE-2016-5195(又称 Dirty COW)和 CVE-2013-2094 两个漏洞之一进行提权。

在获取 root 权限之后,木马会将自己设为本地守护进程。

在这个过程中,病毒将查找 Linux 系统上的杀毒软件进程名称,并将其关闭,查找对象包括:safedog、aegis、yunsuo、clamd、avast、avgd、cmdavd、cmdmgd、drweb-configd、drweb-spider-kmod、esets 与 xmirrord。

一切准备就绪之后,木马将执行其最主要的功能——对加密货币进行挖矿。

此外,木马还会下载并运行其它恶意软件,比如Linux.BackDoor.Gates.9木马。这类后门允许执行网络罪犯发出的命令,执行DDoS攻击。

最后,该木马会收集受感染主机信息,并通过 SSH 连接将自身传播到更多的系统。

如果你需要Linux.BtcMine的SHA1文件散列,可以访问:

https://github.com/DoctorWebLtd/malware-iocs/tree/master/Linux.BtcMine.174

IoT前哨站:safedog(安全狗)、aegis(安骑士)、yunsuo(云锁),这三款都是中国的安全软件,而且国内用户很多,该病毒上来先关这三个软件,不知道是忌惮中国的安全技术,还是冲着中国用户来的。

如果是后者,那各位同胞要做好防黑准备了,肯定还会有下一波进攻。毕竟这个病毒作者信奉的可是:“Audentes fortuna iuvat”。

OpenCV 4.0 发布 —— 新增QR解码 性能再度优化

OpenCV是英特尔开源的跨平台计算机视觉库。也就是说,它是一套包含从图像预处理到预训练模型调用等大量视觉 API 的库,并可以处理图像识别、目标检测、图像分割和行人再识别等主流视觉任务。

OpenCV最显著的特点是它提供了整套流程的工具,因此我们根本不需要了解各个模型的原理就能一个个 API 构建视觉任务。

OpenCV使用 BSD 许可证,因此对研究和商业用途均免费。它具备 C++、Python 和 Java 接口,支持 Windows、Linux、Mac OS、iOS 和 Android 系统。OpenCV旨在提高计算效率,专注于实时应用。它使用优化的 C/C++写成,能够利用多核处理。

此外,在 OpenCL 的加持下,OpenCV可以利用底层异构计算平台的硬件加速。它的 GitHub 页面中有一个「open_model_zoo」资源库,包含了大量的计算机视觉预训练模型,并提供下载方法,有助于加速开发和产品部署过程。OpenCV应用广泛,目前在全世界约有 4.7 万用户,下载量约为 1400 万。

很多IoT和AI的玩家都会将其用于图像识别和处理。

可以说OpenCV是 CV 领域开发者与研究者的必备工具包,Mask-RCNN 等很多开源项目都依赖于这个工具包。现在距离 3.0 版本的发布已经过去三年多,近日OpenCV4.0 final 版发布,它进一步完善了核心接口,并添加了二维码检测器、ONNX 转换格式等新特点。

重要更新:

  • OpenCV4.0 现在是一个 C++11 库,要求 C++11 兼容的编译器。所需的 CMake 至少是 3.5.1 版本。
  • 移除OpenCV1.x 中的大量 C API。
  • core 模块中的 Persistence(用于存储和加载XML、YAML 或 JSON 格式的结构化数据)可以完全使用 C++ 来重新实现,因此这里的 C API 也被移除。
  • 添加了新模块 G-API,它可作为基于图的高效图像处理流程。
  • dnn 模块包括实验用 Vulkan 后端,且支持 ONNX 格式的网络。
  • 实现了流行的 Kinect Fusion 算法,且为 CPU 和 GPU (OpenCL) 进行优化。
  • objdetect 模块中添加了二维码检测器和解码器。
  • 将高效、高质量的 DIS dense optical flow 算法从 opencv_contrib 移到 video 模块。

此外,OpenCV4.0 支持 Mask-RCNN 模型,性能也有所提升,图像处理操作可实现 15%-30% 的速度提升。

OpenCV与深度学习

在OpenCV4.0 的更新中,它强化了 DNN 模块并添加支持 ONNX 交换格式的神经网络,这一切都表明OpenCV非常注重其与深度学习之间的关系。其实自从OpenCV3.1 以来,它就包含了能实现深度网络前向传播的 DNN 模块,这些深度网络一般都由 Caffe 等深度学习框架预训练而成。在OpenCV3.3 中,DNN 模块从 opencv_contrib 移到了核心代码库,并取得了显著的加速。

更重要的是除了 libprotobuf 以外,OpenCV中的 DNN 模块不包含额外的依赖项,而且现在 libprotobuf 已经包含到了OpenCV中。

以下是目前OpenCV支持的一些框架:

  • Caffe
  • TensorFlow
  • Torch
  • Darknet
  • ONNX 交换格式的模型

目前OpenCV所支持的深度学习层级函数:

  • AbsVal
  • AveragePooling
  • BatchNormalization
  • Concatenation
  • Convolution (including dilated convolution)
  • Crop
  • Deconvolution, a.k.a. transposed convolution or full convolution
  • DetectionOutput (SSD-specific layer)
  • Dropout
  • Eltwise (+, *, max)
  • Flatten
  • FullyConnected
  • LRN
  • LSTM
  • MaxPooling
  • MaxUnpooling
  • MVN
  • NormalizeBBox (SSD-specific layer)
  • Padding
  • Permute
  • Power
  • PReLU (including ChannelPReLU with channel-specific slopes)
  • PriorBox (SSD-specific layer)
  • ReLU
  • RNN
  • Scale
  • Shift
  • Sigmoid
  • Slice
  • Softmax
  • Split
  • TanH

对于对性能要求很高的神经网络层,这个 DNN 模块包括 SSE、AVX、AVX2 和 NEON 等底层加速库,且还有持续优化中的 Halide 后端。

你可以在这里找到最新的基准结果:https://github.com/opencv/opencv/wiki/DNN-Efficiency

单张图像前向传播的中位最佳时间(以毫秒为单位,基于 CPU 在 float32 上计算)。

以下网络已经经过测试并证实可行:

  • AlexNet
  • GoogLeNetv1 (也称为 Inception-5h)
  • ResNet-34/50/…
  • SqueezeNet v1.1
  • VGG-based FCN(语义分割网络)
  • ENet(轻量级语义分割网络)
  • VGG-basedSSD(目标检测网络)
  • MobileNet-basedSSD(轻量级目标检测网络)

OpenCV4.0 发布地址:https://opencv.org/opencv-4-0-0.html

双因素认证就够了?让我们用树莓派做个三因素的

双因素认证就够了?让我们用树莓派做个三因素的。

虽然双因素认证一直在我们在线访问电子邮件和网上银行时提供更多的安全性,但在物理世界,现在已经有三因素认证可以保护我们的贵重物品。

扫描指纹进行身份验证

不明白什么意思? 以下是来自Switched On Network的视频,演示了如何使用Raspberry Pi构建三因素门锁,包括RFID密钥环,6位密码和发送到手机的一次性密码。

(视频地址:https://v.qq.com/x/page/t07975pca69.html

Alex Bate的三因素门锁制作关键

要构建Switched On Network的三因素门锁,你需要采购Raspberry Pi 3,USB RFID读取器和遥控器,触摸屏,电子门锁和继电器开关。如果这些都有了,你最好再找个电源和胶枪。

胶水枪

为屏幕安装适当的驱动程序(如果点不亮屏幕)后,你就可以安装Switched On Network在GitHub repo公布的Python脚本。

地址:https://github.com/paulfp/Three-Factor-Security-Door

在竖屏模式下连接到Pi的三因素认证

然后是物理构造:你需要把门锁、引线和其他东西连接到Pi上,所有这些都要连接到门和门框上。

三因素认证门锁组件

最终成品是一个你提供密码、RFID标签(或卡片)和手机短信才能打开的高级门锁。 虽然我们不建议你用这种技术从外侧保护你的房屋,但它却是办公室或密室的完美配置。

《德克斯特实验室》经典台词

正如美国经典动画角色,德克斯特说的那样:“每个人都要有个私密之地。”