PCA, анализ главных компонентов, является одним из основных методов сокращения данных с большими размерами до гораздо меньшего набора. Идея состоит в том, чтобы уменьшить набор данных, но сохранить как можно больше информации.

В этом блоге мы рассмотрим PCA, чтобы сжать изображение ровно настолько, чтобы можно было распознать человека на картинке.

Этот блог представляет собой учебное пособие. Можно использовать это как ссылку для их стремления понять PCA.

Посетите мой Репозиторий GitHub для получения дополнительной информации и контекста.

Импорт библиотек и загрузка изображения:

Преобразование изображения в 2D-массив:

Массив имеет 904 строки и 603 столбца пикселей, каждый пиксель имеет 3 значения интенсивности, то есть для красной, зеленой и синей плоскостей (значения RGB). Мы переделаем его в формат, подходящий для PCA. Я оставил строки как есть и изменил столбцы, например:
1809 = 603 * 3

Если мы увидим измененный массив img_r, он теперь стал размером 904x1809.

Стандартизация набора данных:

Создание матрицы ковариации:

Вычисление собственных значений и восстановление массива:

Я случайным образом рассмотрел 100 основных компонентов для восстановления массива. Мы можем принимать разные значения, чтобы наблюдать за качеством изображения после реконструкции.

Преобразование 2D-массива в 3D-массив для преобразования в изображение:

Реконструкция изображения:

Наконец, мы возвращаем наше изображение из 3D-массива.

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

Фактически, 100 - хорошее число, если учесть тот факт, что нам не требуются все 904 компонента, чтобы получить хорошую иллюстрацию нашего ввода.

Но действительно ли нам нужно 100 основных компонентов? Или мы можем обойтись еще меньшим количеством компьютеров?

Насколько больше мы можем сжать изображение без слишком большой потери данных?

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

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

Я скоро опубликую вторую часть!

Удачного обучения !! 😊📚