Skip to content

Conversation

@goganizmrulit40
Copy link

ФИО: Ярославцев Максим
Номер группы: 6212
Номер лабораторной: 2
Номер варианта: 03
Краткое описание решаемой задачи: Согласно варианту 03 лабораторной 2 мне надо было с помощью icrawler скачать определённое количество изображений с ключевым словом 'bird', затем составить аннотационный файл и написать итератор по изображениям.
Краткое описание работы кода: Модуль main.py является точкой входа в приложение и выполняет основную работу программы. Чтобы его запустить, требуется указать аргументы командной строки: python main.py --keyword bird --output_dir ./images --annotation_file ./annotations_data.csv --max_num 50
Работа по закрытию академической разницы.

…ты, через аргументы нужно передавать ключевое слово, путь к папке для сохранения и путь к файлу аннотации, что мы и прописываем. Также я добавил опциональный ввод кол-ва изображений для загрузки, если мы не вводим, скачивает максимум 50.
…подряд, а по определённым критериям). Сначала пропишем создание папки и всех родительских, если вдруг таковой нет
…льных потока для загрузки изображений. Также пропишем опциональные фильтры изображений. И, наконец, соберём все настройки воедино, добавим парочку, в т.ч. про перезапись уже существующих файлов, чтобы не приходилось каждый раз удалять.
…дена проверка на то, что если мы вводим в командную строку max_num, равный 50, то скачивается 50 изображений и всё.
…папки и её создание в противном случае. Формируем список изображений по пути к папке с ними. Внутри цикла делаем проверку на то, что список составляется именно из файлов с соответствующими расширениями. + проверка на пустоту папки.
… данные в файл, добавив заглавную строку, поясняющую, где какой путь. Всё исключительно по английски, т.к. по русски записывается белиберда. Соединяя путь к папке и имя файла, запишем абсолютный путь, затем вычислим относительный. Всё это с помощью встроенных функций os. В конце напишем в main вызов функции.
…щей. Необходимо создать директорию для файла, а не директорию с именем файла. Проблема решена, всё заработало.
…а конструктора файл-аннотации или путь к папке, воспользовавшись примером из теории. Также подключим встроенную библиотеку sys для вызова ошибок (завершение программы с ошибкой)
Если на вход поступает файл аннотации, то мы создаём пустой список и считываем csv файл аннотации, записывая только относительный путь, если же путь к папке с изображениями, то формируем список по ним.
…о не добавляем. Он позволяет использовать объект в цикле for.

Метод __next__ возвращает следующий путь к изображению и также нужен для цикла for. Как раз прописываем условие от кол-ва изображений.
…етственно. Это демонстрирует работу итератора.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants