ARM边缘网关C++视觉开发环境搭建:OpenCV编译与VS Code远程配置
1. 项目缘起与设备定位最近在折腾一个边缘侧的视觉识别项目手头正好有一台联想边缘计算网关ECG-AR70E。这机器定位很明确就是为工业现场、智慧零售这类需要本地实时处理数据的场景设计的。它不像我们平时用的开发板那么“玩具”自带了不少工业接口性能也足够跑一些轻量级的AI模型。但厂商预装的系统往往是裁剪过的开发环境几乎为零。这次的目标很直接在这台ARM架构的网关上从零搭建一个能流畅进行C视觉开发的本地环境核心就是Debian 9/Ubuntu 20系统、OpenCV库以及VS Code编辑器。为什么是这三个组合Debian/Ubuntu提供了稳定且软件包丰富的Linux基础OpenCV是计算机视觉的“标准库”从图像处理到目标检测都离不开它而VS Code则是目前最受欢迎的轻量级代码编辑器远程开发体验极佳能让你在舒适的PC上编写代码代码实际运行和调试则在网关设备上完成完美解决了边缘设备屏幕小、输入不便的问题。整个过程会涉及系统选择、交叉编译环境考量、依赖库的“坑”、以及如何让VS Code远程连接这台ARM设备。如果你手头有类似的工控机、边缘盒子或者对在非x86架构上搭建C开发环境感兴趣这篇记录应该能帮你省下不少折腾的时间。2. 设备初探与系统选型考量拿到ECG-AR70E第一步不是急着刷系统而是先搞清楚它的“底细”。通过串口或者已有的网络管理口登录用uname -a和cat /proc/cpuinfo查看确认它的CPU是ARM架构的可能是NXP或瑞芯微的芯片内存和存储空间大小。这决定了后续所有软件包都必须找对应的ARM版本不能直接用PC上的x86_64包。接下来是系统选型。标题里提到了Debian 9和Ubuntu 20.04。这里有个关键点对于边缘计算网关这类嵌入式设备系统版本的选择往往不由“最新”决定而由“硬件驱动支持”和“长期稳定性”决定。Debian 9 (Stretch)非常稳定软件包版本较老。如果你的项目对系统底层的改动需求小追求极致的运行稳定且所需软件在老版本库中都能满足Debian 9是个保守但可靠的选择。它的软件源可能已经停止更新但镜像站通常还有存档。Ubuntu 20.04 LTS (Focal Fossa)我更推荐这个选择。LTS代表长期支持官方支持到2025年。相比Debian 9它提供了更新的软件包如GCC、CMake版本对现代C特性支持更好社区资源和问题解答也更丰富。更重要的是Ubuntu对ARM架构的支持非常成熟从官方源就能直接安装ARM版本的软件包省去大量交叉编译的麻烦。实操建议除非硬件厂商明确只提供了Debian 9的驱动否则优先选择Ubuntu 20.04 LTS for ARM。你可以从Ubuntu官方或国内镜像站如清华、阿里云镜像下载针对ARM64或ARMhf具体看你的CPU的服务器版Server镜像。服务器版没有图形界面更节省资源适合网关设备。安装系统通常有两种方式直接刷写将Ubuntu ARM镜像写入SD卡或U盘通过网关的USB口或SD卡槽启动并安装。这需要设备支持从外部存储启动且可能涉及BIOS/UEFI设置。网络安装更专业的方式是通过PXE网络安装适合批量部署。但对于个人用户第一种方式更直接。安装过程中记得为网关配置一个静态IP地址方便后续通过SSH远程连接。命令大致是修改/etc/netplan/01-netcfg.yaml文件Ubuntu 20.04或/etc/network/interfaces文件Debian 9。3. 基础开发环境搭建编译器、构建工具与依赖库系统装好能SSH登录后我们就开始搭建最核心的编译和构建环境。这一步是后续所有工作的基石。3.1 安装编译工具链首先更新软件包列表并升级现有软件sudo apt update sudo apt upgrade -y安装C/C编译器和基础开发工具sudo apt install build-essential cmake pkg-config -ybuild-essential包含了GCC、G、make等核心编译工具。cmake现代C项目的主流构建工具后面编译OpenCV必须用它。pkg-config帮助查找库文件和头文件路径的工具。验证安装gcc --version cmake --version3.2 安装OpenCV的必备依赖OpenCV功能强大依赖众多。我们需要安装图像I/O、视频编解码、图形界面即使服务器版某些模块也需要GUI库的头文件、优化数学库等。以下是一套比较全的依赖安装命令sudo apt install libjpeg-dev libpng-dev libtiff-dev -y sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y sudo apt install libxvidcore-dev libx264-dev -y sudo apt install libgtk-3-dev -y # 或者 libgtk2.0-dev 视情况而定 sudo apt install libatlas-base-dev gfortran -y # 优化数学库 sudo apt install python3-dev python3-numpy -y # Python支持即使你用COpenCV构建时也可能需要 sudo apt install libtbb-dev -y # Intel TBB多线程库提升性能重要提示在ARM设备上从源编译大型软件如OpenCV耗时很长可能数小时。因此务必确保所有依赖一次性安装正确避免编译中途失败。libgtk-3-dev这类包可能很大但如果你确定你的应用不需要任何GUI功能如imshow且OpenCV的highgui模块你不打算用可以考虑不安装以节省空间和编译时间。但首次搭建时建议先装上减少不确定性。4. 编译与安装OpenCVARM平台的策略与优化这是最耗时也最容易出错的环节。我们不推荐直接apt install libopencv-dev因为软件源中的预编译包版本可能较旧且编译选项未必适合你的需求比如可能缺少某些模块如contrib。4.1 下载源码我们选择较新且稳定的OpenCV 4.5.x版本并带上额外的opencv_contrib模块。cd ~ # 安装git如果还没装 sudo apt install git -y # 下载OpenCV和contrib源码 git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git # 切换到特定版本标签例如4.5.5 cd opencv git checkout 4.5.5 cd ../opencv_contrib git checkout 4.5.54.2 配置CMake在opencv目录下创建一个构建目录并进入cd ~/opencv mkdir build cd build然后执行CMake配置。下面的命令包含了一些关键选项cmake -D CMAKE_BUILD_TYPERELEASE \ -D CMAKE_INSTALL_PREFIX/usr/local \ -D OPENCV_EXTRA_MODULES_PATH~/opencv_contrib/modules \ -D WITH_TBBON \ -D WITH_OPENMPON \ -D ENABLE_NEONON \ -D BUILD_opencv_python3ON \ -D BUILD_EXAMPLESOFF \ -D BUILD_TESTSOFF \ -D BUILD_PERF_TESTSOFF \ -D WITH_GTKON \ -D WITH_FFMPEGON \ ..参数解析与ARM平台特别关注点-D CMAKE_INSTALL_PREFIX/usr/local指定安装路径通常库会装到/usr/local/lib头文件在/usr/local/include。-D OPENCV_EXTRA_MODULES_PATH指定contrib模块路径以启用SIFT、SURF等额外算法。-D WITH_TBBON和-D WITH_OPENMPON启用多线程支持充分利用多核CPU性能。-D ENABLE_NEONON这是ARM平台的关键优化选项NEON是ARM的SIMD指令集能大幅加速图像处理等计算密集型任务。务必开启。-D BUILD_EXAMPLESOFF关闭示例构建节省编译时间。-D WITH_GTK和-D WITH_FFMPEG根据之前安装的依赖决定是否开启GTK图形界面和FFmpeg视频支持。执行cmake命令后仔细查看终端输出。确保没有显示“NOT FOUND”的关键依赖如FFmpeg、GTK。如果发现有依赖缺失需要先安装对应的-dev包然后删除build目录下的CMakeCache.txt文件再重新运行cmake命令。4.3 编译与安装配置成功后开始编译。使用make命令并加上-j参数指定并行编译的作业数可以显著加快速度。作业数通常设置为CPU核心数的1到2倍。你可以用nproc命令查看核心数。# 假设是4核CPU make -j4这个过程会非常漫长在ARM网关上进行全量编译可能需要2-4个小时甚至更久。期间CPU会满载设备可能会发热这是正常的。编译成功后执行安装sudo make install sudo ldconfig # 更新系统的动态链接库缓存4.4 验证安装安装完成后写一个简单的C程序测试。 创建test_opencv.cpp#include opencv2/opencv.hpp #include iostream int main() { cv::Mat image cv::Mat::zeros(200, 300, CV_8UC3); cv::putText(image, Hello OpenCV on ARM!, cv::Point(30, 100), cv::FONT_HERSHEY_SIMPLEX, 0.8, cv::Scalar(0, 255, 0), 2); std::cout OpenCV test successful! Image size: image.size() std::endl; // 如果安装了GUI支持且需要显示可以取消下面注释 // cv::imshow(Test, image); // cv::waitKey(0); return 0; }编译并运行g -stdc11 test_opencv.cpp -o test_opencv pkg-config --cflags --libs opencv4 ./test_opencv如果看到输出OpenCV test successful! Image size: 300 x 200恭喜你OpenCV环境搭建成功。5. 配置VS Code远程开发环境在网关本机上用vim或nano写代码效率太低。VS Code的Remote - SSH扩展完美解决了这个问题。它的原理是在你的Windows/Mac/Linux主机客户端上运行VS Code界面而所有开发工具编译器、调试器、终端实际上都在远程的ARM网关服务器上执行。5.1 客户端你的电脑配置在VS Code中安装Remote - SSH扩展。确保你的电脑可以通过SSH连接到网关使用之前设置的静态IP。点击VS Code左下角的绿色远程连接按钮选择“Connect to Host...”然后“Add New SSH Host”。输入连接命令例如ssh username192.168.1.100。根据提示选择SSH配置文件路径通常是~/.ssh/config并输入网关的登录密码。5.2 服务器端网关自动配置首次连接时VS Code会自动在网关上安装一个轻量级的服务器端组件vscode-server。这个过程需要网关能够访问GitHub以下载对应版本的服务端。如果遇到网络问题导致失败你可能需要手动配置代理或寻找其他解决方案。连接成功后VS Code的整个界面就变成了在远程环境工作。你可以在资源管理器中打开网关上的项目文件夹。5.3 安装必要的扩展在远程连接状态下切换到扩展视图。你会发现扩展分为“本地”和“远程”两类。你需要在远程侧安装以下扩展C/C(Microsoft)提供C的IntelliSense代码补全、跳转、调试支持。CMake Tools(Microsoft)如果你使用CMake管理项目这个扩展能提供图形化的配置、构建、调试按钮。安装完成后这些扩展将在网关的ARM环境中运行。5.4 配置C IntelliSense和调试这是让开发体验流畅的关键。VS Code通过配置文件来指导它的行为。创建c_cpp_properties.json按CtrlShiftP输入 “C/C: Edit Configurations (UI)”通过UI界面配置更直观。设置“编译器路径”为网关上的GCC路径如/usr/bin/g。设置“IntelliSense 模式”为linux-gcc-arm64根据你的架构选择。在“包含路径”中添加OpenCV等第三方库的头文件路径例如[ ${workspaceFolder}/**, /usr/local/include/opencv4, /usr/include ]这个文件帮助代码编辑器实现准确的自动补全和错误检查。创建tasks.json用于定义构建任务。按CtrlShiftP输入 “Tasks: Configure Task”选择“使用模板创建tasks.json文件”然后选择“Others”。编辑生成的文件添加一个构建任务{ version: 2.0.0, tasks: [ { label: build my project, type: shell, command: g, args: [ -stdc11, -g, ${file}, -o, ${fileDirname}/${fileBasenameNoExtension}, pkg-config, --cflags, --libs, opencv4 ], group: { kind: build, isDefault: true }, problemMatcher: [$gcc] } ] }这个任务允许你按CtrlShiftB直接编译当前打开的C文件并链接OpenCV库。创建launch.json用于配置调试。切换到“运行和调试”视图点击“创建launch.json文件”选择“C (GDB/LLDB)”。配置如下{ version: 0.2.0, configurations: [ { name: (gdb) Launch, type: cppdbg, request: launch, program: ${fileDirname}/${fileBasenameNoExtension}, args: [], stopAtEntry: false, cwd: ${fileDirname}, environment: [], externalConsole: false, MIMode: gdb, miDebuggerPath: /usr/bin/gdb, setupCommands: [ { description: Enable pretty-printing for gdb, text: -enable-pretty-printing, ignoreFailures: true } ], preLaunchTask: build my project // 调试前先执行编译任务 } ] }配置好后你就可以在VS Code中设置断点按F5进行图形化调试了就像在本地开发一样。6. 实战踩坑与性能调优要点环境搭起来只是第一步真正用起来还会遇到各种问题。这里分享几个我实际遇到的坑和对应的解决方案。6.1 依赖库版本冲突与缺失问题CMake配置时报错找不到某个库或者找到的版本不对。排查仔细阅读CMake的输出信息错误通常很明确。例如Could NOT find JPEG说明libjpeg库没找到。解决确认是否安装了对应的-dev包。libjpeg和libjpeg-dev是两个东西编译需要的是-dev包。确认软件源是否正常。可以尝试更换为国内镜像源如阿里云、清华源并sudo apt update。对于极少数在官方源里没有的库可能需要从源码编译安装但这会增加复杂度。6.2 OpenCV编译时间过长与内存不足问题ARM平台编译OpenCV速度慢且可能因内存不足而编译失败尤其是单板只有1-2GB内存时。优化策略减少并行作业数如果编译过程中因内存不足被系统杀死Killed将make -j4改为make -j2甚至make单线程虽然更慢但内存压力小。增加交换空间Swap在网关的存储上划分一部分作为交换分区可以缓解内存压力。# 创建一个2GB的交换文件 sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 为了永久生效将下面一行添加到 /etc/fstab # /swapfile none swap sw 0 0选择性编译模块在CMake时通过-D BUILD_opencv_moduleOFF关闭你确定用不到的模块如-D BUILD_opencv_javaOFF能显著减少编译量。6.3 VS Code远程连接与扩展安装失败问题VS Code连接时卡在“Setting up SSH Host”或者远程扩展安装失败。排查网络问题VS Code服务器端需要从GitHub下载。确保网关设备能访问互联网。如果网络受限可以尝试手动下载对应版本的vscode-server包并离线安装具体方法可参考VS Code官方文档。SSH配置检查~/.ssh/config文件确认主机名、IP、用户名正确。尝试在终端直接用ssh usernameip连接看是否需要额外的认证步骤。权限问题确保用于SSH登录的用户有足够的权限在用户目录下写入文件。6.4 运行时链接库错误问题编译成功但运行程序时提示error while loading shared libraries: libopencv_core.so.4.5: cannot open shared object file。原因系统找不到动态链接库。虽然我们安装了OpenCV到/usr/local/lib但系统默认的库搜索路径可能不包含它。解决运行sudo ldconfig更新缓存这通常能解决。如果还不行可以手动将库路径加入配置echo /usr/local/lib | sudo tee /etc/ld.so.conf.d/opencv.conf sudo ldconfig或者在运行程序前临时设置环境变量LD_LIBRARY_PATH/usr/local/lib:$LD_LIBRARY_PATH ./your_program6.5 ARM平台性能调优环境搭好程序能跑接下来就要考虑效率。编译器优化在编译你的应用时可以加上优化标志如-O2或-O3。g -stdc11 -O3 -marchnative your_code.cpp -o your_program pkg-config --cflags --libs opencv4-marchnative让编译器针对当前CPU架构生成最优指令。利用NEON确保OpenCV在编译时开启了ENABLE_NEONON。OpenCV内部许多函数已经针对NEON做了优化无需你手动编写内联汇编。多线程在你的C代码中合理使用OpenMP或TBB进行并行化。例如一个简单的for循环处理图像像素可以用OpenMP加速#include omp.h #pragma omp parallel for for(int i 0; i image.rows; i) { // 处理每一行 }编译时需要加上-fopenmp标志。7. 一个完整的边缘视觉项目示例运动检测为了把环境用起来我们实现一个简单的运动检测程序它从摄像头读取视频流通过帧差法检测运动区域并画框标出。这可以看作是很多边缘安防、入侵检测应用的雏形。创建文件motion_detection.cpp#include opencv2/opencv.hpp #include iostream #include chrono int main() { // 打开摄像头如果是USB摄像头通常是0如果是网关自带的CSI摄像头可能需要其他索引如1 cv::VideoCapture cap(0); if (!cap.isOpened()) { std::cerr Error: Could not open camera. std::endl; return -1; } // 设置摄像头分辨率根据硬件能力调整 cap.set(cv::CAP_PROP_FRAME_WIDTH, 640); cap.set(cv::CAP_PROP_FRAME_HEIGHT, 480); cv::Mat frame, prevFrame, gray, prevGray, diff, thresh; std::vectorstd::vectorcv::Point contours; // 获取第一帧 cap prevFrame; if (prevFrame.empty()) { std::cerr Error: No frame captured. std::endl; return -1; } cv::cvtColor(prevFrame, prevGray, cv::COLOR_BGR2GRAY); cv::GaussianBlur(prevGray, prevGray, cv::Size(21, 21), 0); auto start std::chrono::steady_clock::now(); int frameCount 0; while (true) { cap frame; if (frame.empty()) break; frameCount; cv::cvtColor(frame, gray, cv::COLOR_BGR2GRAY); cv::GaussianBlur(gray, gray, cv::Size(21, 21), 0); // 计算当前帧与上一帧的绝对差 cv::absdiff(prevGray, gray, diff); // 二值化 cv::threshold(diff, thresh, 25, 255, cv::THRESH_BINARY); // 膨胀操作填充空洞 cv::dilate(thresh, thresh, cv::Mat(), cv::Point(-1,-1), 2); // 查找轮廓 cv::findContours(thresh, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE); // 绘制边界框 for (const auto contour : contours) { if (cv::contourArea(contour) 500) { // 忽略小面积区域减少噪声 continue; } cv::Rect bbox cv::boundingRect(contour); cv::rectangle(frame, bbox, cv::Scalar(0, 255, 0), 2); } // 显示结果 cv::imshow(Motion Detection, frame); // 更新上一帧 prevGray gray.clone(); // 按q退出 if (cv::waitKey(1) q) { break; } } auto end std::chrono::steady_clock::now(); std::chrono::durationdouble elapsed end - start; std::cout Processed frameCount frames in elapsed.count() seconds. std::endl; std::cout Average FPS: frameCount / elapsed.count() std::endl; cap.release(); cv::destroyAllWindows(); return 0; }编译与运行 在VS Code的终端此时终端已连接到网关中使用我们配置好的构建任务CtrlShiftB编译或者手动运行g -stdc11 -O3 motion_detection.cpp -o motion_detection pkg-config --cflags --libs opencv4运行程序./motion_detection性能观察在ECG-AR70E这类边缘网关通常配备Cortex-A53/A72级别CPU上运行这个程序处理640x480分辨率的视频开启编译器优化后达到15-30 FPS是很有可能的。你可以通过调整检测算法如使用背景减除器cv::createBackgroundSubtractorMOG2、降低分辨率或减少高斯模糊核大小来进一步优化性能以满足具体场景的实时性要求。这个例子展示了在边缘设备上完成从数据采集、处理到结果输出的完整闭环所有计算都在本地无需上传云端这正是边缘计算的核心价值。

