[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-shenyunhang--APE":3,"similar-shenyunhang--APE":111},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":8,"readme_en":9,"readme_zh":10,"quickstart_zh":11,"use_case_zh":12,"hero_image_url":13,"owner_login":14,"owner_name":15,"owner_avatar_url":16,"owner_bio":17,"owner_company":17,"owner_location":17,"owner_email":18,"owner_twitter":17,"owner_website":19,"owner_url":20,"languages":21,"stars":38,"forks":39,"last_commit_at":40,"license":41,"difficulty_score":42,"env_os":43,"env_gpu":44,"env_ram":45,"env_deps":46,"category_tags":56,"github_topics":59,"view_count":65,"oss_zip_url":17,"oss_zip_packed_at":17,"status":66,"created_at":67,"updated_at":68,"faqs":69,"releases":105},5868,"shenyunhang\u002FAPE","APE","[CVPR 2024] Aligning and Prompting Everything All at Once for Universal Visual Perception","APE 是一款面向通用视觉感知的前沿开源模型，荣获 CVPR 2024 收录。它的核心能力在于“一次对齐，全面提示”，能够仅凭单个模型就同时完成对图像中几乎所有物体的检测与分割任务。无论是具体的前景物体还是复杂的背景环境，APE 都能结合数千种词汇或自然语言描述进行精准识别，真正实现了在开放场景下的全方位视觉理解。\n\nAPE 主要解决了传统视觉模型往往需要针对特定任务单独训练、且难以处理海量类别的痛点。它在高达 160 个数据集上展现了卓越的性能，无需为不同场景切换模型，极大地提升了效率与泛化能力。其独特的技术亮点包括支持实例分割与语义分割的统一框架，以及近期发布的仅含 600 万参数的高效版本（APE-Ti），在保持高性能的同时显著降低了计算资源需求。\n\n这款工具非常适合计算机视觉领域的研究人员、算法开发者以及希望构建多功能视觉应用的技术团队使用。研究人员可利用其强大的基线性能探索新方向，开发者则能借助其灵活的接口快速部署支持开放词汇检测的应用。此外，APE 提供了便捷的在线演示和本地 Web UI，对希望直观体验前沿 AI 视觉能力的普通技术爱好者也十分友好。","# APE: Aligning and Prompting Everything All at Once for Universal Visual Perception\n\n\n\u003C!-- \n\u003Ca href='https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProject-Page-Green'>\u003C\u002Fa>\n\u003Ca href='https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.02153'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPaper-Arxiv-red'>\u003C\u002Fa>\n\u003Ca href='https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshenyunhang\u002FAPE'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97-Demo-yellow'>\u003C\u002Fa>\n\u003Ca href='https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97-Model-yellow'>\u003C\u002Fa>\n[![Code License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCode%20License-Apache_2.0-green.svg)](https:\u002F\u002Fgithub.com\u002Ftatsu-lab\u002Fstanford_alpaca\u002Fblob\u002Fmain\u002FLICENSE)\n-->\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\".\u002F.asset\u002Fape.png\" width=\"96%\" height=\"96%\">\n\u003C\u002Fp>\n\n\n\u003Cfont size=7>\u003Cdiv align='center' > :grapes: \\[[Read our arXiv Paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.02153)\\] &nbsp; :apple: \\[[Try our Online Demo](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshenyunhang\u002FAPE)\\] \u003C\u002Fdiv>\u003C\u002Ffont>\n\n\n---\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\".\u002F.asset\u002Fexample_1.png\" width=\"96%\" height=\"96%\">\n\u003C\u002Fp>\n\n\n## :bulb: Highlight\n\n- **High Performance.**  SotA (or competitive) performance on **160** datasets with only one model.\n- **Perception in the Wild.** Detect and segment **everything** with thousands of vocabularies or language descriptions all at once.\n- **Flexible.** Support both foreground objects and background stuff for instance segmentation and semantic segmentation.\n\n## :fire: News\n* **`2024.04.07`** Release checkpoints for APE-Ti with only 6M backbone!\n* **`2024.02.27`** APE has been accepted to CVPR 2024!\n* **`2023.12.05`** Release training codes!\n* **`2023.12.05`** Release checkpoints for APE-L!\n* **`2023.12.05`** Release inference codes and demo!\n\n## :label: TODO \n\n- [x] Release inference code and demo.\n- [x] Release checkpoints.\n- [x] Release training codes.\n- [ ] Add clean docs.\n\n\n## :hammer_and_wrench: Install \n\n1. Clone the APE repository from GitHub:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\ncd APE\n```\n\n2. Install the required dependencies and APE:\n\n```bash\npip3 install -r requirements.txt\npython3 -m pip install -e .\n```\n\n\n## :arrow_forward: Demo Localy\n\n**Web UI demo**\n```\npip3 install gradio\ncd APE\u002Fdemo\npython3 app.py\n```\nThis demo will detect GPUs and use one GPU if you have GPUs.\n\nPlease feel free to try our [Online Demo](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshenyunhang\u002FAPE)!\n\n\u003Cp align=\"center\">\n\u003Cimg src=\".\u002F.asset\u002Fdemo.png\" width=\"96%\" height=\"96%\">\n\u003C\u002Fp>\n\n\n## :books: Data Prepare\nFollowing [here](https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fdatasets\u002FREADME.md) to prepare the following datasets:\n\n|  Name |   COCO  |   LVIS  |  Objects365 | Openimages | VisualGenome |  SA-1B  |   RefCOCO  |   GQA   | PhraseCut | Flickr30k |         |\n|:-----:|:-------:|:-------:|:-----------:|:----------:|:------------:|:-------:|:----------:|:-------:|:---------:|:---------:|:-------:|\n| Train | &check; | &check; |   &check;   |   &check;  |    &check;   | &check; |   &check;  | &check; |  &check;  |  &check;  |         |\n|  Test | &check; | &check; |   &check;   |   &check;  |    &cross;   | &cross; |   &check;  | &cross; |  &cross;  |  &cross;  |         |\n|       |         |         |             |            |              |         |            |         |           |           |         |\n| Name  |  ODinW  |  SegInW | Roboflow100 |   ADE20k   |   ADE-full   |  BDD10k | Cityscapes |  PC459  |    PC59   |    VOC    |    D3   |\n| Train | &cross; | &cross; |   &cross;   |   &cross;  |    &cross;   | &cross; |   &cross;  | &cross; |  &cross;  |  &cross;  | &cross; |\n|  Test | &check; | &check; |   &check;   |   &check;  |    &check;   | &check; |   &check;  | &check; |  &check;  |  &check;  | &check; |\n\nNoted we do not use `coco_2017_train` for training.\n\nInstead, we augment `lvis_v1_train` with annotations from coco, and keep the image set unchanged.\n\nAnd we register it as `lvis_v1_train+coco` for instance segmentation and `lvis_v1_train+coco_panoptic_separated` for panoptic segmentation.\n\n\n## :test_tube: Inference\n\n### Infer on 160+ dataset\nWe provide several scripts to evaluate all models.\n\nIt is necessary to adjust the checkpoint location and GPU number in the scripts before running them.\n\n```bash\nscripts\u002Feval_APE-L_D.sh\nscripts\u002Feval_APE-L_C.sh\nscripts\u002Feval_APE-L_B.sh\nscripts\u002Feval_APE-L_A.sh\nscripts\u002Feval_APE-Ti.sh\n```\n\n### Infer on images or videos\n\nAPE-L_D\n```\npython3 demo\u002Fdemo_lazy.py \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k.py \\\n--input image1.jpg image2.jpg image3.jpg \\\n--output \u002Fpath\u002Fto\u002Foutput\u002Fdir \\\n--confidence-threshold 0.1 \\\n--text-prompt 'person,car,chess piece of horse head' \\\n--with-box \\\n--with-mask \\\n--with-sseg \\\n--opts \\\ntrain.init_checkpoint=\u002Fpath\u002Fto\u002FAPE-D\u002Fcheckpoint \\\nmodel.model_language.cache_dir=\"\" \\\nmodel.model_vision.select_box_nums_for_evaluation=500 \\\nmodel.model_vision.text_feature_bank_reset=True \\\n```\n\nTo disable `xformers`, add the following option:\n```\nmodel.model_vision.backbone.net.xattn=False \\\n```\n\nTo use `pytorch` version of `MultiScaleDeformableAttention`, add the following option:\n```\nmodel.model_vision.transformer.encoder.pytorch_attn=True \\\nmodel.model_vision.transformer.decoder.pytorch_attn=True \\\n```\n\n\n## :train: Training\n\n### Prepare backbone and language models\n```bash\ngit lfs install\ngit clone https:\u002F\u002Fhuggingface.co\u002FQuanSun\u002FEVA-CLIP models\u002FQuanSun\u002FEVA-CLIP\u002F\ngit clone https:\u002F\u002Fhuggingface.co\u002FBAAI\u002FEVA models\u002FBAAI\u002FEVA\u002F\ngit clone https:\u002F\u002Fhuggingface.co\u002FYuxin-CV\u002FEVA-02 models\u002FYuxin-CV\u002FEVA-02\u002F\n```\n\nResize patch size:\n```bash\npython3 tools\u002Feva_interpolate_patch_14to16.py --input models\u002FQuanSun\u002FEVA-CLIP\u002FEVA02_CLIP_E_psz14_plus_s9B.pt --output models\u002FQuanSun\u002FEVA-CLIP\u002FEVA02_CLIP_E_psz14to16_plus_s9B.pt --image_size 224\npython3 tools\u002Feva_interpolate_patch_14to16.py --input models\u002FQuanSun\u002FEVA-CLIP\u002FEVA01_CLIP_g_14_plus_psz14_s11B.pt --output models\u002FQuanSun\u002FEVA-CLIP\u002FEVA01_CLIP_g_14_plus_psz14to16_s11B.pt --image_size 224\npython3 tools\u002Feva_interpolate_patch_14to16.py --input models\u002FQuanSun\u002FEVA-CLIP\u002FEVA02_CLIP_L_336_psz14_s6B.pt --output models\u002FQuanSun\u002FEVA-CLIP\u002FEVA02_CLIP_L_336_psz14to16_s6B.pt --image_size 336\npython3 tools\u002Feva_interpolate_patch_14to16.py --input models\u002FYuxin-CV\u002FEVA-02\u002Feva02\u002Fpt\u002Feva02_Ti_pt_in21k_p14.pt --output models\u002FYuxin-CV\u002FEVA-02\u002Feva02\u002Fpt\u002Feva02_Ti_pt_in21k_p14to16.pt --image_size 224\n```\n\n### Train APE-L_D\n\nSingle node:\n```bash\npython3 tools\u002Ftrain_net.py \\\n--num-gpus 8 \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k_mdl.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k_mdl_`date +'%Y%m%d_%H%M%S'`\n```\n\nMultiple nodes:\n```bash\npython3 tools\u002Ftrain_net.py \\\n--dist-url=\"tcp:\u002F\u002F${MASTER_IP}:${MASTER_PORT}\" \\\n--num-gpus ${HOST_GPU_NUM} \\\n--num-machines ${HOST_NUM} \\\n--machine-rank ${INDEX} \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k_mdl.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k_mdl_`date +'%Y%m%d_%H'`0000\n```\n\n### Train APE-L_C\n\nSingle node:\n```bash\npython3 tools\u002Ftrain_net.py \\\n--num-gpus 8 \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k_`date +'%Y%m%d_%H%M%S'`\n```\n\nMultiple nodes:\n```bash\npython3 tools\u002Ftrain_net.py \\\n--dist-url=\"tcp:\u002F\u002F${MASTER_IP}:${MASTER_PORT}\" \\\n--num-gpus ${HOST_GPU_NUM} \\\n--num-machines ${HOST_NUM} \\\n--machine-rank ${INDEX} \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k_`date +'%Y%m%d_%H'`0000\n```\n\n### Train APE-L_B\n\nSingle node:\n```bash\npython3 tools\u002Ftrain_net.py \\\n--num-gpus 8 \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k_`date +'%Y%m%d_%H%M%S'`\n```\n\nMultiple nodes:\n```bash\npython3 tools\u002Ftrain_net.py \\\n--dist-url=\"tcp:\u002F\u002F${MASTER_IP}:${MASTER_PORT}\" \\\n--num-gpus ${HOST_GPU_NUM} \\\n--num-machines ${HOST_NUM} \\\n--machine-rank ${INDEX} \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k_`date +'%Y%m%d_%H'`0000\n```\n\n### Train APE-L_A\n\nSingle node:\n```bash\npython3 tools\u002Ftrain_net.py \\\n--num-gpus 8 \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VG\u002Fape_deta\u002Fape_deta_vitl_eva02_lsj1024_cp_720k.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VG\u002Fape_deta\u002Fape_deta_vitl_eva02_lsj1024_cp_720k_`date +'%Y%m%d_%H%M%S'`\n```\n\nMultiple nodes:\n```bash\npython3 tools\u002Ftrain_net.py \\\n--dist-url=\"tcp:\u002F\u002F${MASTER_IP}:${MASTER_PORT}\" \\\n--num-gpus ${HOST_GPU_NUM} \\\n--num-machines ${HOST_NUM} \\\n--machine-rank ${INDEX} \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VG\u002Fape_deta\u002Fape_deta_vitl_eva02_lsj1024_cp_720k.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VG\u002Fape_deta\u002Fape_deta_vitl_eva02_lsj1024_cp_720k_`date +'%Y%m%d_%H'`0000\n```\n\n### Train APE-Ti\n\nSingle node:\n```bash\npython3 tools\u002Ftrain_net.py \\\n--num-gpus 8 \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitt_eva02_vlf_lsj1024_cp_16x4_1080k_mdl.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitt_eva02_vlf_lsj1024_cp_16x4_1080k_mdl_`date +'%Y%m%d_%H%M%S'`\n```\n\nMultiple nodes:\n```bash\npython3 tools\u002Ftrain_net.py \\\n--dist-url=\"tcp:\u002F\u002F${MASTER_IP}:${MASTER_PORT}\" \\\n--num-gpus ${HOST_GPU_NUM} \\\n--num-machines ${HOST_NUM} \\\n--machine-rank ${INDEX} \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitt_eva02_vlf_lsj1024_cp_16x4_1080k_mdl.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitt_eva02_vlf_lsj1024_cp_16x4_1080k_mdl_`date +'%Y%m%d_%H'`0000\n```\n\n\n## :luggage: Checkpoints\n\n```\ngit lfs install\ngit clone https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE\n```\n\n\u003C!-- insert a table -->\n\u003Ctable>\n  \u003Cthead>\n    \u003Ctr style=\"text-align: right;\">\n      \u003Cth>\u003C\u002Fth>\n      \u003Cth>name\u003C\u002Fth>\n      \u003Cth>Checkpoint\u003C\u002Fth>\n      \u003Cth>Config\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Cth>1\u003C\u002Fth>\n      \u003Ctd>APE-L_A\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VG\u002Fape_deta\u002Fape_deta_vitl_eva02_lsj_cp_720k_20230504_002019\u002Fmodel_final.pth\">HF link\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VG\u002Fape_deta\u002Fape_deta_vitl_eva02_lsj1024_cp_720k.py\">link\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>2\u003C\u002Fth>\n      \u003Ctd>APE-L_B\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj_cp_1080k_20230702_225418\u002Fmodel_final.pth\">HF link\u003C\u002Fa> \n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k.py\">link\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>3\u003C\u002Fth>\n      \u003Ctd>APE-L_C\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj_cp_1080k_20230702_210950\u002Fmodel_final.pth\">HF link\u003C\u002Fa> \n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k.py\">link\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>4\u003C\u002Fth>\n      \u003Ctd>APE-L_D\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k_mdl_20230829_162438\u002Fmodel_final.pth\">HF link\u003C\u002Fa> \n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k_mdl.py\">link\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>4\u003C\u002Fth>\n      \u003Ctd>APE-Ti\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitt_eva02_vlf_lsj1024_cp_16x4_1080k_mdl_20240203_230000\u002Fmodel_final.pth\">HF link\u003C\u002Fa> \n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitt_eva02_vlf_lsj1024_cp_16x4_1080k_mdl.py\">link\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\n## :medal_military: Results\n\n\u003Cimg src=\".asset\u002Fradar.png\" alt=\"radar\" width=\"100%\">\n\n\n## :black_nib: Citation\n\nIf you find our work helpful for your research, please consider citing the following BibTeX entry.   \n\n```bibtex\n@inproceedings{APE,\n  title={Aligning and Prompting Everything All at Once for Universal Visual Perception},\n  author={Shen, Yunhang and Fu, Chaoyou and Chen, Peixian and Zhang, Mengdan and Li, Ke and Sun, Xing and Wu, Yunsheng and Lin, Shaohui and Ji, Rongrong},\n  journal={CVPR},\n  year={2024}\n}\n```\n","# APE：统一视觉感知的对齐与提示，一次完成所有任务\n\n\n\u003C!--\n\u003Ca href='https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProject-Page-Green'>\u003C\u002Fa>\n\u003Ca href='https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.02153'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPaper-Arxiv-red'>\u003C\u002Fa>\n\u003Ca href='https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshenyunhang\u002FAPE'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97-Demo-yellow'>\u003C\u002Fa>\n\u003Ca href='https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97-Model-yellow'>\u003C\u002Fa>\n[![Code License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCode%20License-Apache_2.0-green.svg)](https:\u002F\u002Fgithub.com\u002Ftatsu-lab\u002Fstanford_alpaca\u002Fblob\u002Fmain\u002FLICENSE)\n-->\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\".\u002F.asset\u002Fape.png\" width=\"96%\" height=\"96%\">\n\u003C\u002Fp>\n\n\n\u003Cfont size=7>\u003Cdiv align='center' > :grapes: \\[[阅读我们的 arXiv 论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.02153)\\] &nbsp; :apple: \\[[体验我们的在线演示](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshenyunhang\u002FAPE)\\] \u003C\u002Fdiv>\u003C\u002Ffont>\n\n\n---\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\".\u002F.asset\u002Fexample_1.png\" width=\"96%\" height=\"96%\">\n\u003C\u002Fp>\n\n\n## :bulb: 亮点\n\n- **高性能。** 仅用一个模型，在 **160** 个数据集上达到 SOTA（或具有竞争力）的性能。\n- **野外感知。** 能够一次性检测和分割包含数千种词汇或语言描述的 **所有内容**。\n- **灵活性。** 同时支持实例分割和语义分割中的前景对象与背景元素。\n\n## :fire: 最新消息\n* **`2024.04.07`** 发布仅含 6M 参数骨干网络的 APE-Ti 检查点！\n* **`2024.02.27`** APE 已被 CVPR 2024 接收！\n* **`2023.12.05`** 发布训练代码！\n* **`2023.12.05`** 发布 APE-L 的检查点！\n* **`2023.12.05`** 发布推理代码及演示！\n\n## :label: 待办事项 \n\n- [x] 发布推理代码和演示。\n- [x] 发布检查点。\n- [x] 发布训练代码。\n- [ ] 补充清晰的文档。\n\n\n## :hammer_and_wrench: 安装 \n\n1. 从 GitHub 克隆 APE 仓库：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\ncd APE\n```\n\n2. 安装所需的依赖项和 APE：\n\n```bash\npip3 install -r requirements.txt\npython3 -m pip install -e .\n```\n\n\n## :arrow_forward: 本地演示\n\n**Web UI 演示**\n```\npip3 install gradio\ncd APE\u002Fdemo\npython3 app.py\n```\n该演示会自动检测 GPU，如果有 GPU 则会使用其中一块。\n\n也欢迎您体验我们的 [在线演示](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshenyunhang\u002FAPE)！\n\n\u003Cp align=\"center\">\n\u003Cimg src=\".\u002F.asset\u002Fdemo.png\" width=\"96%\" height=\"96%\">\n\u003C\u002Fp>\n\n\n## :books: 数据准备\n请按照 [这里](https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fdatasets\u002FREADME.md) 准备以下数据集：\n\n| 名称 | COCO | LVIS | Objects365 | Openimages | VisualGenome | SA-1B | RefCOCO | GQA | PhraseCut | Flickr30k |         |\n|:-----:|:-------:|:-------:|:-----------:|:----------:|:------------:|:-------:|:----------:|:-------:|:---------:|:---------:|:-------:|\n| 训练 | &check; | &check; |   &check;   |   &check;  |    &check;   | &check; |   &check;  | &check; |  &check;  |  &check;  |         |\n| 测试 | &check; | &check; |   &check;   |   &check;  |    &cross;   | &cross; |   &check;  | &cross; |  &cross;  |  &cross;  |         |\n|       |         |         |             |            |              |         |            |         |           |           |         |\n| 名称 | ODinW | SegInW | Roboflow100 |   ADE20k   |   ADE-full   |  BDD10k | Cityscapes |  PC459  |    PC59   |    VOC    |    D3   |\n| 训练 | &cross; | &cross; |   &cross;   |   &cross;  |    &cross;   | &cross; |   &cross;  | &cross; |  &cross;  |  &cross;  | &cross; |\n| 测试 | &check; | &check; |   &check;   |   &check;  |    &check;   | &check; |   &check;  | &check; |  &check;  |  &check;  | &check; |\n\n请注意，我们并未使用 `coco_2017_train` 进行训练。\n\n相反，我们通过将 COCO 的标注信息增强到 `lvis_v1_train` 中，并保持图像集不变。\n\n然后将其注册为 `lvis_v1_train+coco` 用于实例分割，以及 `lvis_v1_train+coco_panoptic_separated` 用于全景分割。\n\n\n## :test_tube: 推理\n\n### 在 160+ 个数据集上进行推理\n我们提供了若干脚本用于评估所有模型。\n\n在运行这些脚本之前，务必调整脚本中的检查点路径和 GPU 数量。\n\n```bash\nscripts\u002Feval_APE-L_D.sh\nscripts\u002Feval_APE-L_C.sh\nscripts\u002Feval_APE-L_B.sh\nscripts\u002Feval_APE-L_A.sh\nscripts\u002Feval_APE-Ti.sh\n```\n\n### 对图像或视频进行推理\n\nAPE-L_D\n```\npython3 demo\u002Fdemo_lazy.py \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k.py \\\n--input image1.jpg image2.jpg image3.jpg \\\n--output \u002Fpath\u002Fto\u002Foutput\u002Fdir \\\n--confidence-threshold 0.1 \\\n--text-prompt 'person,car,chess piece of horse head' \\\n--with-box \\\n--with-mask \\\n--with-sseg \\\n--opts \\\ntrain.init_checkpoint=\u002Fpath\u002Fto\u002FAPE-D\u002Fcheckpoint \\\nmodel.model_language.cache_dir=\"\" \\\nmodel.model_vision.select_box_nums_for_evaluation=500 \\\nmodel.model_vision.text_feature_bank_reset=True \\\n```\n\n若要禁用 `xformers`，可添加以下选项：\n```\nmodel.model_vision.backbone.net.xattn=False \\\n```\n\n若要使用 `PyTorch` 版本的 `MultiScaleDeformableAttention`，可添加以下选项：\n```\nmodel.model_vision.transformer.encoder.pytorch_attn=True \\\nmodel.model_vision.transformer.decoder.pytorch_attn=True \\\n```\n\n\n## :train: 训练\n\n### 准备骨干网络和语言模型\n```bash\ngit lfs install\ngit clone https:\u002F\u002Fhuggingface.co\u002FQuanSun\u002FEVA-CLIP models\u002FQuanSun\u002FEVA-CLIP\u002F\ngit clone https:\u002F\u002Fhuggingface.co\u002FBAAI\u002FEVA models\u002FBAAI\u002FEVA\u002F\ngit clone https:\u002F\u002Fhuggingface.co\u002FYuxin-CV\u002FEVA-02 models\u002FYuxin-CV\u002FEVA-02\u002F\n```\n\n调整 patch 尺寸：\n```bash\npython3 tools\u002Feva_interpolate_patch_14to16.py --input models\u002FQuanSun\u002FEVA-CLIP\u002FEVA02_CLIP_E_psz14_plus_s9B.pt --output models\u002FQuanSun\u002FEVA-CLIP\u002FEVA02_CLIP_E_psz14to16_plus_s9B.pt --image_size 224\npython3 tools\u002Feva_interpolate_patch_14to16.py --input models\u002FQuanSun\u002FEVA-CLIP\u002FEVA01_CLIP_g_14_plus_psz14_s11B.pt --output models\u002FQuanSun\u002FEVA-CLIP\u002FEVA01_CLIP_g_14_plus_psz14to16_s11B.pt --image_size 224\npython3 tools\u002Feva_interpolate_patch_14to16.py --input models\u002FQuanSun\u002FEVA-CLIP\u002FEVA02_CLIP_L_336_psz14_s6B.pt --output models\u002FQuanSun\u002FEVA-CLIP\u002FEVA02_CLIP_L_336_psz14to16_s6B.pt --image_size 336\npython3 tools\u002Feva_interpolate_patch_14to16.py --input models\u002FYuxin-CV\u002FEVA-02\u002Feva02\u002Fpt\u002Feva02_Ti_pt_in21k_p14.pt --output models\u002FYuxin-CV\u002FEVA-02\u002Feva02\u002Fpt\u002Feva02_Ti_pt_in21k_p14to16.pt --image_size 224\n```\n\n### 训练 APE-L_D\n\n单节点：\n```bash\npython3 tools\u002Ftrain_net.py \\\n--num-gpus 8 \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k_mdl.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k_mdl_`date +'%Y%m%d_%H%M%S'`\n```\n\n多节点：\n```bash\npython3 tools\u002Ftrain_net.py \\\n--dist-url=\"tcp:\u002F\u002F${MASTER_IP}:${MASTER_PORT}\" \\\n--num-gpus ${HOST_GPU_NUM} \\\n--num-machines ${HOST_NUM} \\\n--machine-rank ${INDEX} \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k_mdl.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k_mdl_`date +'%Y%m%d_%H'`0000\n```\n\n### 训练 APE-L_C\n\n单节点：\n```bash\npython3 tools\u002Ftrain_net.py \\\n--num-gpus 8 \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k_`date +'%Y%m%d_%H%M%S'`\n```\n\n多节点：\n```bash\npython3 tools\u002Ftrain_net.py \\\n--dist-url=\"tcp:\u002F\u002F${MASTER_IP}:${MASTER_PORT}\" \\\n--num-gpus ${HOST_GPU_NUM} \\\n--num-machines ${HOST_NUM} \\\n--machine-rank ${INDEX} \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k_`date +'%Y%m%d_%H'`0000\n```\n\n### 训练 APE-L_B\n\n单节点：\n```bash\npython3 tools\u002Ftrain_net.py \\\n--num-gpus 8 \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k_`date +'%Y%m%d_%H%M%S'`\n```\n\n多节点：\n```bash\npython3 tools\u002Ftrain_net.py \\\n--dist-url=\"tcp:\u002F\u002F${MASTER_IP}:${MASTER_PORT}\" \\\n--num-gpus ${HOST_GPU_NUM} \\\n--num-machines ${HOST_NUM} \\\n--machine-rank ${INDEX} \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k_`date +'%Y%m%d_%H'`0000\n```\n\n### 训练 APE-L_A\n\n单节点：\n```bash\npython3 tools\u002Ftrain_net.py \\\n--num-gpus 8 \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VG\u002Fape_deta\u002Fape_deta_vitl_eva02_lsj1024_cp_720k.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VG\u002Fape_deta\u002Fape_deta_vitl_eva02_lsj1024_cp_720k_`date +'%Y%m%d_%H%M%S'`\n```\n\n多节点：\n```bash\npython3 tools\u002Ftrain_net.py \\\n--dist-url=\"tcp:\u002F\u002F${MASTER_IP}:${MASTER_PORT}\" \\\n--num-gpus ${HOST_GPU_NUM} \\\n--num-machines ${HOST_NUM} \\\n--machine-rank ${INDEX} \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VG\u002Fape_deta\u002Fape_deta_vitl_eva02_lsj1024_cp_720k.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VG\u002Fape_deta\u002Fape_deta_vitl_eva02_lsj1024_cp_720k_`date +'%Y%m%d_%H'`0000\n```\n\n### 训练 APE-Ti\n\n单节点：\n```bash\npython3 tools\u002Ftrain_net.py \\\n--num-gpus 8 \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitt_eva02_vlf_lsj1024_cp_16x4_1080k_mdl.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitt_eva02_vlf_lsj1024_cp_16x4_1080k_mdl_`date +'%Y%m%d_%H%M%S'`\n```\n\n多节点：\n```bash\npython3 tools\u002Ftrain_net.py \\\n--dist-url=\"tcp:\u002F\u002F${MASTER_IP}:${MASTER_PORT}\" \\\n--num-gpus ${HOST_GPU_NUM} \\\n--num-machines ${HOST_NUM} \\\n--machine-rank ${INDEX} \\\n--resume \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitt_eva02_vlf_lsj1024_cp_16x4_1080k_mdl.py \\\ntrain.output_dir=output\u002FAPE\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitt_eva02_vlf_lsj1024_cp_16x4_1080k_mdl_`date +'%Y%m%d_%H'`0000\n```\n\n## :luggage: 检查点\n\n```\ngit lfs install\ngit clone https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE\n```\n\n\u003C!-- 插入一个表格 -->\n\u003Ctable>\n  \u003Cthead>\n    \u003Ctr style=\"text-align: right;\">\n      \u003Cth>\u003C\u002Fth>\n      \u003Cth>名称\u003C\u002Fth>\n      \u003Cth>检查点\u003C\u002Fth>\n      \u003Cth>配置\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Cth>1\u003C\u002Fth>\n      \u003Ctd>APE-L_A\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VG\u002Fape_deta\u002Fape_deta_vitl_eva02_lsj_cp_720k_20230504_002019\u002Fmodel_final.pth\">HF 链接\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VG\u002Fape_deta\u002Fape_deta_vitl_eva02_lsj1024_cp_720k.py\">链接\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>2\u003C\u002Fth>\n      \u003Ctd>APE-L_B\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj_cp_1080k_20230702_225418\u002Fmodel_final.pth\">HF 链接\u003C\u002Fa> \n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k.py\">链接\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>3\u003C\u002Fth>\n      \u003Ctd>APE-L_C\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj_cp_1080k_20230702_210950\u002Fmodel_final.pth\">HF 链接\u003C\u002Fa> \n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO\u002Fape_deta\u002Fape_deta_vitl_eva02_vlf_lsj1024_cp_1080k.py\">链接\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>4\u003C\u002Fth>\n      \u003Ctd>APE-L_D\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k_mdl_20230829_162438\u002Fmodel_final.pth\">HF 链接\u003C\u002Fa> \n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k_mdl.py\">链接\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>4\u003C\u002Fth>\n      \u003Ctd>APE-Ti\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitt_eva02_vlf_lsj1024_cp_16x4_1080k_mdl_20240203_230000\u002Fmodel_final.pth\">HF 链接\u003C\u002Fa> \n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fblob\u002Fmain\u002Fconfigs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitt_eva02_vlf_lsj1024_cp_16x4_1080k_mdl.py\">链接\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\n## :medal_military: 结果\n\n\u003Cimg src=\".asset\u002Fradar.png\" alt=\"雷达图\" width=\"100%\">\n\n## :black_nib: 引用\n\n如果您觉得我们的工作对您的研究有所帮助，请考虑引用以下 BibTeX 条目。\n\n```bibtex\n@inproceedings{APE,\n  title={Aligning and Prompting Everything All at Once for Universal Visual Perception},\n  author={Shen, Yunhang and Fu, Chaoyou and Chen, Peixian and Zhang, Mengdan and Li, Ke and Sun, Xing and Wu, Yunsheng and Lin, Shaohui and Ji, Rongrong},\n  journal={CVPR},\n  year={2024}\n}\n```","# APE 快速上手指南\n\nAPE (Aligning and Prompting Everything) 是一个通用的视觉感知模型，能够使用单一模型在 160+ 数据集上实现 SotA 性能。它支持通过自然语言描述或词汇表，一次性检测、分割图像中的“所有”物体（包括前景对象和背景_stuff_）。\n\n## 环境准备\n\n*   **操作系统**: Linux (推荐 Ubuntu 18.04+)\n*   **Python**: Python 3.8+\n*   **GPU**: 支持 CUDA 的 NVIDIA GPU (推理建议显存 >= 8GB，训练需多卡环境)\n*   **依赖**: PyTorch, Detectron2, xformers (可选加速)\n\n> **注意**: 本项目依赖 `git-lfs` 拉取大模型权重，请确保已安装。\n> ```bash\n> sudo apt-get install git-lfs\n> git lfs install\n> ```\n\n## 安装步骤\n\n### 1. 克隆代码库\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\ncd APE\n```\n\n### 2. 安装依赖与包\n建议使用虚拟环境（如 conda 或 venv）以避免冲突。\n```bash\npip3 install -r requirements.txt\npython3 -m pip install -e .\n```\n\n### 3. 下载预训练模型 (可选，用于直接推理)\n如果只需运行演示或推理，可从 HuggingFace 下载 checkpoints。\n```bash\ngit lfs install\ngit clone https:\u002F\u002Fhuggingface.co\u002Fshenyunhang\u002FAPE\n# 模型文件将下载到当前目录下的 APE 文件夹中\n```\n\n## 基本使用\n\n### 方式一：启动本地 Web UI 演示 (推荐新手)\n这是最简单的体验方式，提供图形化界面进行图像上传和提示词输入。\n\n1.  安装 Gradio：\n    ```bash\n    pip3 install gradio\n    ```\n2.  启动服务：\n    ```bash\n    cd APE\u002Fdemo\n    python3 app.py\n    ```\n3.  在浏览器打开终端显示的本地地址（通常为 `http:\u002F\u002F127.0.0.1:7860`）。\n    *   该脚本会自动检测并使用可用的 GPU。\n    *   支持在线演示访问：[HuggingFace Space](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fshenyunhang\u002FAPE)\n\n### 方式二：命令行推理 (图片\u002F视频)\n使用 `demo_lazy.py` 对单张或多张图片进行推理，支持自定义文本提示、置信度阈值及输出类型（框、掩码、语义分割）。\n\n**示例命令：**\n```bash\npython3 demo\u002Fdemo_lazy.py \\\n--config-file configs\u002FLVISCOCOCOCOSTUFF_O365_OID_VGR_SA1B_REFCOCO_GQA_PhraseCut_Flickr30k\u002Fape_deta\u002Fape_deta_vitl_eva02_clip_vlf_lsj1024_cp_16x4_1080k.py \\\n--input image1.jpg image2.jpg \\\n--output .\u002Foutput_results \\\n--confidence-threshold 0.1 \\\n--text-prompt 'person,car,chess piece of horse head' \\\n--with-box \\\n--with-mask \\\n--with-sseg \\\n--opts \\\ntrain.init_checkpoint=\u002Fpath\u002Fto\u002FAPE-D\u002Fcheckpoint \\\nmodel.model_language.cache_dir=\"\" \\\nmodel.model_vision.select_box_nums_for_evaluation=500 \\\nmodel.model_vision.text_feature_bank_reset=True\n```\n\n**参数说明：**\n*   `--input`: 输入图片路径，可多个。\n*   `--text-prompt`: 想要检测的目标描述，用逗号分隔。\n*   `--with-box`, `--with-mask`, `--with-sseg`: 分别启用检测框、实例分割掩码、语义分割输出。\n*   `train.init_checkpoint`: **必须修改**为你的实际模型权重路径 (例如 `APE\u002Fcheckpoints\u002Fmodel_final.pth`)。\n\n**优化选项：**\n*   若遇到 `xformers` 兼容性问题，添加：`model.model_vision.backbone.net.xattn=False \\`\n*   若需使用 PyTorch 原生注意力机制，添加：\n    ```bash\n    model.model_vision.transformer.encoder.pytorch_attn=True \\\n    model.model_vision.transformer.decoder.pytorch_attn=True \\\n    ```\n\n### 方式三：批量评估 (160+ 数据集)\n项目提供了针对不同模型变体（APE-L_D, APE-Ti 等）的评估脚本。运行前请修改脚本内的 checkpoint 路径和 GPU 数量。\n\n```bash\n# 示例：评估 APE-L_D 模型\nbash scripts\u002Feval_APE-L_D.sh\n```","某智慧零售团队正在构建一套自动化货架分析系统，需要实时识别并分割监控视频中成千上万种不同品牌、包装的商品及背景货架结构。\n\n### 没有 APE 时\n- **模型堆砌成本高**：面对数万种 SKU（库存量单位），需为每类商品或每组商品训练专用模型，导致维护上百个模型文件，显存占用极高。\n- **长尾识别能力弱**：对于新品上市或极少见的“长尾”商品，因缺乏标注数据，传统模型完全无法检测，只能人工补录。\n- **任务切换繁琐**：区分“前景商品实例”和“背景货架区域”需要分别部署实例分割和语义分割两套流程，代码逻辑复杂且推理延迟大。\n- **词汇表受限**：模型仅能识别训练时固定的几百个类别标签，无法理解“红色瓶装饮料”或“打折促销牌”等自然语言描述。\n\n### 使用 APE 后\n- **统一模型万能感知**：仅需部署一个 APE 模型，即可在 160+ 数据集上达到 SOTA 性能，一次性处理所有商品类别，大幅降低算力与维护成本。\n- **零样本泛化新品**：利用其强大的对齐能力，直接通过文本提示词（Prompt）即可检测从未见过的新品，无需重新训练或收集数据。\n- **全场景同步分割**：APE 能同时输出前景商品的实例掩码和背景货架的语义区域，单次推理即可完成复杂场景的全要素解析。\n- **开放词汇自由交互**：支持数千种词汇乃至任意自然语言描述，业务人员可随时通过修改提示词来调整检测目标，灵活性极大提升。\n\nAPE 通过“一次对齐，万物可测”的架构，将原本碎片化、高成本的视觉感知任务转化为单一模型的高效通用服务。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshenyunhang_APE_d21b5947.png","shenyunhang","沈云航 Yunhang Shen","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fshenyunhang_96726a10.jpg",null,"shenyunhang01@gmail.com","https:\u002F\u002Fshenyunhang.github.io\u002F","https:\u002F\u002Fgithub.com\u002Fshenyunhang",[22,26,30,34],{"name":23,"color":24,"percentage":25},"Python","#3572A5",98.5,{"name":27,"color":28,"percentage":29},"Cuda","#3A4E3A",1,{"name":31,"color":32,"percentage":33},"Shell","#89e051",0.4,{"name":35,"color":36,"percentage":37},"C++","#f34b7d",0.1,608,46,"2026-04-08T05:40:27","Apache-2.0",3,"Linux","必需。训练示例显示需 8 张 GPU (--num-gpus 8)。推理支持单卡。依赖 xformers 和 MultiScaleDeformableAttention，通常指代 NVIDIA GPU。具体显存未说明，但模型包含大型 ViT 骨干网络，建议大显存。","未说明",{"notes":47,"python":48,"dependencies":49},"1. 训练和推理严重依赖 detectron2 框架结构（从配置文件路径和 train_net.py 推断）。2. 需手动下载并预处理 EVA-CLIP\u002FEVA-02 骨干网络权重（运行插值脚本调整 patch size）。3. 训练脚本默认配置为 8 卡分布式训练，单机或多机模式。4. 推理时若不使用 xformers 需添加特定参数禁用。5. 数据集准备复杂，涉及多个大规模数据集的混合与注册。","3.x (命令使用 python3\u002Fpip3)",[50,51,52,53,54,55],"torch","xformers","gradio","git-lfs","detectron2 (隐含，基于配置结构和 train_net.py)","transformers (隐含，用于 EVA-CLIP)",[57,58],"语言模型","图像",[60,61,62,63,64],"image-segmentation","object-detection","open-world","referring-expression-comprehension","vision-language-transformer",2,"ready","2026-03-27T02:49:30.150509","2026-04-09T21:34:16.617516",[70,75,80,85,90,95,100],{"id":71,"question_zh":72,"answer_zh":73,"source_url":74},26624,"如果机器无法连接 GitHub 导致 pip 安装依赖超时，该如何手动安装 detectron2、detrex 等依赖？","如果目标机器无法联网，可以在可联网的机器上手动下载源码并上传安装。具体步骤如下：\n1. 在联网机器上克隆仓库并切换到指定 commit（commit hash 位于 requirements.txt 中包名后的 @ 符号后，例如 017abbf）：\n   git clone https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdetectron2.git\n   cd detectron2\u002F\n   git checkout 017abbf\n   （若无 git，也可直接下载对应 commit 的 zip 包）\n2. 将文件夹上传至目标机器，执行安装：\n   cd detectron2\u002F\n   python3 -m pip install -e .\u002F\n\n此外，若两台机器 Python 环境一致，也可在联网机器批量下载依赖包：\n   mkdir ape_requirements\n   cd ape_requirements\n   pip3 download -r ..\u002Frequirements.txt\n   然后将 ape_requirements 文件夹上传至目标机器执行：pip3 install ape_requirements\u002F*","https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fissues\u002F6",{"id":76,"question_zh":77,"answer_zh":78,"source_url":79},26625,"安装和编译 detectron2、detrex 时遇到大量错误，是否有推荐的环境配置或 Docker 镜像？","建议直接使用 Docker 镜像来避免环境配置问题。维护者确认可以通过 Docker 解决大部分编译和依赖冲突问题。如果有现成的 Docker 镜像，可以直接拉取使用；否则建议参考项目文档或社区分享的镜像构建方案。","https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fissues\u002F8",{"id":81,"question_zh":82,"answer_zh":83,"source_url":84},26626,"APE-Ti 6M backbone 配置中为何引用了巨大的 EVA-02 9B 模型文件？","配置文件中引用的 `EVA02_CLIP_E_psz14_plus_s9B.pt` 文件仅用于提取其中的文本塔（text tower）作为语言模型部分，并非加载整个 9B 参数模型。视觉骨干网络（ViT-Ti backbone）是在代码的其他位置单独导入的，因此不会占用显存加载整个大模型。","https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fissues\u002F45",{"id":86,"question_zh":87,"answer_zh":88,"source_url":89},26627,"项目的开源许可证是什么？是否适用于整个仓库？","项目已正式添加 Apache License 2.0 许可证，该许可证适用于整个仓库，而不仅仅是演示目录。用户可以依据该协议自由使用、修改和分发代码。","https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fissues\u002F9",{"id":91,"question_zh":92,"answer_zh":93,"source_url":94},26628,"运行本地 Demo (app.py) 上传图片后报错 KeyError: 'dataset' 或 ASGI 异常，如何解决？","该错误通常与数据集配置或缺少必要的初始化步骤有关。可以参考相关技术博客（如知乎专栏）中的解决方案，检查是否正确加载了数据集配置文件，或在运行 demo 前是否完成了必要的数据集注册步骤。确保环境变量和配置路径正确无误。","https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fissues\u002F22",{"id":96,"question_zh":97,"answer_zh":98,"source_url":99},26629,"离线环境下无法连接 Hugging Face 下载权重文件导致运行失败，如何处理？","在离线环境中，需要预先在有网络的机器上下载所需的 Hugging Face 权重文件（如模型 checkpoints），然后手动传输到离线机器的指定缓存目录（通常为 ~\u002F.cache\u002Fhuggingface\u002F 或代码中指定的路径）。确保目录结构与 Hugging Face 默认结构一致，程序即可自动识别本地文件而不再尝试联网下载。","https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fissues\u002F50",{"id":101,"question_zh":102,"answer_zh":103,"source_url":104},26630,"安装过程中出现 ImportError: cannot import name 'move_device_like' from 'detectron2.layers' 错误怎么办？","此错误通常是由于 detectron2 版本不匹配导致的。请确保安装的 detectron2 版本与项目 requirements.txt 中指定的 commit hash 完全一致（例如通过 git checkout 指定版本编译安装）。不同版本的 detectron2 API 可能存在差异，混用版本会导致此类导入错误。","https:\u002F\u002Fgithub.com\u002Fshenyunhang\u002FAPE\u002Fissues\u002F13",[106],{"id":107,"version":108,"summary_zh":109,"released_at":110},171865,"0","我忘了怎么生成那些文件，所以现在就把它们上传了。","2023-12-07T04:19:55",[112,123,131,139,147,155],{"id":113,"name":114,"github_repo":115,"description_zh":116,"stars":117,"difficulty_score":42,"last_commit_at":118,"category_tags":119,"status":66},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,"2026-04-06T06:32:30",[120,121,58,122],"Agent","开发框架","数据工具",{"id":124,"name":125,"github_repo":126,"description_zh":127,"stars":128,"difficulty_score":42,"last_commit_at":129,"category_tags":130,"status":66},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[121,58,120],{"id":132,"name":133,"github_repo":134,"description_zh":135,"stars":136,"difficulty_score":65,"last_commit_at":137,"category_tags":138,"status":66},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",147882,"2026-04-09T11:32:47",[121,120,57],{"id":140,"name":141,"github_repo":142,"description_zh":143,"stars":144,"difficulty_score":65,"last_commit_at":145,"category_tags":146,"status":66},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,"2026-04-08T11:23:26",[121,58,120],{"id":148,"name":149,"github_repo":150,"description_zh":151,"stars":152,"difficulty_score":42,"last_commit_at":153,"category_tags":154,"status":66},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[57,58,120,121],{"id":156,"name":157,"github_repo":158,"description_zh":159,"stars":160,"difficulty_score":42,"last_commit_at":161,"category_tags":162,"status":66},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[121,58,120,163],"视频"]