目标检测

您所在的位置:网站首页 百度识图的图片怎么保存 目标检测

目标检测

2024-07-09 15:51| 来源: 网络整理| 查看: 265

在百度图识图爬取自己想要的数据集 1. 问题描述

最近在做一个关于垃圾的目标检测问题,在部署训练时需要大量的各种各样的垃圾数据集,那么我想到了网上搜索+拍照+爬虫的方式来获取数据集,而在我的上一篇博客 目标检测-用爬虫爬取百度图库获得自己想要的图片数据集-python代码,给出了利用百度图库关键字爬取图片的方法。但是经过测试,爬到的数据很多是不能用的,图像千奇百怪,每100张大概只有20张左右是有效的。于是想到了利用百度识图来搜取相关的数据集。

2.准备工作

因为用到了 selenium模块,所以需要用到webdriver,这里我的是谷歌浏览器,所以用的是chromedriver 模块。

2.1chromedriver配置

1).打开chrome 输入 “chrome://version/”来查看chrome版本 如图我的是83.0 在这里插入图片描述 2).访问此网站 谷歌浏览器驱动 然后选择合适版本的driver

比如找到我的83 在这里插入图片描述 点击进入找到对应的系统,比如我是在linux系统下就选择linux,如下 在这里插入图片描述

点击notes.txt就可查看其对应的版本号 如果符合就可以下载了,下载到自己指定位置然后就可以进行配置了。(这里后面会讲)

2.2项目构成

– -- --识图项目文件夹 |–seed_imgs | --similar_search-result |–baidu_image_search_demo.py seed_imgs_dir中放一些收集所有想要用来搜索相似图片的原始图片 similar_search-result为空,为识图的存储结果

3.该工具代码

该工具百度网盘地址:[百度识图爬虫工具] ac13

为防止百度云失效,你只需按如上项目构成方式搭建项目即可。主要的py代码如下

# -*- coding: utf-8 -*- """ Created on Sun Sep 15 20:24:25 2019 这是一个借助百度识图功能获取大量相似图片的示例程序 如果你不了解百度识图,不妨尝试使用下: https://graph.baidu.com/pcpage/index?tpl_from=pc 本程序的大致思路如下: seed_imgs中放置想要搜索相似图的原始图片 程序将会依次获取seed_imgs中的图片作为搜索种子, 借助爬虫来模拟使用百度识图的过程,达到自动化搜索大量相似图片的目的 搜索的结果将会保存在similar_search_result中 使用方法如下: 1.准备种子图片 收集所有想要用来搜索相似图片的原始图片,放置在seed_imgs中 2.使本地图片可以被url访问 将seed_imgs中的图片做成可供外界访问的url形式,你可以使用任何可能的方法 例如我的解决办法是将这些图片上传到github上,将github作为一个临时的图床使用 根据你制作的图床的url前缀,修改变量base_url 3.安装chromedriver 教程: https://www.jb51.net/article/162903.htm 查看谷歌浏览器版本命令: chrome://version/ 下载链接(需选择对应版本) http://chromedriver.storage.googleapis.com/index.html 4.运行本程序,耐心等待 """ import os import cv2 import time import requests import numpy as np from selenium import webdriver # TODO: set parameters # These two parameters needs to be modified according to your actual situation. chrome_driver_path = '/home/cheng/Downloads/chromedriver' base_url = 'https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3402176288,1135588067&fm=26&gp=0.jpg' home_page = 'https://graph.baidu.com/pcpage/index?tpl_from=pc' seed_imgs_dir = 'seed_imgs' save_dir = 'similar_search_result' def prepare_seed_imgs(): seed_imgs_url_list = [] save_dir_list = [] for file_name in os.listdir(seed_imgs_dir): cur_url = base_url + file_name seed_imgs_url_list.append(cur_url) base_file_name = file_name[:-4] cur_save_dir = os.path.join(save_dir, base_file_name) if not os.path.exists(cur_save_dir): os.mkdir(cur_save_dir) save_dir_list.append(cur_save_dir) return seed_imgs_url_list, save_dir_list def search_similar_images(browser, image_url, max_page): print("start find similar image of {}".format(image_url)) search_failed = True try_num = 0 while(search_failed): if try_num >= 3: break try: browser.get(home_page) # 拖拽图片到此处或粘贴图片网址 url_upload_textbox = browser.find_element_by_css_selector('#app > div > div.page-banner > div.page-search > div > div > div.graph-search-left > input') url_upload_textbox.send_keys(image_url) # 识图一下 search_image_button = browser.find_element_by_css_selector('#app > div > div.page-banner > div.page-search > div > div > div.graph-search-center') search_image_button.click() # 等待百度识图结果 time.sleep(15) # 切换到当前窗口(好像可有可无) browser.current_window_handle # 测试是否成功 graph_similar = browser.find_element_by_class_name('graph-similar-list') # 运行到这里说明模拟使用百度识图功能成功,页面已正常加载 search_failed = False except Exception as e: #print("ERROR:" + traceback.format_exc()) print("ERROR: error when request baidu image search.") finally: try_num += 1 if search_failed: print("give up current image") return [] # 动态加载max_page次页面 download_page = 0 print("dynamic loading web page...") while download_page


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3