SwinIR

Mạng Swin Transformer để phục hồi ảnh. LibreYOLO cung cấp inference và xác thực cho các checkpoint siêu phân giải 4x: generator lightweight chính thức, real-world medium và real-world large.

Tác vụ
restore
Kích thước
s, m, l at 64 px
Cài đặt
pip install libreyolo
Bậc hỗ trợ
Chỉ suy luận, từ v. Chỉ dự đoán, kiểm định và xuất. Không áp dụng các tính năng huấn luyện.
Thượng nguồn
SwinIR của Computer Vision Lab, ETH Zurich, Apache-2.0. Bài báo, mã nguồn
Giấy phép
Mã nguồn Apache-2.0, trọng số Apache-2.0. Sử dụng thương mại

Cài đặt

SwinIR không cần extra tùy chọn. Mọi thành phần mà mô hình import đều có trong bản cài đặt cơ sở.

bash
pip install libreyolo

Dự đoán

Trọng số được tải về từ Hugging Face trong lần sử dụng đầu tiên và được lưu vào bộ nhớ đệm cục bộ.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreSwinIRm-restore.pt")result = model(SAMPLE_IMAGE, save=True) restored = result.restoredprint(restored.array.shape, restored.array.dtype)
CLI
libreyolo predict model=LibreSwinIRm-restore.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
Chia tile cho ảnh lớn
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRl-restore.pt") # tile chia forward pass thành các tile chồng lấp rồi hòa trộn đường nối;# tile_pad là vùng viền thêm quanh mỗi tile trước khi cắt bỏ trở lại.# Cả hai là đối số keyword chỉ dành cho Python, không phải cờ CLI.result = model("large-photo.jpg", tile=512, tile_pad=16, save=True)

Kết quả phục hồi không có box; result.restored là ảnh RGB uint8 dense (H, W, 3) trên canvas lớn gấp 4x đầu vào theo mỗi chiều. save=True ghi trực tiếp ảnh đó thay vì plot có chú thích. Đầu vào được padding thành bội số của 8 thay vì đổi kích thước, vì vậy dự đoán chạy ở độ phân giải riêng của ảnh; nguồn lớn hơn dung lượng bộ nhớ có thể được chia bằng tiletile_pad, các tùy chọn này hòa trộn đường nối tile trong đầu ra. Xem dự đoán để biết về nguồn, xử lý luồng và kết quả.

Biến thể

Có ba kích thước, tất cả cố định ở upscale 4x. s là generator lightweight chính thức, có bốn giai đoạn residual Swin Transformer block (RSTB) và upsampling pixel-shuffle-direct. ml là các generator real-world medium và large, có sáu và chín giai đoạn RSTB cùng bộ upsample nearest-neighbor kết hợp phép tích chập được xây dựng cho suy giảm trong thực tế thay vì chỉ downscale bicubic.

Xác thực

val() đo PSNR và SSIM giữa đầu ra đã phục hồi và ảnh đích sạch, cả hai được tính theo RGB trên canvas gốc mà không crop viền hoặc đổi kích thước. SSIM dùng cửa sổ Gaussian 11x11 với sigma 1,5, lấy trung bình trên ba kênh màu.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRm-restore.pt")metrics = model.val(data="my-restore-dataset.yaml") print(metrics["metrics/PSNR"])print(metrics["metrics/SSIM"])
CLI
libreyolo val model=LibreSwinIRm-restore.pt data=my-restore-dataset.yaml

Đối số tập dữ liệu (dataset) là YAML ghép thư mục ảnh đầu vào bị suy giảm với thư mục ảnh đích sạch có độ phân giải tương ứng; xem định dạng dataset để biết chính xác các key.

Xuất

Tác vụONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
restorerestore to ONNX: được hỗ trợrestore to TorchScript: được hỗ trợrestore to ExecuTorch: không được hỗ trợrestore to TensorRT: được hỗ trợrestore to OpenVINO: được hỗ trợrestore to Paddle: không được hỗ trợrestore to MNN: không được hỗ trợrestore to RKNN: không được hỗ trợrestore to ncnn: không được hỗ trợrestore to TFLite: được hỗ trợrestore to CoreML: không được hỗ trợrestore to Core AI: không được hỗ trợ