相关新闻

安卓课设实战:智能聊天机器人完整开发教程

安卓课设实战:智能聊天机器人完整开发教程

简介:在Android应用开发中,聊天机器人是集UI布局、列表适配、网络请求、JSON解析与线程处理于一体的经典实践项目。基于RecyclerView的高效列表复用机制,开发者可以构建流畅的消息展示界面;通过OkHttp与Gson等常用网络库&#xff…

2026/8/26 10:57:04 阅读更多 →
腾讯云从业者真题资料包真相与zip解压避坑指南

腾讯云从业者真题资料包真相与zip解压避坑指南

简介:在下载与解压技术资源的过程中,文件格式识别与完整性校验是绕不开的基础能力。zip作为一种常见的归档容器,承载着从软件包到文档资料的各种内容,但错误的后缀名、损坏的EOCD目录、分卷缺失以及编码错乱等问题,常常…

2026/8/26 10:57:04 阅读更多 →
腾讯30个月年终奖背后:互联网薪酬体系深度解析与职业规划指南

腾讯30个月年终奖背后:互联网薪酬体系深度解析与职业规划指南

1. 项目概述:一次关于行业薪酬的深度田野调查最近,朋友圈和各大职场社区又被一个话题刷屏了:“腾讯2023年终奖揭秘:最高30个月!”。这个标题就像一颗投入平静湖面的石子,瞬间激起了无数涟漪。作为一名在互联…

