[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-leftthomas--ESPCN":3,"tool-leftthomas--ESPCN":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},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,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},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",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},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 真正成长为懂上",153609,2,"2026-04-13T11:34:59",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":79,"owner_website":79,"owner_url":80,"languages":81,"stars":86,"forks":87,"last_commit_at":88,"license":79,"difficulty_score":10,"env_os":89,"env_gpu":90,"env_ram":89,"env_deps":91,"category_tags":100,"github_topics":101,"view_count":32,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":104,"updated_at":105,"faqs":106,"releases":147},7245,"leftthomas\u002FESPCN","ESPCN","A PyTorch implementation of ESPCN based on CVPR 2016 paper \"Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network\"","ESPCN 是一个基于 PyTorch 框架实现的开源项目，复现了 CVPR 2016 年提出的高效亚像素卷积神经网络。它的核心功能是将低分辨率的单张图像或视频实时转换为高分辨率版本，即实现“超分辨率”重建。\n\n传统超分方法往往计算量大、速度慢，难以满足实时处理需求。ESPCN 通过独特的“亚像素卷积层”技术，巧妙地将上采样过程移至网络末端，在特征图通道维度进行重组而非直接在空间维度插值。这一设计大幅降低了计算成本，使其能够在普通 GPU 甚至 CPU 上实现实时的图像与视频高清化，同时保持出色的重建质量。\n\n这款工具非常适合计算机视觉领域的研究人员、深度学习开发者以及需要处理视频增强任务的技术团队。对于希望探索轻量级超分模型或构建实时视频增强应用的工程师来说，ESPCN 提供了完整的训练、验证及测试代码，支持多种主流数据集，并内置了可视化监控功能。无论是学术研究还是工程落地，它都是一个高效且易于上手的基础方案。","# ESPCN\nA PyTorch implementation of ESPCN based on CVPR 2016 paper \n[Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network](https:\u002F\u002Farxiv.org\u002Fabs\u002F1609.05158).\n\n## Requirements\n- [Anaconda](https:\u002F\u002Fwww.anaconda.com\u002Fdownload\u002F)\n- PyTorch\n```\nconda install pytorch torchvision -c soumith\nconda install pytorch torchvision cuda80 -c soumith # install it if you have installed cuda\n```\n- PyTorchNet\n```\npip install git+https:\u002F\u002Fgithub.com\u002Fpytorch\u002Ftnt.git@master\n```\n- opencv\n```\nconda install opencv\n```\n\n## Datasets\n\n### Train、Val Dataset\nThe train and val datasets are sampled from [VOC2012](http:\u002F\u002Fcvlab.postech.ac.kr\u002F~mooyeol\u002Fpascal_voc_2012\u002F).\nTrain dataset has 16700 images and Val dataset has 425 images.\nDownload the datasets from [here](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1xuFperu2WiYc5-_QXBemlA)(access code:5tzp), \nand then extract it into `data` directory. Finally run\n```\npython data_utils.py\n\noptional arguments:\n--upscale_factor      super resolution upscale factor [default value is 3]\n```\nto generate train and val datasets from VOC2012 with given upscale factors(options: 2、3、4、8).\n\n### Test Image Dataset\nThe test image dataset are sampled from \n| **Set 5** |  [Bevilacqua et al. BMVC 2012](http:\u002F\u002Fpeople.rennes.inria.fr\u002FAline.Roumy\u002Fresults\u002FSR_BMVC12.html)\n| **Set 14** |  [Zeyde et al. LNCS 2010](https:\u002F\u002Fsites.google.com\u002Fsite\u002Fromanzeyde\u002Fresearch-interests)\n| **BSD 100** | [Martin et al. ICCV 2001](https:\u002F\u002Fwww.eecs.berkeley.edu\u002FResearch\u002FProjects\u002FCS\u002Fvision\u002Fbsds\u002F)\n| **Sun-Hays 80** | [Sun and Hays ICCP 2012](http:\u002F\u002Fcs.brown.edu\u002F~lbsun\u002FSRproj2012\u002FSR_iccp2012.html)\n| **Urban 100** | [Huang et al. CVPR 2015](https:\u002F\u002Fsites.google.com\u002Fsite\u002Fjbhuang0604\u002Fpublications\u002Fstruct_sr).\nDownload the image dataset from [here](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1vGosnyal21wGgVffriL1VQ)(access code:xwhy), and then extract it into `data` directory.\n\n### Test Video Dataset\nThe test dataset are sampled from Jay Chou's Music Videos. Download the video dataset from \n[here](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F12OrUPN9H1Grj4FTOxh9L1g)(access code:6rad), and then extract it into `data\u002Ftest\u002FSRF_xx\u002Fvideo` \ndirectory, which `xx` means the upscale factor.\n\n## Usage\n\n### Train\n\n```\npython -m visdom.server & python train.py\n\noptional arguments:\n--upscale_factor      super resolution upscale factor [default value is 3]\n--num_epochs          super resolution epochs number [default value is 100]\n```\nVisdom now can be accessed by going to `127.0.0.1:8097` in your browser, \nor your own host address if specified.\n\nIf the above does not work, try using an SSH tunnel to your server by \nadding the following line to your local `~\u002F.ssh\u002Fconfig` :\n`LocalForward 127.0.0.1:8097 127.0.0.1:8097`.\n\nMaybe if you are in China, you should download the static resources from \n[here](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1Ku7FByLLSnNxREnheU4TEA)(access code:vhm7), and put them on \n`~\u002Fanaconda3\u002Flib\u002Fpython3.6\u002Fsite-packages\u002Fvisdom\u002Fstatic\u002F`.\n\n### Test Image\n```\npython test_image.py\n\noptional arguments:\n--upscale_factor      super resolution upscale factor [default value is 3]\n--model_name          super resolution model name [default value is epoch_3_100.pt]\n```\nThe output high resolution images are on `results` directory.\n\n### Test Video\n```\npython test_video.py\n\noptional arguments:\n--upscale_factor      super resolution upscale factor [default value is 3]\n--is_real_time        super resolution real time to show [default value is False]\n--delay_time          super resolution delay time to show [default value is 1]\n--model_name          super resolution model name [default value is epoch_3_100.pt]\n```\nThe output high resolution videos are on `results` directory.\n\n## Benchmarks\nAdam optimizer were used with learning rate scheduling between epoch 30 and epoch 80.\n\n**Upscale Factor = 2**\n\nEpochs with batch size of 64 takes ~1 minute on a NVIDIA GeForce TITAN X GPU. \n\n> Loss\u002FPSNR graphs\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_a3e0c2a98f35.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_714a0e511bf6.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_5b74426f9235.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_1b5990762056.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> Image Results\n\nThe left is low resolution image, the middle is high resolution image, and \nthe right is super resolution image(output of the ESPCN).\n\n- Set5\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_4a4ded7e9d65.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_c0a30865675d.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_0ea301d9ac65.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- Set14\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_f0aa8983b01a.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_90e6bd7e40e1.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_1bd666c34684.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- BSD100\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_13586d631c0b.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_fe50b3036876.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_df79ef6bdd32.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- Urban100\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_9f4d9e77e960.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_fa70520a88a1.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_597a7d45b95d.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> Video Results\n\nThe right is low resolution video, the left is super resolution video(output of the ESPCN).\nClick the image to watch the complete video.\n\n[![Watch the video](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_b89d2b0243ca.png)](http:\u002F\u002Fv.youku.com\u002Fv_show\u002Fid_XMzIwMDEyODU2MA==.html?spm=a2hzp.8244740.0.0)\n\n**Upscale Factor = 3**\n\nEpochs with batch size of 64 takes ~30 seconds on a NVIDIA GeForce TITAN X GPU. \n\n> Loss\u002FPSNR graphs\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_816525ca2e2f.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_b5ccbc15046c.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_0d4f32d42c9a.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_0f8673caea22.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> Image Results\n\nThe left is low resolution image, the middle is high resolution image, and \nthe right is super resolution image(output of the ESPCN).\n\n- Set5\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_8ac81038b9a3.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_e61e241e206d.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_a5e460d530ce.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- Set14\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_7d3ac7bf171d.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_01fe38760f57.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_efd347a48aac.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- BSD100\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_5c163842913e.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_8d726c145e50.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_4e818b97dfe3.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> Video Results\n\nThe right is low resolution video, the left is super resolution video(output of the ESPCN). \nClick the image to watch the complete video.\n\n[![Watch the video](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_2b9b98276be1.png)](http:\u002F\u002Fv.youku.com\u002Fv_show\u002Fid_XMzIwMDEzMjEyNA==.html?spm=a2hzp.8244740.0.0)\n\n**Upscale Factor = 4**\n\nEpochs with batch size of 64 takes ~20 seconds on a NVIDIA GeForce GTX 1070 GPU. \n\n> Loss\u002FPSNR graphs\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_2228e85a0f2f.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_f6275d79ca1b.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_3e4dfef3bc53.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_d6bcf7876c41.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> Image Results\n\nThe left is low resolution image, the middle is high resolution image, and \nthe right is super resolution image(output of the ESPCN).\n\n- Set5\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_a66a18268ff8.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_c0a30865675d.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_4177e128cd7b.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- Set14\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_47e939b507d9.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_7af4811f8789.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_6bdc611f0ba4.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- BSD100\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_d43b85c0df98.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_fe50b3036876.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_828c10ea0509.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- Urban100\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_9f4d9e77e960.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_e0d453a78ceb.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_62278d5e9c06.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> Video Results\n\nThe right is low resolution video, the left is super resolution video(output of the ESPCN).\nClick the image to watch the complete video.\n\n[![Watch the video](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_254443053434.png)](http:\u002F\u002Fv.youku.com\u002Fv_show\u002Fid_XMzIwMDEzNDcxMg==.html?spm=a2hzp.8244740.0.0)\n\n**Upscale Factor = 8**\n\nEpochs with batch size of 64 takes ~15 seconds on a NVIDIA GeForce GTX 1070 GPU. \n\n> Loss\u002FPSNR graphs\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_1c9c22fcc0cc.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_a3f78bc64d7c.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_5d5e7e975c63.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_9971835c8462.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> Image Results\n\nThe left is low resolution image, the middle is high resolution image, and \nthe right is super resolution image(output of the ESPCN).\n\n- SunHays80\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_d99331fd3aa9.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_33e9d93b7dc9.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_98a1367aac76.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> Video Results\n\nThe left is low resolution video, the right is super resolution video(output of the ESPCN).\nClick the image to watch the complete video.\n\n[![Watch the video](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_d739816a5249.png)](http:\u002F\u002Fv.youku.com\u002Fv_show\u002Fid_XMzIwMDEzODMzNg==.html?spm=a2hzp.8244740.0.0)\n\nThe complete test image results could be downloaded from [here](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1tpi-X6KMrUM15zKTH7f_WQ)(access code:nkh9), and \nthe complete test video results could be downloaded from [here](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1IgEbuaKpQpknjUEleTKtLA)(access code:1dus).\n","# ESPCN\n基于 CVPR 2016 论文的 ESPCN PyTorch 实现  \n[使用高效的亚像素卷积神经网络进行实时单图像和视频超分辨率](https:\u002F\u002Farxiv.org\u002Fabs\u002F1609.05158)。\n\n## 需求\n- [Anaconda](https:\u002F\u002Fwww.anaconda.com\u002Fdownload\u002F)\n- PyTorch\n```\nconda install pytorch torchvision -c soumith\nconda install pytorch torchvision cuda80 -c soumith # 如果已安装 CUDA，请安装此版本\n```\n- PyTorchNet\n```\npip install git+https:\u002F\u002Fgithub.com\u002Fpytorch\u002Ftnt.git@master\n```\n- opencv\n```\nconda install opencv\n```\n\n## 数据集\n\n### 训练集、验证集\n训练集和验证集均采自 [VOC2012](http:\u002F\u002Fcvlab.postech.ac.kr\u002F~mooyeol\u002Fpascal_voc_2012\u002F)。  \n训练集包含 16700 张图像，验证集包含 425 张图像。  \n请从 [这里](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1xuFperu2WiYc5-_QXBemlA) 下载数据集（提取码：5tzp），  \n然后解压到 `data` 目录下。最后运行以下命令：\n```\npython data_utils.py\n\n可选参数：\n--upscale_factor      超分辨率放大倍数 [默认值为 3]\n```\n以生成基于 VOC2012 的训练集和验证集，并指定放大倍数（可选：2、3、4、8）。\n\n### 测试图像数据集\n测试图像数据集来源于以下资源：  \n| **Set 5** |  [Bevilacqua 等人 BMVC 2012](http:\u002F\u002Fpeople.rennes.inria.fr\u002FAline.Roumy\u002Fresults\u002FSR_BMVC12.html)\n| **Set 14** |  [Zeyde 等人 LNCS 2010](https:\u002F\u002Fsites.google.com\u002Fsite\u002Fromanzeyde\u002Fresearch-interests)\n| **BSD 100** | [Martin 等 ICCV 2001](https:\u002F\u002Fwww.eecs.berkeley.edu\u002FResearch\u002FProjects\u002FCS\u002Fvision\u002Fbsds\u002F)\n| **Sun-Hays 80** | [Sun 和 Hays ICCP 2012](http:\u002F\u002Fcs.brown.edu\u002F~lbsun\u002FSRproj2012\u002FSR_iccp2012.html)\n| **Urban 100** | [Huang 等 CVPR 2015](https:\u002F\u002Fsites.google.com\u002Fsite\u002Fjbhuang0604\u002Fpublications\u002Fstruct_sr)。\n请从 [这里](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1vGosnyal21wGgVffriL1VQ) 下载图像数据集（提取码：xwhy），  \n然后解压到 `data` 目录下。\n\n### 测试视频数据集\n测试视频数据集取自周杰伦的音乐视频。请从 [这里](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F12OrUPN9H1Grj4FTOxh9L1g) 下载视频数据集（提取码：6rad），  \n解压后放入 `data\u002Ftest\u002FSRF_xx\u002Fvideo` 目录中，其中 `xx` 表示放大倍数。\n\n## 使用方法\n\n### 训练\n\n```\npython -m visdom.server & python train.py\n\n可选参数：\n--upscale_factor      超分辨率放大倍数 [默认值为 3]\n--num_epochs          超分辨率训练轮数 [默认值为 100]\n```\n现在可以通过浏览器访问 `127.0.0.1:8097` 来使用 Visdom，  \n如果指定了主机地址，则访问该地址即可。\n\n若上述方法无效，请尝试通过 SSH 隧道连接服务器，在本地 `~\u002F.ssh\u002Fconfig` 文件中添加以下行：\n`LocalForward 127.0.0.1:8097 127.0.0.1:8097`。\n\n在中国境内使用时，可能需要从 [这里](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1Ku7FByLLSnNxREnheU4TEA) 下载静态资源（提取码：vhm7），  \n并将其放置于 `~\u002Fanaconda3\u002Flib\u002Fpython3.6\u002Fsite-packages\u002Fvisdom\u002Fstatic\u002F` 目录下。\n\n### 测试图像\n```\npython test_image.py\n\n可选参数：\n--upscale_factor      超分辨率放大倍数 [默认值为 3]\n--model_name          超分辨率模型名称 [默认值为 epoch_3_100.pt]\n```\n生成的高分辨率图像将保存在 `results` 目录中。\n\n### 测试视频\n```\npython test_video.py\n\n可选参数：\n--upscale_factor      超分辨率放大倍数 [默认值为 3]\n--is_real_time        是否实时显示超分辨率结果 [默认值为 False]\n--delay_time          超分辨率结果延迟显示时间 [默认值为 1 秒]\n--model_name          超分辨率模型名称 [默认值为 epoch_3_100.pt]\n```\n生成的高分辨率视频将保存在 `results` 目录下。\n\n## 基准测试\n在第30至80轮之间使用了带有学习率调度的Adam优化器。\n\n**放大倍数 = 2**\n\n在NVIDIA GeForce TITAN X显卡上，批次大小为64时，每轮训练大约需要1分钟。\n\n> 损失\u002FPSNR曲线图\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_a3e0c2a98f35.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_714a0e511bf6.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_5b74426f9235.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_1b5990762056.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> 图像结果\n\n左侧为低分辨率图像，中间为高分辨率图像，右侧为超分辨率图像（ESPCN的输出）。\n\n- Set5\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_4a4ded7e9d65.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_c0a30865675d.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_0ea301d9ac65.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- Set14\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_f0aa8983b01a.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_90e6bd7e40e1.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_1bd666c34684.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- BSD100\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_13586d631c0b.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_fe50b3036876.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_df79ef6bdd32.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- Urban100\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_9f4d9e77e960.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_fa70520a88a1.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_597a7d45b95d.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> 视频结果\n\n右侧为低分辨率视频，左侧为超分辨率视频（ESPCN的输出）。点击图片观看完整视频。\n\n[![观看视频](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_b89d2b0243ca.png)](http:\u002F\u002Fv.youku.com\u002Fv_show\u002Fid_XMzIwMDEyODU2MA==.html?spm=a2hzp.8244740.0.0)\n\n**放大倍数 = 3**\n\n在NVIDIA GeForce TITAN X显卡上，批次大小为64时，每轮训练大约需要30秒。\n\n> 损失\u002FPSNR曲线图\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_816525ca2e2f.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_b5ccbc15046c.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_0d4f32d42c9a.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_0f8673caea22.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> 图像结果\n\n左侧为低分辨率图像，中间为高分辨率图像，右侧为超分辨率图像（ESPCN的输出）。\n\n- Set5\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_8ac81038b9a3.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_e61e241e206d.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_a5e460d530ce.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- Set14\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_7d3ac7bf171d.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_01fe38760f57.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_efd347a48aac.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- BSD100\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_5c163842913e.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_8d726c145e50.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_4e818b97dfe3.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> 视频结果\n\n右侧为低分辨率视频，左侧为超分辨率视频（ESPCN的输出）。点击图片观看完整视频。\n\n[![观看视频](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_2b9b98276be1.png)](http:\u002F\u002Fv.youku.com\u002Fv_show\u002Fid_XMzIwMDEzMjEyNA==.html?spm=a2hzp.8244740.0.0)\n\n**放大倍数 = 4**\n\n在NVIDIA GeForce GTX 1070显卡上，批次大小为64时，每轮训练大约需要20秒。\n\n> 损失\u002FPSNR曲线图\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_2228e85a0f2f.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_f6275d79ca1b.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_3e4dfef3bc53.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_d6bcf7876c41.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> 图像结果\n\n左侧为低分辨率图像，中间为高分辨率图像，右侧为超分辨率图像（ESPCN的输出）。\n\n- Set5\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_a66a18268ff8.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_c0a30865675d.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_4177e128cd7b.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- Set14\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_47e939b507d9.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_7af4811f8789.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_6bdc611f0ba4.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- BSD100\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_d43b85c0df98.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_fe50b3036876.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_828c10ea0509.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n- Urban100\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_9f4d9e77e960.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_e0d453a78ceb.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_62278d5e9c06.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> 视频结果\n\n右侧为低分辨率视频，左侧为超分辨率视频（ESPCN的输出）。点击图片观看完整视频。\n\n[![观看视频](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_254443053434.png)](http:\u002F\u002Fv.youku.com\u002Fv_show\u002Fid_XMzIwMDEzNDcxMg==.html?spm=a2hzp.8244740.0.0)\n\n**放大倍数 = 8**\n\n在NVIDIA GeForce GTX 1070显卡上，批次大小为64时，每轮训练大约需要15秒。\n\n> 损失\u002FPSNR曲线图\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_1c9c22fcc0cc.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_a3f78bc64d7c.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_5d5e7e975c63.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_9971835c8462.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> 图像结果\n\n左侧为低分辨率图像，中间为高分辨率图像，右侧为超分辨率图像（ESPCN的输出）。\n\n- SunHays80\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_d99331fd3aa9.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_33e9d93b7dc9.png\"\u002F>\n    \u003C\u002Ftd>\n    \u003Ctd>\n     \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_98a1367aac76.png\"\u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> 视频结果\n\n左侧为低分辨率视频，右侧为超分辨率视频（ESPCN的输出）。点击图片观看完整视频。\n\n[![观看视频](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_readme_d739816a5249.png)](http:\u002F\u002Fv.youku.com\u002Fv_show\u002Fid_XMzIwMDEzODMzNg==.html?spm=a2hzp.8244740.0.0)\n\n完整的测试图像结果可从[这里](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1tpi-X6KMrUM15zKTH7f_WQ)下载（提取码：nkh9），完整的测试视频结果可从[这里](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1IgEbuaKpQpknjUEleTKtLA)下载（提取码：1dus）。","# ESPCN 快速上手指南\n\nESPCN (Efficient Sub-Pixel Convolutional Neural Network) 是一个基于 PyTorch 实现的实时单图像和视频超分辨率工具，源自 CVPR 2016 论文。本指南将帮助你快速搭建环境并运行模型。\n\n## 1. 环境准备\n\n在开始之前，请确保你的系统已安装 **Anaconda**。本项目依赖以下核心库：\n- PyTorch & torchvision\n- PyTorchNet (tnt)\n- OpenCV\n\n**硬件建议**：推荐使用 NVIDIA GPU 以加速训练和推理（原文测试环境为 TITAN X 或 GTX 1070）。\n\n## 2. 安装步骤\n\n### 2.1 创建环境并安装基础依赖\n使用 Conda 安装 PyTorch 和 OpenCV。国内用户若连接官方源较慢，可配置清华或中科大镜像源。\n\n```bash\n# 安装 PyTorch 和 torchvision (CPU 版本)\nconda install pytorch torchvision -c soumith\n\n# 如果已安装 CUDA，请使用以下命令安装 GPU 版本 (示例为 cuda80，请根据实际版本调整)\n# conda install pytorch torchvision cuda80 -c soumith\n\n# 安装 OpenCV\nconda install opencv\n```\n\n### 2.2 安装 PyTorchNet\n通过 pip 从 GitHub 安装 `tnt` 库：\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fpytorch\u002Ftnt.git@master\n```\n\n### 2.3 准备数据集\n项目需要训练集、验证集和测试集。由于原始链接为百度网盘，非常适合国内开发者。\n\n1.  **训练\u002F验证集 (VOC2012)**:\n    *   下载地址：[百度网盘](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1xuFperu2WiYc5-_QXBemlA) (提取码：`5tzp`)\n    *   操作：解压到项目根目录下的 `data` 文件夹。\n    *   预处理：运行以下脚本生成指定倍率的训练数据（默认倍率为 3，可选 2, 3, 4, 8）：\n        ```bash\n        python data_utils.py --upscale_factor 3\n        ```\n\n2.  **测试图像集 (Set5, Set14, BSD100 等)**:\n    *   下载地址：[百度网盘](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1vGosnyal21wGgVffriL1VQ) (提取码：`xwhy`)\n    *   操作：解压到 `data` 文件夹。\n\n3.  **测试视频集**:\n    *   下载地址：[百度网盘](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F12OrUPN9H1Grj4FTOxh9L1g) (提取码：`6rad`)\n    *   操作：解压到 `data\u002Ftest\u002FSRF_xx\u002Fvideo` 目录，其中 `xx` 代表放大倍率（如 `SRF_3`）。\n\n> **注意**：如果你在中国大陆且遇到 Visdom 静态资源加载失败的问题，可下载备用资源 [百度网盘](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1Ku7FByLLSnNxREnheU4TEA) (提取码：`vhm7`)，并将其放入 `~\u002Fanaconda3\u002Flib\u002Fpython3.6\u002Fsite-packages\u002Fvisdom\u002Fstatic\u002F` 目录下。\n\n## 3. 基本使用\n\n### 3.1 训练模型\n启动 Visdom 服务器用于监控训练过程，然后开始训练。\n\n```bash\n# 后台启动 Visdom 服务\npython -m visdom.server & \n\n# 开始训练 (默认放大倍率 3，训练 100 个 epoch)\npython train.py --upscale_factor 3 --num_epochs 100\n```\n*   **监控面板**：打开浏览器访问 `http:\u002F\u002F127.0.0.1:8097` 查看 Loss 和 PSNR 曲线。\n*   **远程访问**：若在远程服务器训练，可在本地 `~\u002F.ssh\u002Fconfig` 添加 `LocalForward 127.0.0.1:8097 127.0.0.1:8097` 进行端口转发。\n\n### 3.2 图像超分辨率测试\n使用训练好的模型对低分辨率图像进行重建。\n\n```bash\npython test_image.py --upscale_factor 3 --model_name epoch_3_100.pt\n```\n*   **输出结果**：生成的高清图片将保存在 `results` 目录中。\n\n### 3.3 视频超分辨率测试\n对视频文件进行实时或非实时的超分辨率处理。\n\n```bash\npython test_video.py --upscale_factor 3 --model_name epoch_3_100.pt --is_real_time False\n```\n*   **参数说明**：\n    *   `--is_real_time`: 是否实时显示结果 (True\u002FFalse)。\n    *   `--delay_time`: 实时模式下的延迟时间。\n*   **输出结果**：生成的高清视频将保存在 `results` 目录中。","某视频修复团队需要处理一批珍贵的 90 年代低分辨率演唱会录像，旨在将其提升至高清标准以供现代流媒体平台播放。\n\n### 没有 ESPCN 时\n- **处理效率极低**：传统超分算法计算量巨大，处理一段 5 分钟的 MV 往往需要数小时甚至更久，无法满足批量交付需求。\n- **硬件成本高昂**：为了加速运算，不得不租用昂贵的多卡 GPU 集群，导致项目预算严重超支。\n- **细节模糊失真**：简单的插值放大导致画面边缘锯齿严重，人物面部纹理丢失，无法还原现场真实感。\n- **难以实时预览**：由于推理速度慢，技术人员无法在调整参数时实时看到效果，只能盲目等待跑完整个流程。\n\n### 使用 ESPCN 后\n- **实现实时处理**：得益于高效的亚像素卷积网络，ESPCN 能在单张 NVIDIA TITAN X 显卡上以分钟级速度完成视频超分，真正达到“实时”标准。\n- **大幅降低算力门槛**：模型结构轻量，无需堆砌高端硬件，普通工作站即可流畅运行，显著降低了运营成本。\n- **纹理清晰自然**：基于 CVPR 2016 论文的核心算法，能有效重建高频细节，使周杰伦 MV 中的发丝与舞台灯光更加锐利逼真。\n- **支持即时调试**：配合 `is_real_time` 参数，开发者可即时预览不同放大倍数（如 2x、3x）下的修复效果，快速迭代最优模型。\n\nESPCN 通过极致的计算效率与优秀的重建质量，让老旧低清视频的高清化修复从“昂贵耗时”变为“普惠实时”。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleftthomas_ESPCN_b89d2b02.png","leftthomas","Hao Ren","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fleftthomas_ae00349f.jpg","(๑•̀ㅂ•́)و✧","Fudan University","Shanghai, China","leftthomas@qq.com",null,"https:\u002F\u002Fgithub.com\u002Fleftthomas",[82],{"name":83,"color":84,"percentage":85},"Python","#3572A5",100,567,124,"2026-04-01T15:31:14","未说明","需要 NVIDIA GPU (文中测试使用了 TITAN X 和 GTX 1070)，需安装 CUDA 8.0",{"notes":92,"python":93,"dependencies":94},"1. 建议使用 Anaconda 管理环境。2. 训练和验证数据集基于 VOC2012，测试数据集包含 Set5, Set14, BSD100 等，部分资源需从百度网盘下载（可能主要面向中国用户）。3. 若在中国大陆使用 Visdom，可能需要手动下载静态资源文件并替换到指定目录才能正常访问界面。4. 支持图片和视频超分辨率任务，放大倍数可选 2、3、4、8。","3.6 (根据 visdom 静态资源路径推断)",[95,96,97,98,99],"pytorch","torchvision","torchnet (tnt)","opencv","visdom",[14],[102,103,95],"superresolution","cnn","2026-03-27T02:49:30.150509","2026-04-14T04:34:51.500498",[107,112,117,122,127,132,137,142],{"id":108,"question_zh":109,"answer_zh":110,"source_url":111},32531,"加载模型时遇到 'UnpicklingError: invalid load key' 错误怎么办？","这通常是因为模型文件已损坏。解决方法是删除该损坏的文件并重新下载或重新生成它。如果是在 Windows 上运行，请确保 Python 版本和 PyTorch 版本兼容（例如 PyTorch 0.4.0+），并检查文件编码问题。如果链接失效，可能需要更换 IP 地址或使用 VPN 访问百度网盘链接。","https:\u002F\u002Fgithub.com\u002Fleftthomas\u002FESPCN\u002Fissues\u002F6",{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},32532,"无法访问百度网盘的训练数据或预训练模型链接怎么办？","这可能是由于地区限制导致百度网盘屏蔽了某些 IP。建议尝试更改 IP 地址（例如使用日本、香港或美国的 VPN）后再访问。维护者已确认链接本身有效，如果仍无法访问，请联系百度网盘客服或尝试其他网络环境。","https:\u002F\u002Fgithub.com\u002Fleftthomas\u002FESPCN\u002Fissues\u002F12",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},32533,"在 Windows 上运行时出现路径错误 '[WinError 3] 系统找不到指定的路径' 如何解决？","这是因为代码中使用了 Unix 风格的路径分隔符 '\u002F'。在 Windows 上运行时，需要将代码中的路径分隔符 '\u002F' 替换为 '\\'（双反斜杠），或者使用 Python 的 os.path.join 来自动处理路径兼容性。","https:\u002F\u002Fgithub.com\u002Fleftthomas\u002FESPCN\u002Fissues\u002F4",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},32534,"训练或测试时遇到 'TypeError: can't convert CUDA tensor to numpy' 错误怎么办？","这是因为试图直接将 CUDA 张量转换为 numpy 数组。需要在转换前先将张量复制到 CPU 内存。请将代码中的 `state['output'].data` 修改为 `state['output'].data.cpu()`，同样对 loss 也做类似处理：`state['loss'].data.cpu()`。","https:\u002F\u002Fgithub.com\u002Fleftthomas\u002FESPCN\u002Fissues\u002F23",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},32535,"pixelshuffle() 函数是否可以用于商业用途？是否有专利限制？","该函数是 PyTorch 的官方 API，通常遵循 PyTorch 的许可协议。但有用户指出 ESPCN 论文中的相关实现可能受美国专利 US20170347060A1 保护。如果担心专利问题，可以将 pixelshuffle 替换为反卷积（deconv）层并进行微调，然后再用于商业服务。","https:\u002F\u002Fgithub.com\u002Fleftthomas\u002FESPCN\u002Fissues\u002F10",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},32536,"训练数据集必须使用 VOC2012 吗？能否用于实时视频增强？","1. 训练数据集不强制要求使用 VOC2012，可以根据需求替换为任意数据集。\n2. 是否能对摄像头捕获的视频或 720P 视频进行实时增强，取决于计算机的硬件性能（主要是 GPU 算力）。","https:\u002F\u002Fgithub.com\u002Fleftthomas\u002FESPCN\u002Fissues\u002F21",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},32537,"代码中是否实现了论文中提到的高斯模糊下采样，还是仅使用了双三次插值？","当前代码主要使用了双三次插值（bicubic interpolation）来生成低分辨率图像，这与 SRCNN 的做法类似。如果需要实现论文中提到的高斯滤波下采样，需要用户自行在代码中添加相应的高斯核实现。","https:\u002F\u002Fgithub.com\u002Fleftthomas\u002FESPCN\u002Fissues\u002F41",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},32538,"遇到 'cuda runtime error (48): no kernel image is available' 错误如何解决？","这是一个 CUDA 环境配置问题，而非代码库本身的错误。通常是因为编译 PyTorch 时的 CUDA 架构与当前运行的 GPU 不匹配。建议重新安装与当前 GPU 架构匹配的 PyTorch 版本，或检查 CUDA Toolkit 和驱动版本是否兼容。","https:\u002F\u002Fgithub.com\u002Fleftthomas\u002FESPCN\u002Fissues\u002F22",[]]