Реферат по теме выпускной работы
Содержание
- Введение
- 1. Используемые средства и инструменты для разработки модуля интеллектуальной классификации мусорных отходов
- 1.1 Язык программирования Python
- 1.2 Среда разработки Spyder
- 1.3 Сбор данных для обучения нейронной сети
- 1.3.1 Сервис Яндекс Картинки
- 1.3.2 Сервис Pinterest
- 1.4 Программа Microsoft Excel
- 1.5.1 Модуль QT
- 1.5.2 Модуль Numpy
- 1.5.3 Модуль Os
- Выводы
- Список источников
Введение
В современном мире проблема мусорных отходов становится все более актуальной и требует комплексного решения. Мусорные отходы – это вещества или предметы, которые образованы в процессе хозяйственной деятельности человека и не имеют дальнейшего использования. Они могут негативно влиять на здоровье человека, окружающую среду и экономику. Поэтому необходимо эффективно управлять мусорными отходами, снижая их объем и опасность, а также повышая их полезность и ценность [1].
Для этого важно правильно классифицировать мусорные отходы по различным критериям, таким как источник происхождения, материал, состав, агрегатное состояние, степень опасности и др. Классификация помогает определить способы сбора, транспортировки, переработки, утилизации, хранения и захоронения отходов, а также оценить их вторичную ценность и потенциальную угрозу. В России существует Федеральный классификационный каталог отходов (ФККО), который устанавливает единые правила и нормы классификации отходов по всей стране.
Целью данного реферата является исследование предметной области для дальнейшей искусственной классификации мусорных отходов. Для достижения этой цели необходимо решить следующую задачу: рассмотреть используемые средства и инструменты для разработки модуля.
1. Используемые средства и инструменты для разработки модуля интеллектуальной классификации мусорных отходов
1.1 Язык программирования Python
Python является одним из наиболее популярных языков программирования в области искусственного интеллекта и машинного обучения [2]. Его популярность обусловлена рядом факторов, которые делают его идеальным выбором для разработки модуля интеллектуальной классификации мусорных отходов.
Python известен своей простой и читаемой синтаксической структурой, что облегчает процесс написания и понимания кода. Это особенно важно в научных и инженерных проектах, где код часто пишется и поддерживается командой разработчиков.
Python обладает богатым набором библиотек и фреймворков, которые значительно упрощают разработку и внедрение алгоритмов машинного обучения. Наиболее значимые библиотеки включают [3]:
- библиотеки TensorFlow и Keras, которые предоставляют мощные инструменты для создания и обучения нейронных сетей (поддерживают как простые, так и сложные архитектуры моделей, что позволяет адаптировать их под конкретные задачи классификации мусорных отходов);
- библиотека Scikit-learn, которая предоставляет широкий спектр инструментов для машинного обучения, включая алгоритмы классификации, регрессии и кластеризации (включает функции для предварительной обработки данных и оценки моделей);
- библиотека Pandas для работы с данными, которая позволяет легко манипулировать и анализировать большие объемы данных (особенно полезна для подготовки данных перед обучением моделей);
- библиотека OpenCV для компьютерного зрения, которая предоставляет инструменты для обработки изображений (может быть использована для предварительной обработки изображений мусора перед их подачей в нейронную сеть).
Python имеет большое и активное сообщество разработчиков, что обеспечивает доступ к обширной документации, учебным материалам и форумам поддержки. Это облегчает процесс обучения и решения возникающих проблем.
Python является кроссплатформенным языком, что позволяет разрабатывать и запускать приложения на различных операционных системах, таких как Windows, macOS и Linux. Это обеспечивает гибкость и удобство в разработке и развертывании приложений.
В контексте интеллектуальной классификации мусорных отходов Python может быть использован для разработки различных компонентов системы [4]:
- скрипты на Python могут автоматизировать процесс сбора изображений мусора из различных источников, таких как Яндекс Картинки и Pinterest;
- с помощью библиотек Pandas и OpenCV можно выполнять очистку, нормализацию и аугментацию данных, что улучшает качество обучения моделей;
- используя TensorFlow и Keras, можно создавать и обучать нейронные сети для классификации мусора (эти модели могут быть настроены для распознавания различных типов отходов с высокой точностью);
- с помощью библиотеки Tkinter можно создать графический интерфейс пользователя, который позволит пользователям загружать изображения мусора и получать результаты классификации в реальном времени.
Таким образом, Python предоставляет все необходимые инструменты и ресурсы для эффективной разработки модуля интеллектуальной классификации мусорных отходов, что делает его незаменимым выбором для данной задачи.
1.2 Среда разработки Spyder
Spyder (Scientific Python Development Environment) представляет собой интегрированную среду разработки, специально созданную для научных вычислений и анализа данных с использованием Python [5]. Она предоставляет мощные инструменты для написания, отладки и анализа кода, что делает её идеальной для исследователей и инженеров.
Одной из ключевых особенностей Spyder является её редактор кода, который поддерживает подсветку синтаксиса и автодополнение, что значительно упрощает процесс написания и чтения кода. Также имеется многооконный интерфейс, позволяющий работать с несколькими файлами одновременно, что удобно для больших проектов. Помимо Python, редактор поддерживает и другие языки программирования, что делает его универсальным инструментом для разработчиков.
Spyder также поддерживает интеграцию с популярными библиотеками для анализа данных и визуализации, такими как Matplotlib, Pandas и Seaborn. Это позволяет создавать и отображать графики и диаграммы непосредственно в среде разработки, что упрощает анализ данных и визуализацию результатов. Интеграция с библиотекой для машинного обучения Scikit-learn позволяет разрабатывать и тестировать модели непосредственно в Spyder.
Возможность организации файлов и директорий проекта, а также сохранение рабочих пространств, делает управление проектом более удобным и эффективным. Поддержка Git и других систем контроля версий упрощает совместную работу над проектами и управление изменениями кода.
В контексте разработки модуля интеллектуальной классификации мусорных отходов Spyder предоставляет все необходимые инструменты для разработки и тестирования алгоритмов машинного обучения, анализа данных и визуализации результатов. Это делает её незаменимым инструментом для эффективной работы с кодом, данными и моделями машинного обучения.
Spyder выделяется мощными инструментами для интерактивной работы с данными, возможностью отладки и тестирования кода в реальном времени, а также высокой интеграцией с популярными библиотеками. Многооконный интерфейс и поддержка нескольких языков программирования делают её универсальным инструментом для анализа и разработки, что повышает общую продуктивность работы с данными. Таким образом, Spyder представляет собой оптимальный выбор для эффективной разработки вычислительных приложений.
1.3 Сбор данных для обучения нейронной сети
1.3.1 Сервис Яндекс Картинки
Яндекс Картинки является мощным инструментом для поиска и скачивания изображений различных типов мусора, таких как пластик, бумага, стекло и органические отходы. Этот сервис предоставляет возможность поиска изображений, по ключевым словам, что значительно упрощает сбор данных для обучения нейронной сети [6].
Преимущества использования сервиса Яндекс Картинки заключается в следующем [7]:
- сервис индексирует миллионы изображений из различных источников, что позволяет найти изображения практически любого типа мусора;
- сервис предоставляет различные фильтры поиска, такие как размер изображения, ориентация, цветовая гамма и тип лицензии (позволяет более точно настроить поиск и найти изображения, соответствующие конкретным требованиям);
- с помощью скриптов и программных интерфейсов можно автоматизировать процесс поиска и скачивания изображений.
Для сбора данных можно определить ключевые слова составив их список, соответствующих различным типам мусора, например, «пластиковые бутылки», «бумажные отходы», «стеклянные бутылки», «органические отходы». После приступить к поиску изображений используя сервис для поиска изображений по каждому из ключевых слов. Применять фильтры для улучшения качества поиска. На следующем этапе необходимо приступить к скачиванию найденных изображений и сохранении их в соответствующие папки. По итогу следует выполнить организацию данных создав таблицу в Microsoft Excel или другой программе для организации данных. В таблице нужно указать путь к каждому изображению и его метку (тип мусора).
1.3.2 Сервис Pinterest
Pinterest также является мощным инструментом для поиска и сбора изображений, которые могут быть использованы для обучения нейронной сети в задаче классификации мусорных отходов [8]. Этот сервис предоставляет доступ к огромному количеству изображений, загруженных пользователями со всего мира, что делает его ценным ресурсом для создания разнообразного и репрезентативного набора данных.
Преимущества использования сервиса Pinterest заключается в следующем[9]:
- пользователи Pinterest загружают изображения различных предметов, включая мусор, что позволяет собрать изображения различных типов отходов, таких как пластик, бумага, стекло и органические отходы;
- Pinterest позволяет создавать коллекции изображений (например, можно создать отдельные коллекции для каждого типа мусора и добавлять туда соответствующие изображения), что упрощает их организацию и последующее использование, а также облегчает процесс управления данными и их подготовки для обучения модели;
- Pinterest является социальной платформой, где пользователи делятся своими находками и идеями, ввиду чего изображения могут быть дополнены описаниями и метками, что помогает в их классификации и использовании в качестве тренировочных данных.
Для сбора данных с помощью Pinterest необходимо создать аккаунт и зарегистрироваться на Pinterest, после чего следует создать коллекцию для каждого типа мусора. После следует использовать поисковую строку Pinterest для поиска изображений, по ключевым словам, и добавлять найденные изображения в соответствующие коллекции. По итогу нужно скачать изображения из коллекций для использования в обучении нейронной сети. Следует убедиться, что изображения имеют высокое качество и соответствуют требованиям для тренировочных данных.
1.4 Программа Microsoft Excel
Microsoft Excel является хорошим инструментом для организации и предварительной обработки данных, что делает его незаменимым в процессе подготовки данных для обучения нейронной сети. В данном контексте Excel используется для создания структурированных наборов данных, которые могут быть легко интегрированы в процесс обучения и тестирования модели.
Преимущества использования программы Microsoft Excel заключается в таких аспектах, как [10]:
- Организация данных, где Excel позволяет создавать таблицы, в которых можно систематизировать данные. Например, можно создать таблицу, где каждая строка будет представлять отдельное изображение, а столбцы будут содержать информацию о типе мусора, пути к файлу изображения и другие метаданные. Это упрощает управление данными и их последующую обработку.
- Предварительная обработка данных, где Excel предоставляет широкий набор инструментов для предварительной обработки данных. Можно использовать функции для очистки данных, удаления дубликатов, заполнения пропусков и преобразования данных в нужный формат. Это важно для обеспечения качества данных, которые будут использоваться для обучения нейронной сети.
- Автоматизацию процессов в Excel можно использовать в качестве макросов и скриптов на языке VBA для автоматизации рутинных задач. Например, можно автоматизировать процесс добавления меток к изображениям, сортировки данных и создания сводных таблиц. Это позволяет значительно сократить время на подготовку данных и уменьшить вероятность ошибок.
- Визуализация данных в Excel предоставляет инструменты для демонстрации данных, таких как графики и диаграммы. Это позволяет анализировать данные и выявлять закономерности, что может быть полезно на этапе подготовки данных для обучения модели. Визуализация также помогает лучше понять распределение данных и выявить возможные проблемы, такие как дисбаланс классов.
Для организации и предварительной обработки данных следует создать таблицу в Excel, где каждая строка будет представлять отдельное изображение. Включить столбцы для меток (тип мусора), пути к файлу изображения и других метаданных. Заполнить таблицу данными вручную или с помощью автоматизированных скриптов. После чего следует выполнить очистку данных используя функции Excel удалив дубликаты, заполнив пропуски и преобразовав данные в нужный формат. Используя инструменты визуализации Excel для анализа данных, следует построить графики и диаграммы, чтобы понять распределение данных и выявить возможные проблемы. По итогу нужно сохранить таблицу в формате, который можно легко импортировать в программу для обучения нейронной.
1.5 Модули Python
1.5.1 Модуль QT
QT – это стандартный интерфейс для создания графических интерфейсов пользователя и написания скриптов для приложений на Python [11]. QT предоставляет множество виджетов, таких как кнопки, метки, текстовые поля и другие элементы управления, которые можно использовать для создания интерактивных приложений.
Основные компоненты QT состоят из окна, виджетов и менеджера геометрии. Окно является основным контейнером для всех виджетов и создается с помощью класса QT(). Виджеты являются элементами управления, такие как кнопки, метки, текстовые поля и другие. Менеджеры геометрии являются способами размещения виджетов в окне. Основные менеджеры геометрии – это pack, grid и place.
Преимущества использования QT заключаются в следующем [12]:
- легко изучить и использовать, что делает его отличным выбором для создания простых GUI-приложений;
- работает на большинстве платформ, включая Windows, macOS и Linux;
- является частью стандартной библиотеки Python, что упрощает его установку и использование.
QT предоставляет мощные возможности для создания графических интерфейсов, что делает его полезным инструментом для разработки приложений, таких как классификаторы изображений мусора.
1.5.2 Модуль Numpy
Numpy – это фундаментальная библиотека для научных вычислений на языке Python. Она предоставляет поддержку для работы с большими многомерными массивами и матрицами, а также содержит обширную библиотеку высокоуровневых математических функций для операций с этими массивами.
Основные возможности Numpy заключаются в следующем [13]:
- Массивы, являющиеся основным объект в Numpy, а именно многомерный массив ndarray, который позволяет эффективно хранить и обрабатывать большие объемы данных. В отличие от стандартных списков Python, массивы Numpy занимают меньше памяти и обеспечивают более высокую производительность при выполнении математических операций.
- Математические функции, которые Numpy предоставляет в широком спектре, включая арифметические операции, линейную алгебру, статистические функции и многое другое. Эти функции оптимизированы для работы с массивами и позволяют выполнять сложные вычисления с минимальными затратами времени.
- Манипуляции с массивами в Numpy включают функции для изменения формы массивов, объединения, разбиения и других операций. Это позволяет гибко работать с данными и подготавливать их для дальнейшего анализа или использования в моделях машинного обучения.
Преимущества использования Numpy в первую очередь заключаются в высокой производительности, так как Numpy написан на C и Fortran, что обеспечивает высокую скорость выполнения операций с массивами. Кроме того, Numpy присуще удобство использования, так как простота синтаксиса и обширная документация делают Numpy удобным инструментом для научных вычислений и анализа данных. Также следует отметить, что Numpy интегрируется с другими библиотеками Python, такими как SciPy, Pandas и Matplotlib, что позволяет создавать мощные и комплексные аналитические приложения [14].
Numpy является неотъемлемой частью экосистемы Python для научных вычислений и играет ключевую роль в обработке данных и подготовке их для использования в моделях машинного обучения.
1.5.3 Модуль Os
Os – это модуль Python, который предоставляет функции для взаимодействия с операционной системой. Он позволяет выполнять широкий спектр операций с файловой системой и процессами, что делает его незаменимым инструментом для автоматизации задач и управления файлами.
Основные возможности модуля Os заключаются в работе с файловой системой, а именно созданием (включая промежуточные) и удалением директорий, работой с файлами и получением списка файлов (путем возвращения списка файлов и директорий в указанной директории).
Не менее важной возможностью является получение информации о системе и процессах. Переменные окружения после получения доступа к которым предоставляют возможность изменять их. Также информация о процессах возвращая идентификаторы предоставляет данные текущего процесса и родительского процесса соответственно.
Кроме того, следует отметить возможности работы с путями и ссылками. Работа с путями предоставляет соответствующие функции для работы с ними, а символические и жесткие ссылки позволяют создавать соответствующие ссылки на файлы и директории.
Преимущества использования модуля Os заключаются в следующем [15]:
- предоставляет функции, которые работают на различных операционных системах, что делает программы переносимыми;
- простота синтаксиса и обширная документация делают модуль Os удобным инструментом для автоматизации задач и управления файлами;
- легко интегрируется с другими библиотеками Python, такими как Shutil и Glob, что позволяет создавать мощные и комплексные приложения.
Модуль Os является важным инструментом для работы с операционной системой и управления файлами, что делает его незаменимым для разработки приложений, таких как классификаторы изображений мусора.
Выводы
В ходе исследования работы была рассмотрена актуальная проблема управления мусорными отходами в современном мире. Были изучены основные средства и инструменты для реализации программного модуля.
Список источников
- Васильев, А.Н. Тархов Д.А. Принципы и техника нейросетевого моделирования / А.Н. Васильев. – Москва: Наука, 2017. – 999 c.
- Галушкин, А. И. Нейрокомпьютеры. Учебное пособие / А.И. Галушкин. – М.: Альянс, 2018. – 528 c.
- Гелиг, А. Х. Введение в математическую теорию обучаемых распознающих систем и нейронных сетей. Учебное пособие / А.Х. Гелиг, А.С. Матвеев. – М.: Издательство СПбГУ, 2018. – 224 c.
- Кащенко, С. А. Модели волновой памяти / С.А. Кащенко, В.В. Майоров. – М.: Либроком, 2019. – 288 c.
- Круглов, В. В. Искусственные нейронные сети. Теория и практика / В.В. Круглов, В.В. Борисов. – М.: Горячая линия - Телеком, 2019. – 382 c.
- Латыпова, Рамиля Нейронные сети / Рамиля Латыпова. – М.: LAP Lambert Academic Publishing, 2018. – 422 c.
- Олескин, А. В. Сетевые структуры в биосистемах и человеческом обществе / А.В. Олескин. – М.: Едиториал УРСС, Либроком, 2018. – 304 c.
- Омату, Сигеру Нейроуправление и его приложения. Книга 2 / Сигеру Омату. – М.: Радиотехника, 2019. – 325 c.
- Редько, В.Г. Подходы к моделированию мышления / В.Г. Редько. – Москва: Мир, 2017. – 657 c.
- Редько, В.Г. Эволюция, нейронные сети, интеллект: Модели и концепции эволюционной кибернетики / В.Г. Редько. – Москва: ИЛ, 2017. – 224 c.
- Рутковская, Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилиньский, Л. Рутковский. – М.: Горячая линия – Телеком, 2018. - 384 c.
- Глория, Буэно Гарсия Обработка изображений с помощью OpenCV: моногр. / Глория Буэно Гарсия и др. – М.: ДМК Пресс, 2016. – 210 c.
- Методы обработки и распознавания изображений лиц в задачах биометрии / Г.А. Кухарев и др. – М.: Политехника, 2013. – 416 c.
- Обработка и анализ цифровых изображений с примерами на LabVIEW и IMAQ Vision / Ю.В. Визильтер и др. – М.: ДМК Пресс, 2016. – 464 c.
- Таганов, Александр Иванович Нейросетевые системы искусственного интеллекта в задачах обработки изображений / Таганов Александр Иванович. – М.: Горячая линия – Телеком, 2016. – 531 c.