/ArtCoder

A PyTorch implementation of "ArtCoder: An End-to-end Method for Generating Scanning-robust Stylized QR Codes", CVPR 2021.

Primary LanguagePythonMIT LicenseMIT

ArtCoder: An End-to-end Method for Generating Scanning-robust Stylized QR Codes

A PyTorch implementation of "ArtCoder: An End-to-end Method for Generating Scanning-robust Stylized QR Codes".

The paper "ArtCoder: An End-to-end Method for Generating Scanning-robust Stylized QR Codes" has been accepted by CVPR 2021. If the paper or code is useful for your research, please cite

@inproceedings{su2021artcoder,
  title={ArtCoder: An End-to-End Method for Generating Scanning-Robust Stylized QR Codes},
  author={Su, Hao and Niu, Jianwei and Liu, Xuefeng and Li, Qingfeng and Wan, Ji and Xu, Mingliang and Ren, Tao},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={2277--2286},
  year={2021}
}

Demos

Style&Content Output

Prerequisites

  • Linux or Windows
  • CPU or NVIDIA GPU + CUDA CuDNN
  • Python 3
  • Pytorch 1.7.0

Getting Started

Installation

  • Clone this repo:
    git clone https://github.com/SwordHolderSH/ArtCoder
    cd ArtCoder
  • Install PyTorch and other dependencies.

Quick Start

  • Get detailed information about all parameters using
    python main.py -h
  • Generate your customized Stylized QR codes:
    python main.py -style_img_path ./xxxx/xxx.jpg  --content_img_path ./xxxx/xxx.jpg --code_img_path ./xxxx/xxx.jpg --output_dir ./xxxx/

Notices

  • The input code images are generated by the algorithm on the website https://meiyaoma.com/ . Of course, it is OK to use traditional QR codes (square modules appear as random distribution) as the input code images, and it just compromises some visual quality.
  • The QR codes of version 5 is used by default (37*37 modules). If you want to use different versions of QR code, you need to adjust the parameters --module_number (default: 37).