
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
NanoDB 是一个基于 CUDA 优化的多模态向量数据库,它使用 CLIP(对比语言-图像预训练)视觉Transformer模型生成的嵌入向量,实现文本到图像(txt2img)和图像到图像(img2img)的相似性搜索。该数据库专为边缘设备优化,可在 Jetson 等嵌入式平台上实时运行(如在 Jetson AGX Orin 上对 MS COCO 数据集的 27.5 万张图像进行实时检索)。
除边缘环境下的高效数据索引与检索外,NanoDB 常与大型语言模型(LLM)结合,用于检索增强生成(RAG),以扩展 LLM 的上下文长度(如突破 Llama-2 模型的 4096 令牌限制)。同时,其生成的嵌入向量可直接作为视觉语言模型(VLM)的输入。
NanoDB 镜像可通过 jetson-containers 工具自动获取(推荐),或手动指定 Docker 镜像标签:
bash# 使用 jetson-containers 自动拉取/构建兼容镜像 jetson-containers run $(autotag nanodb) # 或手动指定镜像标签(需匹配 JetPack 版本) sudo docker run --runtime nvidia -it --rm --network=host dustynv/nanodb:r36.2.0
4.3.1 基本索引命令
将本地图像数据集挂载到容器中,通过 --scan 命令递归扫描并生成嵌入向量:
bash# 示例:索引 /path/to/dataset 目录,结果保存至 /path/to/dataset/nanodb sudo docker run --runtime nvidia -it --rm \ -v /path/to/dataset:/my_dataset \ dustynv/nanodb:r36.2.0 \ python3 -m nanodb \ --scan /my_dataset \ # 待扫描的图像目录(可多次指定) --path /my_dataset/nanodb \ # 数据库保存路径(自动创建) --autosave \ # 扫描后自动保存数据库 --validate # 验证图像是否可被正确检索
说明:若数据集位于
jetson-containers/data目录下,容器会自动将其挂载为/data,无需额外-v参数。
4.3.2 预索引数据库
如需跳过索引步骤,可下载预构建的数据库,参考 NanoDB 教程。
索引完成后,NanoDB 会进入命令行交互模式,支持搜索、增量扫描、保存数据库等操作。
4.4.1 文本/图像搜索
在控制台输入文本查询,返回相似图像结果:
bash> a girl riding a horse # 文本查询示例 # 输出结果(默认返回 top 8,可通过 --k 参数调整) * index=80110 /data/datasets/coco/2017/train2017/000000393735.jpg similarity=0.29991915822029114 * index=158747 /data/datasets/coco/2017/unlabeled2017/000000189708.jpg similarity=0.29254037141799927 ...
4.4.2 增量扫描目录
输入目录路径,增量扫描并添加新图像到数据库:
bash> /data/pascal_voc # 扫描新数据集目录 # 输出示例 -- loaded /data/pascal_voc/VOCdevkit/VOC2012/JPEGImages/2007_000027.jpg in 4 ms -- loaded /data/pascal_voc/VOCdevkit/VOC2012/JPEGImages/2007_000032.jpg in 2 ms ...
4.4.3 保存数据库
完成增量更新后,保存数据库:
bash> save # 将更新保存至 --path 指定的目录 # 输出示例 -- saving database to /my_dataset/nanodb
通过 --server 参数启动 Gradio Web 服务,支持文本查询与图像上传:
4.5.1 启动 Web UI
bashsudo docker run --runtime nvidia -it --rm \ -v /path/to/dataset:/my_dataset \ -p 7860:7860 \ # 映射端口(默认 7860) dustynv/nanodb:r36.2.0 \ python3 -m nanodb \ --path /my_dataset/nanodb \ # 加载现有数据库 --server \ # 启动 Web 服务 --port=7860 \ # 端口号(默认 7860) --host=0.0.0.0 # 绑定所有网络接口(默认)
4.5.2 访问 Web UI
在浏览器中访问 http://<设备IP>:7860?__theme=dark,可输入文本查询或上传图像进行相似性搜索。
| 参数名 | 描述 |
|---|---|
--scan <路径> | 指定待索引的图像目录/文件(支持递归扫描,可多次使用)。 |
--path <路径> | 数据库保存/加载路径(若目录不存在则自动创建)。 |
--autosave | 扫描完成后自动保存数据库,避免手动执行 save 命令。 |
--validate | 验证索引图像是否可被正确检索(检查嵌入向量有效性)。 |
--server | 启动 Gradio Web 服务,支持可视化交互。 |
--port <端口> | Web 服务端口号(默认 7860)。 |
--host <IP> | Web 服务绑定的 IP 地址(默认 0.0.0.0,允许外部访问)。 |
--k <数量> | 搜索结果返回的最大数量(默认 8)。 |
| 镜像标签 | 发布日期 | 架构 | 大小 | 兼容 JetPack 版本 |
|---|---|---|---|---|
dustynv/nanodb:r35.2.1 | 2023-12-14 | arm64 | 6.9GB | JetPack 5.1+(L4T R35.x) |
dustynv/nanodb:r35.3.1 | 2023-12-15 | arm64 | 7.0GB | JetPack 5.1+(L4T R35.x) |
dustynv/nanodb:r35.4.1 | 2023-12-12 | arm64 | 6.9GB | JetPack 5.1+(L4T R35.x) |
dustynv/nanodb:r36.2.0 | 2024-03-08 | arm64 | 7.8GB | JetPack 6.0+(L4T R36.x) |
兼容性说明:L4T R35.x 镜像可在所有 JetPack 5.1+ 版本上运行,R36.x 镜像可在 JetPack 6.0+ 上运行。
NanoDB 依赖以下组件(已预安装在镜像中):
build-essential、cmake、rustcuda:11.4、cudnn、cuda-pythonpytorch:2.2、torchvision、tensorrt、torch2trtnumpy、onnx、faiss(向量检索)、huggingface_hub、transformers若需手动构建镜像,可使用 jetson-containers 工具:
bash# 自动构建兼容当前 JetPack 版本的镜像 jetson-containers build nanodb
构建过程将自动拉取依赖项并编译,完成后可通过 autotag nanodb 引用生成的镜像。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






来自真实用户的反馈,见证轩辕镜像的优质服务