Как и почему я создал приложение машинного обучения для обнаружения объектов в режиме реального времени на поверхности Солнца

Обо мне

Преподаватель и ученый. Интересуется информатикой, астрономией и археоастрономией. Люблю вызовы и работать над проблемами кодирования.

Проблема, которую я хотел решить

У меня есть солнечный телескоп и астрономическая камера. Увидев множество руководств по обнаружению домашних животных, светофоров или рыб, я решил посмотреть, можно ли применить те же алгоритмы и модели для обнаружения особенностей поверхности Солнца. Проблема в моем случае заключалась в специфической настройке (камера ASI ZWO на USB2, а сам солнечный прицел использовался без крепления) и небольшом количестве данных о поездах, которые я собрал (у меня был прицел в течение нескольких месяцев, но погода в Великобритании не помогает, поэтому я было всего 14 дней изображений).

Что такое машинное обучение для обнаружения особенностей в реальном времени на поверхности Солнца?

Примерно через 2 дня работы я получил приложение, которое может обнаруживать в режиме реального времени из прямой трансляции или из предварительно записанного видео наиболее важные элементы на поверхности Солнца: нити, факелы, протуберанцы и солнечные пятна.

Стек технологий

Програмное обеспечение:

  • Python3.7
  • Тензорфлоу и Керас
  • OpenCV
  • АСИ ЗВО SDK
  • Изображение Метки

Аппаратное обеспечение:

  • Астрономическая камера ASI 120MC на USB2.0, подключенная к солнечному телескопу
  • Ноутбук без графического процессора под управлением Windows 10

Процесс создания приложения машинного обучения для обнаружения особенностей в реальном времени на поверхности Солнца.

  1. Сбор изображений и маркировка данных поезда/теста с использованием существующих инструментов
  2. Установка необходимых библиотек
  3. Компиляция модели с помощью онлайн-руководств
  4. Написание сценария обнаружения путем обновления существующих и адаптации их для связи с конкретной камерой, которую я использую.
  5. Тестирование скрипта на живых изображениях Солнца (вчера я ненадолго увидел Солнце, поэтому рискнул) и на моих ранее записанных видео.

Проблемы, с которыми я столкнулся

  • Интеграция камеры ASI с Python, поскольку OpenCV не обнаруживает ее
  • Заставить существующие сценарии работать, так как мне приходилось перемещаться по множеству версий API и даже изменять код внутри существующих библиотек и сценариев моделей.
  • Долгое время обучения на моем ноутбуке (без графического процессора). Потребовалось более 4 часов, чтобы довести потери до <0,0xxxx.

Основные выводы

  • Навигация по различным API и склеивание всего вместе.
  • Интеграция камер ASI с OpenCV.
  • Использование LabelIMG для аннотирования моих поездов/тестовых изображений

Советы и советы

Полную историю можно найти в моем блоге по адресу

Заключительные мысли и следующие шаги

Хорошее начало, но для этого все еще требуется больше данных для обучения, поскольку в нем отсутствуют некоторые очевидные функции.
Обнаруженные особенности меняются от кадра к кадру, поэтому стоит исследовать различия в кадрах.
Я планирую интегрировать это в свою удаленную обсерваторию Pi4 или транслировать ее в прямом эфире на сервер для удаленного обнаружения функций.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *