Python 3.8 e conda, obtenha Conda CUDA se quiser usar o ambiente GPU
conda create -n $YOUR_PY38_ENV_NAME python=3.8
conda activate $YOUR_PY38_ENV_NAME
pip install -r requirements.txt
Para nosso projeto, a entrada está na forma de um array com formato (B, T, C, H, W), onde cada quadro do array tem um tamanho fixo de 128x128. O número de quadros em cada vídeo é 30, resultando no formato (B, 30, 3.128, 128). Antes de usar este projeto, pode ser necessário pré-processar seus dados de vídeo de acordo. No código, fornecemos um exemplo de array "city_bonn.npy" com o formato (46, 30, 3, 128, 128). Esta matriz contém 46 vídeos da cidade de Bonn no conjunto de dados Cityscape. Abaixo está um exemplo de comando.
Você pode controlar quais vídeos processar escolhendo os valores para start_idx e end_idx. Certifique-se de que o intervalo selecionado não exceda o valor de B (o número de vídeos no seu conjunto de dados).
python city_sender.py --data_npy "data_npy/city_bonn.npy" --output_path "your path" --start_idx 0 --end_idx 1
Na seção Benchmark, fornecemos código para calcular métricas de compressão para H.264 e H.265. A entrada para este código deve ser 30 quadros de imagem de 128x128, preferencialmente nomeados no formato “quadro%d”.
a estrutura de pastas do conjunto de dados é como
/your path/
- frame0.png
- frame1.png
- ...
- frame29.png
Para project_str, esta é simplesmente uma string usada para distinguir seus dados. Aqui estamos usando "uvg".
python bench.py --dataset "your path" --output_path "your path" --project_str uvg
Em relação aos pontos de verificação, utilizamos dois conjuntos deles. Um conjunto inclui "checkpoint_900000.pt", que é usado para a parte de geração de vídeo. O outro conjunto contém seis grupos de pontos de verificação, e esses pontos de verificação serão utilizados para a parte de compressão da imagem, correspondendo a seis qualidades de compressão diferentes.
Os seis pesos precisam ser movidos para a pasta "checkpoints/neural network".
lambda | qualidade |
---|---|
0,45 | q5 |
0,15 | quarto trimestre |
0,032 | terceiro trimestre |
0,015 | q2 |
0,008 | q1 |
0,004 | q0 |
Este peso individual precisa ser movido para a pasta "checkpoints/sender".
ponto de verificação do modelo de difusão |
---|
ponto de verificação do modelo de difusão |
As imagens a seguir comparam o desempenho de compressão do nosso modelo com os padrões tradicionais de compressão de vídeo, H.264 e H.265. Pode-se observar que nosso modelo os supera em taxas de bits baixas (bpp). Esses dados foram computados nos primeiros 24 vídeos de city_bonn.npy.