README.md 4.66 KB
Newer Older
mashun1's avatar
mashun1 committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# EvTexture

## 论文

**EvTexture: Event-driven Texture Enhancement for Video Super-Resolution**

* https://arxiv.org/abs/2406.13457

## 模型结构

EvTexture采用双向循环网络,其中特征向前和向后传播。

![alt text](readme_imgs/models.png)

## 算法原理

在每个时间戳,使用一个运动分支和一个并行的纹理分支,以明确增强纹理区域的恢复。

![alt text](readme_imgs/alg.png)


## 环境配置

### Docker(方法一)
    
    docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-ubuntu20.04-dtk24.04.1-py3.10

    docker run --shm-size 50g --network=host --name=evtexture --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -v /opt/hyhal:/opt/hyhal:ro -it <your IMAGE ID> bash

    pip install -r requirements.txt

    python setup.py develop


### Dockerfile(方法二)

    docker build -t <IMAGE_NAME>:<TAG> .

    docker run --shm-size 50g --network=host --name=evtexture --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -v /opt/hyhal:/opt/hyhal:ro -it <your IMAGE ID> bash

    pip install -r requirements.txt

    python setup.py develop


### Anaconda (方法三)

1、关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装:
https://developer.hpccube.com/tool/

    DTK驱动:dtk24.04.1
    python:python3.10
    torch: 2.1.0
    torchvision: 0.16.0

Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应

2、其它非特殊库参照requirements.txt安装

    pip install -r requirements.txt

    python setup.py develop

## 数据集

[OneDriver](https://1drv.ms/f/c/2d90e71fb9eb254f/EnMm8c2mP_FPv6lwt1jy01YB6bQhoPQ25vtzAhycYisERw?e=DiI2Ab) | [SCNet](http://113.200.138.88:18080/aidatasets/project-dependency/evtexture) 高速下载通道

### 数据处理

该部分仅展示整体流程,详细请参考[DataPreparation](datasets/DataPreparation.md)

- 将原始视频转换为图像(参考`datasets/utils/video_to_img.py`);
- 将图像转换为HWC格式numpy类型的数据并以h5结构存储在`/path/to/xx.h5/images`中;
- 将视频转换为事件,包含forward及backward,分别存储在`/path/to/xx.h5/voxels_f``/path/to/xx.h5/voxels_b`中。

以上步骤可参考`datasets/dataproparation.py`,注意,该脚本并非官方版本,使用前请仔细检查。执行下述命令准备相应的环境。

    python -m pip install pybind11

    export CMAKE_PREFIX_PATH=/usr/local/lib/python3.10/site-packages/pybind11/share/cmake/pybind11/:$CMAKE_PREFIX_PATH

    sudo apt update

    sudo apt install libopencv-dev

    export CMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu/cmake/opencv4/:$CMAKE_PREFIX_PATH

    下载 eigen3 https://gitlab.com/libeigen/eigen/-/releases/3.4.0  (zip版本)

    unzip /path/to/eigen3.zip 
    cd /path/to/eigen3
    mkdir build && cd build 
    cmake .. && make 
    make install

    # 安装boost
    sudo apt install build-essential libboost-system-dev libboost-thread-dev libboost-program-options-dev libboost-test-dev

    sudo apt install libboost-all-dev

    cd others/rpg_vid2e/esim_pyt && python setup.py install

注意:数据处理或下载完成后,需按照`basicsr/data/meta_info`中的文件格式创建相应的文件。

## 推理

    export HIP_VISIBLE_DEVICES=0

    # 1表示使用DCU数量

    bash scripts/dist_test.sh 1 options/test/EvTexture/test_EvTexture_REDS4_BIx4.yml

    bash scripts/dist_test.sh 1 options/test/EvTexture/test_EvTexture_Vid4_BIx4.yml

## result

原始视频

<video width="320" height="240" controls>
  <source src="readme_imgs/ori_10y.avi" type="video/avi">
  Your browser does not support the video tag.
</video>

修复后视频

<video width="320" height="240" controls>
  <source src="readme_imgs/vid4_10y.avi" type="video/avi">
  Your browser does not support the video tag.
</video>

### 精度



## 应用场景

### 算法类别

`视频超分`

### 热点应用行业

`安防,媒体,环境`

## 预训练权重

[OneDriver](https://1drv.ms/f/c/2d90e71fb9eb254f/EnMm8c2mP_FPv6lwt1jy01YB6bQhoPQ25vtzAhycYisERw?e=DiI2Ab) | [SCNet](http://113.200.138.88:18080/aimodels/findsource-dependency/evtexture) 高速下载通道

    experiments/
    └── pretrained_models
        └── EvTexture
            ├── EvTexture_REDS_BIx4.pth
            └── EvTexture_Vimeo90K_BIx4.pth

## 源码仓库及问题反馈

* https://developer.hpccube.com/codes/modelzoo/evtexture_pytorch

## 参考资料

* https://github.com/DachunKai/EvTexture/tree/main