Deep Object Reid
Deep Object Reid — это библиотека для классификации изображений и повторной идентификации объектов с помощью глубокого обучения, написанная на PyTorch. Она является частью OpenVINO™ Training Extensions.
Чтобы воспроизвести результаты, упомянутые в статье К. Прокофьева и В. Соврасова «Объединение метрического обучения и головок внимания для точной и эффективной многометочной классификации изображений», перейдите в ветку multilabel.
Проект основан на проекте Torchreid Кайяна Чжоу.
Его особенности:
Инструкции по использованию: https://github.com/openvinotoolkit/deep-object-reid/blob/ote/docs/user_guide.rst.
Исходный технический отчёт Кайяна Чжоу и Тао Сяна: https://arxiv.org/abs/1910.10093.
Некоторые другие исследовательские проекты, основанные на Torchreid, можно найти здесь: https://github.com/KaiyangZhou/deep-person-reid/tree/master/projects.
Также если вы планируете проект по классификации изображений, обратитесь к разделу Custom Image Classification Templates в OpenVINO™ Training Extensions, чтобы получить хорошую основу для своего проекта. Статья скоро выйдет.
Что нового
— Июнь 2021: добавлены новые алгоритмы, техники регуляризации и модели для задачи классификации изображений. — Май 2020: добавлен код распознавания атрибутов человека, который используется в Omni-Scale Feature Learning for Person Re-Identification [ICCV'19]. Смотрите projects/attribute_recognition/. — Май 2020: 1.2.1: добавлен простой API для извлечения признаков (torchreid/utils/feature_extractor.py). Смотрите документацию для получения инструкций. — Апрель 2020: выпущен код для воспроизведения экспериментов по глубокому взаимному обучению в статье OSNet (https://arxiv.org/pdf/1905.00953v6.pdf) (Supp. B) в разделе DML. — Апрель 2020: обновление до версии 1.2.0. Класс движка стал более независимым от модели, что улучшило расширяемость. Смотрите Engine (torchreid/engine/engine.py) и ImageSoftmaxEngine (torchreid/engine/image/softmax.py) для получения дополнительной информации. Спасибо Dassl.pytorch. — Декабрь 2019: наша статья OSNet обновлена, с дополнительными экспериментами (в разделе B дополнительного материала), показывающими некоторые полезные методы улучшения производительности OSNet на практике. — Ноябрь 2019: ImageDataManager может загружать обучающие данные из целевых наборов данных, установив load_train_targets=True, а обучающий загрузчик можно получить с помощью train_loader_t = datamanager.train_loader_t. Эта функция полезна для исследований по адаптации домена.
Установка
Убедитесь, что установлена conda (https://www.anaconda.com/distribution/).
# cd в предпочитаемый каталог и клонируйте этот репозиторий
git clone https://github.com/openvinotoolkit/deep-object-reid.git
# создайте окружение
cd deep-object-reid/
conda create --name torchreid python=3.7
conda activate torchreid
# установите зависимости
``` Конечно, вот перевод текста на русский язык:
Убедитесь, что команды `which python` и `which pip` указывают на правильный путь.
pip install -r requirements.txt
## **Начало работы**
-------------------------------------
Вы можете использовать deep-object-reid в своём проекте или использовать этот репозиторий для обучения предложенных моделей (https://github.com/openvinotoolkit/deep-object-reid/tree/ote/torchreid/models) или собственной модели через конфигурационный файл.
### **Использование deep-object-reid в вашем проекте**
1. Импортируйте torchreid:
```python
import torchreid
datamanager = torchreid.data.ImageDataManager(
root='reid-data',
sources='market1501',
targets='market1501',
height=256,
width=128,
batch_size_train=32,
batch_size_test=100,
transforms=['random_flip', 'random_crop']
)
model = torchreid.models.build_model(
name='osnet_ain_x1_0',
num_classes=datamanager.num_train_pids,
loss='am_softmax',
pretrained=True
)
model = model.cuda()
optimizer = torchreid.optim.build_optimizer(
model,
optim='adam',
lr=0.001
)
scheduler = torchreid.optim.build_lr_scheduler(
optimizer,
lr_scheduler='single_step',
stepsize=20
)
engine = torchreid.engine.ImageAMSoftmaxEngine(
datamanager,
model,
optimizer=optimizer,
scheduler=scheduler,
label_smooth=True
)
engine.run(
save_dir='log/osnet_ain',
max_epoch=60,
eval_freq=10,
print_freq=10,
test_only=False
)
Измените один из следующих файлов конфигурации (https://github.com/openvinotoolkit/deep-object-reid/tree/ote/configs) и запустите:
python tools/main.py \
--config-file $PATH_TO_CONFIG \
--root $PATH_TO_DATA
--gpu-num $NUM_GPU
Смотрите «tools/main.py» и «scripts/default_config.py» для получения дополнительной информации.
Оценка автоматически выполняется в конце обучения. Чтобы снова запустить тест с использованием обученной модели, выполните следующие действия:
python tools/eval.py \
--config-file $PATH_TO_CONFIG\
--root $PATH_TO_DATA \
model.load_weights log/osnet_x1_0_market1501_softmax_cosinelr/model.pth.tar-250 \
test.evaluate True
Предположим, вы хотите обучить OSNet на DukeMTMC-reID и протестировать его производительность на Market1501, вы можете сделать следующее:
python scripts/main.py \
--config-file configs/im_osnet_x1_0_softmax_256x128_amsgrad.yaml \
-s dukemtmcreid \
-t market1501 \
--root $PATH_TO_DATA
Здесь мы тестируем только производительность для разных доменов. Однако, если вы также хотите протестировать производительность на исходном наборе данных, то есть DukeMTMC-reID, вы можете установить: -t dukemtmcreid market1501
, что позволит оценить модель на двух наборах данных отдельно.
Pets](https://www.robots.ox.ac.uk/~vgg/data/pets/)
Если вы считаете этот код полезным для вашего исследования, пожалуйста, процитируйте следующие статьи.
@article{torchreid,
title={Torchreid: A Library for Deep Learning Person Re-Identification in Pytorch},
author={Zhou, Kaiyang and Xiang, Tao},
journal={arXiv preprint arXiv:1910.10093},
year={2019}
}
@inproceedings{zhou2019osnet,
title={Omni-Scale Feature Learning for Person Re-Identification},
author={Zhou, Kaiyang and Yang, Yongxin and Cavallaro, Andrea and Xiang, Tao},
booktitle={ICCV},
year={2019}
}
@article{zhou2019learning,
title={Learning Generalisable Omni-Scale Representations for Person Re-Identification},
author={Zhou, Kaiyang and Yang, Yongxin and Cavallaro, Andrea and Xiang, Tao},
journal={arXiv preprint arXiv:1910.06827},
year={2019}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )