{"id":32976580,"url":"https://github.com/XiaohangZhan/conditional-motion-propagation","last_synced_at":"2025-11-16T08:01:55.937Z","repository":{"id":69933196,"uuid":"180077357","full_name":"XiaohangZhan/conditional-motion-propagation","owner":"XiaohangZhan","description":"Code for our CVPR 2019 work.","archived":false,"fork":false,"pushed_at":"2019-07-19T13:04:30.000Z","size":52582,"stargazers_count":142,"open_issues_count":3,"forks_count":20,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-07-05T16:09:12.383Z","etag":null,"topics":["deep-learning","interactive-annotation","motion-prediction","representation-learning","self-supervised","self-supervised-learning","unsupervised-learning","video-generation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/XiaohangZhan.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}},"created_at":"2019-04-08T05:40:31.000Z","updated_at":"2024-06-26T08:59:53.000Z","dependencies_parsed_at":"2024-01-16T10:50:21.817Z","dependency_job_id":null,"html_url":"https://github.com/XiaohangZhan/conditional-motion-propagation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/XiaohangZhan/conditional-motion-propagation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XiaohangZhan%2Fconditional-motion-propagation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XiaohangZhan%2Fconditional-motion-propagation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XiaohangZhan%2Fconditional-motion-propagation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XiaohangZhan%2Fconditional-motion-propagation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/XiaohangZhan","download_url":"https://codeload.github.com/XiaohangZhan/conditional-motion-propagation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XiaohangZhan%2Fconditional-motion-propagation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284678558,"owners_count":27045646,"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-11-16T02:00:05.974Z","response_time":65,"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":["deep-learning","interactive-annotation","motion-prediction","representation-learning","self-supervised","self-supervised-learning","unsupervised-learning","video-generation"],"created_at":"2025-11-13T06:00:31.219Z","updated_at":"2025-11-16T08:01:55.929Z","avatar_url":"https://github.com/XiaohangZhan.png","language":"Python","funding_links":[],"categories":["Computer Vision"],"sub_categories":["Image Representation Learning"],"readme":"# Implementation of \"Self-Supervised Learning via Conditional Motion Propagation\" (CMP)\n\n## Paper\n\nXiaohang Zhan, Xingang Pan, Ziwei Liu, Dahua Lin, Chen Change Loy, \"[Self-Supervised Learning via Conditional Motion Propagation](https://arxiv.org/abs/1903.11412)\", in CVPR 2019 [[Project Page](http://mmlab.ie.cuhk.edu.hk/projects/CMP/)]\n\nFor further information, please contact [Xiaohang Zhan](https://xiaohangzhan.github.io/).\n\n## Demos (Watching full demos in [YouTube](https://www.youtube.com/watch?v=6R_oJCq5qMw))\n\n* Conditional motion propagation (motion prediction by guidance)\n\n![](demos/demo_cmp.gif)\n\n* Guided video generation (draw arrows to let a static image animated)\n\n![](demos/demo_video_generation.gif)\n\n* Semi-automatic annotation (first row: interface, auto zoom-in, mask; second row: optical flows)\n\n![](demos/demo_annotation.gif)\n\n## Data collection\n\n[YFCC frames](https://dl.fbaipublicfiles.com/unsupervised-video/UnsupVideo_Frames_v1.tar.gz) (45G).\n[YFCC optical flows (LiteFlowNet)](https://drive.google.com/open?id=1S_TU1UjKms-U_Q4bOhXfUfIJX5hgwOtq) (29G).\n[YFCC lists](https://drive.google.com/open?id=1ObzO7xWXolPKrIC39XCvjttZYEoVn6k2) (251M).\n\n## Model collection\n\n* Pre-trained models for semantic segmentation, instance segmentation and human parsing by CMP can be downloaded [here](https://drive.google.com/open?id=1Kx-OIcr2U44p9mlpV-SbhANQdtbn2rJR)\n\n* Models for demos (conditinal motion propagation, guided video generation and semi-automatic annotation) can be downloaded [here](https://drive.google.com/open?id=1JMuoexvRCUQ0cmtfyse-8OScLHA6tjuI)\n\n## Requirements\n \n* python\u003e=3.6\n* pytorch\u003e=0.4.0\n* others\n\n    ```sh\n    pip install -r requirements.txt\n    ```\n\n## Usage\n\n0. Clone the repo.\n\n    ```sh\n    git clone git@github.com:XiaohangZhan/conditional-motion-propagation.git\n    cd conditional-motion-propagation\n    ```\n\n### Representation learning\n\n1. Prepare data (YFCC as an example)\n\n    ```sh\n    mkdir data\n    mkdir data/yfcc\n    cd data/yfcc\n    # download YFCC frames, optical flows and lists to data/yfcc\n    tar -xf UnsupVideo_Frames_v1.tar.gz\n    tar -xf flow_origin.tar.gz\n    tar -xf lists.tar.gz\n    ```\n    Then folder `data` looks like:\n    ```\n    data\n      ├── yfcc\n        ├── UnsupVideo_Frames\n        ├── flow_origin\n        ├── lists\n          ├── train.txt\n          ├── val.txt\n    ```\n\n2. Train CMP for Representation Learning.\n\n    * If your server supports multi-nodes training.\n\n    ```sh\n    sh experiments/rep_learning/alexnet_yfcc_voc_16gpu_70k/train.sh # 16 GPUs distributed training\n    python tools/weight_process.py --config experiments/rep_learning/alexnet_yfcc_voc_16gpu_70k/config.yaml --iter 70000 # extract weights of the image encoder to experiments/rep_learning/alexnet_yfcc_voc_16gpu_70k/checkpoints/convert_iter_70000.pth.tar\n    ```\n\n    * If your server does not support multi-nodes training.\n    ```sh\n    sh experiments/rep_learning/alexnet_yfcc_voc_8gpu_140k/train.sh # 8 GPUs distributed training\n    python tools/weight_process.py --config experiments/rep_learning/alexnet_yfcc_voc_8gpu_140k/config.yaml --iter 140000 # extract weights of the image encoder\n    ```\n\n### Run demos\n\n1. Download the [model](https://drive.google.com/open?id=1JMuoexvRCUQ0cmtfyse-8OScLHA6tjuI) and move it to `experiments/semiauto_annot/resnet50_vip+mpii_liteflow/checkpoints/`.\n\n2. Launch jupyter notebook and run `demos/cmp.ipynb` for conditional motion propagation, or `demos/demo_annot.ipynb` for semi-automatic annotation.\n\n3. Train the model by yourself (optional)\n\n    ```sh\n    # data not ready\n    sh experiments/semiauto_annot/resnet50_vip+mpii_liteflow/train.sh # 8 GPUs distributed training\n    ```\n\n### Results\n\n\u003ch4\u003e1. Pascal VOC 2012 Semantic Segmentation (AlexNet)\u003c/h4\u003e\n    \u003ctable class=\"table table-condensed\"\u003e\n        \u003cth\u003eMethod (AlexNet)\u003c/th\u003e\u003cth\u003eSupervision (data amount)\u003c/th\u003e\u003cth\u003e% mIoU\u003c/th\u003e\n        \u003ctbody\u003e\n        \u003ctr\u003e\u003ctd\u003eKrizhevsky et al. [1]\u003c/td\u003e\u003ctd\u003eImageNet labels (1.3M)\u003c/td\u003e\u003ctd\u003e48.0\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eRandom\u003c/td\u003e\u003ctd\u003e- (0)\u003c/td\u003e\u003ctd\u003e19.8\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003ePathak et al. [2]\u003c/td\u003e\u003ctd\u003eIn-painting (1.2M)\u003c/td\u003e\u003ctd\u003e29.7\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eZhang et al. [3]\u003c/td\u003e\u003ctd\u003eColorization (1.3M)\u003c/td\u003e\u003ctd\u003e35.6\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eZhang et al. [4]\u003c/td\u003e\u003ctd\u003eSplit-Brain (1.3M)\u003c/td\u003e\u003ctd\u003e36.0\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eNoroozi et al. [5]\u003c/td\u003e\u003ctd\u003eCounting (1.3M)\u003c/td\u003e\u003ctd\u003e36.6\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eNoroozi et al. [6]\u003c/td\u003e\u003ctd\u003eJigsaw (1.3M)\u003c/td\u003e\u003ctd\u003e37.6\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eNoroozi et al. [7]\u003c/td\u003e\u003ctd\u003eJigsaw++ (1.3M)\u003c/td\u003e\u003ctd\u003e38.1\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eJenni et al. [8]\u003c/td\u003e\u003ctd\u003eSpot-Artifacts (1.3M)\u003c/td\u003e\u003ctd\u003e38.1\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eLarsson et al. [9]\u003c/td\u003e\u003ctd\u003eColorization (3.7M)\u003c/td\u003e\u003ctd\u003e38.4\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eGidaris et al. [10]\u003c/td\u003e\u003ctd\u003eRotation (1.3M)\u003c/td\u003e\u003ctd\u003e39.1\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003ePathak et al. [11]*\u003c/td\u003e\u003ctd\u003eMotion Segmentation (1.6M)\u003c/td\u003e\u003ctd\u003e39.7\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eWalker et al. [12]*\u003c/td\u003e\u003ctd\u003eFlow Prediction (3.22M)\u003c/td\u003e\u003ctd\u003e40.4\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eMundhenk et al. [13]\u003c/td\u003e\u003ctd\u003eContext (1.3M)\u003c/td\u003e\u003ctd\u003e40.6\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eMahendran et al. [14]\u003c/td\u003e\u003ctd\u003eFlow Similarity (1.6M)\u003c/td\u003e\u003ctd\u003e41.4\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eOurs\u003c/td\u003e\u003ctd\u003eCMP (1.26M)\u003c/td\u003e\u003ctd\u003e42.9\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eOurs\u003c/td\u003e\u003ctd\u003eCMP (3.22M)\u003c/td\u003e\u003ctd\u003e44.5\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eCaron et al. [15]\u003c/td\u003e\u003ctd\u003eClustering (1.3M)\u003c/td\u003e\u003ctd\u003e45.1\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eFeng et al. [16]\u003c/td\u003e\u003ctd\u003eFeature Decoupling (1.3M)\u003c/td\u003e\u003ctd\u003e45.3\u003c/td\u003e\u003c/tr\u003e\n        \u003c/tbody\u003e\n    \u003c/table\u003e\n    \u003ch4\u003e2. Pascal VOC 2012 Semantic Segmentation (ResNet-50)\u003c/h4\u003e\n    \u003ctable class=\"table table-condensed\"\u003e\n        \u003cth\u003eMethod (ResNet-50)\u003c/th\u003e\u003cth\u003eSupervision (data amount)\u003c/th\u003e\u003cth\u003e% mIoU\u003c/th\u003e\n        \u003ctbody\u003e\n        \u003ctr\u003e\u003ctd\u003eKrizhevsky et al. [1]\u003c/td\u003e\u003ctd\u003eImageNet labels (1.2M)\u003c/td\u003e\u003ctd\u003e69.0\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eRandom\u003c/td\u003e\u003ctd\u003e- (0)\u003c/td\u003e\u003ctd\u003e42.4\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eWalker et al. [12]*\u003c/td\u003e\u003ctd\u003eFlow Prediction (1.26M)\u003c/td\u003e\u003ctd\u003e54.5\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003ePathak et al. [11]*\u003c/td\u003e\u003ctd\u003eMotion Segmentation (1.6M)\u003c/td\u003e\u003ctd\u003e54.6\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eOurs\u003c/td\u003e\u003ctd\u003eCMP (1.26M)\u003c/td\u003e\u003ctd\u003e59.0\u003c/td\u003e\u003c/tr\u003e\n        \u003c/tbody\u003e\n    \u003c/table\u003e\n    \u003ch4\u003e3. COCO 2017 Instance Segmentation (ResNet-50)\u003c/h4\u003e\n    \u003ctable class=\"table table-condensed\"\u003e\n        \u003cth\u003eMethod (ResNet-50)\u003c/th\u003e\u003cth\u003eSupervision (data amount)\u003c/th\u003e\u003cth\u003eDet. (% mAP)\u003c/th\u003e\u003cth\u003eSeg. (% mAP)\u003c/th\u003e\n        \u003ctbody\u003e\n        \u003ctr\u003e\u003ctd\u003eKrizhevsky et al. [1]\u003c/td\u003e\u003ctd\u003eImageNet labels (1.2M)\u003c/td\u003e\u003ctd\u003e37.2\u003c/td\u003e\u003ctd\u003e34.1\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eRandom\u003c/td\u003e\u003ctd\u003e- (0)\u003c/td\u003e\u003ctd\u003e19.7\u003c/td\u003e\u003ctd\u003e18.8\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003ePathak et al. [11]*\u003c/td\u003e\u003ctd\u003eMotion Segmentation (1.6M)\u003c/td\u003e\u003ctd\u003e27.7\u003c/td\u003e\u003ctd\u003e25.8\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eWalker et al. [12]*\u003c/td\u003e\u003ctd\u003eFlow Prediction (1.26M)\u003c/td\u003e\u003ctd\u003e31.5\u003c/td\u003e\u003ctd\u003e29.2\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eOurs\u003c/td\u003e\u003ctd\u003eCMP (1.26M)\u003c/td\u003e\u003ctd\u003e32.3\u003c/td\u003e\u003ctd\u003e29.8\u003c/td\u003e\u003c/tr\u003e\n        \u003c/tbody\u003e\n    \u003c/table\u003e\n    \u003ch4\u003e4. LIP Human Parsing (ResNet-50)\u003c/h4\u003e\n    \u003ctable class=\"table table-condensed\"\u003e\n        \u003cth\u003eMethod (ResNet-50)\u003c/th\u003e\u003cth\u003eSupervision (data amount)\u003c/th\u003e\u003cth\u003eSingle-Person (% mIoU)\u003c/th\u003e\u003cth\u003eMulti-Person (% mIoU)\u003c/th\u003e\n        \u003ctbody\u003e\n        \u003ctr\u003e\u003ctd\u003eKrizhevsky et al. [1]\u003c/td\u003e\u003ctd\u003eImageNet labels (1.2M)\u003c/td\u003e\u003ctd\u003e42.5\u003c/td\u003e\u003ctd\u003e55.4\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eRandom\u003c/td\u003e\u003ctd\u003e- (0)\u003c/td\u003e\u003ctd\u003e32.5\u003c/td\u003e\u003ctd\u003e35.0\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003ePathak et al. [11]*\u003c/td\u003e\u003ctd\u003eMotion Segmentation (1.6M)\u003c/td\u003e\u003ctd\u003e36.6\u003c/td\u003e\u003ctd\u003e50.9\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eWalker et al. [12]*\u003c/td\u003e\u003ctd\u003eFlow Prediction (1.26M)\u003c/td\u003e\u003ctd\u003e36.7\u003c/td\u003e\u003ctd\u003e52.5\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eOurs\u003c/td\u003e\u003ctd\u003eCMP (1.26M)\u003c/td\u003e\u003ctd\u003e36.9\u003c/td\u003e\u003ctd\u003e51.8\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003eOurs\u003c/td\u003e\u003ctd\u003eCMP (4.57M)\u003c/td\u003e\u003ctd\u003e40.2\u003c/td\u003e\u003ctd\u003e52.9\u003c/td\u003e\u003c/tr\u003e\n        \u003c/tbody\u003e\n    \u003c/table\u003e\n    Note: Methods marked * have not reported the results in their paper, hence we reimplemented them to obtain the results.\n    \u003cbr\u003e\n    \u003ch4\u003eReferences\u003c/h4\u003e\n    \u003col\u003e\n        \u003cli\u003eAlex Krizhevsky, Ilya Sutskever, and Geoffrey E Hinton. Imagenet classification with deep convolutional neural networks. In NeurIPS, 2012.\u003c/li\u003e\n        \u003cli\u003eDeepak Pathak, Philipp Krahenbuhl, Jeff Donahue, Trevor Darrell, and Alexei A Efros. Context encoders: Feature learning by inpainting. In CVPR, 2016.\u003c/li\u003e\n        \u003cli\u003eRichard Zhang, Phillip Isola, and Alexei A Efros. Colorful image colorization. In ECCV. Springer, 2016.\u003c/li\u003e\n        \u003cli\u003eRichard Zhang, Phillip Isola, and Alexei A Efros. Split-brain autoencoders: Unsupervised learning by cross-channel prediction. In CVPR, 2017.\u003c/li\u003e\n        \u003cli\u003eMehdi Noroozi, Hamed Pirsiavash, and Paolo Favaro. Representation learning by learning to count. In ICCV, 2017.\u003c/li\u003e\n        \u003cli\u003eMehdi Noroozi and Paolo Favaro. Unsupervised learning of visual representations by solving jigsaw puzzles. In ECCV. Springer, 2016.\u003c/li\u003e\n        \u003cli\u003eMehdi Noroozi, Ananth Vinjimoor, Paolo Favaro, and Hamed Pirsiavash. Boosting self-supervised learning via knowledge transfer. In CVPR, 2018.\u003c/li\u003e\n        \u003cli\u003eSimon Jenni and Paolo Favaro. Self-supervised feature learning by learning to spot artifacts. In CVPR, 2018.\u003c/li\u003e\n        \u003cli\u003eGustav Larsson, Michael Maire, and Gregory Shakhnarovich. Colorization as a proxy task for visual understanding. In CVPR, 2017.\u003c/li\u003e\n        \u003cli\u003eSpyros Gidaris, Praveer Singh, and Nikos Komodakis. Unsupervised representation learning by predicting image rotations. In ICLR, 2018.\u003c/li\u003e\n        \u003cli\u003eDeepak Pathak, Ross B Girshick, Piotr Dollar, Trevor Darrell, and Bharath Hariharan. Learning features by watching objects move. In CVPR, 2017.\u003c/li\u003e\n        \u003cli\u003eJacob Walker, Abhinav Gupta, and Martial Hebert. Dense optical flow prediction from a static image. In ICCV, 2015.\u003c/li\u003e\n        \u003cli\u003eT Nathan Mundhenk, Daniel Ho, and Barry Y Chen. Improvements to context based self-supervised learning. CVPR, 2018.\u003c/li\u003e\n        \u003cli\u003eA. Mahendran, J. Thewlis, and A. Vedaldi. Cross pixel optical flow similarity for self-supervised learning. In ACCV, 2018.\u003c/li\u003e\n        \u003cli\u003eMathilde Caron, Piotr Bojanowski, Armand Joulin, and Matthijs Douze. Deep clustering for unsupervised learning of visual features. In ECCV, 2018.\u003c/li\u003e\n        \u003cli\u003eZeyu Feng, Chang Xu, and Dacheng Tao. Self-Supervised Representation Learning by Rotation Feature Decoupling. In CVPR, 2019.\u003c/li\u003e\n    \u003c/ol\u003e\n\n\n### Core idea\n\n    A Chinese proverb: \"牵一发而动全身\".\n\n### Bibtex\n\n```\n@inproceedings{zhan2019self,\n author = {Zhan, Xiaohang and Pan, Xingang and Liu, Ziwei and Lin, Dahua and Loy, Chen Change},\n title = {Self-Supervised Learning via Conditional Motion Propagation},\n booktitle = {Proceedings of the IEEE conference on computer vision and pattern recognition (CVPR)},\n month = {June},\n year = {2019}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FXiaohangZhan%2Fconditional-motion-propagation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FXiaohangZhan%2Fconditional-motion-propagation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FXiaohangZhan%2Fconditional-motion-propagation/lists"}