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

Черно-белое компьютерное изображение представляет собой «двухмерный массив» или «тензор ранга 2» чисел, где каждое число находится в диапазоне от 0 до 255. Другими словами, тензор ранга 2 означает, что это массив из 2 ». размеры» (также известные как «оси») с возможностью запуска на графическом процессоре.

На диаграмме ниже показан пример черно-белого компьютерного изображения из набора данных изображений MNIST:

На черно-белом изображении выше 0 представляет пиксель как белый, 255 представляет пиксель как черный, а 1–254 представляет пиксель как оттенок серого, причем чем выше число, тем темнее серый.

Далее, если вы работаете с компьютерным зрением в Pytorch, вы будете часто использовать функции PIL (Python Image Library). Давайте используем «обрезку» в качестве примера для обучения, потому что это широко используемая и важная функция в машинном обучении компьютерного зрения.

Ниже приведен код, взятый из блокнота Colab от FastAI.

Пойдем шаг за шагом. Сначала свяжите свой блокнот Colab с диском Google, чтобы вы могли получать изображения для обработки и обработки с помощью функций PIL (Python Image Library).

Прежде чем обрезать это изображение, вам нужно импортировать PIL. После того, как вы импортировали PIL, вы можете попробовать вызвать базовую функцию PIL PILImage.create, чтобы получить изображение. Затем вы можете использовать функцию «show()», чтобы отобразить изображение, чтобы убедиться, что вы действительно получили изображение.

Прежде чем обрезать изображение, рекомендуется сначала узнать размер изображения, чтобы у вас была точка отсчета, с чего начать обрезку изображения. Вот функция размера изображения из PIL:

В данном случае наше изображение автомобиля имеет высоту 178 и ширину 202.

Далее, предположим, что мы хотим обрезать верхний левый угол и избавиться от пустого пространства справа и внизу изображения, мы можем использовать другую функцию PIL, называемую «обрезать (слева, вверх, справа, снизу), чтобы сделать это:

В этом примере функция обрезается до (0, 0, 100, 140). Первые два нуля относятся к левому и верхнему краю соответственно, это указывает обрезке сохранять изображение, начиная с верхнего левого угла. И какую часть изображения мы должны сохранить? Ну, 100, 140 говорят компьютеру держать изображение на 100 вправо и на 140 вниз. См. ниже сравнение между исходным изображением и обрезанным изображением.

Надеемся, что этот базовый пример функции PIL вызовет у вас интерес и поможет вам начать больше узнавать о библиотеке изображений Python.

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