Интересувате се от компютърно зрение и търсите удобна за използване библиотека за работа с модели за изображения в Keras? Keras Image Models (KIMM) е невероятна колекция от модели, блокове и слоеве за изображения, написани на Keras 3, което ви позволява лесно да извършвате различни задачи, свързани с компютърно зрение, използвайки най-съвременни модели и предварително обучени тегла.
Какво е KIMM?
KIMM означава Keras Image Models и е библиотека с отворен код, разработена от Hongyu Chiu. Тя има за цел да предостави широка гама от модели за изображения по удобен за потребителя начин, правейки я достъпна както за начинаещи, така и за опитни специалисти в областта на компютърното зрение.
Основни характеристики на KIMM:
- Model zoo: KIMM предлага обширна колекция от модели, като почти всички модели се предлагат с предварително обучени тегла върху набора от данни ImageNet. Това означава, че можете бързо да започнете работа с тези модели, без да се налага да ги обучавате от нулата.
- Лесен експорт на модели: KIMM предоставя API за експортиране на модели във формати
.tflite
и.onnx
, което улеснява разгръщането на вашите модели на различни платформи. - Поддръжка на репараметризация: KIMM поддържа техниката за репараметризация, позволяваща ви да оптимизирате вашите модели за по-добра производителност и ефективност.
- Извличане на характеристики: С KIMM можете лесно да извличате характеристики от вашите модели, което ви позволява да ги използвате за различни последващи задачи като класификация на изображения, откриване на обекти и други.
Инсталация
Инсталирането на KIMM е изключително лесно:
# Installation
pip install keras kimm -U
Уверете се, че имате инсталиран Keras, тъй като KIMM зависи от него.
Употреба
KIMM предоставя прост и интуитивен API за работа с модели за изображения. Ето някои от основните функции и тяхната употреба:
kimm.list_models
: Извежда списък на наличните модели в KIMM.kimm.models.*.available_feature_keys
: Връща наличните ключове на характеристиките за даден модел.kimm.models.*()
: Инициализира конкретен модел с опционални аргументи.kimm.models.*(..., feature_extractor=True, feature_keys=...)
: Активира извличане на характеристики за конкретен модел.kimm.utils.get_reparameterized_model
: Репараметризира модел за оптимизация.kimm.export.export_tflite
: Експортира модел във формат.tflite
.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 ефективно. Ето някои забележителни примери:
- Класификация на изображения с тегла от ImageNet:
- Colab: https://colab.research.google.com/drive/14WxYgVjlwCIO9MwqPYW-dskbTL2UHsVN?usp=sharing
- Този пример показва как да използвате KIMM за класификация на изображения с помощта на предварително обучен модел върху набора от данни ImageNet. Той демонстрира простотата и ефективността на използването на KIMM за задачи за класификация.
- Фино настройване (Fine-Tunning) върху набора от данни Cats vs. Dogs:
- Colab: https://colab.research.google.com/drive/1IbqfqG2NKEOKvBOznIPT1kjOdVPfThmd?usp=sharing
- Този пример демонстрира как да настроите фино модел за класификация на изображения, като използвате KIMM върху набора от данни Cats vs. Dogs. Той показва процеса на трансферно обучение и как KIMM може да се използва за постигане на отлични резултати с минимални усилия.
- Визуализация на 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 служи като ценен ресурс, съдържащ изходния код, документация и система за проследяване на проблеми.