반응형
데이터셋을 만들 때 사진을 일일이 찍는 것은 너무 힘들고 영상을 직접 찍어 프레임수로 나누는 것은 다양성이 부족하다.
이때 구글에서 이미지검색을 하여 크롤링하면 좋다.
우선 아나콘다를 켜서 anaconda prompt에
pip install selenium
을 쓴다.
이후 구글 크롬드라이버를 설치하는데 이때 정말 중요한 것이 자신의 크롬 버전을 알고 동일한 크롬 드라이버를 설치해야 한다는 점이다.
여기에 들어가면 자신의 크롬이 몇버전인지 알 수 있다.
이후 https://sites.google.com/a/chromium.org/chromedriver/downloads
에서 맞는 크롬드라이버를 설치해주고
아나콘다 프롬프트에서
pip install beautifulsoup4
로 설치해준뒤
파이 참에서 해당 아나콘다 가상 환경을 들어가서
import os
import sys
import selenium
from time import sleep
from selenium import webdriver
from bs4 import BeautifulSoup as soups
def search_selenium(search_name, search_path):
search_url = "https://www.google.com/search?q=" + str(search_name) + "&hl=ko&tbm=isch"
browser = webdriver.Chrome('C:/Users/BIT/Desktop/chromedriver.exe')
browser.get(search_url)
last_height = browser.execute_script("return document.body.scrollHeight")
while True:
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
sleep(1)
new_height = browser.execute_script("return document.body.scrollHeight")
if new_height == last_height:
try:
browser.find_element_by_css_selector(".mye4qd").click()
except:
break
last_height = new_height
image_count = len(browser.find_elements_by_css_selector(".rg_i.Q4LuWd"))
print("로드된 이미지 개수 : ", image_count)
browser.implicitly_wait(2)
search_limit = int(input("원하는 이미지 수집 개수 : "))
for i in range(search_limit):
image = browser.find_elements_by_css_selector(".rg_i.Q4LuWd")[i]
image.screenshot(search_path + '/' + str(i) + ".jpg")
browser.close()
search_name = input("검색하고 싶은 키워드 : ")
crawling_path = input("저장할 폴더명 입력 : ")
search_path = "./crawling_img/" + crawling_path
try:
# 중복되는 폴더 명이 없다면 생성
if not os.path.exists(search_path):
os.makedirs(search_path)
# 중복된다면 문구 출력 후 프로그램 종료
else:
print('이전에 같은 [검색어, 이미지 수]로 다운로드한 폴더가 존재합니다.')
sys.exit(0)
except OSError:
print('os error')
sys.exit(0)
search_selenium(search_name, search_path)
이 코드를 실행해주면 됩니다.
이렇게 진행되면 잘 진행된 것이며
이렇게 파일들이 저장된다.
반응형
'embedded > yolov4_darknet' 카테고리의 다른 글
2. python으로 동영상을 프레임단위로 자르기 (3) | 2021.09.08 |
---|---|
1. yolo_mark 설치 (0) | 2021.09.08 |