Вот руководство о том, как извлечь изображения из Bing, используя выбранные вами условия поиска, чтобы создать обучающий набор данных для вашей модели машинного обучения.

Конечно, вы можете использовать другие поисковые системы (Google, Pinterest, Duck Duck Go и т. д.) и других поставщиков облачных хранилищ. Однако в этом посте основное внимание уделяется использованию пакета Microsoft, а Bing API прост в использовании для начинающих. Мы будем использовать Python, потому что я все равно не знаю, какой еще язык вы бы использовали для машинного обучения…

Шаг 1. Создайте учетную запись Azure.

Azure, как и любой другой поставщик облачных услуг, предлагает бесплатную пробную версию, поэтому лучше всего использовать ее для начала работы.

  • Перейдите по ссылке Bing API и нажмите [Попробовать], чтобы начать создание новой учетной записи.
  • Следуйте ссылкам и подсказкам, чтобы создать новую учетную запись, и выберите вариант «Начать с бесплатной пробной версии Azure» и снова подтвердите нажатием кнопки [Начать бесплатно].
  • Заполните все свои данные, а также данные вашей кредитной карты. Никаких списаний с карты не будет, так что вам не о чем беспокоиться.
  • После того, как вы успешно создали новую учетную запись и вошли на домашнюю страницу Azure, вы можете перейти к следующему шагу.

Шаг 2: Создайте поисковый ресурс Bing.

  • Перейдите по ссылке Bing API и нажмите [Попробовать], после чего вы перейдете на страницу ресурсов Azure Bing для создания нового ресурса.
  • Заполните обязательные поля, чтобы создать ресурс:
    Подписка: должна быть автоматически установлена ​​«Бесплатная пробная версия».
    Группа ресурсов: вам нужно будет использовать параметр «Создать новый», чтобы создать новую группу ресурсов. .
    Расположение группы ресурсов: выберите любое по вашему выбору.
    Имя: Не бойтесь использовать любое имя, которое вы хотите.
    Ценовая категория: F1 более чем достаточно для того, что нам нужно.
  • Приняв уведомление, нажмите [Просмотреть + создать], затем еще раз [Создать], и вы должны перейти к обзору вашего ресурса.

Шаг 3: Создайте ключи API Bing.

  • После завершения развертывания ресурса в разделе «Следующие шаги» появится кнопка [Перейти к ресурсу]. Нажмите на нее.
  • Появится обзор вашего ресурса, а на вкладке «Основные» вы увидите поле с надписью «Управление ключами» и ссылку «Нажмите здесь, чтобы управлять ключами». Перейди по ссылке.
  • Нажмите кнопку [Показать ключи], чтобы отобразить различные ключи API для вашего ресурса, и скопируйте ключ 1 или ключ 2 в буфер обмена или блокнот, так как нам нужен любой из них для нашего кода.

Шаг 4: Сотрите изображения.

В выбранной вами среде IDE используйте приведенный ниже код для извлечения изображений непосредственно из Bing!

См. ниже, чтобы добавить свои собственные параметры и ключи в код.

import uuid
import requests
from fastai.vision.utils import download_images
from fastcore.foundation import *
from pathlib import Path
import os

def search_images_bing(key, term, min_sz=128, max_images=5):    
     params = {'q':term, 'count':max_images, 'min_height':min_sz, 
                'min_width':min_sz}
     headers = {"Ocp-Apim-Subscription-Key":key}
     search_url = "https://api.bing.microsoft.com/v7.0/images/search"
     response = requests.get(search_url, headers=headers, params=params)
     response.raise_for_status()
     search_results = response.json()    
     return L(search_results['value'])

# Add your api key here
key = os.environ.get('AZURE_SEARCH_KEY', 'my-api-key')
   
# Update below with the types you want or just leave one
object_types = 'Chocolate', 'Vanilla', 'Lemon poppy seed' 

# Customise your own folder name by replacing 'muffins' below 
#   with the fodler name of your choice
path = Path('muffins') 

if not path.exists():
    path.mkdir()

for types in object_types:
    dest = (path/types)
    dest.mkdir(exist_ok=True)
    # Replace 'muffin' below with the name of the object you are searching, 
    #    in this example the search terms will be:
    #    'Choclate muffin','Vanilla muffin','Lemon poppy seed muffin'
    search_term = f'{types} muffin' 
    results = search_images_bing(key, search_term)
    download_images(dest, urls = results.attrgot('contentUrl'))

Вам нужно будет заменить «my-api-key» на тот, который вы скопировали из своих ключей ресурсов Bing.

Вам также необходимо убедиться, что у вас установлены FastAI и requests через pip.

Я использовал пример загрузки изображений разных вкусов маффинов. Код создаст папку в том же каталоге, что и ваш файл Python, а затем несколько подкаталогов для каждого указанного вами «типа».

Вы также можете обновить «max_images» в параметрах функции search_images_bing, как только вы будете довольны окончательным запуском кода. Это просто для того, чтобы вы не загружали сотни изображений, пока может быть ошибка.

После того, как вы запустите код, ваши изображения должны быть в новом каталоге!

Спасибо, что пришли на мой Ted Talk.