AXERA-TECH/ABot-Recon-Axera

Model

ABot-Recon on Axera NPU

0

9 commits

3 linked in READMEs

updated Sep 19, 2026

See the code

README

ABot-Recon on Axera NPU

ABot-Recon(流式前馈三维重建:视频 → 相机位姿 + 世界坐标点云 + 置信度)编译到 Axera AX650N NPU 的模型文件。

模型与算法来自原作者:amap-cvlab/ABot-Recon(主页 https://amap-cvlab.github.io/ABot-Recon-html/),本仓库只做 Axera NPU 的格式转换。

代码与使用说明:https://github.com/AXERA-TECH/ABot-Recon-Axera

文件

文件说明
encoder_kitti02.axmodel图像编码器,输入 [1,3,280,504](高 280 × 宽 504,横版)
decoder_step_kitti02.axmodel流式解码器(带 KV cache)
heads_kitti02.axmodel输出头:local_points / camera_features / confidence
host_pose_head/pose_head.safetensors主机侧位姿头权重(numpy 加载)
host_pose_head/pose_head_config.json位姿头结构参数

三个 axmodel 由 pulsar2 编译,芯片 AX650N,支持 AXCL PCIe 卡和 AX650 片上两种运行方式。

模型输入 280×504(高×宽,即横版 16:9 画幅)。预处理把帧按宽度缩放到 504,再上下居中裁剪或填充到 280:横版 16:9 视频几乎不裁;竖版视频只保留中间约 1/3 画面,请使用横版视频。

使用

# 下载
hf download AXERA-TECH/ABot-Recon-Axera --local-dir ABot-Recon

# 代码
git clone https://github.com/AXERA-TECH/ABot-Recon-Axera.git
cd ABot-Recon-Axera
pip install -r requirements.txt          # Axera 运行时与 pyaxengine 来自 SDK

# 起服务(网页上传视频 → 点云 / 户型俯视图 / 3D 查看)
ABOT_MODELS=/path/to/ABot-Recon \
ABOT_POSE_WEIGHTS=/path/to/ABot-Recon/host_pose_head/pose_head.safetensors \
ABOT_POSE_CONFIG=/path/to/ABot-Recon/host_pose_head/pose_head_config.json \
bash start_service.sh

打开 http://<host>:8011。Python 调用:

from abot_axera.backend import build_abot_recon
model = build_abot_recon(model_dir="ABot-Recon", pose_weights="ABot-Recon/host_pose_head/pose_head.safetensors",
                         pose_config="ABot-Recon/host_pose_head/pose_head_config.json", device_id=0)
res = model.infer(["f000.jpg", "f001.jpg", ...], output_world_points=True, output_confidence=True)
res.camera_poses    # [N,4,4] c2w
res.world_points    # [N,280,504,3]
res.confidence      # [N,280,504]

资源消耗(AX650N)

CMM 常驻5341 MiB(encoder 337 + decoder_step 2513 + heads 217 + KV cache 2243)
每帧耗时3.0 s(encoder 0.19 + decoder_step 2.63 + heads 0.13)
模型加载23 s

片上运行需要板子 CMM 预留 ≥ 6 GB。

许可

内容许可
模型权重(本仓库全部 .axmodel 与位姿头)CC BY-NC 4.0,仅限非商业用途,见 MODEL_LICENSE.md
使用边界MODEL_USAGE_GUIDELINES.md / 中文
代码(转换与推理实现)Apache 2.0,见 LICENSENOTICE
第三方组件THIRD_PARTY_NOTICES.md

这些权重转换自 ABot-Recon 发布的权重,后者派生自 Pi3;再分发须保留对 Pi3 与 ABot-Recon 的署名与 CC BY-NC 4.0 条款。商业使用需另行获得书面授权。

已知限制

  • 无回环闭合。
  • present_valid 封顶 8(应为 11),长序列有轻微漂移。
3d-reconstruction
ax650
axcl
axera
image-to-3d
slam

Contributors

zheqiushui

8 commits

qqc1989

1 commits

AXERA-TECH/ABot-Recon-Axera

Model

ABot-Recon on Axera NPU

0

9 commits

3 linked in READMEs

updated Sep 19, 2026

See the code

README

ABot-Recon on Axera NPU

ABot-Recon(流式前馈三维重建:视频 → 相机位姿 + 世界坐标点云 + 置信度)编译到 Axera AX650N NPU 的模型文件。

模型与算法来自原作者:amap-cvlab/ABot-Recon(主页 https://amap-cvlab.github.io/ABot-Recon-html/),本仓库只做 Axera NPU 的格式转换。

代码与使用说明:https://github.com/AXERA-TECH/ABot-Recon-Axera

文件

文件说明
encoder_kitti02.axmodel图像编码器,输入 [1,3,280,504](高 280 × 宽 504,横版)
decoder_step_kitti02.axmodel流式解码器(带 KV cache)
heads_kitti02.axmodel输出头:local_points / camera_features / confidence
host_pose_head/pose_head.safetensors主机侧位姿头权重(numpy 加载)
host_pose_head/pose_head_config.json位姿头结构参数

三个 axmodel 由 pulsar2 编译,芯片 AX650N,支持 AXCL PCIe 卡和 AX650 片上两种运行方式。

模型输入 280×504(高×宽,即横版 16:9 画幅)。预处理把帧按宽度缩放到 504,再上下居中裁剪或填充到 280:横版 16:9 视频几乎不裁;竖版视频只保留中间约 1/3 画面,请使用横版视频。

使用

# 下载
hf download AXERA-TECH/ABot-Recon-Axera --local-dir ABot-Recon

# 代码
git clone https://github.com/AXERA-TECH/ABot-Recon-Axera.git
cd ABot-Recon-Axera
pip install -r requirements.txt          # Axera 运行时与 pyaxengine 来自 SDK

# 起服务(网页上传视频 → 点云 / 户型俯视图 / 3D 查看)
ABOT_MODELS=/path/to/ABot-Recon \
ABOT_POSE_WEIGHTS=/path/to/ABot-Recon/host_pose_head/pose_head.safetensors \
ABOT_POSE_CONFIG=/path/to/ABot-Recon/host_pose_head/pose_head_config.json \
bash start_service.sh

打开 http://<host>:8011。Python 调用:

from abot_axera.backend import build_abot_recon
model = build_abot_recon(model_dir="ABot-Recon", pose_weights="ABot-Recon/host_pose_head/pose_head.safetensors",
                         pose_config="ABot-Recon/host_pose_head/pose_head_config.json", device_id=0)
res = model.infer(["f000.jpg", "f001.jpg", ...], output_world_points=True, output_confidence=True)
res.camera_poses    # [N,4,4] c2w
res.world_points    # [N,280,504,3]
res.confidence      # [N,280,504]

资源消耗(AX650N)

CMM 常驻5341 MiB(encoder 337 + decoder_step 2513 + heads 217 + KV cache 2243)
每帧耗时3.0 s(encoder 0.19 + decoder_step 2.63 + heads 0.13)
模型加载23 s

片上运行需要板子 CMM 预留 ≥ 6 GB。

许可

内容许可
模型权重(本仓库全部 .axmodel 与位姿头)CC BY-NC 4.0,仅限非商业用途,见 MODEL_LICENSE.md
使用边界MODEL_USAGE_GUIDELINES.md / 中文
代码(转换与推理实现)Apache 2.0,见 LICENSENOTICE
第三方组件THIRD_PARTY_NOTICES.md

这些权重转换自 ABot-Recon 发布的权重,后者派生自 Pi3;再分发须保留对 Pi3 与 ABot-Recon 的署名与 CC BY-NC 4.0 条款。商业使用需另行获得书面授权。

已知限制

  • 无回环闭合。
  • present_valid 封顶 8(应为 11),长序列有轻微漂移。
3d-reconstruction
ax650
axcl
axera
image-to-3d
slam

Contributors

zheqiushui

8 commits

qqc1989

1 commits