Artifact đã xuất được tải lại qua LibreYOLO() dựa trên hậu tố tệp, vì vậy tệp .onnx hoặc .engine hoạt động như checkpoint và trả về cùng đối tượng Results. ExecuTorch và mọi định dạng được ma trận đánh dấu là bị chặn đều không dùng được cho họ mô hình này; ONNX, TorchScript, TensorRT, OpenVINO và TFLite thì dùng được. Trang Xuất liệt kê các đối số được mọi định dạng chấp nhận và các extra mà một số định dạng bổ sung.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRm-restore.pt") # Khi bỏ qua, imgsz mặc định dùng kích thước patch nội bộ nhỏ, không phải# độ phân giải làm việc, vì vậy hãy truyền kích thước mà bản triển khai# thực sự đưa vào mô hình.model.export(format="onnx", imgsz=512)model.export(format="tensorrt", imgsz=512, half=True)
CLI
libreyolo export model=LibreSwinIRm-restore.pt format=onnx imgsz=512
Dùng tệp đã xuất
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Factory định tuyến dựa trên hậu tố tệp, vì vậy artifact đã xuất tải# như mọi checkpoint và trả về cùng đối tượng Results.model = LibreYOLO("LibreSwinIRm-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)

Checkpoint

Mọi tệp trọng số đã phát hành cho họ mô hình này.

TệpĐầu vào (px)Giấy phép trọng số
restore
LibreSwinIRs-restore.ptapache-2.0
LibreSwinIRm-restore.ptapache-2.0
LibreSwinIRl-restore.ptapache-2.0

Mọi tệp ở trên hiện đều có trong tổ chức LibreYOLO và được tải xuống trong lần sử dụng đầu tiên.

Giấy phép

Hãy kiểm tra giấy phép trong repo Hugging Face của trọng số cụ thể mà bạn tải xuống. Mỗi checkpoint trong tổ chức LibreYOLO đều có giấy phép riêng và giấy phép có thể khác nhau trong cùng một họ. Repo đó là nguồn có thẩm quyền; phần tóm tắt dưới đây mô tả các điều khoản áp dụng khi trang này được kiểm chứng lần gần nhất.

Đây là phần mô tả các giấy phép liên quan, không phải tư vấn pháp lý. Nếu câu trả lời có ý nghĩa về mặt thương mại, hãy tự đọc các giấy phép và tham khảo cố vấn của riêng bạn.

Công trình gốc
SwinIR, Computer Vision Lab, ETH Zurich
Giấy phép thượng nguồn
Apache-2.0
Nguồn thượng nguồn
github.com/JingyunLiang/SwinIR
Mã nguồn LibreYOLO
MIT
Trọng số
Apache-2.0, được phát hành lại tại huggingface.co/LibreYOLO
Diễn giải
Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. It places no obligation on your own application code. LibreYOLO's checkpoints are format conversions of the official pretrained generators, with the learned parameters unchanged; SwinIR's real-world variants need a degradation and GAN training pipeline that is not wired into this library, so there is no LibreYOLO-trained variant to license separately.

Trích dẫn

@article{liang2021swinir,
  title={SwinIR: Image Restoration Using Swin Transformer},
  author={Liang, Jingyun and Cao, Jiezhang and Sun, Guolei and Zhang, Kai and Van Gool, Luc and Timofte, Radu},
  journal={arXiv preprint arXiv:2108.10257},
  year={2021}
}

Được sao chép từ khối trích dẫn của tác giả tại github.com/JingyunLiang/SwinIR#citation.

Đã kiểm chứng với LibreYOLO v1.5.0. Các bảng hỗ trợ, checkpoint và số liệu benchmark trên trang này được tạo từ thư viện đã phát hành và trọng số đã công bố, không phải viết thủ công.