[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-DagnyT--hardnet":3,"tool-DagnyT--hardnet":61},[4,18,26,36,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":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 真正成长为懂上",141543,2,"2026-04-06T11:32:54",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},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",[35,15,13,14],{"id":53,"name":54,"github_repo":55,"description_zh":56,"stars":57,"difficulty_score":10,"last_commit_at":58,"category_tags":59,"status":17},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",[14,15,13,60],"视频",{"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":76,"owner_email":76,"owner_twitter":76,"owner_website":76,"owner_url":77,"languages":78,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":94,"env_os":95,"env_gpu":95,"env_ram":95,"env_deps":96,"category_tags":103,"github_topics":105,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":114,"updated_at":115,"faqs":116,"releases":156},4559,"DagnyT\u002Fhardnet","hardnet","Hardnet descriptor model - \"Working hard to know your neighbor's margins:  Local descriptor learning loss\"","HardNet 是一个基于 PyTorch 实现的深度学习模型，专门用于生成高质量的局部图像描述符（Local Descriptors）。在计算机视觉任务中，如何让算法准确识别并匹配不同视角、光照或形变下的同一图像特征点一直是个难题。HardNet 通过引入一种创新的“硬边界”损失函数（Hard Loss），迫使模型在训练时重点关注那些难以区分的相邻样本边界，从而显著提升了描述符的区分能力和鲁棒性。\n\n这款工具特别适合计算机视觉领域的研究人员和开发者使用，尤其是那些从事图像检索、三维重建、SLAM（即时定位与地图构建）或图像拼接工作的专业人士。其核心技术亮点在于超越了传统的对比损失方法，在 HPatches 和 Oxford5k 等权威基准测试中取得了领先的匹配精度。此外，项目不仅提供了完整的训练代码和预训练模型（如推荐用于实际应用的 HardNet++），还支持将模型转换为 TorchScript 以便在 C++ 环境中高效部署，同时也保留了 Caffe 版本的使用示例，极大地方便了从学术研究到工程落地的全流程应用。","# HardNet model implementation\n\nHardNet model implementation in PyTorch for NIPS 2017 paper [\"Working hard to know your neighbor's margins: Local descriptor learning loss\"](https:\u002F\u002Farxiv.org\u002Fabs\u002F1705.10872)\n[poster](http:\u002F\u002Fcmp.felk.cvut.cz\u002F~mishkdmy\u002Fposters\u002Fhardnet2017.pdf), [slides](http:\u002F\u002Fcmp.felk.cvut.cz\u002F~mishkdmy\u002Fslides\u002FHardNet2017.pdf)\n\n\n## An example how to compile HardNet to Torchscript to be used in C++ code\n\n[Notebook](notebook\u002Fconvert_HardNet_to_JIT.ipynb)\n\n\n## Update April 2025\n\nThe PhotoTour dataset is [no longer available](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fvision\u002Fissues\u002F8960) at original links. We use a [mirror from CTU in Prague](https:\u002F\u002Fcmp.felk.cvut.cz\u002F~mishkdmy\u002Fdatasets\u002FBrownPhotoTour\u002F) instead.\n\n## Update April 06 2018\n\nWe have added small shift and rot augmentation, which improves results up to 1mAP point on HPatches. It is in HardNet.py, turn on by --augmentation=True. All the weight will be updated soon. Version, which is trained on Brown + HPatches + PS datasets is in progress, stay tuned :)\n\n\n## Re: popular question about BoW retrieval engine\n\nUnfortunately, it is proprietary and we cannot release it. But you can try the following open source repos, both Matlab-based:\n\n- [ASMK](https:\u002F\u002Fgithub.com\u002Fgtolias\u002Fasmk)\n- [HQE](https:\u002F\u002Fgithub.com\u002Fgtolias\u002Fhqe)\n- [VISE](https:\u002F\u002Fgitlab.com\u002Fvgg\u002Fvise) \n\n## Benchmark on [HPatches](https:\u002F\u002Fgithub.com\u002Fhpatches\u002Fhpatches-benchmark), mAP\n\n![HPatches-results](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDagnyT_hardnet_readme_4b6c2f3aedd9.png)\n\n\n## Retrieval on Oxford5k, mAP, Hessian-Affine detector\n\n| Descriptor    | BoW  |  BoW + SV | BoW + SV + QE | HQE + MA |\n| -----    | ----  |  ---- | ---- | ---- |\n| [TFeatLib](https:\u002F\u002Fgithub.com\u002Fvbalnt\u002Ftfeat)   | 46.7  |  55.6 | 72.2 | n\u002Fa |\n| [RootSIFT](http:\u002F\u002Fieeexplore.ieee.org\u002Fdocument\u002F6248018\u002F)    | 55.1  |  63.0 | 78.4 | 88.0 |\n| [L2NetLib+](https:\u002F\u002Fgithub.com\u002Fyuruntian\u002FL2-Net)   | 59.8  |  67.7 | 80.4 | n\u002Fa |\n| HardNetLibNIPS+   | 59.8  |  68.6 | 83.0 |  88.2 |\n| HardNet++   | **60.8**  |  **69.6** | **84.5** | **88.3** |\n| [HesAffNet](https:\u002F\u002Fgithub.com\u002Fducha-aiki\u002Faffnet) + HardNet++ | **68.3**  |  **77.8** | **89.0** | **89.5** |\n\n\n\n## Requirements\n\nPlease use Python 2.7, install OpenCV and additional libraries from requirements.txt\n\n## Datasets and Training\n\nTo download datasets and start learning descriptor:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet\n.\u002Fcode\u002Frun_me.sh\n```\n\nLogs are stored in tensorboard format in directory logs\u002F\n\n## Pre-trained models\n\nPre-trained models can be found in folder [pretrained](pretrained).\n\n## 3rd party pre-trained models\n\nRahul Mitra presented new [large-scale patch PS-dataset](https:\u002F\u002Fgithub.com\u002Frmitra\u002FPS-Dataset) and trained even better HardNet on it. Original weights in torch format are [here](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fq89g5kfuke6c348\u002Fhardnet-PS.t7?dl=1).\n\nConverted PyTorch version is [here](pretrained\u002F3rd_party\u002FHardNetPS\u002F).\n\n![HardNet-Datasets-results](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDagnyT_hardnet_readme_429af0923b28.png)\n\n\n## Which weights should I use?\n\nFor practical applications, we recommend [HardNet++](https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet\u002Fblob\u002Fmaster\u002Fpretrained\u002Fpretrained_all_datasets\u002FHardNet%2B%2B.pth).\n\nFor comparison with other descriptors, which are trained on Liberty Brown dataset, we recommend [HardNetLib+](pretrained\u002Ftrain_liberty_with_aug\u002Fcheckpoint_liberty_with_aug.pth).\n\nFor the best descriptor, which is NOT trained on HPatches dataset, we recommend model by Mitra et.al., link in section above.\n\n## Usage example\n\nWe provide an example, how to describe patches with HardNet. Script expects patches in [HPatches](https:\u002F\u002Fgithub.com\u002Fhpatches\u002Fhpatches-benchmark) format, i.e. grayscale image with w = patch_size and h = n_patches * patch_size\n```\ncd examples\npython extract_hardnet_desc_from_hpatches_file.py imgs\u002Fref.png out.txt\n```\nor with Caffe:\n```    \ncd examples\u002Fcaffe\npython extract_hardnetCaffe_desc_from_hpatches_file.py ..\u002Fimgs\u002Fref.png hardnet_caffe.txt\n```\n\n## Projects, which use HardNet\n\n[AffNet](https:\u002F\u002Fgithub.com\u002Fducha-aiki\u002Faffnet) -- learned local affine shape estimator.\n\n\n## Citation\n\nPlease cite us if you use this code:\n\n```bibtex\n@inproceedings{HardNet,\n author = {Anastasiya Mishchuk, Dmytro Mishkin, Filip Radenovic, Jiri Matas},\n title = \"{Working hard to know your neighbor's margins: Local descriptor learning loss}\",\n booktitle = {Proceedings of NeurIPS},\n year = 2017,\n month = dec\n}\n```\n","# HardNet 模型实现\n\n在 PyTorch 中实现的 HardNet 模型，用于 NIPS 2017 论文 [\"努力了解邻居的边界：局部描述子学习损失\"](https:\u002F\u002Farxiv.org\u002Fabs\u002F1705.10872)。\n[海报](http:\u002F\u002Fcmp.felk.cvut.cz\u002F~mishkdmy\u002Fposters\u002Fhardnet2017.pdf), [幻灯片](http:\u002F\u002Fcmp.felk.cvut.cz\u002F~mishkdmy\u002Fslides\u002FHardNet2017.pdf)\n\n\n## 如何将 HardNet 编译为 Torchscript 以在 C++ 代码中使用示例\n\n[Notebook](notebook\u002Fconvert_HardNet_to_JIT.ipynb)\n\n\n## 2025 年 4 月更新\n\nPhotoTour 数据集已 [不再可用](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fvision\u002Fissues\u002F8960) 原始链接。我们改用 [布拉格捷克理工大学的镜像](https:\u002F\u002Fcmp.felk.cvut.cz\u002F~mishkdmy\u002Fdatasets\u002FBrownPhotoTour\u002F)。\n\n## 2018 年 4 月 6 日更新\n\n我们添加了小幅平移和旋转增强，这使得 HPatches 上的结果提升了最多 1 个 mAP 点。相关代码位于 HardNet.py 中，可通过 --augmentation=True 开启。所有权重将很快更新。基于 Brown + HPatches + PS 数据集训练的版本正在开发中，敬请期待 :)\n\n\n## 关于 BoW 检索引擎的常见问题回复\n\n很遗憾，该引擎属于专有技术，我们无法公开。不过您可以尝试以下两个基于 Matlab 的开源项目：\n\n- [ASMK](https:\u002F\u002Fgithub.com\u002Fgtolias\u002Fasmk)\n- [HQE](https:\u002F\u002Fgithub.com\u002Fgtolias\u002Fhqe)\n- [VISE](https:\u002F\u002Fgitlab.com\u002Fvgg\u002Fvise) \n\n## 在 [HPatches](https:\u002F\u002Fgithub.com\u002Fhpatches\u002Fhpatches-benchmark) 上的基准测试，mAP\n\n![HPatches-results](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDagnyT_hardnet_readme_4b6c2f3aedd9.png)\n\n\n## 牛津 5k 数据集上的检索，mAP，Hessian-Affine 检测器\n\n| 描述子    | BoW  |  BoW + SV | BoW + SV + QE | HQE + MA |\n| -----    | ----  |  ---- | ---- | ---- |\n| [TFeatLib](https:\u002F\u002Fgithub.com\u002Fvbalnt\u002Ftfeat)   | 46.7  |  55.6 | 72.2 | n\u002Fa |\n| [RootSIFT](http:\u002F\u002Fieeexplore.ieee.org\u002Fdocument\u002F6248018\u002F)    | 55.1  |  63.0 | 78.4 | 88.0 |\n| [L2NetLib+](https:\u002F\u002Fgithub.com\u002Fyuruntian\u002FL2-Net)   | 59.8  |  67.7 | 80.4 | n\u002Fa |\n| HardNetLibNIPS+   | 59.8  |  68.6 | 83.0 |  88.2 |\n| HardNet++   | **60.8**  |  **69.6** | **84.5** | **88.3** |\n| [HesAffNet](https:\u002F\u002Fgithub.com\u002Fducha-aiki\u002Faffnet) + HardNet++ | **68.3**  |  **77.8** | **89.0** | **89.5** |\n\n\n\n## 需求\n\n请使用 Python 2.7，安装 OpenCV 和 requirements.txt 中列出的其他库。\n\n## 数据集与训练\n\n下载数据集并开始学习描述子：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet\n.\u002Fcode\u002Frun_me.sh\n```\n\n日志以 TensorBoard 格式存储在 logs\u002F 目录中。\n\n## 预训练模型\n\n预训练模型可在 [pretrained](pretrained) 文件夹中找到。\n\n## 第三方预训练模型\n\nRahul Mitra 提出了一个新的 [大规模 patch PS 数据集](https:\u002F\u002Fgithub.com\u002Frmitra\u002FPS-Dataset)，并在其上训练出表现更优的 HardNet。原始的 torch 格式权重可在此处获取：[这里](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fq89g5kfuke6c348\u002Fhardnet-PS.t7?dl=1)。\n\n转换后的 PyTorch 版本在此：[这里](pretrained\u002F3rd_party\u002FHardNetPS\u002F)。\n\n![HardNet-Datasets-results](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDagnyT_hardnet_readme_429af0923b28.png)\n\n\n## 我应该使用哪些权重？\n\n对于实际应用，我们推荐 [HardNet++](https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet\u002Fblob\u002Fmaster\u002Fpretrained\u002Fpretrained_all_datasets\u002FHardNet%2B%2B.pth)。\n\n若需与其他基于 Liberty Brown 数据集训练的描述子进行比较，我们推荐 [HardNetLib+](pretrained\u002Ftrain_liberty_with_aug\u002Fcheckpoint_liberty_with_aug.pth)。\n\n若要寻找未在 HPatches 数据集上训练的最佳描述子，我们建议使用 Mitra 等人的模型，链接见上文。\n\n## 使用示例\n\n我们提供了一个使用 HardNet 描述 patch 的示例。脚本期望输入为 [HPatches](https:\u002F\u002Fgithub.com\u002Fhpatches\u002Fhpatches-benchmark) 格式的 patch，即灰度图像，宽度为 patch_size，高度为 n_patches * patch_size。\n```\ncd examples\npython extract_hardnet_desc_from_hpatches_file.py imgs\u002Fref.png out.txt\n```\n或使用 Caffe：\n```    \ncd examples\u002Fcaffe\npython extract_hardnetCaffe_desc_from_hpatches_file.py ..\u002Fimgs\u002Fref.png hardnet_caffe.txt\n```\n\n## 使用 HardNet 的项目\n\n[AffNet](https:\u002F\u002Fgithub.com\u002Fducha-aiki\u002Faffnet) -- 学习局部仿射形状估计器。\n\n\n## 引用\n\n如果您使用此代码，请引用我们：\n\n```bibtex\n@inproceedings{HardNet,\n author = {Anastasiya Mishchuk, Dmytro Mishkin, Filip Radenovic, Jiri Matas},\n title = \"{努力了解邻居的边界：局部描述子学习损失}\",\n booktitle = {NeurIPS 会议论文集},\n year = 2017,\n month = dec\n}\n```","# HardNet 快速上手指南\n\nHardNet 是一个基于 PyTorch 实现的局部描述符学习模型，源自 NIPS 2017 论文。它通过优化邻居边缘（margins）损失函数，在图像匹配和检索任务中表现优异。\n\n## 环境准备\n\n*   **操作系统**: Linux \u002F macOS (Windows 需自行配置兼容环境)\n*   **Python 版本**: 原文推荐 **Python 2.7**，但鉴于 Python 2 已停止维护，建议在 **Python 3.6+** 环境中运行（通常可兼容，若遇报错请尝试切换至 2.7）。\n*   **核心依赖**:\n    *   PyTorch\n    *   OpenCV (`opencv-python`)\n    *   TensorBoard (用于查看训练日志)\n    *   其他依赖库见项目根目录 `requirements.txt`\n\n> **国内加速建议**：\n> *   PyTorch 安装推荐使用清华或中科大镜像源。\n> *   数据集下载：原 PhotoTour 数据集链接已失效，项目已更新使用 **捷克布拉格捷克理工大学 (CTU) 的镜像源**，国内访问速度相对较好。\n\n## 安装步骤\n\n1.  **克隆项目代码**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet\n    cd hardnet\n    ```\n\n2.  **安装依赖库**\n    建议先安装基础视觉库，再安装其余依赖：\n    ```bash\n    pip install opencv-python tensorboard\n    pip install -r requirements.txt\n    ```\n    *(注：若使用 Python 3 遇到兼容性问题，可能需要手动调整 `requirements.txt` 中的部分包版本)*\n\n3.  **获取预训练模型（可选）**\n    项目已包含预训练权重在 `pretrained` 文件夹中。如需使用第三方在 PS 大数据集上训练的更强模型，可参考 README 中的 Dropbox 链接手动下载并放入对应目录。\n\n## 基本使用\n\n以下示例展示如何使用 HardNet 提取图像块（Patches）的描述符。脚本默认输入格式为 **HPatches 格式**（即：单通道灰度图，宽度=补丁尺寸，高度=补丁数量 × 补丁尺寸）。\n\n### 1. 准备输入数据\n确保你有一张符合上述格式的灰度图片，例如 `imgs\u002Fref.png`。\n\n### 2. 运行提取脚本\n进入 `examples` 目录并执行以下命令：\n\n```bash\ncd examples\npython extract_hardnet_desc_from_hpatches_file.py imgs\u002Fref.png out.txt\n```\n\n*   `imgs\u002Fref.png`: 输入的灰度图像文件。\n*   `out.txt`: 输出的描述符文件路径。\n\n### 3. 使用 Caffe 版本（可选）\n如果你习惯使用 Caffe 框架，也可以使用提供的转换脚本：\n\n```bash\ncd examples\u002Fcaffe\npython extract_hardnetCaffe_desc_from_hpatches_file.py ..\u002Fimgs\u002Fref.png hardnet_caffe.txt\n```\n\n### 4. 模型选择建议\n根据应用场景选择合适的预训练权重（位于 `pretrained` 目录）：\n*   **通用最佳实践**: 推荐使用 `HardNet++` 模型（训练于多个数据集），性能最强。\n*   **公平对比**: 若需与仅在 Liberty Brown 数据集上训练的其他描述符对比，请使用 `HardNetLib+`。\n*   **非 HPatches 训练**: 若需要未在任何 HPatches 数据上训练过的模型，建议使用 Mitra 等人提供的 `HardNetPS` 模型。","某自动驾驶团队正在开发高精地图定位系统，需要在车辆行驶过程中，实时将摄像头捕捉的路面特征与云端存储的历史地图进行精准匹配，以确定车辆厘米级位置。\n\n### 没有 hardnet 时\n- **特征匹配不稳定**：在光照剧烈变化（如进出隧道）或视角发生倾斜时，传统的 SIFT 或早期深度学习描述子提取的特征向量区分度不足，导致大量误匹配。\n- **定位漂移严重**：由于局部描述子无法有效抵抗仿射形变，车辆在快速转弯或上下坡时，系统计算出的相对位置出现明显跳变和漂移。\n- **检索效率低下**：为了弥补单个描述子准确率的不足，不得不增加候选匹配点的数量并依赖复杂的后处理算法，显著增加了计算延迟，难以满足实时性要求。\n\n### 使用 hardnet 后\n- **鲁棒性显著提升**：hardnet 通过独特的“硬样本”损失函数训练，生成的描述子在强光、阴影及大角度视角变化下仍能保持极高的辨识度，大幅降低了误匹配率。\n- **定位精度达到厘米级**：结合 AffNet 等检测器，hardnet 能有效处理路面纹理的仿射变形，使车辆在复杂动态场景下的位姿估计平滑且精准，消除了定位跳变。\n- **系统链路更精简**：凭借更高的平均精度均值（mAP），系统可用更少的特征点实现同等甚至更好的检索效果，简化了后端几何验证流程，提升了整体运行帧率。\n\nhardnet 通过极致优化局部描述子的判别能力，让机器视觉在极端环境下也能像人类一样精准“认路”，是高可靠视觉定位系统的核心基石。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDagnyT_hardnet_4b6c2f3a.png","DagnyT","Anastasiia Mishchuk","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FDagnyT_632f697b.jpg","Computer Vision Research Engineer",null,"https:\u002F\u002Fgithub.com\u002FDagnyT",[79,83,86],{"name":80,"color":81,"percentage":82},"Python","#3572A5",94.6,{"name":84,"color":85,"percentage":10},"Jupyter Notebook","#DA5B0B",{"name":87,"color":88,"percentage":89},"Shell","#89e051",2.5,530,102,"2026-03-04T22:22:04","MIT",4,"未说明",{"notes":97,"python":98,"dependencies":99},"README 明确要求使用 Python 2.7（较旧版本）。PhotoTour 数据集原链接已失效，需使用布拉格捷克理工大学（CTU）提供的镜像地址。训练日志以 TensorBoard 格式存储。部分预训练模型提供 Torch (.t7) 和 PyTorch (.pth) 两种格式。若需 C++ 部署，可参考 Notebook 将其编译为 Torchscript。","2.7",[100,101,102],"PyTorch","OpenCV","requirements.txt 中列出的其他库",[104,14,15],"其他",[106,107,108,109,110,111,112,113],"deep-learning","convolutional-neural-networks","computer-vision","metric-learning","image-matching","image-retrieval","pytorch","nips-2017","2026-03-27T02:49:30.150509","2026-04-07T01:56:59.214079",[117,122,127,132,137,142,147,152],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},20758,"运行 HPatches 相关脚本时出现 'Key Error' 或内存不足错误，如何解决？","此类错误通常与数据生成过程或内存不足有关。建议检查计算机的 RAM 大小，运行相关脚本（如 HPatches 数据处理）通常需要较大的内存（例如 16 GB）。此外，注意代码中关于 `nn.init.orthogonal` 的弃用警告，应将其更新为 `nn.init.orthogonal_`。","https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet\u002Fissues\u002F17",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},20756,"如何在训练 HardNet+ 时正确使用数据增强参数（--augmentation 与 --fliprot）？","在论文中报告的 'full' 集合结果通常是仅使用了 --fliprot 进行训练的。如果您想使用完整的数据增强，需要明确指定 --augmentation 参数。具体的评估通常涵盖所有分割集（如 a, b, c, full, illum, view），默认分割通常为 \"a\"。","https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet\u002Fissues\u002F30",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},20757,"HardNetPS 模型与普通 HardNet 模型在结构上有什么区别？如何手动转换？","HardNetPS 与普通 HardNet 的主要区别在于：1. HardNetPS 缺少最后的 BN 层；2. HardNetPS 中的 BN 层启用了可学习的缩放和偏置（affine=True），而普通 HardNet 中则没有（affine=False）。手动转换时需调整网络结构，例如 HardNetPS 的结构定义为：nn.Conv2d(1, 32, ...) 后接 nn.BatchNorm2d(32, affine=True)。","https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet\u002Fissues\u002F6",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},20759,"在哪里可以找到代码中引用的 `pytorch_sift` 文件？","原始的 `pytorch_sift.py` 文件可以在旧版本的仓库中找到（链接：https:\u002F\u002Fgithub.com\u002Fducha-aiki\u002Fpytorch-sift\u002Fblob\u002Fcff1b3725a9c84cbbb52999653ea3926c2444d69\u002Fpytorch_sift.py）。目前官方推荐的微分 SIFT 实现已迁移至 Kornia 库，可通过 `kornia.feature.SIFTDescriptor` 使用。","https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet\u002Fissues\u002F26",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},20760,"使用 HardNet 替换 SIFT 作为局部特征提取器时效果不佳，采样 patch 的尺寸应如何处理？","如果直接使用 SIFT 检测到的关键点直径（通常很小，\u003C8 像素）采样并放大到 32x32，可能会导致性能下降。建议直接使用标准的 32x32 patch 数据集（如 Brown, PS-Dataset, HPatches），或者在采样时确保覆盖足够的上下文区域，而不仅仅是依赖关键点直径。对于预提取的 patch 数据集，只需将其 resize 到 32x32 即可输入网络。","https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet\u002Fissues\u002F14",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},20761,"为什么 HardNetClassicalHardNegMiningSiftInit 的性能比 HardNetMultipleDatasets 差很多？","这是因为部分脚本（如 HardNetClassicalHardNegMiningSiftInit）已过时，未同步更新超参数（如学习率相差 100 倍）和 PyTorch 版本兼容性。当前维护的最新脚本是 `code\u002Frun_me.sh`。此外，HardNetMultipleDatasets 主要在 HPatches 上评估，其在 Brown 数据集上的低 FPR 仅是健全性检查，因为测试数据可能包含在训练分布中，这是正常现象。","https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet\u002Fissues\u002F27",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},20762,"为什么每次运行代码评估 Liberty\u002FNotredame 数据集时得到的结果都不一致？","结果波动通常是由于 GPU 的非确定性计算导致的。为了获得完全可复现的结果，请在代码中添加设置：`torch.backends.cudnn.deterministic = True` 并将数据加载器的 `num_workers` 设置为 0。这样可以从运行到运行获得完全相同的结果，无需多次运行取平均。","https:\u002F\u002Fgithub.com\u002FDagnyT\u002Fhardnet\u002Fissues\u002F10",{"id":153,"question_zh":154,"answer_zh":155,"source_url":146},20763,"运行 run_me.sh 脚本时出现 'syntax error near unexpected token' 错误，原因是什么？","该错误通常是因为直接从 GitHub 网页下载了 HTML 页面而不是原始脚本文件。请确保从仓库的原始文件链接下载 `run_me.sh`，或者直接在终端中使用 git clone 获取代码。正确的执行路径应为 `.\u002Fcode\u002Frun_me.sh`（从仓库根目录运行）。",[]]