Spaces:
Runtime error
Runtime error
import os | |
import random | |
from fastdownload import download_url | |
from duckduckgo_search import ddg_images | |
from fastcore.all import * | |
from fastai.vision.all import * | |
def search_images(term, max_images=30): | |
print(f"Searching for '{term}'") | |
return L(ddg_images(term, max_results=max_images)).itemgot('image') | |
def download_images(term, folder, num_images): | |
# Erstelle den Ordner, falls er nicht existiert | |
if not os.path.exists(folder): | |
os.makedirs(folder) | |
# Suche nach den Bild-URLs | |
urls = search_images(term, max_images=num_images) | |
# Lade jedes Bild herunter und speichere es im Ordner | |
for i, url in enumerate(urls): | |
filename = f"{i+1:04}.jpg" | |
dest = os.path.join(folder, filename) | |
try: | |
download_url(url, dest, show_progress=False) | |
print(f"Downloaded image {i+1}/{num_images} to {dest}") | |
except Exception: | |
print(f"Error trying to load Image {urls[i]}, trying next...") | |
print(f"Downloaded {num_images} images to folder {folder}.") | |
def cleanup_images(): | |
for path, subdirs, files in os.walk('data'): | |
for directory in subdirs: | |
path = Path(directory) | |
failed = verify_images(get_image_files(path)) | |
failed.map(Path.unlink) | |
print("Number of images in folder '",path,"' failed: ",len(failed)) | |
def prepare_images(): | |
for path, subdirs, files in os.walk('data'): | |
for directory in subdirs: | |
print("Resizing images in dir: ",directory) | |
resize_images(directory, max_size=500, dest=directory) | |
# Beispielaufruf | |
search_term = 'cumulonimbus cloud' | |
folder_name = 'cumulonimbus' | |
num_images = 250 | |
download_images(search_term, folder_name, num_images) | |
prepare_images() | |
cleanup_images() | |