Criar imagem docker usando Dockerfile (este comando precisa ser executado na mesma pasta do Dockerfile):
docker build -t mp/e04:latest .
-t
é a tag da imagem
Exemplo de como rodar um comando python (para retrieval) dentro de container docker:
docker run --name mp_e04_t1 --gpus all --ipc=host --rm -it -v VOLUME_HOST:VOLUME_DOCKER mp/e04:latest python PATH/retrieval.py --feature_file PATH/features.mat --image_query PATH/IMAGE.jpg --model_name mobilefacenet --preprocessing_method sphereface --save_dir PATH/outputs/
Algoritmo usado para treinar uma rede.
train(dataset_path, save_dir, resume_path=None, num_epoch=71)
onde:
dataset_path
é caminho/path para o dataset. O dataset deve ser uma pasta com uma subpasta para cada pessoa (com o nome da pasta sendo o nome da pessoa). Dentro dessa pasta, podem haver várias imagens daquela pessoa.save_dir
é pasta onde será salvo o modelo treinado.resume_path
é um caminho para carregar um modelo pre-treinado.- Default:
None
- Se não for setado (ou seja, se ficar
None
), o algoritmo carrega um modelo já pré-treinado com o dataset CASIA Web-Face.
- Default:
num_epoch
, número de épocas que será usado para treinar o modelo- Default:
71
- Default:
OBS.: Esse função assuma que um GPU está disponível para o treino.
Algoritmo usado para manipular (adicionar features) a um dataset.
manipulate_dataset(feature_file, dataset_path, model_name="mobilefacenet", model_path=None,
preprocessing_method="sphereface", crop_size=(96, 112), gpu=True)
where:
feature_file
é o caminho para um arquivo (.mat
) de features. Se esse arquivo já existir, adiciona novas features extraídas nesse arquivo. Caso contrário, cria o arquivo com as novas features extraídas.dataset_path
caminho para o dataset. O formato do dataset é o mesmo já descrito anteriormente.model_name
é o nome do modelo a ser usado.- Default:
mobilefacenet
- Default:
model_path
é um caminho para carregar um modelo pre-treinado.- Default:
None
- Se não for setado (ou seja, se ficar
None
), o algoritmo carrega um modelo já pré-treinado com o dataset CASIA Web-Face.
- Default:
preprocessing_method
é o algoritmo de pre-processamento a ser usado para detectar as faces.- Default:
sphereface
- Default:
crop_size
é o tamanho do crop a ser feito em volta da face detectada.- Default:
(96, 112)
- Default:
gpu
flag que indica se GPU será usada no processamento.- Default:
True
- Default:
Algoritmo usado para fazer retrieval.
retrieval(image_path, feature_file, save_dir, output_method="image", model_name="mobilefacenet", model_path=None,
preprocessing_method="sphereface", crop_size=(96, 112), gpu=True)
where:
image_path
é o caminho para a imagem query.- Esse arquivo pode ser uma imagem ou um json no formato base64 (exemplo).
feature_file
é o caminho para um arquivo (.mat
) de features já extraídas.save_dir
é pasta onde será salvo o ranking de saída.output_method
é o método que será usada para exportar a saída- Duas opções:
json
(exemplo) ouimage
.
- Duas opções:
model_name
é o nome do modelo a ser usado.- Default:
mobilefacenet
- Default:
model_path
é um caminho para carregar um modelo pre-treinado.- Default:
None
- Se não for setado (ou seja, se ficar
None
), o algoritmo carrega um modelo já pré-treinado com o dataset CASIA Web-Face.
- Default:
preprocessing_method
é o algoritmo de pre-processamento a ser usado para detectar as faces.- Default:
sphereface
- Default:
crop_size
é o tamanho do crop a ser feito em volta da face detectada.- Default:
(96, 112)
- Default:
gpu
flag que indica se GPU será usada no processamento.- Default:
True
- Default:
Algoritmo usado para treinar um modelo.
train(hyp_path='hyp.scratch.yaml', data='dataset.yaml', output_path='runs/train/exp',
opt=defaultOptTrain())
onde:
hyp_path
é o caminho para um arquivoyaml
com a configuração de hiperparâmetros.- Detault:
hyp.scratch.yaml
.
- Detault:
data
é o caminho para um arquivoyaml
com a configuração do dataset.- Detault:
dataset.yaml
(usa o dataset OD-Weapon)
- Detault:
output_path
é o caminho para salvar o modelo treinado.opt
é um arquivo que carrega as opções (flags) passadas para o algoritmo.- use a flag
--help
para saber mais das opções
- use a flag
Algoritmo usado para detectar objetos.
retrieval(img_path, model_path, output_path, save_as, opt=defaultOpt(), output_file='detections.json')
onde:
img_path
é o caminho para a imagem ou vídeo- Pode ser uma pasta com arquivos de imagem/vídeo, um único arquivo (local ou url) ou um json com uma lista de arquivos. O url dos arquivos também pode ser links do YouTube.
model_path
é um caminho para carregar um modelo pre-treinado.- Default:
yolov5s.pt
- Default:
output_path
é o caminho para salvar a saída do algoritmo.save_as
é o formato em que será salva a saída.- Opções:
img
oujson
- Default:
img
- Opções:
opt
é um arquivo que carrega as opções (flags) passadas para o algoritmo.- use a flag
--help
para saber mais das opções
- use a flag
output_file
é o nome do arquivo de saída.- Somente usado para o
--save_as json
- Default:
detections.json
- Exemplo
- Somente usado para o