如何用 Python 脚本批量下载 Google 图像?

简介: 分不清谭卓和郝蕾?各来200张照片,让深度学习帮我们识别吧。问题《如何用Python和深度神经网络识别图像?》一文中,我给你展示了如何用深度学习,教电脑区分机器人瓦力和哆啦a梦。
img_6901351ca6793a26bbba4508728d7739.png

分不清谭卓和郝蕾?各来200张照片,让深度学习帮我们识别吧。

问题

如何用Python和深度神经网络识别图像?》一文中,我给你展示了如何用深度学习,教电脑区分机器人瓦力和哆啦a梦。

很快就有用户在后台留言,问:

老师,我想自己训练一个图片分类器,到哪里去批量下载带标注的训练图像呢?

说说我写教程的时候,是如何找图片的吧。

最大的图片库,当然就是 Google 了。

在 Google 图像栏目下,键入"Walle"。

img_483ed77b86264dc04d73f89fffaee5c6.jpe

怎么样?搜索结果很符合需求吧。

你不但找到了一批高质量图片,而且它们的标注, Google 都帮你打好了。

下面一步,自然就是把这些图片下载下来了。

我让学生实际动手做,每个人找两个与别人不同的图像集合,尝试根据教程做深度学习分类。

我提供给他们的方案(几款不同的 Chrome 浏览器插件),效果都不好。

有的才下了几张,就停工,甚至把浏览器整崩溃了。

有的下载图片,都是重复的。

学生告诉我,经验证,最简单有效的方法,是一张张手动点击下载……

这显然不是正经办法。

痛点

渴望从 Google 图片库高效批量获得优质带标注图像,不会是个案。

这个大众痛点,真的没有人尝试解决吗?

今天,一个偶然的机会,我发现了一个特别棒的 Github 项目,叫做 google-images-download

img_ad13a9921d87f21884bb66a30d90de55.jpe

Github repo 链接在这里

项目发布至今,只有短短5个月的时间,星标数量居然已经上了2000,看来确实非常受欢迎。

google-images-download 是个 Python 脚本。

使用它,你可以一条命令,就完成 Google 图片搜索和批量下载功能。

而且,这工具还跨平台运行,Linux, Windows 和 macOS 都支持。

简直是懒人福音。

安装

google-images-download 安装很简单。

以 macOS 为例,只需要在终端下,执行以下命令:

pip install google_images_download

安装就算完成了。

当然,这需要你系统里已经安装了 Python 环境。

如果你还没有安装,或者对终端操作命令不太熟悉,可以参考我的《如何安装Python运行环境Anaconda?(视频教程)》一文,学习如何下载安装 Anaconda ,和进行终端命令行操作。

尝试

进入下载目录:

cd ~/Downloads

我们尝试下载一些图片。

《我不是药神》里面有个叫谭卓的女演员,演的不错。可是我一开始,把她当成郝蕾了。

img_0a9a6978a2fbbc2fb1390107904ab949.jpe

咱们尝试下载一些谭卓的图片吧。

终端里面执行:

googleimagesdownload -k "谭卓" -l 20

解释一下,这里的 -k 指的是 "keyword",也就是“关键词”,后面用双引号括起来要查找的关键词。

你可以看出,使用中文关键词,也没问题。

后面的 -l ,指的是"limit",也就是图片数量限定,你需要指定自己要下载多少张图像。

本例中,我们要20张。

下面是执行过程:

img_37955556211d8487804812f2e56506c6.jpe

执行完毕。

可以看到,下载过程中,发生了一个错误。

但程序依然锲而不舍,帮我们把下载流程运行完毕。

我们看看结果。

下载的图片都存放在 ~/Downloads/downloads/谭卓 下面,google-images-download 非常贴心地,为我们建立子目录。

我们在 Finder 里打开看看:

img_cd94d1eb78b607a7bb0af42a57e0ca1e.jpe

看了半天,有的照片,还是跟郝蕾分不大清楚。

为了彻底分清两位女演员,我们再下载 200 张郝蕾的照片吧。

仿照刚才的命令,我们执行:

googleimagesdownload -k "郝蕾" -l 200

然后……就报错了:

img_b8e4c3894c70412166270282d626874d.jpe

解决

遇到问题,不要慌。

你得认真看看错误提示。

注意其中出现了一个关键词:chromedriver

这是个什么东西呢?

我们回到 google-images-downloadgithub 页面,以 chromedriver 为关键词进行检索。

你会立即找到如下结果:

img_2e7b4a2bdd01103b5f2e26eee9ba7967.jpe

原来如果你要的图片数量超过100张,那么程序就必须调用 Selenium 和 chromedriver 才行。

Selenium 在你安装 google-images-download 的时候,已经自动安装好了。

你只需要下载 chromedriver ,并且指定路径。

下载链接在这里

img_1cbf30a184bc7b04f81244453ce7633b.jpe

请根据你的操作系统类型,选择合适的版本:

img_12a2b9635d49e5dcd9f4c6ff062ef344.jpe

我选的是 macOS 版本。

下载后,压缩包里面只有一个文件,把它解压,放在 ~/Downloads 目录下。

img_1018ccf88fe04687476b2ee0122ac4c4.jpe

然后,执行:

googleimagesdownload -k "郝蕾" -l 200 --chromedriver="./chromedriver"

这里 --chromedriver 参数,用来告诉 google-images-download ,解压后 chromedriver 所在路径。

这回机器勤勤恳恳,帮我们下载郝蕾的照片了。

img_29afdd885b04752d853e364ea2ab4b83.jpe

200张图片,需要下载一会儿。请耐心等待。

img_78cd2b9f472ee93a1f54deecd2a95144.jpe

下完了。

中间也有一些报错,部分图片没有正确下载。

好在,这对总体结果没有太大影响。

为了保险起见,建议你设置下载数量时,多设置一些。

给自己留出安全边际嘛。

咱们打开下载后的目录 ~/Downloads/downloads/郝蕾 看看:

img_961c6d3a0779ed75de24ebd27c4d6d29.jpe

这回,你能分清楚她俩不?

作业

给你留个作业。

你已经学会如何一行命令,下载谭卓和郝蕾的照片。

能否活学活用咱们之前介绍的卷积神经网络知识,用 TuriCreate (或者 Tensorflow) ,建立模型识别两个人的照片?

完成作业后,欢迎把你的测试准确率结果告诉我。

当然,如果你能举一反三,利用咱们今天介绍的脚本,下载其他图像集合,并且进行深度学习训练,就更好了。

也欢迎把结果反馈给我哦。

喜欢请点赞。还可以微信关注和置顶我的公众号“玉树芝兰”(nkwangshuyi)

如果你对数据科学感兴趣,不妨阅读我的系列教程索引贴《如何高效入门数据科学?》,里面还有更多的有趣问题及解法。

目录
相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
51 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
25天前
|
安全 Linux 网络安全
利用Python脚本自动备份网络设备配置
通过本文的介绍,我们了解了如何利用Python脚本自动备份网络设备配置。该脚本使用 `paramiko`库通过SSH连接到设备,获取并保存配置文件。通过定时任务调度,可以实现定期自动备份,确保网络设备配置的安全和可用。希望这些内容能够帮助你在实际工作中实现网络设备的自动化备份。
51 14
|
2月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
213 61
|
2月前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
178 5
|
2月前
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
129 7
21个Python脚本自动执行日常任务(2)
|
2月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
220 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
2月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
108 7
|
3月前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
3月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
3月前
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。

热门文章

最新文章