Sheng Cao, Chao-Yuan Wu, Philipp Krähenbühl

@article { cao2020lossless ,
title = { Lossless Image Compression through Super-Resolution } ,
author = { Cao, Sheng and Wu, Chao-Yuan and and Kr{"a}henb{"u}hl, Philipp } ,
year = { 2020 } ,
journal = { arXiv preprint arXiv:2004.02872 } ,
}หากคุณใช้ codebase ของเราโปรดพิจารณาอ้าง L3C ด้วย
นี่คือการดำเนินการอย่างเป็นทางการของ SREC ใน Pytorch SREC เฟรมการบีบอัดแบบไม่สูญเสียเป็นปัญหาที่มีความละเอียดสูงและใช้เครือข่ายประสาทเพื่อบีบอัดภาพ SREC สามารถบรรลุอัตราการบีบอัดที่ล้ำสมัยในชุดข้อมูลขนาดใหญ่ที่มีการใช้งานจริง การฝึกอบรมการบีบอัดและการบีบอัดได้รับการสนับสนุนอย่างเต็มที่และเปิดโล่ง
เราขอแนะนำขั้นตอนต่อไปนี้สำหรับการเริ่มต้น
ดูที่นี่สำหรับคำแนะนำในการติดตั้ง
เราได้เปิดตัวโมเดลที่ผ่านการฝึกอบรมสำหรับทั้ง ImageNet64 และ Open Images (PNG) ผลการบีบอัดทั้งหมดวัดเป็นบิตต่อพิกเซลย่อย (BPSP)
| ชุดข้อมูล | BPSP | น้ำหนักแบบจำลอง |
|---|---|---|
| ImageNet64 | 4.29 | Models/Imagenet64.pth |
| เปิดภาพ | 2.70 | โมเดล/openimages.pth |
ในการเรียกใช้รหัสคุณต้องอยู่ในไดเรกทอรีระดับสูงสุด
python3 -um src.train
--train-path "path to directory of training images"
--train-file "list of filenames of training images, one filename per line"
--eval-path "path to directory of eval images"
--eval-file "list of filenames of eval images, one filename per line"
--plot "directory to store model output"
--batch "batch size"
ภาพการฝึกอบรมจะต้องจัดในรูปแบบของ train-path/filename จากชื่อไฟล์ในไฟล์รถไฟ สิ่งเดียวกันนี้ใช้กับภาพประเมิน
เราได้รวมไฟล์การฝึกอบรมและการประเมินของเราที่ใช้สำหรับ ImageNet64 และ Open Images (PNG) ในไดเรกทอรีชุด datasets
สำหรับ ImageNet64 เราใช้ชุดพารามิเตอร์ที่แตกต่างกันเล็กน้อยกว่าภาพไฮเปอร์พารามิเตอร์แบบเปิดซึ่งเป็นค่าเริ่มต้น เพื่อฝึก Imagenet64 ตามการตั้งค่าจากกระดาษของเรา Run
python3 -um src.train
--train-path "path to directory of training images"
--train-file "list of filenames of training images, one filename per line"
--eval-path "path to directory of eval images"
--eval-file "list of filenames of eval images, one filename per line"
--plot "directory to store model output"
--batch "batch size"
--epochs 10
--lr-epochs 1
--crop 64
เรียกใช้ python3 -um src.train --help สำหรับรายการของ hyperparameters ที่ปรับได้
ด้วยจุดตรวจสอบแบบจำลองสิ่งนี้จะประเมินบิตทฤษฎี/พิกเซลย่อย (BPSP) ตามความน่าจะเป็นบันทึก logelihood bpsp ต่ำกว่าขอบเขตการบีบอัด BPSP จริง
python3 -um src.eval
--path "path to directory of images"
--file "list of filenames of images, one filename per line"
--load "path to model weights"
ด้วยการติดตั้ง Torchac คุณสามารถเรียกใช้การบีบอัด/การบีบอัดเพื่อแปลงภาพใด ๆ เป็นไฟล์. SREC ต่อไปนี้บีบอัดไดเรกทอรีของภาพ
python3 -um src.encode
--path "path to directory of images"
--file "list of filenames of images, one filename per line"
--save-path "directory to save new .srec files"
--load "path to model weights"
หากคุณต้องการรันไทม์ที่แม่นยำเราขอแนะนำให้ใช้ Python ด้วย -O Flag เพื่อปิดการใช้งานการยืนยัน นอกจากนี้เรายังรวมการตั้งค่าสถานะ --decode รหัสเสริมเพื่อให้คุณสามารถตรวจสอบว่าการบีบอัดไฟล์. SREC ให้ภาพต้นฉบับหรือไม่รวมถึงให้รันไทม์สำหรับการถอดรหัส
ในการแปลงไฟล์. SREC เป็น PNG คุณสามารถรันได้
python3 -um src.decode
--path "path to directory of .srec images"
--file "list of filenames of .srec images, one filename per line"
--save-path "directory to save png files"
--load "path to model weights"
คุณสามารถดาวน์โหลดชุดการฝึกอบรมและการตรวจสอบความถูกต้องของ Imagenet64 ได้ที่นี่
เราใช้ชุดการฝึกอบรมและการตรวจสอบภาพเดียวกันของภาพเปิดเป็น L3C
สำหรับ ภาพการตรวจสอบ คุณสามารถ ดาวน์โหลดได้ที่นี่
สำหรับ ภาพการฝึกอบรม โปรดโคลน L3C repo และเรียกใช้สคริปต์จากที่นี่
ดูปัญหานี้สำหรับความแตกต่างระหว่าง Open Images JPEG และ Open Images PNG
ขอบคุณ L3C สำหรับการใช้งานของ EDSR การผสมโลจิสติกและการเข้ารหัสทางคณิตศาสตร์ ขอขอบคุณเป็นพิเศษสำหรับ Fabian Mentzer ที่แจ้งให้เราทราบเกี่ยวกับปัญหาเกี่ยวกับสคริปต์การประมวลผลล่วงหน้าสำหรับภาพเปิด jpeg และแก้ไขพวกเขาอย่างรวดเร็ว