Автор | ПРУДХВИ ВАРМА Компилировать|ВКонтакте Источник | Аналитика Indiamag
Компьютерное зрение является одной из самых популярных областей искусственного интеллекта из-за его широкого спектра приложений. В некоторых областях они даже превосходят человеческий интеллект в быстром и точном распознавании изображений.
В этой статье мы продемонстрируем одно из самых популярных приложений компьютерного зрения — задачу мультиклассовой классификации изображений, используя библиотеку fastAI и TPU в качестве аппаратного ускорителя. TPU, или Tensor Processing Unit, может ускорить процесс обучения моделей глубокого обучения.
Темы, затронутые в этой статье:
-
Мультиклассовая классификация изображений
-
Часто используемые модели классификации изображений
-
Используйте TPU и реализуйте в PyTorch
Мультиклассовая классификация изображений
Мы используем классификацию изображений для идентификации объектов на изображениях и можем использовать ее для обнаружения логотипов брендов, классификации объектов и т. д. Но у этих решений есть ограничение в том, что они могут только идентифицировать объекты, но не могут находить их местоположение. Но по сравнению с локализацией объектов модели классификации изображений реализовать проще.
Общие модели классификации изображений
Мы можем использовать VGG-16/19, Resnet, Inception v1, v2, v3, Wideresnt, Resnext, DenseNet и т. д., которые являются расширенными вариантами сверточных нейронных сетей. Это популярные сети классификации изображений, которые используются в качестве основы многих современных алгоритмов обнаружения и сегментации объектов.
Классификация изображений на основе библиотеки FasAI и оборудования TPU
Мы проведем этот этап работы по следующим направлениям:
1. Выберите аппаратный ускоритель.
Здесь мы используем Google Colab для реализации. Чтобы использовать TPU в Google Colab, нам нужно открыть опцию редактирования и откройте настройки ноутбука и измените аппаратный ускоритель в TPU.
Вы можете проверить, использует ли ваш ноутбук TPU, запустив приведенный ниже фрагмент кода.
import os
assert os.environ['COLAB_TPU_ADDR']
Path = 'grpc://'+os.environ['COLAB_TPU_ADDR']
print('TPU Address:', Path)
2. Загрузите библиотеку FastAI
В приведенном ниже фрагменте кода мы импортируем библиотеку fastAI.
from fastai.vision import *
from fastai.metrics import error_rate, accuracy
3. Пользовательские наборы данных
В приведенном ниже фрагменте кода вы также можете поэкспериментировать с пользовательским набором данных.
PATH = '/content/images/dataset'
np.random.seed(24)
tfms = get_transforms(do_flip=True)
data = ImageDataBunch.from_folder(PATH, valid_pct=0.2, ds_tfms=tfms, size=299, bs=16).normalize(imagenet_stats)
data.show_batch(rows=4, figsize=(8, 8))
4. Загрузите предварительно обученную модель глубокого обучения
В приведенном ниже фрагменте кода мы импортируем модель batch_normalization VGG-19. Мы будем использовать это как пример модуля обучения компьютерному зрению fastAI.
learn = cnn_learner(data, models.vgg19_bn, metrics=accuracy)
5. Обучите модель
В приведенном ниже фрагменте кода мы пытаемся использовать эпоху.
learn.fit_one_cycle(1)
В выводе мы видим, что мы получили точность 0,99, и это заняло 1 минуту и 2 секунды.
В приведенном ниже фрагменте кода мы отображаем результаты, используя матрицу путаницы.
con_matrix = ClassificationInterpretation.from_learner(learn)
con_matrix.plot_confusion_matrix()
6. Используйте модель, чтобы делать прогнозы
В приведенном ниже фрагменте кода мы можем протестировать собственное изображение, указав путь к изображению в test_your_image.
test_your_image='/content/images (3).jpg'
test = open_image(test_your_image)
test.show()
В приведенном ниже фрагменте кода мы можем получить выходной тензор и класс, к которому он принадлежит.
learn.predict(test)
Как мы видели в приведенном выше выводе, модель предсказала метку класса входного изображения, она принадлежит к категории «цветок».
в заключении
В приведенной выше демонстрации мы реализовали классификацию изображений с несколькими классами, используя библиотеку fastAI с TPU и предварительно обученную модель VGG-19. В этой задаче мы достигли точности 0,99 при классификации проверочного набора данных.
Добро пожаловать на сайт блога Panchuang AI:panchuang.net/
sklearn машинное обучение китайские официальные документы:sklearn123.com/
Добро пожаловать на станцию сводки ресурсов блога Panchuang:docs.panchuang.net/