首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不会用Photoshop抠图?Python助你一键“除”人!

导读:看过英剧《黑镜》?...圣诞特别版《白色圣诞节》中有这样一个场景:其中一个未来科技有自由屏蔽人像功能,可以让你屏蔽任何一个不想看见或不喜欢的人,然后留下是一片灰白影像,就像是 Photoshop 软件中抠图功能应用在了动态场景中...与此不同是,本文作者则通过 MS COCO 数据集上使用预先训练好 Mask R-CNN 模型来自动生成图像中行人掩码脚本,实现人像屏蔽,并且不需要 GPU 就可以运行这个程序。...-c / - color:掩码颜色,采用引号包装十六进制或 RGB 3 元组格式(默认是白色)。 -o / - object:要掩码目标类型列表(或特定对象 ID)。...特定目标的掩码需要两个步骤:推理模式下运行以获取每个目标 ID,然后掩码这些目标 ID。 python3 person_blocker.py -i images/img4.jpg -l ?

1.2K10

干掉照片中那些讨厌家伙!Mask R-CNN助你一键“除”人!

【导读】:看过英剧《黑镜》?...圣诞特别版《白色圣诞节》中有这样一个场景:其中一个未来科技有自由屏蔽人像功能,可以让你屏蔽任何一个不想看见或不喜欢的人,然后留下是一片灰白影像,就像是 Photoshop 软件中抠图功能应用在了动态场景中...与此不同是,本文作者则通过 MS COCO 数据集上使用预先训练好 Mask R-CNN 模型来自动生成图像中行人掩码脚本,实现人像屏蔽,并且不需要 GPU 就可以运行这个程序。...-c / - color:掩码颜色,采用引号包装十六进制或 RGB 3 元组格式(默认是白色)。 -o / - object:要掩码目标类型列表(或特定对象 ID)。...你可以 classes.py 中或通过使用 -names 来查看掩码对象选择(默认值是行人)。 -l / - labeled:保存检测到对象及其对象 ID 注释标记图像。

49400
您找到你想要的搜索结果了吗?
是的
没有找到

不会用Photoshop抠图?Mask R-CNN助你一键“除”人

翻译 | 林椿眄 编辑 | 费棋 【AI科技大本营导读】:看过英剧《黑镜》?...圣诞特别版《白色圣诞节》中有这样一个场景:其中一个未来科技有自由屏蔽人像功能,可以让你屏蔽任何一个不想看见或不喜欢的人,然后留下是一片灰白影像,就像是 Photoshop 软件中抠图功能应用在了动态场景中...与此不同是,本文作者则通过 MS COCO 数据集上使用预先训练好 Mask R-CNN 模型来自动生成图像中行人掩码脚本,实现人像屏蔽,并且不需要 GPU 就可以运行这个程序。...-c / - color:掩码颜色,采用引号包装十六进制或 RGB 3 元组格式(默认是白色)。 -o / - object:要掩码目标类型列表(或特定对象 ID)。...你可以 classes.py 中或通过使用 -names 来查看掩码对象选择(默认值是行人)。 -l / - labeled:保存检测到对象及其对象 ID 注释标记图像。

93380

Python 中5种下划线含义都是什么?

假设你一个名为my_module模块中有以下代码: 现在,如果使用通配符从模块中导入所有名称,则Python不会导入带有前导下划线名称(除非模块定义了覆盖此行为__all__列表): 顺便说一下...让我们来看看这个列表,并寻找我们原始变量名称foo,_bar和__baz - 我保证你会注意到一些有趣变化。 self.foo变量属性列表中显示为foo。 self....当你列表中搜索__baz时,你会看不到有这个名字变量。 __baz出什么情况了?如果你仔细观察,你会看到此对象上有一个名为_Test__baz属性。...2 示例 例如,在下面的循环中,我们不需要访问正在运行索引,我们可以使用“_”来表示它只是一个临时值: 你也可以拆分(unpacking)表达式中将单个下划线用作“不关心”变量,以忽略特定值...在下面的代码示例中,我将汽车元组拆分为单独变量,但我只对颜色和里程值感兴趣。 但是,为了使拆分表达式成功运行,我需要将包含在元组中所有值分配给变量。

1.3K40

20行代码制作字符画版小黄鸭表情包 | 文末送书抽奖结果

