Интересувате се от компютърно зрение и търсите удобна за използване библиотека за работа с модели за изображения в Keras? Keras Image Models (KIMM) е невероятна колекция от модели, блокове и слоеве за изображения, написани на Keras 3, което ви позволява лесно да извършвате различни задачи, свързани с компютърно зрение, използвайки най-съвременни модели и предварително обучени тегла.

Какво е KIMM?

Keras KIMM logo

KIMM означава Keras Image Models и е библиотека с отворен код, разработена от Hongyu Chiu. Тя има за цел да предостави широка гама от модели за изображения по удобен за потребителя начин, правейки я достъпна както за начинаещи, така и за опитни специалисти в областта на компютърното зрение.

Основни характеристики на KIMM:

  1. Model zoo: KIMM предлага обширна колекция от модели, като почти всички модели се предлагат с предварително обучени тегла върху набора от данни ImageNet. Това означава, че можете бързо да започнете работа с тези модели, без да се налага да ги обучавате от нулата.
  2. Лесен експорт на модели: KIMM предоставя API за експортиране на модели във формати .tflite и .onnx, което улеснява разгръщането на вашите модели на различни платформи.
  3. Поддръжка на репараметризация: KIMM поддържа техниката за репараметризация, позволяваща ви да оптимизирате вашите модели за по-добра производителност и ефективност.
  4. Извличане на характеристики: С KIMM можете лесно да извличате характеристики от вашите модели, което ви позволява да ги използвате за различни последващи задачи като класификация на изображения, откриване на обекти и други.

Инсталация

Инсталирането на KIMM е изключително лесно:


# Installation
pip install keras kimm -U

Уверете се, че имате инсталиран Keras, тъй като KIMM зависи от него.

Употреба

KIMM предоставя прост и интуитивен API за работа с модели за изображения. Ето някои от основните функции и тяхната употреба:

  1. kimm.list_models: Извежда списък на наличните модели в KIMM.
  2. kimm.models.*.available_feature_keys: Връща наличните ключове на характеристиките за даден модел.
  3. kimm.models.*(): Инициализира конкретен модел с опционални аргументи.
  4. kimm.models.*(..., feature_extractor=True, feature_keys=...): Активира извличане на характеристики за конкретен модел.
  5. kimm.utils.get_reparameterized_model: Репараметризира модел за оптимизация.
  6. kimm.export.export_tflite: Експортира модел във формат .tflite.
  7. kimm.export.export_onnx: Експортира модел във формат .onnx.

Ето един прост пример как можете да използвате KIMM, за да инициализирате модел MobileOneS0 с предварително обучени тегла от ImageNet и да извършите извличане на характеристики:


import keras
import kimm
import numpy as np

# List available models
print(kimm.list_models("mobileone", weights="imagenet"))
# ['MobileOneS0', 'MobileOneS1', 'MobileOneS2', 'MobileOneS3']

# Initialize model with pretrained ImageNet weights
x = keras.random.uniform([1, 224, 224, 3])
model = kimm.models.MobileOneS0()
y = model.predict(x)
print(y.shape)
# (1, 1000)

# List available feature keys of the model class
print(kimm.models.MobileOneS0.available_feature_keys)
# ['STEM_S2', 'BLOCK0_S4', 'BLOCK1_S8', 'BLOCK2_S16', 'BLOCK3_S32']

# Enable feature extraction by setting `feature_extractor=True`
model = kimm.models.MobileOneS0(
    feature_extractor=True, feature_keys=["BLOCK2_S16", "BLOCK3_S32"]
)
features = model.predict(x)
for feature_name, feature in features.items():
    print(feature_name, feature.shape)
# BLOCK2_S16 (1, 14, 14, 256)
# BLOCK3_S32 (1, 7, 7, 1024)
# TOP (1, 1000)

Практически примери

За да ви помогне да започнете работа с KIMM, библиотеката предоставя няколко практически примера под формата на Colab тетрадки. Тези примери обхващат различни задачи и демонстрират как да използвате KIMM ефективно. Ето някои забележителни примери:

  1. Класификация на изображения с тегла от ImageNet:
    • Colab: https://colab.research.google.com/drive/14WxYgVjlwCIO9MwqPYW-dskbTL2UHsVN?usp=sharing
    • Този пример показва как да използвате KIMM за класификация на изображения с помощта на предварително обучен модел върху набора от данни ImageNet. Той демонстрира простотата и ефективността на използването на KIMM за задачи за класификация.
  2. Фино настройване (Fine-Tunning) върху набора от данни Cats vs. Dogs:
    • Colab: https://colab.research.google.com/drive/1IbqfqG2NKEOKvBOznIPT1kjOdVPfThmd?usp=sharing
    • Този пример демонстрира как да настроите фино модел за класификация на изображения, като използвате KIMM върху набора от данни Cats vs. Dogs. Той показва процеса на трансферно обучение и как KIMM може да се използва за постигане на отлични резултати с минимални усилия.
  3. Визуализация на Grad-CAM:
    • Colab: https://colab.research.google.com/drive/1h25VmsYDOLL6BNbRPEVOh1arIgcEoHu6?usp=sharing
    • Този пример илюстрира как да използвате KIMM за генериране на визуализации на Grad-CAM, които подчертават регионите на изображението, които допринасят най-много за предсказването на конкретен клас. Той предоставя информация за процеса на вземане на решения на модела и може да бъде ценен за интерпретируемост и отстраняване на грешки.

Model zoo

KIMM предлага широка гама от модели за изображения в своя model zoo, обхващащи различни архитектури и задачи. Някои от интересните модели включват:

  • ConvMixer
  • ConvNeXt
  • DenseNet
  • EfficientNet
  • EfficientNetLite
  • EfficientNetV2
  • GhostNet
  • GhostNetV2
  • HGNet
  • HGNetV2
  • InceptionNeXt
  • InceptionV3
  • LCNet
  • MobileNetV2
  • MobileNetV3
  • MobileOne
  • MobileViT
  • MobileViTV2
  • RegNet
  • RepVGG
  • ResNet
  • TinyNet
  • VGG
  • ViT
  • Xception

Всеки модел се предлага с предварително обучени тегла върху набора от данни ImageNet, което улеснява използването им за трансферно обучение или като екстрактори на характеристики.

Заключение

Keras Image Models (KIMM) е мощна и удобна за използване библиотека, която опростява работата с модели за изображения в Keras. С обширния си model zoo, предварително обучени тегла и възможности за извличане на характеристики, KIMM ви дава възможност лесно да се справяте с различни задачи, свързани с компютърно зрение. Независимо дали сте начинаещ или опитен специалист, KIMM предоставя безпроблемно изживяване за използване на най-съвременни модели във вашите проекти.

За да започнете работа с KIMM, просто го инсталирайте чрез pip и разгледайте предоставените примери и документация. Хранилището на библиотеката в GitHub на адрес https://github.com/james77777778/keras-image-models служи като ценен ресурс, съдържащ изходния код, документация и система за проследяване на проблеми.

Categorized in:

AI програмиране,

Last Update: май 24, 2024