2026/8/26 10:57:04 阅读更多 →

最新新闻

基于JSP的电子书下载系统开发实战:从数据库到部署

基于JSP的电子书下载系统开发实战:从数据库到部署

简介:文件上传与下载是Web应用中的高频功能,在Java Web领域,JSP与Servlet是构建这类系统的经典技术组合。其核心原理在于通过MultipartConfig处理二进制流,利用HttpServletResponse设置响应头,实现文件传输与中文文件名…

2026/8/26 11:54:54 阅读更多 →
Linux时间操作全解析:从time_t到字符串的转换与高精度计时

Linux时间操作全解析:从time_t到字符串的转换与高精度计时

1. 从“时间戳”到“人类时间”:Linux时间操作的核心逻辑在Linux应用开发里,处理时间是个高频且基础的操作。无论是记录日志、定时任务、缓存过期,还是分析用户行为,你都得跟时间打交道。但很多开发者,尤其是刚接触系统…

2026/8/26 11:54:54 阅读更多 →
SpringCloud-Tencent一站式微服务架构实战:基于北极星构建统一治理平台

SpringCloud-Tencent一站式微服务架构实战:基于北极星构建统一治理平台

1. 项目概述:为什么我们需要“一站式”的微服务解决方案?如果你正在构建或维护一个基于Spring Cloud的微服务系统,大概率会面临一个经典困境:技术选型碎片化。注册中心用Nacos,配置中心可能还是Nacos,但流量…

2026/8/26 11:54:54 阅读更多 →
基于MatrixOne Git4Data的ETL流水线Write-Audit-Publish模式实战

基于MatrixOne Git4Data的ETL流水线Write-Audit-Publish模式实战

1. 项目概述:为什么ETL流水线需要一道“发布门禁”?在数据团队摸爬滚打这些年,我见过太多因为ETL(Extract-Transform-Load)任务“带病上线”而引发的“数据事故”。往往是开发同学在本地测试环境跑得好好的脚本&#x…

2026/8/26 11:54:54 阅读更多 →
零基础学Maya:用卡通微缩行李箱场景掌握多边形建模全流程

零基础学Maya:用卡通微缩行李箱场景掌握多边形建模全流程

很多人在学习三维建模时,总觉得卡通风格、微缩场景这类内容是“进阶玩法”,至少要先把 Maya 的基础命令吃透才能碰。其实这个思路可以反过来: 用一个小而完整的卡通场景,把最常见的建模命令和流程串起来,反而是入门效…

2026/8/26 11:54:54 阅读更多 →
2024程序员接单实战指南:渠道选择、报价策略与风险规避

2024程序员接单实战指南:渠道选择、报价策略与风险规避

1. 项目概述:为什么2024年程序员接单需要新指南?干了十几年开发,从大厂螺丝钉到独立接单,再到带小团队做项目,我几乎把程序员能走的“搞钱”路子都趟了一遍。最近两年,市场变化太快了。以前挂在嘴边的是“我…

2026/8/26 11:53:53 阅读更多 →

日新闻

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 0:00:40 阅读更多 →
《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》索引目录: 《Microsoft Sql server 2008 Internals》读书笔记--目录索引 在上篇文章中,主要介绍了创建数据库的基本语法和FileGroup的初步知识。需要注意的是: 关于FileGroup 如果你的系统是用Raid设备直接存…

2026/8/26 1:18:18 阅读更多 →
政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体已经从概念试点阶段,转入了政务服务的常态化落地应用;在实际使用过程中,它能自主理解办事需求、辅助完成填报申报、开展材料预审,并联动多个系统协同作业,真正嵌入到政务办理的全流程当中。但在落地推进过…

2026/8/26 1:18:18 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 3:38:12 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 3:38:18 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 3:38:23 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/26 3:50:20 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/25 10:31:12 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/26 1:24:05 阅读更多 →