1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openvinotoolkit-prc-deep-object-reid

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Deep Object Reid

Deep Object Reid — это библиотека для классификации изображений и повторной идентификации объектов с помощью глубокого обучения, написанная на PyTorch. Она является частью OpenVINO™ Training Extensions.

Чтобы воспроизвести результаты, упомянутые в статье К. Прокофьева и В. Соврасова «Объединение метрического обучения и головок внимания для точной и эффективной многометочной классификации изображений», перейдите в ветку multilabel.

Проект основан на проекте Torchreid Кайяна Чжоу.

Его особенности:

  • обучение на нескольких GPU;
  • сквозное обучение и оценка;
  • невероятно простая подготовка наборов данных для повторной идентификации и классификации;
  • мультинаборовое обучение;
  • кросснаборовая оценка;
  • стандартный протокол, используемый в большинстве исследовательских работ;
  • высокая расширяемость (легко добавлять модели, наборы данных, методы обучения и т. д.);
  • реализации современных и лёгких моделей повторной идентификации/классификации;
  • доступ к предварительно обученным моделям повторной идентификации/классификации;
  • продвинутые методы обучения, такие как взаимное обучение, RSC, SAM, AugMix и многие другие;
  • инструменты визуализации (tensorboard, ranks, карта активации и т.д.);
  • автоматический поиск скорости обучения и выход из обучения (не нужно выбирать количество эпох).

Инструкции по использованию: 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
  1. Загрузите диспетчер данных:
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']
)
  1. Создайте модель, оптимизатор и lr_scheduler:
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
)
  1. Создайте движок:
engine = torchreid.engine.ImageAMSoftmaxEngine(
    datamanager,
    model,
    optimizer=optimizer,
    scheduler=scheduler,
    label_smooth=True
)
  1. Запустите обучение и тестирование:
engine.run(
    save_dir='log/osnet_ain',
    max_epoch=60,
    eval_freq=10,
    print_freq=10,
    test_only=False
)

Использование deep-object-reid через конфигурационный файл

Измените один из следующих файлов конфигурации (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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Python и 2 других языков
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/openvinotoolkit-prc-deep-object-reid.git
git@api.gitlife.ru:oschina-mirror/openvinotoolkit-prc-deep-object-reid.git
oschina-mirror
openvinotoolkit-prc-deep-object-reid
openvinotoolkit-prc-deep-object-reid
ote