{"id":17090093,"url":"https://github.com/xiaojieli0903/genview","last_synced_at":"2025-10-12T14:36:35.242Z","repository":{"id":228180042,"uuid":"772921938","full_name":"xiaojieli0903/genview","owner":"xiaojieli0903","description":"[ECCV 2024] Official repository of \"GenView: Enhancing View Quality with Pretrained Generative Model for Self-Supervised Learning\".","archived":false,"fork":false,"pushed_at":"2024-12-18T13:00:41.000Z","size":1707,"stargazers_count":29,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-27T19:12:23.654Z","etag":null,"topics":["contrastive-learning","generative-model","visual-representation-learning"],"latest_commit_sha":null,"homepage":"https://arxiv.org/abs/2403.12003","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xiaojieli0903.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-16T08:44:12.000Z","updated_at":"2025-05-15T10:53:08.000Z","dependencies_parsed_at":"2024-07-18T14:14:21.387Z","dependency_job_id":"af11dbca-df10-4b1d-8938-29353a7d21c0","html_url":"https://github.com/xiaojieli0903/genview","commit_stats":null,"previous_names":["xiaojieli0903/genview"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xiaojieli0903/genview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaojieli0903%2Fgenview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaojieli0903%2Fgenview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaojieli0903%2Fgenview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaojieli0903%2Fgenview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xiaojieli0903","download_url":"https://codeload.github.com/xiaojieli0903/genview/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaojieli0903%2Fgenview/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279011604,"owners_count":26084964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["contrastive-learning","generative-model","visual-representation-learning"],"created_at":"2024-10-14T13:51:38.899Z","updated_at":"2025-10-12T14:36:35.220Z","avatar_url":"https://github.com/xiaojieli0903.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GenView: Enhancing View Quality with Pretrained Generative Model for Self-Supervised Learning (ECCV 2024)\n\n![GenView Framework](figs/framework.png)\n\nThis repository contains the official implementation of **GenView: Enhancing View Quality with Pretrained Generative Models for Self-Supervised Learning**, presented at ECCV 2024.\n\n\u003e **[GenView: Enhancing View Quality with Pretrained Generative Model for Self-Supervised Learning](https://arxiv.org/abs/2403.12003)**\u003cbr\u003e \n\u003e [Xiaojie Li](https://xiaojieli0903.github.io/)^1,2, [Yibo Yang](https://iboing.github.io/)^3, [Xiangtai Li](https://lxtgh.github.io/)^4, [Jianlong Wu](https://jlwu1992.github.io)^1, [Yue Yu](https://yuyue.github.io)^2, [Bernard Ghanem](https://www.bernardghanem.com/)^3, [Min Zhang](https://zhangminsuda.github.io)^1\u003cbr\u003e\n\u003e ^1Harbin Institute of Technology (Shenzhen), ^2Peng Cheng Laboratory, ^3King Abdullah University of Science and Technology, ^4Nanyang Technological University\n\n## 🔨 Installation\n\nFollow the steps below to set up the environment and install dependencies.\n\n### Step 1: Create and Activate a Conda Environment\n\nCreate a new Conda environment with Python 3.8 and activate it:\n\n```bash\nconda create --name env_genview python=3.8 -y\nconda activate env_genview\n```\n\n### Step 2: Install Required Packages\n\nYou can install PyTorch, torchvision, and other dependencies via pip or Conda. Choose the command based on your preference and GPU compatibility.\n\n```bash\n# Using pip\npip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu117\n\n# Or using conda\nconda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia\n\n# Install additional dependencies\npip install timm==0.9.7 open_clip_torch==2.22.0 diffusers==0.21.4 huggingface_hub==0.17.3 transformers==4.33.3\n```\n\n### Step 3: Clone the Repository and Install Project Dependencies\n\nClone the GenView repository and install the required dependencies using `openmim`:\n\n```bash\ngit clone https://github.com/xiaojieli0903/genview.git\ncd genview\npip install -U openmim\nmim install -e .\n```\n\nApply modifications to `open_clip` and `timm`:\n\n```bash\nsh tools/toolbox_genview/change_openclip_timm.sh\n```\n\n## 📷 Adaptive View Generation\n\nWe utilize the pretrained **CLIP ViT-H/14** backbone, which serves as the conditional image encoder in **Stable UnCLIP v2-1**, to determine the proportion of foreground content before image generation. This backbone processes an input resolution of \\(224 \\times 224\\) and generates 256 tokens, each with a dimension of 1280. \n\nFor calculating PCA features needed for foreground-background separation, we randomly sample 10,000 images from the original dataset. The threshold \\( \\alpha \\) in Equation (7) is selected to ensure that foreground tokens account for approximately 40% of the total tokens, providing a clear separation between foreground and background.\n\n### **Step 1: Extract CLIP Image Features and Compute PCA**\n\nWe first extract features from 10,000 images using the CLIP ViT-H/14 backbone and then perform PCA analysis.\nThe calculated PCA vectors act as classifiers for distinguishing between foreground and background regions.\n\n**Command to Extract Features and Perform PCA Analysis:**\n\n```shell\npython tools/clip_pca/extract_features_pca.py \\\n    --input-list tools/clip_pca/train_sampled_1000cls_10img.txt \\\n    --num-extract 10000 \\\n    --patch-size 14 \\\n    --num-vis 20 \\\n    --model ViT-H-14 \\\n    --training-data laion2b_s32b_b79k\n```\n\n- `--input-list`: Path to the file containing the list of sampled images (`tools/clip_pca/train_sampled_1000cls_10img.txt`).\n- `--num-extract 10000`: Specifies the number of images to process.\n- `--patch-size 14`: Patch size used by the model.\n- `--num-vis 20`: Number of images to visualize.\n- `--model ViT-H-14`: Specifies the CLIP model to use.\n- `--training-data laion2b_s32b_b79k`: Pretrained weights for the model.\n\n**Outputs:**\n\n- **Extracted Features**: Saved in the `features/` directory.\n- **PCA Eigenvectors**: Saved in the `eigenvecters/` directory.\n- **Generated Masks, Maps, and Original Images**: Saved in the `masks/`, `maps/`, and `original_images/` directories, respectively.\n- **Threshold for Foreground-Background Separation**: During the PCA analysis, a background threshold is also calculated and used for generating masks. This threshold helps to separate foreground from background regions by comparing the PCA-transformed feature values with the threshold. The resulting masks can then be used to compute the foreground ratio for each image in the next steps.\n\n### **Step 2: Determine Suitable Noise Levels for Each Image**\n\nTo maintain semantic consistency while ensuring diversity, we determine appropriate noise levels for each image using the PCA vectors and the extracted image features.\n\n#### **2.1 Extract Features for the Entire ImageNet Dataset**\n\nFirst, we need to extract features for each image in the ImageNet dataset. This process may take around 4 hours with a batch size of 1024, and the extracted features will require approximately 4GB of storage.\n\n**Command to Extract Features:**\n\n```shell\npython tools/clip_pca/extract_features_pca.py \\\n    --input-list data/imagenet/train.txt \\\n    --num-extract -1 \\\n    --patch-size 14 \\\n    --num-vis 20 \\\n    --model ViT-H-14 \\\n    --training-data laion2b_s32b_b79k\n```\n\n- `--input-list`: Path to the file containing the list of all training images.\n- `--num-extract -1`: Processes all images in the list (no limit).\n- Other parameters are the same as in Step 1.\n\n#### **2.2 Calculate Foreground Ratios**\n\nUsing the previously computed PCA vectors and the foreground-background threshold (`fg_thre`), we calculate the foreground ratio (`fg_ratio`) for each image in the dataset. The `fg_ratio` helps quantify the proportion of foreground content within each image, which will later guide noise level determination for adaptive view generation.\n\n**Command to Calculate `fg_ratio`**:\n\n```shell\npython tools/clip_pca/calculate_fgratio.py \\\n    --input-dir tools/clip_pca/pca_results/ViT-H-14-laion2b_s32b_b79k/ \\\n    --input-list data/imagenet/train.txt \\\n    --output-dir data/imagenet/ \\\n    --fg-thre {computed_threshold}\n```\n- `--input-dir`: Path to the directory to save extracted features and PCA eigenvecters.\n- `--input-list`: Path to the file containing the list of all training images.\n- `--output-dir`: Directory where the `fg_ratios.txt` file will be saved.\n- `--fg-thre {computed_threshold}`: The foreground-background threshold value (`fg_thre`) calculated from **Step 1** using PCA analysis. This threshold ensures the proper separation of foreground and background regions.\n\nA file named `fg_ratios.txt` will be generated in the specified output directory. This file contains a list of image paths paired with their respective `fg_ratio` values.  \nEach line of `fg_ratios.txt` is structured as:  \n    ```\n    \u003cimage_path\u003e \u003cfg_ratio\u003e\n    ```\n    Example:  \n    ```\n    data/imagenet/train/img_0001.jpg 0.42\n    data/imagenet/train/img_0002.jpg 0.38\n    ```\n  \n#### **2.3 Generate Adaptive Noise Levels**\n\nFinally, we distribute the original `fg_ratios.txt` entries into separate files based on specified ranges and mapping values. Each output file is named after its corresponding mapped noise level value (e.g., `fg_ratios_0.txt`, `fg_ratios_100.txt`, etc.), containing image paths and their `fg_ratio` values that fall into the respective ranges.\n\n**Command to Generate Noise Level Files:**\n\n```shell\npython tools/clip_pca/generate_ada_noise_level.py \\\n    --input-file data/imagenet/fg_ratios.txt \\\n    --output-dir data/imagenet/\n```\n\n- `--input-file`: Path to the `fg_ratios.txt` generated in the previous step.\n- `--output-dir`: Directory where the noise level files will be saved.\n\nThese files categorize images based on their foreground ratios, allowing us to assign appropriate noise levels during image generation to achieve the desired balance between semantic consistency and diversity.\n    ```\n\n### **Step 3: Generate Image Dataset Variations**\n\nIn this step, we generate image variations for the dataset by applying the calculated noise levels. This ensures the generated data maintains semantic consistency while introducing controlled diversity for adaptive view generation.\n\n#### **3.1 Generate Image Variations with Specified Noise Levels**\n\nFor each noise level file (e.g., `fg_ratios_*.txt`), use the following command to generate image variations:\n\n```bash\npython tools/toolbox_genview/generate_image_variations_noiselevels.py \\\n    --input-list data/imagenet/fg_ratios_{noise_level}.txt \\\n    --output-prefix data/imagenet/train_variations/ \\\n    --noise-level {noise_level}\n```\n\n- `--input-list`: Path to the text file that contains image paths and `fg_ratio` values.\n- `--output-prefix`: Prefix for the output directory where the variations will be saved.\n- `--noise-level`: Noise level to apply to the image variations (options: 0, 100, 200, 300, 400).\n\nRepeat this command for all `fg_ratios_*.txt` files to generate the complete set of image variations.\n\nUse the following shell script to parallelize the image generation process. This script splits the input list into multiple parts and processes them in parallel.\n\n```bash\nbash tools/toolbox_genview/run_parallel_levels.sh data/imagenet/fg_ratios_{noise_level}.txt data/imagenet/train_variations/ {noise_level}\n```\n\nHere’s the revised content in English:\n\n---\n\n#### **3.2 Quick Data Preparation: Use Pre-generated Image Variations**\n\nTo simplify the data preparation process, pre-generated image variations are available for download. You can access them on [https://huggingface.co/datasets/Xiaojie0903/Genview_syntheric_dataset_in1k](https://huggingface.co/datasets/Xiaojie0903/Genview_syntheric_dataset_in1k) and use them directly for your experiments and model training.\n\n1. **Download and Merge the Dataset**:\n\n   After downloading all parts of the compressed dataset, merge them into a single file and extract the contents:\n\n   ```bash\n   cd /path/to/download_tars/\n   cat train_variations.tar.* \u003e train_variations.tar\n   tar -xvf train_variations.tar\n   ```\n\n2. **Create Symbolic Links**:\n\n   To simplify access to the extracted data, create symbolic links in the `genview` project directory:\n\n   ```bash\n   cd genview\n   mkdir -p data/imagenet\n   cd data/imagenet\n   ln -s /path/to/imagenet/train .\n   ln -s /path/to/imagenet/val .\n   ln -s /path/to/download_tars/train_variations/ .\n   ```\n\n   - `train/`: Link to the original ImageNet training data.\n   - `val/`: Link to the ImageNet validation data.\n   - `train_variations/`: Link to the directory containing pre-generated image variations.\n\n#### **3.3 Generate the Synthetic Image List**\n\nOnce the image variations are prepared, generate a list of all synthetic images for further training and evaluation:\n\n```bash\npython tools/toolbox_genview/generate_train_variations_list.py \\\n    --input-dir data/imagenet/train_variations \\\n    --output-list data/imagenet/train_variations.txt\n```\n\n- `--input-dir`: Path to the directory containing the generated image variations.\n- `--output-list`: Path to save the generated image list.\n\n**Outputs:**\n- **Image Variations**: Saved in the `train_variations/` directory, with noise applied according to the `fg_ratios_*.txt` files.\n- **Synthetic Image List**: A text file (`train_variations.txt`) containing paths to all generated image variations, saved in `data/imagenet/`.\n\nBy completing this step, you will have a comprehensive dataset containing controlled image variations ready for self-supervised training with enhanced view quality.\n\n## 🔍 Quality-Driven Contrastive Loss\n\nWe use the pretrained CLIP ConvNext-Base model as the encoder to extract feature maps from augmented positive views. These feature maps, with a resolution of 7² from a 224² input, are used to calculate foreground and background attention maps based on PCA.\n\nWe randomly sample 10,000 images to compute PCA features. The threshold \\( \\alpha \\) ensures that 40% of the tokens represent the foreground, enabling clear separation.\n\nUse the following command to extract features and compute PCA:\n\n```bash\npython tools/clip_pca/extract_features_pca.py \\\n    --input-list tools/clip_pca/train_sampled_1000cls_10img.txt \\\n    --num-extract 10000 \\\n    --patch-size 32 \\\n    --num-vis 20 \\\n    --model convnext_base_w \\\n    --training-data laion2b-s13b-b82k-augreg\n```\n\n### Outputs\n\n- **Extracted Features**: Stored in `features/`.\n- **PCA Eigenvectors**: Stored in `eigenvectors/`.\n- **Masks, Maps, and Original Images**: Stored in `masks/`, `maps/`, and `original_images/`.\n\nThese PCA vectors are used to generate foreground and background attention maps during pretraining. We provide precomputed PCA vectors, which can be found at `tools/clip_pca/pca_results/convnext_base_w_laion2b-s13k-b82k-augreg/eigenvectors/pca_vectors.npy`\n\n## 🔄 Training\n\nDetailed commands for running pretraining and downstream tasks with single or multiple machines/GPUs:\n\n**Training with Multiple GPUs**\n```shell\nCUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 PORT=29500 bash tools/dist_train.sh ${CONFIG_FILE} 8 [PY_ARGS] [--resume /path/to/latest/epoch_{number}.pth]\n```\n\n**Training with Multiple Machines**\n```shell\nCPUS_PER_TASK=8 GPUS_PER_NODE=8 GPUS=16 sh tools/slurm_train.sh $PARTITION $JOBNAME ${CONFIG_FILE} $WORK_DIR [--resume /path/to/latest/epoch_{number}.pth]\n```\n\nEnsure to replace `$PARTITION`, `$JOBNAME`, and `$WORK_DIR` with actual values for your setup.\n\n## 🚀 Experiment Configurations\n\nThe following experiments provide various pretraining setups using different architectures, epochs, and GPU configurations.\n\n**SimSiam + ResNet50 + 200 Epochs + 8 GPUs**\n\n- **Pretraining**:\n  ```shell\n  CPUS_PER_TASK=8 GPUS_PER_NODE=8 GPUS=8 sh tools/slurm_train.sh $PARTITION simsiam_pretrain configs_genview/simsiam/simsiam_resnet50_8xb32-coslr-200e_in1k_singleview_clipmask.py work_dirs/simsiam_resnet50_8xb32-coslr-200e_in1k_singleview_clipmask\n  ```\n- **Linear Probe**:\n  ```shell\n  CPUS_PER_TASK=8 GPUS_PER_NODE=8 GPUS=8 sh tools/slurm_train.sh $PARTITION simsiam_linear configs_genview/simsiam/benchmarks/resnet50_8xb512-linear-coslr-90e_in1k_clip.py work_dirs/simsiam_resnet50_8xb32-coslr-200e_in1k_diffssl_prob1_128w_clipmask/linear --cfg-options model.backbone.init_cfg.checkpoint=work_dirs/simsiam_resnet50_8xb32-coslr-200e_in1k_diffssl_prob1_128w_clipmask/epoch_200.pth\n  ```\n  \n**MoCo v3 + ResNet50 + 100 Epochs + 8 GPUs**\n\n- **Pretraining**:\n  ```shell\n  CPUS_PER_TASK=8 GPUS_PER_NODE=8 GPUS=8 sh tools/slurm_train.sh $PARTITION mocov3r50_pretrain configs_genview/mocov3/mocov3_resnet50_8xb512-amp-coslr-100e_in1k_singleview_clipmask.py work_dirs/mocov3_resnet50_8xb512-amp-coslr-100e_in1k_singleview_clipmask\n  ```\n  \n- **Linear Probe**:\n  ```shell\n  CPUS_PER_TASK=8 GPUS_PER_NODE=8 GPUS=8 sh tools/slurm_train.sh $PARTITION mocov3r50_linear configs_genview/mocov3/benchmarks/resnet50_8xb128-linear-coslr-90e_in1k_clip.py work_dirs/mocov3_resnet50_8xb512-amp-coslr-100e_in1k_singleview_clipmask/linear --cfg-options model.backbone.init_cfg.checkpoint=work_dirs/mocov3_resnet50_8xb512-amp-coslr-100e_in1k_singleview_clipmask/epoch_100.pth\n  ```\n\n**MoCo v3 + ViT-B + 300 Epochs + 16 GPUs**\n\n- **Pretraining**:\n  ```shell\n  CPUS_PER_TASK=8 GPUS_PER_NODE=8 GPUS=16 sh tools/slurm_train.sh $PARTITION mocov3vit_pretrain configs_genview/mocov3/mocov3_vit-base-p16_16xb256-amp-coslr-300e_in1k_singleview_clipmask.py work_dirs/mocov3_vit-base-p16_16xb256-amp-coslr-300e_in1k_singleview_clipmask\n  ```\n\n- **Linear Probe**:\n  ```shell\n  CPUS_PER_TASK=8 GPUS_PER_NODE=8 GPUS=8 sh tools/slurm_train.sh $PARTITION mocov3vit_linear configs_genview/mocov3/benchmarks/vit-base-p16_8xb128-linear-coslr-90e_in1k_clip.py work_dirs/mocov3_vit-base-p16_16xb256-amp-coslr-300e_in1k_singleview_clipmask/linear --cfg-options model.backbone.init_cfg.checkpoint=work_dirs/mocov3_vit-base-p16_16xb256-amp-coslr-300e_in1k_singleview_clipmask/epoch_300.pth\n  ```\n  \n## 📍 Model Zoo  \n\nWe have uploaded the pre-trained models to [https://huggingface.co/Xiaojie0903/genview_pretrained_models](https://huggingface.co/Xiaojie0903/genview_pretrained_models). Access them directly using the links below:\n\n| **Method**        | **Backbone** | **Pretraining Epochs** | **Linear Probe Accuracy (%)** | **Model Link**                                                              |\n|-------------------|--------------|-------------------------|-------------------------------|-----------------------------------------------------------------------------|\n| MoCo v2 + GenView | ResNet-50    | 200                     | 70.0                          | [Download](https://huggingface.co/Xiaojie0903/genview_pretrained_models/resolve/main/mocov2_resnet50_8xb32-coslr-200e_in1k_genview.pth) |\n| SwAV + GenView    | ResNet-50    | 200                     | 71.7                          | [Download](https://huggingface.co/Xiaojie0903/genview_pretrained_models/resolve/main/swav_resnet50_8xb32-mcrop-coslr-200e_in1k_genview.pth) |\n| SimSiam + GenView | ResNet-50    | 200                     | 72.2                          | [Download](https://huggingface.co/Xiaojie0903/genview_pretrained_models/resolve/main/simsiam_resnet50_8xb32-coslr-200e_in1k_genview.pth) |\n| BYOL + GenView    | ResNet-50    | 200                     | 73.2                          | [Download](https://huggingface.co/Xiaojie0903/genview_pretrained_models/resolve/main/byol_resnet50_16xb256-coslr-200e_in1k_genview.pth) |\n| MoCo v3 + GenView | ResNet-50    | 100                     | 72.7                          | [Download](https://huggingface.co/Xiaojie0903/genview_pretrained_models/resolve/main/mocov3_resnet50_8xb512-amp-coslr-100e_in1k_genview.pth) |\n| MoCo v3 + GenView | ResNet-50    | 300                     | 74.8                          | [Download](https://huggingface.co/Xiaojie0903/genview_pretrained_models/resolve/main/mocov3_resnet50_8xb512-amp-coslr-300e_in1k_genview.pth) |\n| MoCo v3 + GenView | ViT-S        | 300                     | 74.5                          | [Download](https://huggingface.co/Xiaojie0903/genview_pretrained_models/resolve/main/mocov3_vit-small-p16_16xb256-amp-coslr-300e_in1k_genview.pth) |\n| MoCo v3 + GenView | ViT-B        | 300                     | 77.8                          | [Download](https://huggingface.co/Xiaojie0903/genview_pretrained_models/resolve/main/mocov3_vit-base-p16_16xb256-amp-coslr-300e_in1k_genview.pth) |\n\n## ✏️ Citation\nIf you find the repo useful for your research, please consider citing our paper:\n```bibtex\n@inproceedings{li2024genview,\n  author={Li, Xiaojie and Yang, Yibo and Li, Xiangtai and Wu, Jianlong and Yu, Yue and Ghanem, Bernard and Zhang, Min},\n  title={GenView: Enhancing View Quality with Pretrained Generative Model for Self-Supervised Learning}, \n  year={2024},\n  pages={306--325},\n  booktitle={Proceedings of the European Conference on Computer Vision},\n  publisher=\"Springer\"\n}\n```\n\n## 👍 Acknowledgments\n\nThis codebase builds on [mmpretrain](https://github.com/open-mmlab/mmpretrain). Thanks to the contributors of this great codebase.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiaojieli0903%2Fgenview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxiaojieli0903%2Fgenview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiaojieli0903%2Fgenview/lists"}