Push model using huggingface_hub.
Browse files- README.md +5 -93
- config.json +54 -0
- model.safetensors +3 -0
README.md
CHANGED
@@ -1,97 +1,9 @@
|
|
1 |
---
|
2 |
tags:
|
3 |
-
-
|
4 |
-
-
|
5 |
---
|
6 |
-
# Accelerating Image Super-Resolution Networks with Pixel-Level Classification
|
7 |
-
[](https://3587jjh.github.io/PCSR/)
|
8 |
-
[](https://arxiv.org/abs/2407.21448)
|
9 |
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
<br>
|
14 |
-
|
15 |
-
## Dependencies
|
16 |
-
- Python 3.7<br>
|
17 |
-
- Pytorch 1.13<br>
|
18 |
-
- NVIDIA GPU + CUDA<br>
|
19 |
-
- Python packages: `pip install numpy opencv-python pandas tqdm fast_pytorch_kmeans`
|
20 |
-
|
21 |
-
## How to Use
|
22 |
-
- sudo apt-get install git-lfs<br>
|
23 |
-
- git lfs install<br>
|
24 |
-
- git clone https://huggingface.co/3587jjh/pcsr_carn<br>
|
25 |
-
|
26 |
-
```python
|
27 |
-
####### demo.py #######
|
28 |
-
import torch
|
29 |
-
import models
|
30 |
-
from torchvision import transforms
|
31 |
-
from utils import *
|
32 |
-
from PIL import Image
|
33 |
-
import numpy as np
|
34 |
-
|
35 |
-
img_path = 'myimage.png' # only support .png
|
36 |
-
scale = 4 # only support x4
|
37 |
-
|
38 |
-
# k: hyperparameter to traverse PSNR-FLOPs trade-off. smaller k → larger FLOPs & PSNR. range is about [-1,2].
|
39 |
-
# adaptive: whether to use automatic decision of k
|
40 |
-
# no_refinement: whether not to use pixel-wise refinement (postprocessing for reducing artifacts)
|
41 |
-
# parser.add_argument('--opacity', type=float, default=0.65, help='opacity for colored visualization')
|
42 |
-
# parser.add_argument('--pixel_batch_size', type=int, default=300000)
|
43 |
-
|
44 |
-
resume_path = 'carn-pcsr-phase1.pth'
|
45 |
-
sv_file = torch.load(resume_path)
|
46 |
-
model = models.make(sv_file['model'], load_sd=True).cuda()
|
47 |
-
model.eval()
|
48 |
-
|
49 |
-
rgb_mean = torch.tensor([0.4488, 0.4371, 0.4040], device='cuda').view(1,3,1,1)
|
50 |
-
rgb_std = torch.tensor([1.0, 1.0, 1.0], device='cuda').view(1,3,1,1)
|
51 |
-
|
52 |
-
with torch.no_grad():
|
53 |
-
# prepare inputs
|
54 |
-
lr = transforms.ToTensor()(Image.open(img_path)).unsqueeze(0).cuda() # (1,3,h,w), range=[0,1]
|
55 |
-
h,w = lr.shape[-2:]
|
56 |
-
H,W = h*scale, w*scale
|
57 |
-
coord = make_coord((H,W), flatten=True, device='cuda').unsqueeze(0)
|
58 |
-
cell = torch.ones_like(coord)
|
59 |
-
cell[:,:,0] *= 2/H
|
60 |
-
cell[:,:,1] *= 2/W
|
61 |
-
inp_lr = (lr - rgb_mean) / rgb_std
|
62 |
-
|
63 |
-
pred, flag = model(inp_lr, coord=coord, cell=cell, scale=scale, k=0,
|
64 |
-
pixel_batch_size=300000, adaptive_cluster=True, refinement=True)
|
65 |
-
flops = get_model_flops(model, inp_lr, coord=coord, cell=cell, scale=scale, k=0,
|
66 |
-
pixel_batch_size=300000, adaptive_cluster=True, refinement=True)
|
67 |
-
max_flops = get_model_flops(model, inp_lr, coord=coord, cell=cell, scale=scale, k=-25,
|
68 |
-
pixel_batch_size=300000, adaptive_cluster=False, refinement=True)
|
69 |
-
print('flops: {:.1f}G ({:.1f} %) | max_flops: {:.1f}G (100 %)'.format(flops/1e9,
|
70 |
-
(flops / max_flops)*100, max_flops/1e9))
|
71 |
-
|
72 |
-
pred = pred.transpose(1,2).view(-1,3,H,W)
|
73 |
-
pred = pred * rgb_std + rgb_mean
|
74 |
-
pred = tensor2numpy(pred)
|
75 |
-
Image.fromarray(pred).save(f'output.png')
|
76 |
-
|
77 |
-
flag = flag.view(-1,1,H,W).repeat(1,3,1,1).squeeze(0).detach().cpu()
|
78 |
-
H,W = pred.shape[:2]
|
79 |
-
vis_img = np.zeros_like(pred)
|
80 |
-
vis_img[flag[0] == 0] = np.array([0,255,0])
|
81 |
-
vis_img[flag[0] == 1] = np.array([255,0,0])
|
82 |
-
vis_img = vis_img*0.35 + pred*0.65
|
83 |
-
Image.fromarray(vis_img.astype('uint8')).save('output_vis.png')
|
84 |
-
```
|
85 |
-
|
86 |
-
## Citation
|
87 |
-
```
|
88 |
-
@misc{jeong2024acceleratingimagesuperresolutionnetworks,
|
89 |
-
title={Accelerating Image Super-Resolution Networks with Pixel-Level Classification},
|
90 |
-
author={Jinho Jeong and Jinwoo Kim and Younghyun Jo and Seon Joo Kim},
|
91 |
-
year={2024},
|
92 |
-
eprint={2407.21448},
|
93 |
-
archivePrefix={arXiv},
|
94 |
-
primaryClass={cs.CV},
|
95 |
-
url={https://arxiv.org/abs/2407.21448},
|
96 |
-
}
|
97 |
-
```
|
|
|
1 |
---
|
2 |
tags:
|
3 |
+
- pytorch_model_hub_mixin
|
4 |
+
- model_hub_mixin
|
5 |
---
|
|
|
|
|
|
|
6 |
|
7 |
+
This model has been pushed to the Hub using the [PytorchModelHubMixin](https://huggingface.co/docs/huggingface_hub/package_reference/mixins#huggingface_hub.PyTorchModelHubMixin) integration:
|
8 |
+
- Library: [More Information Needed]
|
9 |
+
- Docs: [More Information Needed]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
config.json
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"classifier_spec": {
|
3 |
+
"args": {
|
4 |
+
"imnet_spec": {
|
5 |
+
"args": {
|
6 |
+
"hidden_list": [
|
7 |
+
10,
|
8 |
+
10
|
9 |
+
]
|
10 |
+
},
|
11 |
+
"name": "mlp"
|
12 |
+
}
|
13 |
+
},
|
14 |
+
"name": "liif-sampler"
|
15 |
+
},
|
16 |
+
"encoder_spec": {
|
17 |
+
"args": {
|
18 |
+
"nf": 52,
|
19 |
+
"no_upsampling": true
|
20 |
+
},
|
21 |
+
"name": "carn"
|
22 |
+
},
|
23 |
+
"heavy_sampler_spec": {
|
24 |
+
"args": {
|
25 |
+
"imnet_spec": {
|
26 |
+
"args": {
|
27 |
+
"hidden_list": [
|
28 |
+
74,
|
29 |
+
74,
|
30 |
+
74,
|
31 |
+
74
|
32 |
+
]
|
33 |
+
},
|
34 |
+
"name": "mlp"
|
35 |
+
}
|
36 |
+
},
|
37 |
+
"name": "liif-sampler"
|
38 |
+
},
|
39 |
+
"light_sampler_spec": {
|
40 |
+
"args": {
|
41 |
+
"imnet_spec": {
|
42 |
+
"args": {
|
43 |
+
"hidden_list": [
|
44 |
+
20,
|
45 |
+
20,
|
46 |
+
20
|
47 |
+
]
|
48 |
+
},
|
49 |
+
"name": "mlp"
|
50 |
+
}
|
51 |
+
},
|
52 |
+
"name": "liif-sampler"
|
53 |
+
}
|
54 |
+
}
|
model.safetensors
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:120f6168edd5fa6c7d2269527644720a565a57b332aa722c389531e800c70380
|
3 |
+
size 691408
|