Skip to content

The project of DifferSketching: How Differently Do People Sketch 3D Objects? (SIGGRAPH Asia 2022 Journal Track)

Notifications You must be signed in to change notification settings

chufengxiao/DifferSketching

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 

Repository files navigation

DifferSketching: How Differently Do People Sketch 3D Objects?

Chufeng Xiao, Wanchao Su, Jing Liao, Zhouhui Lian, Yi-Zhe Song, Hongbo Fu

[Project Page] [Paper] [Dataset] [Supplemental Material]

Accepted by SIGGRAPH Asia 2022 (Journal Track)

To-do List

  • Dataset
  • Multi-level Registration Method
  • Freehand-style Sketch Synthesis
    • Pre-trained models and inference code
    • Training code and training dataset

Freehand-style Sketch Synthesis

Quick Test

Please run the below commands to visualize the pipeline of our method for sketch synthesis. The pre-trained models of our method are located at the directory ./sketch_synthesis/model/. There are two examples in the directory ./sketch_synthesis/input_sketch_json/ for testing, and you can also pick up other data from <category>/reg_json/ under the release dataset directory. The visualization result will be save in the directory ./sketch_synthesis/results/.

cd ./sketch_synthesis
pip install -r requirements.txt
python test.py

Training Dataset for Sketch Synthesis

Please download the latest version of our DifferSketching Dataset (updated in 8 May 2025) via Google Drive and put it at the root directory. Run the below commands to prepare data for training three MLP disturbers:

cd ./sketch_synthesis
pip install -r requirements.txt

# The sketch dataset should be located at root_dir="../DifferSketching_Dataset"

python ./prepare_data/getExtrinsicData.py # data for training extrinsic disturber
python ./prepare_data/getIntrinsicData.py # data for training intrinsic disturber
python ./prepare_data/getCurveNoiseData.py # data for training point disturber

# The extracted training data will be save at ./data

Please check the codes to switch the dataset from novices or professionals via the variable NP='N' or NP='P'.

Training

You can train three MLP disturbers using the corresponding data via the below commands:

cd ./sketch_synthesis

python train_extrinsic.py # train extrinsic disturber
python train_intrinsic.py # train intrinsic disturber
python train_curveNoise.py # train point disturber

# The trained models will be saved at ./train_models. Please check more details in the codes.

Citation

If you find this repository useful in your project, please give us a star and cite the following work. Thanks :)

@article{xiao2022differsketching,
  title={Differsketching: How differently do people sketch 3d objects?},
  author={Xiao, Chufeng and Su, Wanchao and Liao, Jing and Lian, Zhouhui and Song, Yi-Zhe and Fu, Hongbo},
  journal={ACM Transactions on Graphics (TOG)},
  volume={41},
  number={6},
  pages={1--16},
  year={2022},
  publisher={ACM New York, NY, USA}
}

About

The project of DifferSketching: How Differently Do People Sketch 3D Objects? (SIGGRAPH Asia 2022 Journal Track)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages