0

0

PHP如何调用地平线征程AI_发感知数据调决策接口优路径【良方】

絕刀狂花

絕刀狂花

发布时间:2026-01-14 16:07:43

|

536人浏览过

|

来源于php中文网

原创

PHP无法直接调用地平线征程芯片AI接口,因其SDK仅支持C/C++/Python(通过hbpython或ctypes)在征程Linux环境下调用;可行方案是用Python构建REST桥接服务,PHP通过curl调用该服务。

php如何调用地平线征程ai_发感知数据调决策接口优路径【良方】

PHP 无法直接调用地平线(Horizon Robotics)征程(Journey)系列芯片的 AI 感知数据或“发感知数据调决策接口优路径”——这不是一个标准对外开放的 Web API,也不是 PHP 可以通过 curlfile_get_contents 调用的 HTTP 接口。

地平线征程 SDK 不提供 PHP 绑定

地平线官方发布的 horizon_sdkhbdk(Horizon Build Development Kit)以及运行时依赖(如 libhbirun.solibhbrt.so)均为 C/C++ 编写的原生库,仅支持在征程芯片(如 X3/X5)Linux 环境下通过 C/C++/Python(通过 ctypes 或官方 hbpython)调用。PHP 没有官方维护的 FFI 封装或扩展支持这些底层 AI 运行时。

  • 你看到的“感知数据 → 决策 → 优路径”流程,实际运行在征程 SoC 的 BPU(Brain Processing Unit)+ ARM 上,由地平线 hbirun 工具链加载 .hb 模型并执行,全程不暴露 HTTP/REST 接口
  • php -r "file_get_contents('http://localhost:8080/perception')" 类请求必然失败——该地址根本不存在
  • 强行用 PHP 的 exec() 去调用 hbirun 命令行工具?不可行:模型加载、内存绑定、BPU 初始化必须在特定内核态上下文完成,普通用户态进程无法绕过地平线 runtime 的权限与资源管控

可行路径:用 Python 做桥接服务,PHP 调用其 HTTP 接口

若业务系统是 PHP 构建,又必须接入征程 AI 输出(如车道线检测、障碍物坐标、最优轨迹点),唯一工程上可落地的方式是:在征程设备端部署一个轻量 Python 服务,封装地平线 SDK 调用逻辑,对外暴露 REST 接口;PHP 通过 curl 请求该服务。

  • Python 侧需使用地平线官方 hbpython(非 PyPI 包,随 HBDK 发布)或 ctypes 手动加载 libhbrt.so,调用 hbrt_model_createhbrt_model_infer 等函数
  • Python 服务建议用 flaskfastapi,监听本地 127.0.0.1:8000,接收图像 base64 或 JPEG 路径,返回 JSON 格式感知结果(如 {"obstacles": [...], "lane_lines": [...], "optimal_path": [...]}
  • PHP 中用 curl_init() 发送 POST 请求,注意设置 CURLOPT_UNIX_SOCKET_PATH(若走 Unix socket 提升性能)或确保 Python 服务监听在物理网卡(非仅 localhost)
import uvicorn
from fastapi import FastAPI, File, UploadFile
from starlette.responses import JSONResponse
import numpy as np
# 地平线 SDK 加载逻辑(略,需真实 HB environment)
app = FastAPI()

@app.post("/infer") async def infer_route(file: UploadFile = File(...)): img_bytes = await file.read()

调用 hbpython 推理(此处省略具体 SDK 调用)

result = {"obstacles": [{"id":1,"x":2.3,"y":15.7}], "optimal_path": [[0.0,0.0],[0.5,1.2]]}
return JSONResponse(result)

if name == "main": uvicorn.run(app, host="0.0.0.0", port=8000)

常见错误:误把开发板 demo 当成可远程调用接口

很多开发者看到地平线提供的 sample_yolov5sample_lane_detection 示例,就以为加个 flask 包一层就能上线。实际踩坑点极多:

MotionGo
MotionGo

AI智能对话式PPT创作,输入内容一键即可完成

下载

立即学习PHP免费学习笔记(深入)”;

  • libhbrt.so 依赖特定内核版本(如 Linux 4.19.x)、特定 glibc 版本(HBKD 3.29 要求 glibc ≥ 2.28),PHP 进程若跨环境调用(如 x86 宿主机调征程 ARM 设备),二进制不兼容直接 Segmentation fault
  • 模型输入尺寸、归一化方式、输出后处理(NMS、插值、坐标系转换)必须与地平线工具链导出的 .hb 模型严格一致,PHP 层若自行 resize 图像或改 dtype(如 float32 → uint8),结果完全失效
  • 征程 runtime 默认启用内存锁定(mlock),多次调用未释放会触发 ENOMEM;Python 桥接层必须做模型单例 + 推理 session 复用,不能每次请求都 hbrt_model_create

真正要跑通,得在征程设备上完整部署 HBKD 环境、交叉编译 Python、验证 hbpython 导入无报错,再写桥接逻辑——PHP 本身只是最外层的 HTTP 客户端,它不碰 BPU,也不该碰。

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

751

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

636

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

758

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

618

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1262

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

577

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

706

2023.08.11

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

12

2026.01.14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP自制框架
PHP自制框架

共8课时 | 0.6万人学习

PHP面向对象基础课程(更新中)
PHP面向对象基础课程(更新中)

共12课时 | 0.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号