Лабы

Свертка

Цифровая обработка изображений со стр. 188.

Свёртка задается уравнением:

$ w(x,y) \star f(x,y) = \sum_{s=-a}^a \sum_{t=-b}^b w(s,t)f(x-s,y-t) $

где $f(x,y)$ - фрагмент изображения (x,y - координаты, f - цвет), $w(x,y)$ - ядро свертки.

Задание 1

  • Найти черно-белое изображение (цвет должен кодироваться одним числом). Изображения не должны повторяться в подгруппе.

  • Представить изображение в виде массива numpy. Расширить границы нулями.

  • Реализовать свертку с ядрами 3x3:
    • заполненным нулями;
    • заполненным единицами;
    • заполненным произвольными значениями.
  • Реализовать пулинг ядром 2x2 с функцией по вариантам.

Сверточная сеть в Keras

Читать Шолле 5 глава со стр. 148.

Задание 2

  • Загрузить подготовленные данные. Данные представляют собой png изображения размером 640x480. В 6 папках сгруппированны графики функций, формулы которых приведены в таблице ниже.

  • По вариантам обучить нейронную сеть, которая осуществляет задачу бинарной классификации графиков функций. Ваш вариант - функция, которую нейросеть должна научиться узнавать. Все остальные функции должны классифицироваться как “не ваша функция”.

  • Памятка для тех, кто забыл, как работать с нейронными сетями.

  • Для тестовой выборки сохранить результаты работы модели в виде исходных изображений с подписями настоящего класса и определенного вашей нейронкой.

№ варианта 1. Формула 2. Искомый класс
1 $max()$ $y=ax^2+bx+c, a > 0, b, c \in R$
2 $min()$ $y=ax^3+bx^2+cx+d, a < 0, b, c, d \in R$
3 $np.average()$ $y = \frac{k}{x-a}+b, a,b \in R, r > 0$
4 $np.linalg.norm()$ - L2 $y=c* |x-k| + b, k,b \in R, c > 0$
5 $sum()$ $y = \frac{k}{|x-a| - c}+b, a,b \in R, k < 0, c < 0$
6 $np.median()$ $y=k |x-b| + ax + c, k < 0, a > 0, b,c \in R$