[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-phamquiluan--ResidualMaskingNetwork":3,"tool-phamquiluan--ResidualMaskingNetwork":64},[4,17,27,35,44,52],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":16},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",[13,14,15,43],"视频",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":23,"last_commit_at":50,"category_tags":51,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":53,"name":54,"github_repo":55,"description_zh":56,"stars":57,"difficulty_score":23,"last_commit_at":58,"category_tags":59,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,60,43,61,15,62,26,13,63],"数据工具","插件","其他","音频",{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":78,"owner_website":82,"owner_url":83,"languages":84,"stars":93,"forks":94,"last_commit_at":95,"license":96,"difficulty_score":97,"env_os":98,"env_gpu":99,"env_ram":98,"env_deps":100,"category_tags":108,"github_topics":109,"view_count":23,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":116,"updated_at":117,"faqs":118,"releases":154},4154,"phamquiluan\u002FResidualMaskingNetwork","ResidualMaskingNetwork","ICPR 2020: Facial Expression Recognition using Residual Masking Network","ResidualMaskingNetwork 是一款基于深度学习的面部表情识别开源工具，曾发表于 ICPR 2020 国际会议。它致力于解决计算机视觉中情绪检测的难题，能够精准分析图像或视频流中人物的面部特征，并自动识别出对应的喜怒哀乐等情绪状态。\n\n该项目的核心亮点在于其独特的“残差掩膜网络”架构，通过结合注意力机制与残差学习，有效提升了模型对细微表情变化的捕捉能力。在权威的 FER2013 数据集基准测试中，其表现优于多种经典主流模型（如 ResNet、EfficientNet 等），达到了业界领先的准确率。\n\nResidualMaskingNetwork 非常适合 AI 研究人员、计算机视觉开发者以及需要集成情绪分析功能的应用构建者使用。它不仅提供了详尽的训练代码和预训练权重供学术探索，还封装了简洁易用的 Python 接口。用户只需几行代码即可加载模型，实现对单张图片的情绪检测或在摄像头实时画面中进行动态演示，极大地降低了从算法研究到实际落地的门槛。无论是用于心理学辅助研究、人机交互优化，还是智能监控场景，它都是一个高效且可靠的技术选择。","# Facial Expression Recognition using Residual Masking Network\n\n_(*) State-of-the-art Facial Expression Recognition \u002F Emotion Detection._\n\n[![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1ZEbJ6rJuGZ6UzmOFE1XCzSgacTUJiN-H?usp=sharing)\n[![PyPI Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fphamquiluan_ResidualMaskingNetwork_readme_8569389ab449.png)](https:\u002F\u002Fpepy.tech\u002Fprojects\u002Frmn)\n[![pypi package](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-v3.1.2-blue)](https:\u002F\u002Fpypi.org\u002Fproject\u002Frmn)\n[![circleci](https:\u002F\u002Fcircleci.com\u002Fgh\u002Fphamquiluan\u002FResidualMaskingNetwork.svg?style=shield&circle-token=d642bb5917bc9c252f535360fc6beb6a865afc01)](https:\u002F\u002Fapp.circleci.com\u002Fpipelines\u002Fgithub\u002Fphamquiluan\u002FResidualMaskingNetwork)\n[![Python package](https:\u002F\u002Fgithub.com\u002Fphamquiluan\u002FResidualMaskingNetwork\u002Factions\u002Fworkflows\u002Fpython-package.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fphamquiluan\u002FResidualMaskingNetwork\u002Factions\u002Fworkflows\u002Fpython-package.yml)\n[![style](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20style-black-000000.svg)](https:\u002F\u002Fgithub.com\u002Fphamquiluan\u002Fresidualmaskingnetwork)\n\n\n\u003Cp align=\"center\">\n\u003Cimg width=1000 src= \"https:\u002F\u002Fuser-images.githubusercontent.com\u002F24642166\u002F284939631-ee2909f0-f084-47bb-8262-2c1728166fba.jpg\"\u002F>\n\u003C\u002Fp>\n\n## Installation\n\n\n1. Install from pip\n\n```bash\npip install rmn\n```\n\n2. Or build from source\n\n```bash\ngit clone git@github.com:phamquiluan\u002FResidualMaskingNetwork.git\ncd ResidualMaskingNetwork\npip install -e .\n```\n\n## Quick Start\n\n```python\nfrom rmn import RMN\nimport cv2\n\n# Initialize the model\nm = RMN()\n\n# Detect emotions from an image\nimage = cv2.imread(\"your-image.png\")\nresults = m.detect_emotion_for_single_frame(image)\nprint(results)\n\n# Draw results on the image\nimage = m.draw(image, results)\ncv2.imwrite(\"output.png\", image)\n```\n\n## Webcam Demo\n\n```python\nfrom rmn import RMN\nm = RMN()\nm.video_demo()\n```\n\n\n\n\u003Cp align=\"center\">\n\u003Cimg width=\"41%\" src= \"https:\u002F\u002Fuser-images.githubusercontent.com\u002F24642166\u002F117097030-d4176480-ad94-11eb-8c65-097a62ede067.png\"\u002F>\n\u003Cimg width=\"58%\" src= \"https:\u002F\u002Fuser-images.githubusercontent.com\u002F24642166\u002F72135777-da244d80-33b9-11ea-90ee-706b25c0a5a9.png\"\u002F>\n\u003C\u002Fp>\n\n### Table of Contents\n\n- \u003Ca href='#benchmarking_fer2013'>Benchmarking on FER2013\u003C\u002Fa>\n- \u003Ca href='#benchmarking_imagenet'>Benchmarking on ImageNet\u003C\u002Fa>\n- \u003Ca href='#datasets'>Download datasets\u003C\u002Fa>\n- \u003Ca href='#train_fer'>Training on FER2013\u003C\u002Fa>\n- \u003Ca href='#train_imagenet'>Training on ImageNet\u003C\u002Fa>\n- \u003Ca href='#eval'>Evaluation results\u003C\u002Fa>\n- \u003Ca href='#docs'>Download dissertation and slide\u003C\u002Fa>\n\n\n\u003Cp id=\"benchmarking_fer2013\">\u003C\u002Fp>\n\n## Benchmarking on FER2013\n\nWe benchmark our code thoroughly on two datasets: FER2013 and VEMO. Below are the results and trained weights:\n\n| Model                                                                                                     | Accuracy |\n| --------------------------------------------------------------------------------------------------------- | -------- |\n| [VGG19](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F196qnnULQpFK5O5Md_YfvsUC2OQRd5LrQ\u002Fview?usp=sharing)               | 70.80    |\n| [EfficientNet_b2b](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1ZqvGcqYZXXbMKFwSaoHlo6LaKVYptXxx\u002Fview?usp=sharing)    | 70.80    |\n| [Googlenet](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1FNiNS7qqkd4dPQX9APiFsEyylb-ZHN8f\u002Fview?usp=sharing)           | 71.97    |\n| [Resnet34](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1GFSWnjA2tvsVel3kz0EyYW_el7Nyu8Gc\u002Fview?usp=sharing)            | 72.42    |\n| [Inception_v3](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F10LpGJEmSTikidqaiv32rcJYQc3Cx_n6-\u002Fview?usp=sharing)        | 72.72    |\n| [Bam_Resnet50](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1RlVX2eiaQrUUmpng1PCyhK_hJdfJRcoU\u002Fview?usp=sharing)        | 73.14    |\n| [Densenet121](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1VWZ96Ar_n_OQD4Rk5ThZbixApMQ5eeYW\u002Fview?usp=sharing)         | 73.16    |\n| [Resnet152](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1A-kUqrP9u3ZCXVBtE6AdUN5afPwQjTHl\u002Fview?usp=sharing)           | 73.22    |\n| [Cbam_Resnet50](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1_u_B2NcxqCMPdWmPLMYKVzAenwBlwoFi\u002Fview?usp=sharing)       | 73.39    |\n| [ResMaskingNet](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1dmOycqZACsLh0eyDSR2ssn4g9xh36zMp\u002Fview?usp=sharing)       | 74.14    |\n| [**ResMaskingNet + 6**](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Nt7y1T99HpmF93peYxMg-i6BUqdzDBve?usp=sharing) | **76.82**    |\n\nResults in VEMO dataset could be found in my thesis or slide (attached below)\n\n\u003Cp id=\"benchmarking_imagenet\">\u003C\u002Fp>\n\n## Benchmarking on ImageNet\n\nWe also benchmark our model on ImageNet dataset.\n\n| Model                                                                                        | Top-1 Accuracy | Top-5 Accuracy |\n| -------------------------------------------------------------------------------------------- | -------------- | -------------- |\n| [Resnet34](https:\u002F\u002Fdrive.google.com\u002Fopen?id=16lErBAk7K3WswKP0wyE9S0dNrr7AF6wd)               | 72.59          | 90.92          |\n| [CBAM Resnet34](https:\u002F\u002Fdrive.google.com\u002Fopen?id=16lErBAk7K3WswKP0wyE9S0dNrr7AF6wd)          | 73.77          | 91.72          |\n| [**ResidualMaskingNetwork**](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1myjp4_XL8mNJlAbz0TFjYKUc7B0N64eb) | **74.16**          | **91.91**          |\n\n\n\u003Cp id=\"datasets\">\u003C\u002Fp>\n\n## Datasets\n\n- [FER2013 Dataset](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Nt7y1T99HpmF93peYxMg-i6BUqdzDBve?usp=sharing) (locate it in `saved\u002Fdata\u002Ffer2013` like `saved\u002Fdata\u002Ffer2013\u002Ftrain.csv`)\n- [ImageNet 1K Dataset](http:\u002F\u002Fimage-net.org\u002Fdownload-images) (ensure it can be loaded by torchvision.datasets.Imagenet)\n\n\u003Cp id=\"train_fer\">\u003C\u002Fp>\n\n## Training on FER2013\n\n[![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1IEQ091jBeJrOKHJe4wNhodH-bUGbLHSE?usp=sharing)\n\nTo train the networks, you need to specify the model name and other hyperparameters in the config file (located at configs\u002F\\*) then ensure it is loaded in main file, then run training procedure by simply run main file, for example:\n\n```Shell\npython main_fer.py  # Example for fer2013_config.json file\n```\n\nThe best checkpoints will chosen at term of best validation accuracy, located at `saved\u002Fcheckpoints`. By default, it will train `alexnet` model, you can switch to another model by edit `configs\u002Ffer2013_config.json` file (to `resnet18` or `cbam_resnet50` or my network `resmasking_dropout1`.\n\n\n\u003Cp id=\"train_imagenet\">\u003C\u002Fp>\n\n## Training on the Imagenet dataset\n\nTo perform training resnet34 on 4 V100 GPUs on a single machine:\n\n```Shell\npython .\u002Fmain_imagenet.py -a resnet34 --dist-url 'tcp:\u002F\u002F127.0.0.1:12345' --dist-backend 'nccl' --multiprocessing-distributed --world-size 1 --rank 0\n```\n\n\u003Cp id=\"eval\">\u003C\u002Fp>\n\n\n## Ensemble method\n\nI used the no-weighted sum average ensemble method to fuse 7 different models together, to reproduce results, you need to do some steps:\n\n1. Download all needed trained weights and locate them on the `.\u002Fsaved\u002Fcheckpoints\u002F` directory. The link to download can be found in the Benchmarking section.\n2. Edit file `gen_results` and run it to generate result offline for **each** model.\n3. Run the `gen_ensemble.py` file to generate accuracy for example methods.\n\n\u003Cp id=\"docs\">\u003C\u002Fp>\n\n\n## Dissertation and Slide\n\n- [Dissertation PDF (in Vietnamese)](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Nt7y1T99HpmF93peYxMg-i6BUqdzDBve?usp=sharing)\n- [Dissertation Overleaf Source](https:\u002F\u002Fwww.overleaf.com\u002Fread\u002Fqdyhnzjmbscd)\n- [Presentation slide PDF (in English) with full appendix](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Nt7y1T99HpmF93peYxMg-i6BUqdzDBve?usp=sharing)\n- [Presentation slide Overleaf Source](https:\u002F\u002Fwww.overleaf.com\u002Fread\u002Fvxdhjvhvgwdn)\n- [ICPR Paper](docs\u002Fpaper.pdf)\n- [ICPR Poster Overleaf Source](https:\u002F\u002Fwww.overleaf.com\u002Fread\u002Fjjqwfrsdcdwh#566470)\n\n\n\n\u003Cp id=\"references\">\u003C\u002Fp>\n\n## Citation\n\nPham Luan, The Huynh Vu, and Tuan Anh Tran. \"Facial Expression Recognition using Residual Masking Network\". In: Proc. ICPR. 2020.\n```\n@inproceedings{pham2021facial,\n  title={Facial expression recognition using residual masking network},\n  author={Pham, Luan and Vu, The Huynh and Tran, Tuan Anh},\n  booktitle={2020 25th International Conference on Pattern Recognition (ICPR)},\n  pages={4513--4519},\n  year={2021},\n  organization={IEEE}\n}\n```\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fphamquiluan_ResidualMaskingNetwork_readme_ef71e7b56ce6.png)](https:\u002F\u002Fstar-history.com\u002F#phamquiluan\u002Fresidualmaskingnetwork&Date)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","# 使用残差掩码网络进行面部表情识别\n\n_(*) 最先进的面部表情识别\u002F情绪检测。_\n\n[![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1ZEbJ6rJuGZ6UzmOFE1XCzSgacTUJiN-H?usp=sharing)\n[![PyPI 下载量](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fphamquiluan_ResidualMaskingNetwork_readme_8569389ab449.png)](https:\u002F\u002Fpepy.tech\u002Fprojects\u002Frmn)\n[![pypi 包](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-v3.1.2-blue)](https:\u002F\u002Fpypi.org\u002Fproject\u002Frmn)\n[![circleci](https:\u002F\u002Fcircleci.com\u002Fgh\u002Fphamquiluan\u002FResidualMaskingNetwork.svg?style=shield&circle-token=d642bb5917bc9c252f535360fc6beb6a865afc01)](https:\u002F\u002Fapp.circleci.com\u002Fpipelines\u002Fgithub\u002Fphamquiluan\u002FResidualMaskingNetwork)\n[![Python 包](https:\u002F\u002Fgithub.com\u002Fphamquiluan\u002FResidualMaskingNetwork\u002Factions\u002Fworkflows\u002Fpython-package.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fphamquiluan\u002FResidualMaskingNetwork\u002Factions\u002Fworkflows\u002Fpython-package.yml)\n[![风格](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20style-black-000000.svg)](https:\u002F\u002Fgithub.com\u002Fphamquiluan\u002Fresidualmaskingnetwork)\n\n\n\u003Cp align=\"center\">\n\u003Cimg width=1000 src= \"https:\u002F\u002Fuser-images.githubusercontent.com\u002F24642166\u002F284939631-ee2909f0-f084-47bb-8262-2c1728166fba.jpg\"\u002F>\n\u003C\u002Fp>\n\n## 安装\n\n\n1. 通过 pip 安装\n\n```bash\npip install rmn\n```\n\n2. 或者从源代码构建\n\n```bash\ngit clone git@github.com:phamquiluan\u002FResidualMaskingNetwork.git\ncd ResidualMaskingNetwork\npip install -e .\n```\n\n## 快速入门\n\n```python\nfrom rmn import RMN\nimport cv2\n\n# 初始化模型\nm = RMN()\n\n# 从图像中检测情绪\nimage = cv2.imread(\"your-image.png\")\nresults = m.detect_emotion_for_single_frame(image)\nprint(results)\n\n# 在图像上绘制结果\nimage = m.draw(image, results)\ncv2.imwrite(\"output.png\", image)\n```\n\n## 网络摄像头演示\n\n```python\nfrom rmn import RMN\nm = RMN()\nm.video_demo()\n```\n\n\n\n\u003Cp align=\"center\">\n\u003Cimg width=\"41%\" src= \"https:\u002F\u002Fuser-images.githubusercontent.com\u002F24642166\u002F117097030-d4176480-ad94-11eb-8c65-097a62ede067.png\"\u002F>\n\u003Cimg width=\"58%\" src= \"https:\u002F\u002Fuser-images.githubusercontent.com\u002F24642166\u002F72135777-da244d80-33b9-11ea-90ee-706b25c0a5a9.png\"\u002F>\n\u003C\u002Fp>\n\n### 目录\n\n- \u003Ca href='#benchmarking_fer2013'>FER2013 数据集上的基准测试\u003C\u002Fa>\n- \u003Ca href='#benchmarking_imagenet'>ImageNet 数据集上的基准测试\u003C\u002Fa>\n- \u003Ca href='#datasets'>下载数据集\u003C\u002Fa>\n- \u003Ca href='#train_fer'>在 FER2013 上训练\u003C\u002Fa>\n- \u003Ca href='#train_imagenet'>在 ImageNet 上训练\u003C\u002Fa>\n- \u003Ca href='#eval'>评估结果\u003C\u002Fa>\n- \u003Ca href='#docs'>下载论文和幻灯片\u003C\u002Fa>\n\n\n\u003Cp id=\"benchmarking_fer2013\">\u003C\u002Fp>\n\n## FER2013 数据集上的基准测试\n\n我们在两个数据集上对我们的代码进行了全面的基准测试：FER2013 和 VEMO。以下是结果和训练好的权重：\n\n| 模型                                                                                                     | 准确率 |\n| --------------------------------------------------------------------------------------------------------- | -------- |\n| [VGG19](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F196qnnULQpFK5O5Md_YfvsUC2OQRd5LrQ\u002Fview?usp=sharing)               | 70.80    |\n| [EfficientNet_b2b](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1ZqvGcqYZXXbMKFwSaoHlo6LaKVYptXxx\u002Fview?usp=sharing)    | 70.80    |\n| [Googlenet](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1FNiNS7qqkd4dPQX9APiFsEyylb-ZHN8f\u002Fview?usp=sharing)           | 71.97    |\n| [Resnet34](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1GFSWnjA2tvsVel3kz0EyYW_el7Nyu8Gc\u002Fview?usp=sharing)            | 72.42    |\n| [Inception_v3](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F10LpGJEmSTikidqaiv32rcJYQc3Cx_n6-\u002Fview?usp=sharing)        | 72.72    |\n| [Bam_Resnet50](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1RlVX2eiaQrUUmpng1PCyhK_hJdfJRcoU\u002Fview?usp=sharing)        | 73.14    |\n| [Densenet121](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1VWZ96Ar_n_OQD4Rk5ThZbixApMQ5eeYW\u002Fview?usp=sharing)         | 73.16    |\n| [Resnet152](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1A-kUqrP9u3ZCXVBtE6AdUN5afPwQjTHl\u002Fview?usp=sharing)           | 73.22    |\n| [Cbam_Resnet50](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1_u_B2NcxqCMPdWmPLMYKVzAenwBlwoFi\u002Fview?usp=sharing)       | 73.39    |\n| [ResMaskingNet](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1dmOycqZACsLh0eyDSR2ssn4g9xh36zMp\u002Fview?usp=sharing)       | 74.14    |\n| [**ResMaskingNet + 6**](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Nt7y1T99HpmF93peYxMg-i6BUqdzDBve?usp=sharing) | **76.82**    |\n\nVEMO 数据集上的结果可以在我的论文或幻灯片中找到（附在下方）。\n\n\u003Cp id=\"benchmarking_imagenet\">\u003C\u002Fp>\n\n## ImageNet 数据集上的基准测试\n\n我们还在 ImageNet 数据集上对我们的模型进行了基准测试。\n\n| 模型                                                                                        | Top-1 准确率 | Top-5 准确率 |\n| -------------------------------------------------------------------------------------------- | -------------- | -------------- |\n| [Resnet34](https:\u002F\u002Fdrive.google.com\u002Fopen?id=16lErBAk7K3WswKP0wyE9S0dNrr7AF6wd)               | 72.59          | 90.92          |\n| [CBAM Resnet34](https:\u002F\u002Fdrive.google.com\u002Fopen?id=16lErBAk7K3WswKP0wyE9S0dNrr7AF6wd)          | 73.77          | 91.72          |\n| [**ResidualMaskingNetwork**](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1myjp4_XL8mNJlAbz0TFjYKUc7B0N64eb) | **74.16**          | **91.91**          |\n\n\n\u003Cp id=\"datasets\">\u003C\u002Fp>\n\n## 数据集\n\n- [FER2013 数据集](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Nt7y1T99HpmF93peYxMg-i6BUqdzDBve?usp=sharing)（位于 `saved\u002Fdata\u002Ffer2013`，例如 `saved\u002Fdata\u002Ffer2013\u002Ftrain.csv`）\n- [ImageNet 1K 数据集](http:\u002F\u002Fimage-net.org\u002Fdownload-images)（确保可以被 torchvision.datasets.Imagenet 加载）\n\n\u003Cp id=\"train_fer\">\u003C\u002Fp>\n\n## 在 FER2013 上训练\n\n[![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1IEQ091jBeJrOKHJe4wNhodH-bUGbLHSE?usp=sharing)\n\n要训练这些网络，您需要在配置文件中指定模型名称和其他超参数（位于 configs\u002F\\*），然后确保它被加载到主文件中，最后只需运行主文件即可开始训练，例如：\n\n```Shell\npython main_fer.py  # 以 fer2013_config.json 文件为例\n```\n\n最佳检查点将根据最佳验证准确率来选择，保存在 `saved\u002Fcheckpoints` 中。默认情况下，它会训练 `alexnet` 模型，您可以编辑 `configs\u002Ffer2013_config.json` 文件将其切换为其他模型（如 `resnet18`、`cbam_resnet50` 或我的网络 `resmasking_dropout1`）。\n\n\n\u003Cp id=\"train_imagenet\">\u003C\u002Fp>\n\n## 在 ImageNet 数据集上训练\n\n要在单台机器上使用 4 块 V100 GPU 训练 resnet34：\n\n```Shell\npython .\u002Fmain_imagenet.py -a resnet34 --dist-url 'tcp:\u002F\u002F127.0.0.1:12345' --dist-backend 'nccl' --multiprocessing-distributed --world-size 1 --rank 0\n```\n\n\u003Cp id=\"eval\">\u003C\u002Fp>\n\n## 集成方法\n\n我使用了无权重求和平均的集成方法，将7个不同的模型融合在一起。为了复现结果，你需要执行以下步骤：\n\n1. 下载所有需要的预训练权重，并将其放置在 `.\u002Fsaved\u002Fcheckpoints\u002F` 目录下。下载链接可以在基准测试部分找到。\n2. 编辑文件 `gen_results` 并运行它，为**每个**模型生成离线结果。\n3. 运行 `gen_ensemble.py` 文件，以生成示例方法的准确率。\n\n\u003Cp id=\"docs\">\u003C\u002Fp>\n\n\n## 学位论文与演示文稿\n\n- [学位论文 PDF（越南语）](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Nt7y1T99HpmF93peYxMg-i6BUqdzDBve?usp=sharing)\n- [学位论文 Overleaf 源文件](https:\u002F\u002Fwww.overleaf.com\u002Fread\u002Fqdyhnzjmbscd)\n- [英文版演示文稿 PDF（含完整附录）](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1Nt7y1T99HpmF93peYxMg-i6BUqdzDBve?usp=sharing)\n- [英文版演示文稿 Overleaf 源文件](https:\u002F\u002Fwww.overleaf.com\u002Fread\u002Fvxdhjvhvgwdn)\n- [ICPR 论文](docs\u002Fpaper.pdf)\n- [ICPR 海报 Overleaf 源文件](https:\u002F\u002Fwww.overleaf.com\u002Fread\u002Fjjqwfrsdcdwh#566470)\n\n\n\n\u003Cp id=\"references\">\u003C\u002Fp>\n\n## 引用\n\nPham Luan, The Huynh Vu, 和 Tuan Anh Tran. “基于残差掩码网络的表情识别”。载于：ICPR 会议论文集。2020年。\n```\n@inproceedings{pham2021facial,\n  title={基于残差掩码网络的表情识别},\n  author={Pham, Luan 和 Vu, The Huynh 和 Tran, Tuan Anh},\n  booktitle={2020年第25届国际模式识别会议（ICPR）},\n  pages={4513--4519},\n  year={2021},\n  organization={IEEE}\n}\n```\n\n## 星标历史\n\n[![星标历史图表](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fphamquiluan_ResidualMaskingNetwork_readme_ef71e7b56ce6.png)](https:\u002F\u002Fstar-history.com\u002F#phamquiluan\u002Fresidualmaskingnetwork&Date)\n\n## 许可证\n\n本项目采用 MIT 许可证授权——详情请参阅 [LICENSE](LICENSE) 文件。","# ResidualMaskingNetwork 快速上手指南\n\nResidualMaskingNetwork (RMN) 是一个基于残差掩码网络的面部表情识别（情感检测）开源工具，在 FER2013 等数据集上达到了业界领先的准确率。本指南将帮助你快速在本地部署并使用该模型。\n\n## 环境准备\n\n在开始之前，请确保你的开发环境满足以下要求：\n\n*   **操作系统**: Linux, macOS 或 Windows\n*   **Python 版本**: Python 3.6 或更高版本\n*   **核心依赖**:\n    *   `torch` (PyTorch)\n    *   `torchvision`\n    *   `opencv-python` (cv2)\n    *   `numpy`\n    *   `pillow`\n\n> **提示**：如果你尚未安装 PyTorch，建议先访问 [PyTorch 官网](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F) 根据你的 CUDA 版本获取安装命令。国内用户可使用清华源加速安装：\n> ```bash\n> pip install torch torchvision -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 安装步骤\n\n你可以通过 PyPI 直接安装，也可以从源码构建。\n\n### 方式一：使用 pip 安装（推荐）\n\n这是最快捷的方式，适合直接使用模型进行推理。\n\n```bash\npip install rmn\n```\n\n*国内用户加速安装：*\n```bash\npip install rmn -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 方式二：从源码构建\n\n如果你需要修改代码或贡献内容，可以选择此方式。\n\n```bash\ngit clone git@github.com:phamquiluan\u002FResidualMaskingNetwork.git\ncd ResidualMaskingNetwork\npip install -e .\n```\n\n## 基本使用\n\n安装完成后，只需几行代码即可对图片或摄像头进行情感分析。\n\n### 1. 图片情感识别\n\n以下示例展示如何读取一张图片，检测其中的人脸情绪，并将结果绘制在图片上保存。\n\n```python\nfrom rmn import RMN\nimport cv2\n\n# 初始化模型\nm = RMN()\n\n# 读取图片\nimage = cv2.imread(\"your-image.png\")\n\n# 检测单帧图像中的情绪\nresults = m.detect_emotion_for_single_frame(image)\nprint(results)\n\n# 将检测结果（边界框和标签）绘制到图片上\nimage = m.draw(image, results)\n\n# 保存输出图片\ncv2.imwrite(\"output.png\", image)\n```\n\n### 2. 摄像头实时演示\n\n如果你想直接调用摄像头进行实时表情检测，可以使用内置的演示功能：\n\n```python\nfrom rmn import RMN\n\n# 初始化模型并启动视频演示\nm = RMN()\nm.video_demo()\n```\n\n运行上述代码后，程序将打开默认摄像头，并在视频流中实时标注检测到的人脸及其对应的情绪（如高兴、悲伤、愤怒等）。按 `q` 键可退出演示。","某在线教育平台的产品团队希望实时分析学生在网课中的专注度与情绪变化，以优化教学互动策略。\n\n### 没有 ResidualMaskingNetwork 时\n- **开发门槛高**：团队需从零复现复杂的残差掩码网络架构，耗费数周时间调试模型结构与环境依赖。\n- **识别精度不足**：采用传统通用情感模型，在光线复杂或学生侧脸时，对“困惑”、“无聊”等细微表情误判率极高。\n- **集成流程繁琐**：缺乏标准化的推理接口，将算法嵌入现有的视频流处理管道需要编写大量胶水代码。\n- **反馈延迟严重**：由于模型推理速度慢且未优化，无法实现实时的课堂情绪热力图展示，只能做课后离线分析。\n\n### 使用 ResidualMaskingNetwork 后\n- **极速部署上线**：通过 `pip install rmn` 一键安装，利用其封装好的 `RMN` 类，仅需几行代码即可在 Colab 或本地完成模型初始化与推理。\n- **精准捕捉微表情**：得益于 ICPR 2020 提出的残差掩码机制，模型在 FER2013 基准测试中达到业界领先水平，能准确区分学生是“认真听讲”还是“走神发呆”。\n- **无缝对接业务**：直接调用 `detect_emotion_for_single_frame` 和 `video_demo` 接口，轻松将情感识别功能集成到直播流中，大幅降低工程落地难度。\n- **实时交互反馈**：高效的推理速度支持毫秒级情绪更新，教师端仪表盘可即时显示全班情绪曲线，帮助老师动态调整讲课节奏。\n\nResidualMaskingNetwork 将原本需要数周研发的高精度面部表情识别能力，转化为开发者可即插即用的标准化服务，极大提升了人机交互系统的感知智能。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fphamquiluan_ResidualMaskingNetwork_af9a0925.png","phamquiluan","Luan (Miles) Pham","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fphamquiluan_2f38293b.jpg",null,"Stealth Mode","Melbourne, Australia","phamquiluan@gmail.com","https:\u002F\u002Fsites.google.com\u002Fview\u002Fphamquiluan\u002Fhome","https:\u002F\u002Fgithub.com\u002Fphamquiluan",[85,89],{"name":86,"color":87,"percentage":88},"Python","#3572A5",99.9,{"name":90,"color":91,"percentage":92},"Shell","#89e051",0.1,507,101,"2026-03-20T07:45:33","MIT",1,"未说明","训练部分提及使用 4 块 V100 GPU，推理部分未强制要求但建议使用支持 CUDA 的 NVIDIA GPU",{"notes":101,"python":98,"dependencies":102},"该工具主要用于面部表情识别。安装可通过 pip 直接安装 'rmn' 包或从源码构建。训练 ImageNet 数据集时示例命令使用了多 GPU 分布式训练（nccl 后端）。推理和摄像头演示功能较为轻量，可直接调用 RMN 类运行。具体 Python 版本和详细依赖版本在提供的 README 片段中未明确列出，通常此类深度学习项目需要 Python 3.6+ 及 PyTorch 环境。",[103,104,105,106,107],"rmn","cv2 (opencv-python)","torch","torchvision","numpy",[43,13],[110,111,112,113,114,115],"fer2013","facial-expression-recognition","residual-masking-network","pytorch","emotion-detection","emotion-recognition","2026-03-27T02:49:30.150509","2026-04-06T11:57:48.328738",[119,124,129,134,139,144,149],{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},18923,"如何引用该项目发表的 ICPR2020 论文？","您可以通过以下 BibTeX 格式引用该论文：\n@inproceedings{luanresmaskingnet2020,\n  title={Facial Expression Recognition using Residual Masking Network},\n  author={Luan, Pham and Huynh, Vu and Tuan Anh, Tran},\n  booktitle={IEEE 25th International Conference on Pattern Recognition},\n  pages={4513--4519},\n  year={2020}\n}\n论文链接：https:\u002F\u002Fieeexplore.ieee.org\u002Fabstract\u002Fdocument\u002F9411919","https:\u002F\u002Fgithub.com\u002Fphamquiluan\u002FResidualMaskingNetwork\u002Fissues\u002F20",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},18924,"训练完成后，如何使用保存的模型进行图片预测？","训练完成后，模型检查点会保存在 checkpoints\u002F 目录下。您可以参考项目中的 legacy\u002Fdemo_one_image.py 文件来了解如何加载模型并对单张图片进行预测。","https:\u002F\u002Fgithub.com\u002Fphamquiluan\u002FResidualMaskingNetwork\u002Fissues\u002F50",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},18925,"为什么我无法复现 74% 的准确率？应该使用什么配置？","作者使用了 ImageNet 预训练的 ResNet34 作为骨干网络，因此输入通道数 (in_channels) 应为 3，即使 FER2013 是灰度图。\n解决方法：在 resnet.py 文件中，取消注释第 33 和 34 行，确保使用 3 通道的卷积层：\nself.conv1 = nn.Conv2d(3, self.inplanes, kernel_size=7, stride=2, padding=3, bias=False)\n不要将其改为 1 通道。","https:\u002F\u002Fgithub.com\u002Fphamquiluan\u002FResidualMaskingNetwork\u002Fissues\u002F7",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},18926,"当使用自定义人脸检测器时，调用 m.draw() 报错 \"TypeError: string indices must be integers\" 怎么办？","该错误是因为当您使用外部检测器裁剪人脸并传入 detect_emotion_for_single_face_image 时，返回的结果结构与默认检测器不同，缺少绘图所需的坐标字段。\n建议方案：作者已修复此问题。如果您遇到此问题，请确保更新到最新版本。或者，在使用自定义检测器时，需要手动将坐标信息整合到结果字典中再传给 draw 函数，或者直接使用该库内置的人脸检测功能以保证结果格式兼容。","https:\u002F\u002Fgithub.com\u002Fphamquiluan\u002FResidualMaskingNetwork\u002Fissues\u002F32",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},18927,"模型经常无法检测到图像中心的人脸，如何解决？","如果内置的 SSD 检测器无法检测到明显的人脸，建议替换为更强的人脸检测模型。\n社区用户反馈的有效方案是：使用 YOLO 进行人脸检测，然后将裁剪出的人脸图像送入本项目的分类器中进行表情识别，这样可以解决原检测器漏检的问题。","https:\u002F\u002Fgithub.com\u002Fphamquiluan\u002FResidualMaskingNetwork\u002Fissues\u002F47",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},18928,"如何找到最佳超参数？可以直接修改配置文件中的学习率或批次大小吗？","最佳超参数是通过实验得出的，具体细节可以参考发表的论文：https:\u002F\u002Fieeexplore.ieee.org\u002Fabstract\u002Fdocument\u002F9411919。\n对于 FER2013 数据集，通常只需更改架构名称 (arch name)，但您也可以尝试调整学习率 (lr)、最大迭代次数 (max_iter) 或批次大小 (batch size) 来优化结果。如果复现结果有差异，请检查是否使用了正确的预训练权重和输入通道设置。","https:\u002F\u002Fgithub.com\u002Fphamquiluan\u002FResidualMaskingNetwork\u002Fissues\u002F10",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},18929,"该项目的开源许可证是什么？可以用于研究吗？","作者明确表示，虽然仓库中尚未添加正式的 LICENSE 文件，但用户可以自由将该代码库用于研究目的 (research purpose)。如果您需要在商业项目或其他场景中使用，建议直接联系作者确认。","https:\u002F\u002Fgithub.com\u002Fphamquiluan\u002FResidualMaskingNetwork\u002Fissues\u002F18",[155,159,164,168,172,176,180,184,188],{"id":156,"version":157,"summary_zh":78,"released_at":158},112552,"v3.0.4","2022-03-23T07:52:32",{"id":160,"version":161,"summary_zh":162,"released_at":163},112553,"v3.0.3","- 更新预训练权重的 URL，感谢 \u003Cdmitry.pigasin@yandex.ru>","2022-02-17T05:26:13",{"id":165,"version":166,"summary_zh":78,"released_at":167},112554,"v3.0.0","2021-05-19T09:39:01",{"id":169,"version":170,"summary_zh":78,"released_at":171},112555,"v3.0.0a5","2021-05-08T15:13:10",{"id":173,"version":174,"summary_zh":78,"released_at":175},112556,"v2.0.0","2021-05-05T07:46:12",{"id":177,"version":178,"summary_zh":78,"released_at":179},112557,"v1.0.1","2021-01-16T08:32:39",{"id":181,"version":182,"summary_zh":78,"released_at":183},112558,"v0.0.6","2021-01-14T09:50:42",{"id":185,"version":186,"summary_zh":78,"released_at":187},112559,"v0.0.2","2021-01-14T09:00:53",{"id":189,"version":190,"summary_zh":78,"released_at":191},112560,"v0.0.1","2021-01-14T07:39:08"]