NOTÍCIAS:
Este repo é a base de código do modelo de detecção e incorporação conjunta (JDE). O JDE é um rastreador de múltiplos objetos rápido e de alto desempenho que aprende a tarefa de detecção de objetos e a tarefa de incorporação simutaneamente em uma rede neural compartilhada. Detalhes técnicos são descritos em nosso artigo ECCV 2020. Ao usar este repositório, você pode simplesmente atingir o Mota 64%+ no protocolo "privado" do desafio MOT-16 e com uma velocidade quase em tempo real a 22 ~ 38 fps (observe que essa velocidade é para todo o sistema, incluindo o Etapa de detecção!).
Esperamos que este repo ajude pesquisas/engenheiros a desenvolver sistemas MOT mais práticos. Para o desenvolvimento de algoritmos, fornecemos dados de treinamento, modelos de linha de base e métodos de avaliação para fazer um playground nivelado. Para o uso de aplicativos, também fornecemos uma pequena demonstração de vídeo que leva vídeos brutos como entrada sem sinos e assobios.
pip install motmetrics
)pip install cython_bbox
)Uso:
python demo.py --input-video path/to/your/input/video --weights path/to/model/weights
--output-format video --output-root path/to/output/root
docker build -t towards-realtime-mot docker/
docker run --rm --gpus all -v $( pwd ) /:/Towards-Realtime-MOT -ti towards-realtime-mot /bin/bash
cd /Towards-Realtime-MOT ;
python demo.py --input-video path/to/your/input/video --weights path/to/model/weights
--output-format video --output-root path/to/output/root
Consulte DataSet_Zoo.MD para obter uma descrição detalhada dos conjuntos de dados de treinamento/avaliação.
DarkNet-53 Modelo IMAGENET Preencidido: [Darknet Official]
Modelos treinados com diferentes resoluções de entrada:
Modelo | Mota | IDF1 | Ids | Fp | Fn | FPS | Link |
---|---|---|---|---|---|---|---|
JDE-1088X608 | 73.1 | 68.9 | 1312 | 6593 | 21788 | 22.2 | [Google] [Baidu] |
JDE-864X480 | 70.8 | 65.8 | 1279 | 5653 | 25806 | 30.3 | [Google] [Baidu] |
JDE-576X320 | 63.7 | 63.3 | 1307 | 6657 | 32794 | 37.9 | [Google] [Baidu] |
O desempenho é testado no conjunto de treinamento do MOT-16, apenas para referência. A velocidade de execução é testada em uma GPU NVIDIA Titan XP. Para uma comparação mais abrangente com outros métodos, você pode testar no conjunto de testes MOT-16 e enviar um resultado para a referência MOT-16. Observe que os resultados devem ser enviados à faixa do detector privado.
python track.py --cfg ./cfg/yolov3_1088x608.cfg --weights /path/to/model/weights
Por padrão, o script executa a avaliação no conjunto de treinamento MOT-16. Se você deseja avaliar o conjunto de testes, adicione --test-mot16
à linha de comando. Os resultados são salvos em arquivos de texto em $DATASET_ROOT/results/*.txt
. Você também pode adicionar sinalizadores --save-images
ou --save-videos
para obter os resultados visualizados. Os resultados visualizados são salvos em $DATASET_ROOT/outputs/
cfg/ccmcpe.json
, Config as combinações de treinamento/validação. Um conjunto de dados é representado por uma lista de imagens, consulte data/*.train
por exemplo. CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python train.py
Utilizamos 8x NVIDIA Titan XP para treinar o modelo, com um tamanho de lotes de 32. Você pode ajustar o tamanho do lote (e a taxa de aprendizado juntos) de acordo com quantas GPUs você tem. Você também pode treinar com tamanho de imagem menor, que trará um tempo de inferência mais rápido. Mas observe que o tamanho da imagem era melhor para serem múltiplos de 32 (a taxa de amostragem de baixo).
A adição de dados personalizados é bastante simples, tudo o que você precisa fazer é organizar seus arquivos de anotação no mesmo formato que em nossos conjuntos de treinamento. Consulte o DataSET_ZOO.MD para o formato do conjunto de dados.
Uma grande parte do código é emprestada da Ultralytics/Yolov3 e Longcw/Motdt, muito obrigado ao seu maravilhoso trabalho!
Se você achar esse repositório útil em seu projeto ou pesquisa, considere citá -lo:
@article{wang2019towards,
title={Towards Real-Time Multi-Object Tracking},
author={Wang, Zhongdao and Zheng, Liang and Liu, Yixuan and Wang, Shengjin},
journal={The European Conference on Computer Vision (ECCV)},
year={2020}
}