Узнайте, как подбирать наборы данных, соответствующие вашему варианту использования
Самый большой недостаток большинства онлайн-курсов глубокого обучения заключается в том, что большинство из них используют данные, которые были очищены и подготовлены для их учащихся. Это означает, что учащиеся упускают важный шаг - кураторство набора данных. Этот пробел в навыках обычно проявляется, когда у вас есть интересная идея, и вы не знаете, как начать над ней работать.
Я столкнулся с этой проблемой после завершения моего первого курса по науке о данных. В курсе был раздел о классификации изображений с использованием сверточных нейронных сетей (CNN), а в качестве демонстрационного проекта использовался классификатор пород собак с использованием изображений из ImageNet.
Это был интересный проект, но он ничему не научил меня в работе с набором данных. Я чуть не разочаровался в этом курсе, и мой прогресс замедлился - до недавнего времени, когда я начал проходить курс Практическое глубокое обучение для кодеров от fast.ai. Курс структурирован таким образом, чтобы дать студентам полное представление о процессе ИИ.
В разделе курса, посвященном классификации изображений, студентам показано, как создать набор данных с помощью API поиска изображений Bing - процесс возвращает изображения, относящиеся к выбранным условиям поиска.
Это открыло дверь в моем сознании, и после небольшого исследования я нашел способ добиться того же без необходимости в учетных записях Microsoft, ключах API и всех дополнительных услугах, связанных с работой с API.
Чтобы создать собственный набор данных для классификации изображений менее чем за 30 минут, выполните следующие действия.
1. Установите библиотеку загрузчика изображений Bing
Это можно сделать в терминале, выполнив следующую команду:
pip install bing-image-downloader
Более подробную информацию об этой библиотеке можно найти здесь.
2. Загрузить данные для каждого класса в вашем наборе данных
Это можно сделать с помощью всего двух строк кода, как показано в примере ниже.
Ключевые параметры, которые следует учитывать здесь:
query
: поисковый запрос для изображений. Ожидается, что в приведенном выше примере будут возвращены изображения, связанные с Budweiser.limit
: количество изображений, которые вы хотите загрузить по запросу. Ограничение - это хорошо, потому что чем больше изображений вы скачаете, тем больше у вас будет нерелевантных изображений. Я обнаружил, что в большинстве случаев разумным пределом является 150.output_dir
: это путь к каталогу, в котором будут храниться папки, содержащие изображения.
Приведенный выше код создаст папку с именем beer и две папки в ней. Первая будет папкой budweiser beer
, содержащей изображения, относящиеся к Budweiser, а вторая - папкой corona beer
, содержащей изображения, связанные с пивом Corona.
3. Просматривайте изображения, удаляя нерелевантные
В сгенерированном наборе данных неизбежно будет несколько нерелевантных изображений. Достаточно провести быстрое визуальное сканирование всех загруженных изображений и удалить все изображения, которые не соответствуют вашей цели для модели.
Теперь у вас есть набор данных, содержащий соответствующие изображения, сгруппированные по их классам. В моей следующей статье я покажу вам, как обучить классификатор пользовательских изображений менее чем за 25 строк кода - звучит круто, не так ли?
Отказ от ответственности: использование изображений в личных проектах - это нормально, но в случае коммерческих проектов убедитесь, что вы не нарушаете законы о конфиденциальности, интеллектуальной собственности или другие соответствующие законы.