机器之心报道

编辑:张倩、陈萍

有了这个插件,再也不怕同事误会了。

相信每个人都遇到过这种情况:想下载一部电影或一个软件,结果跳出一堆色情广告,因为怕同学或同事误会,不得不赶紧关掉浏览器。这种情况广泛存在于电子书、电影等资源类网站以及插件、模板等工具类网站,给广大网友带来了很大困扰。

因此,很多人都在网上搜索:「如何屏蔽网页上的色情广告?」

其实,这个问题通过一个插件就能解决。

近日,一位名叫「Navendu Pottekkat」的计算机视觉工程师在 GitHub 上开源了一个项目——「NSFW Filter」,专治这种令人尴尬的小黄图,为大家创造一个干净的上网环境。

什么是 NSFW?对于不知道的小伙伴,这里统一科普一下:NSFW 的全称为「Not Safe For Work」。从名字可以看出,这是一个非法内容独有标记。它通常被用于标记那些带有淫秽色情、暴力血腥、极端另类等内容的邮件、视频、博客、论坛帖子等,以免读者不恰当地点击浏览。常见的用法是在链接的后面加上一对括号,括号中标记「NSFW」。

Pottekkat 开发的「NSFW Filter」是一个 Web 扩展,它可以在你浏览网站时过滤掉上面的 NSFW 图像。

在加载网页时,「NSFW Filter」使用 TensorFlow JS(一种机器学习框架)检查 NSFW 图像。加载网页后,所有图像将保持隐藏状态,直到上述检查步骤完成。如果发现图像是 NSFW,它们将保持隐藏状态。否则,它们将变为可见。

该扩展程序完全在你的浏览器上运行(支持 Google Chrome、Mozilla Firefox 浏览器),即没有用户数据被发送到服务器进行处理,可以保证用户隐私安全。

演示效果

该项目演示使用的网站是 scroller/nsfw,它会随机加载 NSFW 图像(一定不要打开!一定不要打开!一定不要打开!重要的事说三遍!)。

下面的动图展示了 NSFW 过滤器的功能。经过过滤后的图像,正常的都被显示出来,那些不适合普通网民看的图片则会被隐藏起来(由于 scroller/nsfw 上几乎没有「正常」图像,所以看到的是一片空白)。

安装过程

「NSFW Filter」支持 Chrome 浏览器和 Firefox 浏览器。

如果你是 Chrome 浏览器的用户,由于「NSFW Filter」在 Chrome Webstore 中尚不可用,所以请参照以下步骤进行安装。

克隆此存储库,在项目文件夹中导航,并通过运行以下命令安装依赖项:

npm ci

安装依赖项后,通过执行以下命令来构建项目:

npm run build

设置 Chrome 浏览器