把原动态图拆分成一帧一帧图片。 把拆分每帧图片转化为字符画。 把每帧字符画图片组合成动态图。...然后用 imageio 中 mimread 方法读取原动态图,把动态图每帧都拆分成若干张图片。 ?...转化为字符画 应用上面定义好图片灰度与字符映射,把上面的每帧图片都转化为字符画,并保存在一个列表中。 ?...imageio.mimsave(dealPic, A, 'GIF', duration=0.1) # 把A列表字符画组合起来,变成动态图 print('转化完成,请到你保存路径下查看') 通过这个程序...下面这个用本程序制作字符画大家知道是谁?欢迎在下方小程序留言区告诉我。 ? 觉得不错,点赞、转发朋友圈都是一种支持。

1.1K20

PQ-M及函数:为什么加了新内容,拆分列不对了?

小勤:大海,为什么原来做这个拆分列,现在数据增加后不对了? 大海:啊。你这个拆分列是原来最多只有3个内容时候做? 小勤:对啊,但现在有4个内容,分列出来也只有3个。 大海:嗯。...大海:这样: Step-01:我们拆分列之前,先识别每行里有多少项内容: List.Count( Text.PositionOf( [待拆分列], "-",...Occurrence.All ) ) + 1 其中Text.PositionOf用于识别在[待拆分列]中"-"位置,Occurrence参数有种可选项: Occurrence.All:返回所有要查找字符...Step-02:修改原拆分列代码中固定列名列表为动态列名列表 {"1"..Text.From(List.Max(已添加自定义[内容数]))} 用List.Max读取前面一步生成列(还记得对前面步骤生成结果列怎么引用...理解了,反正就是想办法根据内容最大项数构造一个动态列名列表拆分步骤去用。 大海:对。 小勤:那要是超过10列怎么办?用{"1"..##}方式会不会出错啊? 大海:好问题。你试试?

49020

在网络端口扫描期间寻找速度和准确度之间平衡点

3.扫描Masscan识别的开放端口和主机组合列表。 4.扫描Masscan识别的特定主机上特定开放端口。 在有限时间内,不可能涵盖选项每一个变化/组合,因此仅涵盖上述内容。...测试中5组端口范围拆分方式结果最佳。 原始数据 下表显示了使用上述不同Masscan测试用例进行实验原始数据。 ?...=6 --max-scan-delay=10ms 以下Nmap选项也用于模拟Masscan使用选项。...测试用例#2:使用X个并发作业扫描所有TCP端口 本例中,我试图通过运行并发Nmap扫描来解决Nmap低性能问题。这是通过将目标子网拆分成更小块来完成,就像我之前对Masscan所做那样。...然后,这两个列表被用作输入到parallel,使用::::选项,以同时运行Nmap扫描。 同样,如果你对GNU Parallel并不熟悉,可以查看此处教程。

1.6K31

excel常用操作大全

2.如何在文件下拉窗口底部设置最近运行文件名数量? 打开“工具”,选择“选项”,然后选择“常规”,并在“最近使用文件列表”下文件编号输入框中更改文件编号。...5.如果一个Excel文件中有多个工作表,如何将多个工作表同时设置为相同页眉和页脚?如何一次打印多个工作表? EXCEL菜单视图-页眉和页脚中,您可以设置页眉和页脚来标记信息。...方法是: 选择操作区域,“格式”菜单中选择“自动套用格式”命令,从格式列表框中选择满意格式样式,然后按“确定”按钮。...请注意,点击“选项”按钮后,格式列表框下有六个“应用格式类型”选项,包括“数字”、“边框线”和“字体”。如果没有选择一个项目,则在应用表格样式时不会使用它。 18、如何快速复制单元格格式?...如果您可以定义一些常规数据(如办公室人员列表),您经常需要使用这些数据作为将来自动填充序列,这难道不是一劳永逸

19.1K10

Jupyter notebook使用技巧大全

退出 如果要停止某个正在执行notebook文件,可以file选项卡下勾选该文件,点击shutdown(也可以用其他方式,见后文)。...如下图所示:最左侧是蓝色条是命令模式,是绿色条表示编辑模式(此时cell中有光标,可以进行代码编写)。命令模式下,按下enter或者鼠标单击代码框可以进入编辑模式。...安装完之后,重新启动一下jupyter 服务,就可以看到Nbextensions选项卡。我们只需要勾选相应插件,每一个notebook工具条中就会出现相应扩展。...首先在Nbextensions选项卡中勾选该插件,然后工具条中就可以看到该扩展按钮。...同样Nbextention选项卡中勾选Autopep8,工具栏中会多一个“锤子”一样按钮,可以帮助我们排版代码,使其符合pep8标准。 ?

1.9K30

如何使用KnockKnock枚举OneDrive和Microsoft Teams有效用户

KnockKnock是一款功能强大用户信息枚举工具,工具旨在通过查询OneDrive和/或Microsoft Teams来识别、枚举和验证潜在有效用户名。...除此之外,该工具还可以为输出数据创建一个不包含冗余数据干净列表,以便广大研究人员对其进行后续深入分析。...v 开启Verbose模式 工具选项 1、只要所选模块提供了对应运行模式,我们就可以选择一种或两种模式; 2、所有的模块都需要提供-d参数(域名选项)和-...i参数(用户输入列表); 3、该工具可以不用将输出文件作为参数选项提供,如果不提供,它会将分析结果打印到屏幕上; 4、Verbose模式会将大量额外信息输出显示到屏幕上,包括无效用户信息;...找到之后,直接复制整个令牌,随后脚本将会帮助我们对其进行拆分,并生成真正可用部分。 工具使用样例 .

12710

dirsearch安装和使用

目录 dirsearch介绍 下载及安装 如何使用 简单用法 递归扫描 线程 前缀/后缀 黑名单 筛选器 原始请求 Wordlist格式 排除扩展 扫描子目录 代理 报告 其他命令 小贴士 选项 选项...200-399 还有2个选项:**–force-recursive**和**–deep-recursive** force-recursive(强制递归):强力递归所有找到路径,而不仅仅是以`/`结尾路径...尽管如此,速度仍然很大程度上取决于服务器响应时间。作为警告,建议保持线程数不要太大,因为这可能导致DOS。...排除扩展后: admin.php -如果要排除所有扩展名,除了’-e’标志中选择扩展名之外,请使用**–only-selected** python3 dirsearch.py -...支持SOCKS和HTTP代理,有两个选项:代理服务器或代理服务器列表

4.1K21

Python3笔试实际操作基础1.md

确实还有相当多程序员使用 Python2,不过 Python3 才是 Python 发展未来,就像 XP 和 WIN7 一样。觉Python3 中有很多新特性确实很妙,很值得进行深入学习!... Python 或 IDLE 中,输入 dir(__builtins__) 可以看到 Python 提供内置方法列表一共73个,当前版本 Python 3.7.2 (tags/v3.7.2:9a3ffc0492..., Dec 23 2018, 23:09:28) Python 看来:’FishC’ 和 ‘fishc’ 一样?...以下哪个变量命名不正确?为什么? (A) MM_520 (B) _MM520_ (C) 520_MM (D) _520_MM (C)选项不正确,因为 Python 中变量名不能以数字开头。...>>> old.sort(reverse=True) # (注意这里有坑),排序是会带动变化 >>> print(new) #这时候new是会变化 [5,4,3,2,1] 进行列表赋值给其他变量时候需要注意

62210

1.Python3扩展知识之笔试操作总结(一)

确实还有相当多程序员使用 Python2,不过 Python3 才是 Python 发展未来,就像 XP 和 WIN7 一样。觉Python3 中有很多新特性确实很妙,很值得进行深入学习!... Python 或 IDLE 中,输入 dir(__builtins__) 可以看到 Python 提供内置方法列表一共73个,当前版本 Python 3.7.2 (tags/v3.7.2:9a3ffc0492..., Dec 23 2018, 23:09:28) Python 看来:’FishC’ 和 ‘fishc’ 一样?...以下哪个变量命名不正确?为什么? (A) MM_520 (B) _MM520_ (C) 520_MM (D) _520_MM (C)选项不正确,因为 Python 中变量名不能以数字开头。...>>> old.sort(reverse=True) # (注意这里有坑),排序是会带动变化 >>> print(new) #这时候new是会变化 [5,4,3,2,1] 进行列表赋值给其他变量时候需要注意

79410

​Linux 后门系列之 python3 反弹shell & 隐藏后门

选项仅在调试版本中有效。 -X tracemalloc 使用 tracemalloc 模块启动对 Python 内存分配跟踪。默认情况下,只有最近帧会保存在跟踪回溯信息中。...-X showalloccount 当程序结束时输出每种类型已分配对象总数。此选项仅当 Python 定义了 COUNT_ALLOCS 后构建时才会生效。...,我觉得没有哪个module可以直接作为shell进行反弹,所以这个参数更适合于我们隐藏shell 查到资料说,python3 引入模块时候,是按照 sys.path 顺序来进行查找,我们来测试一下是不是这样...可以看到返回结果为 /usr/lib/python3.5/test_path.py ,可以看到是按照 sys.path 这个列表元素顺序进行。...这个呢,需要了解一下Python执行过程了,我还没到专门去搞这个时候,测试过程中我巧合发现了一个文件挺适合做这个事 还记得之前 _sysconfigdata_m.py

1.7K20

常用Python标准库

讲真的,你知道这些库之后,你会有种相见恨晚感觉。 接下来带大家走进python标准库世界。PS: 使用Python版本为Python3 0x01 字符串 re: 正则表达式。...提供支持按顺序对列表进行排序,而不必每次列表中插入后再去排序。 heapq: 堆队列算法。最小堆:完全平衡二叉树, 所有节点都小于字节点。 datetime: 提供操作日期和时间类。...其中有两种日期和时间类型: naive和aware collections: 高性能容器数据类型。...提供了各种与时间相关函数。 argparse: 命令行选项、参数和子命令解析器。使用该库使得编码用户友好命令行接口非常容易。取代了之前optparse io: 提供接口处理IO流。...这个是Python2.7版本Python3已经将其拆分成多个模块urllib.request,urllib.parse和urllib.error。

1.2K30

pycharm与python关系_pycharm和python区别

pycharm使用创建directory和Python package区别 pycharm 能显示当前python 文件下函数和类列表 当然可以,调出Structure视图即可。...初学python,pycharm和Spyder哪个好 pycharm怎么添加python3 除了使用easy_insatll和pip工具安装Python第三方库外还可以使用pycharm安装Python...上面个选项意思是导入配置文件,所以你要选择你本机配置文件。 下面个选项,do not import setting。...意思是不导入本机上配置文件并使用pycharm官方默认设置(后面可以改) 因为pycharm可以根据你喜欢设 pycharm需要设置python路径 pycharm需要装python 需要。...具体方法是,首先打开Pycharm开发工具,选择点击工具栏中settings选项弹出settings界面中选择project选项,project后面的名字就是你打开的当前 发布者:全栈程序员栈长

62320

Pycharm配置(1)——解释器(interpreter)「建议收藏」

今天导入模块,发现出了很多错,要升级pip,但是我发现在新建工程项目(PycharmIDE)中有pip,而我安装Python3中,也有pip ,那我升级哪一个呢?...还是上面的File——>Setting——>show all(project Interpreter选项里面),点开以后得到: 点击加号,进行添加(我们看看这个配置解释器和D盘里面的Python3...有什么关系):点击加号以后,会有两个选项,一个是add Local Python Interpreter(这个其实就是你D盘里面的Python3,也就是本地解释器),第二个是add remote Python...interpreter,也就是远程解释器(不在你本地机器上,但是你可以远程访问它) 看到这个选项没有,这里说是虚拟环境,也就是说这是一个虚拟解释器,它是建立D盘里面的Python解释器(第二个圆圈...所以说一切基础还是D盘中Python中,但是两者是同步

2.7K20

灵活拆分列:从数字到非数字拆分,只要拆分1次怎么办?| PBI函数及技巧

我们知道,Power Query里,有一项拆分选项是“按照从数字到非数字转换”进行拆分,通过这个选项,可以很轻松地将数字和非数字间隔出现情况拆开: 拆分后,所有内容会被一次性拆解完毕,步骤公式和输出内容如下...: 到了这里,可能有的朋友会说,这个问题不是好简单?...显然,拆分结果被分成了很多列,并通过公式中最后一个列表参数进行控制,所以,我们这里可以修改其中输出内容,只取所需要列(1列,并且可以直接修改输出列明),如“首段数字”: 得到了首段数字之后,...注意,这里不会删除中间存在列表字符,大家可以自己体会一下。 再回到前面的问题,为什么不直接通过再合并方式,把除第一项以外内容直接做合并?...这是因为,从数字到非数字转换拆分出来列是按现有内容进行固定拆分,比如目前内容拆出来只有5项,那如果后面新增内容有6项甚至更多,我们再用这个拆分合并过程,就会丢失那些多出内容。

35110
领券