安装完成后,打开 Chrome 浏览器,在右上角找到「设置」→「扩展程序」(或直接在地址栏输入 chrome://extensions/)。单击右上角的「开发者模式」开关打开「开发者模式」。

接下来单击 LOAD UNPACKED 按钮,然后选择扩展目录(.../dist)。

安装工作就完成了!

设置 Firefox 浏览器

如果你是 Firefox 浏览器用户而且只是想使用该扩展,请用该浏览器打开以下链接:https://addons.mozilla.org/en-US/firefox/addon/nsfw-filter/。然后点击「Add to Firefox」将该扩展添加到浏览器。

如果你想安装开发者版本,请在完成安装步骤之后执行以下步骤:

打开 Firefox 浏览器,输入 about:debugging#/runtime/this-firefox 到达 Debug Add-ons 页面。

单击「Load Temporary Add-on」,然后从.../dist 目录中选择文件 manifest.json。安装就大功告成了!

为了测试该扩展的效果,我们安装火狐浏览器测试了一下,结果效果还可以:

但是,NSFW 的视频内容还是会自动播放,看来项目还需要迭代。

欢迎大家在评论区推荐更好用的插件,帮大家净化上网环境。

© THE END

转载请联系 机器之心 公众号获得授权

正道的光!这有个用TensorFlow做的小黄图过滤器相关推荐

  1. 深度学习总结:用pytorch做dropout和Batch Normalization时需要注意的地方,用tensorflow做dropout和BN时需要注意的地方,

    用pytorch做dropout和BN时需要注意的地方 pytorch做dropout: 就是train的时候使用dropout,训练的时候不使用dropout, pytorch里面是通过net.ev ...

  2. 语义网络分析图怎么做_怎么去分辨化工壶,光说可能大家还是会有疑惑,所以做了几个图...

    网友们经常会拿一些壶出来,拍图给我看,问我会不会是化工壶,说到底,还是不放心自己手头上的紫砂壶,怕对自身健康造成影响,在这里,小编特地编辑这一段,教大家怎么去分辨化工壶,光说可能大家还是会有疑惑,所以 ...

  3. sklearn中lstm_分别用sklearn和tensorflow做房价预测

    原标题:分别用sklearn和tensorflow做房价预测 本篇是后面用tensorflow做回归时的一个参照,忍不住要说的是sklearn真是简单好用,要不是他没有卷积cnn等时髦模型,真是不想用 ...

  4. 【TensorFlow基础操作笔记】图+对话+张量+变量+线性回归实例

    [TensorFlow笔记] 基本结构(图 + 对话) 图的演示 对话的演示 张量的演示 变量 一个线性回归的案例 这是博主的一篇笔记性质的博客,随着学习会不断更新. 基本结构(图 + 对话) Ten ...

  5. 教你用TensorFlow做图像识别

    弱者用泪水安慰自己,强者用汗水磨练自己. 上一篇文章里面讲了使用TensorFlow做手写数字图像识别,这篇文章算是它的进阶篇吧,在本篇文章中将会讲解如何使用TensorFlow识别多种类图片.本次使 ...

  6. 正道的光用计算机,正道的光作文500字

    当那熟悉的轰天巨雷般的呼噜声响起,我就知道,这又是睡不着的一天. 同样在宿舍:同样是小翟:同样的时间:同样在我昏昏欲睡的时候,那个熟悉的呼噜声,它又来了.它将我从即将到来的美梦中惊醒了,全宿舍又一次不 ...

  7. Tensorflow源码解析5 -- 图的边 - Tensor

    1 概述 前文两篇文章分别讲解了TensorFlow核心对象Graph,和Graph的节点Operation.Graph另外一大成员,即为其边Tensor.边用来表示计算的数据,它经过上游节点计算后得 ...

  8. TensorFlow基础11-(小批量梯度下降法和梯度下降法的优化)

    记录TensorFlow听课笔记 文章目录 记录TensorFlow听课笔记 一,梯度下降法:求解函数极值问题 二,梯度下降法的优化 多层神经网络--非线性分类问题 损失函数不是凸函数,很难计算解析解 ...

  9. tensorflow 做加法

    代码 #!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Introduce : 加法运算 @File : demo ...

最新文章

  1. 2018-2019-1 20189201 《LInux内核原理与分析》第九周作业
  2. 导购提成怎么算_空调选购,别问“小白”问题,问导购这几个参数,才会显得内行...
  3. 用java编写一个计算器_用java程序编写一个计算器
  4. Aptana Studio 3 如何汉化,实现简体中文版
  5. 程序员在简书|努力奔跑
  6. 【codeforces】【01字符串匹配】Equalize【Manthan, Codefest 18 (rated, Div. 1 + Div. 2)】
  7. Python股票历史数据下载
  8. Openwrt常用软件模块之CWMP
  9. Axure RP 8制作计时器
  10. C#服务端如何获取外网IP
  11. 电子计算机的五个部分组成,电子计算机由哪几大部分构成?
  12. excel单个对象用poi导出,并设置每个sheet得最大行数防止报错
  13. 关于mysql的时区(下):如何设置mysql的时区
  14. 热电冷磁之牛顿的三棱镜谭:围棋之C++
  15. java 导入导出excel表格
  16. Crypto one-time-pad
  17. php大商创商城,news.php · Mihok/ecshop大商创商城 - Gitee.com
  18. 赋能 打造应对不确定性的敏捷团队 pdf_赋能——打造应对不确定的敏捷团队|《赋能》斯坦利...
  19. Linux常用命令及使用方法(非常详细!!!)
  20. 使用Map 代替Switch语句

热门文章

  1. RUP within the context of the Six Best Practices
  2. 谷歌发布 RLDS,在强化学习生成、共享和使用数据集
  3. 985大学的高材生只会写代码片段,丢人吗?
  4. 知乎联合清华:开放国内最大个性化推荐实际交互数据集
  5. 干货 | 收藏!16段代码入门Python循环语句
  6. 毕业十年后,我忍不住出了一份程序员的高考试卷
  7. 非计算机专业如何转行AI,找到算法offer?
  8. 不用数学也能讲清贝叶斯理论的马尔可夫链蒙特卡洛方法?这篇文章做到了
  9. Spring Boot 操作 Redis 的各种实现
  10. 5分钟了解Docker原理(2),最简单的cgroups介绍!