拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Microduck-HD1910实战:边缘AI模型部署与硬件调试全攻略

Microduck-HD1910实战:边缘AI模型部署与硬件调试全攻略 Microduck-HD1910这块板子我是真刀真枪从零开始调了快一个月才跑通的。拿到手第一感觉就是这玩意儿跟树莓派完全不是一个路数——它带着一颗集成NPU的SoC目标很明确就是让你在边缘侧跑AI模型而不是当个万能小电脑。但问题也恰恰出在这模型部署、硬件调试、软件开发三件事随便拎出来一件都能写一篇长文三件事串在一起做坑是翻着花样来的。这篇教程就是把我这一个月踩过的坑、调通的流程、以及最后跑起来的那套代码逻辑完整复盘一遍。不管你手里是Microduck-HD1910还是同类带NPU的边缘板子瑞芯微、算能、海思的方案思路都大同小异照着这个流程走能省下大量翻文档、试错的时间。先说明一点Microduck-HD1910的核心配置是4核Cortex-A55处理器加一颗自研NPU算力标称在2到3 TOPS这个档位具体看固件版本内存板载4GB LPDDR4支持MIPI-CSI摄像头接口、USB3.0、千兆网口跑的是定制的Yocto Linux系统内核版本5.10。这套配置跟市面上的边缘AI盒子比较接近所以我下面写的方案放在类似的硬件上也成立。1. 项目全貌这到底是一个什么样的开发平台先说清楚Microduck-HD1910的定位。它不是一块给人折腾桌面Linux的开发板而是一块“交钥匙”的边缘AI硬件平台。这意味着系统是裁剪过的很多在树莓派上随手就能装的软件包并不存在你得用交叉编译或者容器的方式把东西塞进去。这板子的SoC内部集成了ISP图像信号处理器、视频编解码单元支持H.264/H.265编解码和NPU加速器外设接口包括MIPI-CSI、MIPI-DSI、I2C、SPI、UART、USB、以太网。说白了它就是为“摄像头画面进来AI推理结果出去”这类场景定制的——典型应用包括人脸识别闸机、工业质检Camera、智慧社区边缘盒子、农业病害识别设备等等。如果你是第一次接触这类板子我强烈建议先建立框架模型部署解决的是“模型怎么跑起来”硬件调试解决的是“板子周边设备怎么正常工作”软件开发解决的是“整个业务逻辑怎么串起来”。三件事缺一不可而且开发顺序有讲究。我的推荐顺序是硬件基础验证确认板子能活、串口能进系统 - 环境准备交叉编译工具链、板端依赖 - 模型部署先跑通一个最简单的分类模型 - 摄像头与推理联调跑YOLO检测 - 业务软件开发把推理逻辑封装成服务。下面每一章对应一个阶段手把手讲。1.1 一句话理解Microduck-HD1910用一句话概括Microduck-HD1910是一块面向视觉AI场景的边缘计算板卡自带NPU加速单元支持TensorFlow Lite、ONNX Runtime和自家RKNN类似物实际为“微鸭”推理引擎三类模型格式。如果你手头的模型是从PyTorch或者TensorFlow训练出来的不能直接在板子上跑必须先做格式转换和量化转换成NPU能吃的格式才能调用硬件加速。这跟服务器上跑GPU完全是两个世界——边缘AI头号原则是“硬件决定软件能怎么跑”模型也得反着来适配硬件。1.2 这套平台适合什么场景说句实在话HD1910这块板子最适合的项目类型就是需要“图像识别本地响应网络回传”三类能力组合的小型设备项目属于内容密集、见效快的典型。它能跑的模型包括YOLOv5s/YOLOv8n级别目标检测模型INT8量化后单帧推理大概30到60毫秒MobileNetV3、ShuffleNetV2等轻量级分类模型OCR方向可以部署PP-OCR的mobile版注意只跑det和rec不做太大模型深挖语音唤醒词模型KWS这类小模型也可以跑但这块的麦克风阵列硬件得自己配一个典型的落地场景长这样IPC摄像头采集画面 - 板端NPU跑YOLOv8n做人形检测 - 检测到目标后抓拍截图 - 通过MQTT推给后端平台 - 同时本地GPIO控制报警灯。整个流程在板子上都能闭环后端服务器只做消息接收和数据存储算法推理100%在边缘完成。1.3 为什么说这类项目是“组合拳”我见过不少搞算法的朋友模型在电脑上跑得飞起一上板子就麻爪要么模型转换失败要么串口不出日志要么摄像头采集花屏。原因很简单——单一技能撑不起整个项目算法工程化是“模型硬件软件”三脚凳缺一条腿就站不稳。这也是这篇教程选择“模型部署硬件调试软件开发”三合一的原因。模型转换让你知道怎么把训练好的权重变成板子能跑的东西硬件调试让你知道串口、摄像头、GPIO这些外设怎么保证正常工作软件开发则解决“怎么把这些能力整合成一个稳定运行的服务”。三部分串联起来才是完整闭环。2. 模型部署全流程从PyTorch到板端NPU模型部署是整个项目里最容易劝退新手的环节因为中间转换链路长且报错信息经常不友好。我的实际步骤是训练调优 - 导出ONNX - ONNX简化 - 量化与格式转换 - 板端加载推理。每一步都有坑逐个说。2.1 模型选型先决定“跑什么”再想“怎么跑”很多新手上来就想跑一个大模型比如想把Qwen这类7B大语言模型部署上去。我得给这盆冷水泼早一点HD1910这种2-3 TOPS算力的板子跑不起7B大模型连1.5B都勉强就算跑起来推理速度也慢到没有实用价值。服务器大模型部署和边缘AI是两条路线别混为一谈。在这类板子上真正意义的AI任务是视觉感知而不是生成。我推荐模型选型标准降到这档目标检测YOLOv5s、YOLOv8n、YOLOv5n参数量都在3M以内分类MobileNetV3-Small、EfficientNet-Lite0分割PP-LiteSeg、ESNet注意算力约束分割模型板端部署难度更高我在HD1910上实际部署的是YOLOv8n训练时输入640x640参数量只有3.2MFP16权重大小约12MBINT8量化后约4MB。这个体量对板端内存和NPU来说都很轻松。为什么选YOLOv8n而不是精度更高的YOLOv8s很简单我用实际推理延迟测了一遍YOLOv8s在HD1910上INT8推理耗时约85毫秒而v8n只要45毫秒。算上摄像头采集、预处理、后处理v8s一帧全流程就要120毫秒只能跑8FPS这对实时检测任务来说太卡了。v8n全流程大概65毫秒15FPS左右勉强算流畅。2.2 导出ONNX时容易踩的算子兼容坑训练好的PyTorch模型转ONNX理论上一条命令torch.onnx.export实际上能一次通过的概率不到五成。我遇到过的坑按出现频率排序第一动态shape问题。YOLOv8的export默认带动态shape但NPU工具链通常只支持固定shape。我在导出时指定了--dynamicFalse输入固定为[1, 3, 640, 640]。这样转换成功率会高很多。追求简单就别玩动态。第二torch.where、meshgrid这类算子导出后可能变成多个小算子组合转换时直接报“not supported opset”。解决办法是导出前先升级onnx和onnxsim用onnxsim做图优化。命令我跑的是pip install onnxsim onnxruntime python -m onnxsim yolov8n.onnx yolov8n_sim.onnx简化这一步非常关键。原始ONNX做算子融合后算子数量通常减少20%到30%跨平台的兼容性也更好。第三后处理要不要包含在模型里。这个问题答案很明确不要。NMS、坐标解码这些操作留在板端CPU上做模型只输出原始预测张量。原因有三个NMS里的循环结构对NPU极其不友好后处理放模型里会让模型体积变大反而拉低NPU有效算力后处理逻辑经常变留在代码里改起来方便。所以我的导出代码大致是这样的import torch from ultralytics import YOLO model YOLO(yolov8n.pt) model.model.eval() dummy_input torch.randn(1, 3, 640, 640) torch.onnx.export( model.model, dummy_input, yolov8n.onnx, opset_version11, input_names[images], output_names[output0], dynamic_axesNone )导出后务必用onnxruntime在PC上验证一次输出确认和原生PyTorch推理结果一致再进板子转换流程。2.3 INT8量化与NPU格式转换HD1910的NPU工具链叫“microduck-toolkit”命令行工具是mdk_convert输入支持ONNX、TFLite输出是.mk格式的NPU模型文件。这个工具可以在PC上运行转换时做量化校准。量化是边缘部署的重头戏。从FP32到INT8模型体积缩小4倍推理速度提升明显。量化分两种训练后量化和量化感知训练。HD1910上我用的是训练后量化流程简单效果也够用。带跑一遍校准集几百张典型图片即可。具体命令这样mdk_convert \ --model yolov8n_sim.onnx \ --output yolov8n_int8.mk \ --quantize int8 \ --calibrate ./calib_images \ --input_shape 1,3,640,640 \ --target hd1910校准集选的图片要贴近真实场景。我做人员检测校准集就专门挑了一部分白天室外、室内光照不足、夜间红外三种光照条件的图片这样量化后模型在不同亮度环境下的误检率不会有太大波动。量化后务必评估掉点情况。我的实测数据YOLOv8n在COCO验证集上FP32的mAP是37.3INT8量化后掉到35.1掉了2个点左右完全在可接受范围。如果你发现掉点超过5个点先从校准集多样性找原因别急着换模型。2.4 板端加载与首次推理验证转换完成后把.mk文件拷贝到板子上用scp或U盘接下来在板端写一个最简推理脚本验证。Microduck-HD1910官方SDK提供了Python API风格比较接近ONNX Runtime上手非常快。我的第一个板端推理脚本就是这样import numpy as np import microduck as md # 初始化NPU运行环境 md.init(device_id0) # 加载模型 model md.load_model(yolov8n_int8.mk) # 构造输入数据(640x640 RGB) input_data np.random.rand(1, 3, 640, 640).astype(np.float32) # 实际应用时这里应读取真实图片并做预处理 # 推理 outputs model.inference(input_data) # 输出形状打印 for i, out in enumerate(outputs): print(fOutput {i}: shape{out.shape}, dtype{out.dtype})首次跑通时憨憨地先用随机数据试了一遍确认NPU初始化正常、模型加载成功、推理一次能出结果后才接真实图片。这里我特别想强调一个心态不要一上来就串摄像头先把虚拟数据跑通再换真实数据最后接外设。分步验证永远是最靠谱的排障策略。3. 硬件调试从点亮到系统真正稳定运行硬件调试是模型部署成功之后必须做扎实的一步。说句实话模型转换搞半天结果发现摄像头供电不够、画面全绿那才是真让人崩溃的。所以硬件调试的意识得提到前面来。3.1 调试工具与上电前的准备工作如果打算久玩这块板子下面这几样工具建议备齐USB转TTL串口模块FT232RL或CP2102均可3.3V电平用来进系统shell万用表测供电电压是否正常排查短路必备示波器预算允许就买台入门款比如DSO150或者二手台式机排查I2C、PWM波形问题很有用一张烧录好固件的TF卡或者写好的eMMC烧录器Microduck-HD1910支持SD卡启动也能写eMMC开发期推荐从TF卡启动改系统更方便上电之前先做静态检查。我拿到板子习惯先测三个点5V供电入口的对地阻抗避免短路、核心电压1.0V或0.8V是否正常、RTC电池是否装好影响系统时钟和某些加密固件启动。看似繁琐但能提前排除掉很多“上电就红屏”的物理问题。一个很关键的上电顺序先接好USB转串口线注意共地再给板子上电串口终端立刻能看到启动日志。如果串口敲回车没有反应检查一下串口连接是否插错Microduck-HD1910的调试串口一般是与GPIO复用的出厂的DTS设备树会默认配置为UART调试口如果你改动过设备树极有可能把调试串口给关了。3.2 UART串口调试第一道生命线串口是嵌入式开发者的眼睛。Microduck-HD1910的调试串口参数固定为115200、8N1连接好后把串口软件打开我常用minicom或Windows下MobaXterm重新上电就能看到uboot和kernel的启动日志。我的习惯是看到以下日志才算板子真正活了U-Boot 2020.04 (Apr 08 2024 - 10:00:00 0800) ... Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.10.120 ... [ 1.234567] mmc1: new high speed SD card at address 0xabcd [ 2.031234] EXT4-fs (mmcblk1p2): mounted filesystem with write support [ 2.990001] Freeing unused kernel memory: 4096K Welcome to MicroDuck Linux (Yocto 4.0)如果卡在某个地方不动回车出不了登录提示符大概率是从根文件系统启动阶段出了问题常见原因包括TF卡分区表不对、根文件系统损坏、dtb设备树文件不匹配。会看启动日志是一项核心技能它能帮你把问题快速定位到uboot阶段、内核阶段还是用户态阶段而不是瞎猜。3.3 外设逐个调试GPIO、CSI摄像头、PWM风扇外设调试我建议按“一看二测三代码”的顺序来。“一看”是指先看设备树里这个外设有没有被正确描述。HD1910的设备树在SDK源码的kernel/arch/arm64/boot/dts/目录下比如摄像头节点一般叫ov5645或者gc2053你得确认对应的节点在dts里是status okay而不是disabled。“二测”是指用硬件工具测量关键信号。CSI摄像头如果上电后I2C读不到ID就用示波器量MIPI-CSI供电引脚和MIPI时钟引脚确认供电1.2V正常、MIPI时钟有输出。GPIO调试就更直接了万用表测引脚电平写一个简单内核模块或者用/sys/class/gpio操作置高置低看实际电压变化。“三代码”是指用板端跑一个小程序做功能验证。等外设信号正常后写一个读取摄像头画面的测试程序输出一张jpeg图下来看看画面颜色、曝光是否正确。我在调试CSI摄像头时遇到过一个大坑上电后摄像头能出画面但颜色呈现整体偏绿像加了滤镜。排查了很长时间最后发现是ISP初始化时白平衡关键参数没设置切到自动白平衡画面立刻正常。这个问题的隐蔽性很高因为在PC上跑USB摄像头你基本不会碰到这种底层配置问题。3.4 电源和信号完整性问题被低估的隐形杀手很多“诡异”问题最后追根溯源都是供电问题。HD1910的外设接口大多提供3.3V电源但一些功耗较大的外设比如4G模块、大功率补光灯、舵机如果直接从板子取电轻则电压跌落重则烧坏主控。我的经验法则是凡是工作电流超过500mA的外设一律外部独立供电只和板子共地。尤其是给摄像头红外补光灯板供电时共地不做好画面会出现周期性条纹噪点看起来像算法问题其实是地环路干扰。另外如果是用劣质USB充电器给板子供电负载波动时电压纹波大轻则NPU推理莫名崩溃重则TF卡文件系统损坏。我给板子配的电源是12V/2A的工业电源适配器稳压效果明显好于手机充电头。做好电源这一环系统稳定性会大幅度提升。4. 软件开发交叉编译、推理服务与业务封装硬件基础打牢、模型也能在板端推理了接下来就是“把三者串成一个产品”的软件开发环节。这块是内容最杂、工作量最大的一部分也是很多人最陌生的一块。4.1 交叉编译环境与板端依赖管理Microduck-HD1910的SoC是ARM架构板子上装的是Yocto Linux。这意味着大多数PC上的软件包不能直接丢上去得用交叉编译工具链重新编译。官方SDK里自带了一个交叉编译器通常叫aarch64-microduck-linux-gnu-gcc对应的sysroot在SDK/sysroots/aarch64-microduck-linux目录下。我推荐在开发机上建一个专门的CMake工具链文件这样每次编译就会非常顺畅set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR aarch64) set(CROSS_COMPILE aarch64-microduck-linux-gnu-) set(CMAKE_C_COMPILER ${CROSS_COMPILE}gcc) set(CMAKE_CXX_COMPILER ${CROSS_COMPILE}g) set(CMAKE_SYSROOT $ENV{SDK_PATH}/sysroots/aarch64-microduck-linux) set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)至于依赖管理Yocto系统没有apt板端装软件的方式有三种直接把编译好的二进制和动态库scp进去用官方提供的opkg包管理源里面包不多或者打包成静态编译的二进制。我的习惯是静态编译关键业务程序动态库依赖能少则少这样固件升级时我只要替换几个文件不至于被动态库版本问题卡住。4.2 板端子系统的模块化设计思路因为这是一个嵌入式Linux系统我会把产品软件拆成三个进程来管而不是一个死循环的大杂烩采集进程、推理进程、业务控制进程。采集进程负责从摄像头拉流把画面转成NPU推理需要的输入格式推理进程负责加载NPU模型并执行推理同时做后处理解析业务控制进程收到推理结果后根据业务逻辑决定是否抓拍、报警、上报以及控制GPIO。三个模块间用共享内存和命名管道通信这样任何一个模块出问题都可以独立重启不会把整个系统带崩。这种设计的好处是容错度很好。我用Supervisor来守护这三个进程异常退出自动拉起来大大提高了系统的长时间运行稳定性。4.3 摄像头采集与推理主循环实战采集方案我推荐用V4L2 API直接操作摄像头设备避免依赖额外的图像库中间环节越少越稳。核心步骤是打开设备 - 设置分辨率和像素格式 - 申请帧缓冲 - 启动采集 - 循环取帧和投回缓冲。设置参数时注意HD1910的ISP最大输入分辨率一般是2688x1520但如果我要跑640x640的模型应该让摄像头直接输出640x640吗答案是不建议。摄像头传感器有一个最佳工作分辨率比如1920x1080你强行切小分辨率可能导致视野变窄、噪点变大。更合理的做法是摄像头出1920x1080然后做缩放裁剪letterbox到640x640。推理主循环的结构其实非常简单和PC端差不多while True: frame camera.read() # 取一帧 input_tensor preprocess(frame) # letterbox 归一化 outputs model.inference(input_tensor) # NPU推理 boxes postprocess(outputs) # 解码 NMS if len(boxes) 0: handle_result(frame, boxes) # 业务逻辑 draw_overlay(frame, boxes) # 画框(可选) camera.show(frame)这里最容易出问题的是预处理细节必须和训练时保持一致。用YOLO时letterbox的填充灰度值是114归一化要除以255RGB通道顺序不能反。我一再强调这点是因为见过太多人在板子上推理结果错得离谱最后发现只是预处理顺序反了。模型部署是“差之毫厘谬以千里”的典型领域。4.4 结果输出与外部系统对接MQTT、HTTP与GPIO联动推理结果出来了怎么送出去这是业务软件的核心价值。我实测下来按需求场景推荐三种方式第一种接入物联网平台用MQTT协议上报。轻量、稳定、断线重连机制成熟。Yocto里没有现成的mosquitto客户端库我交叉编译了Eclipse Paho MQTT C客户端接到项目里。上报格式用JSON消息体大概是{device_id:HD1910-001,timestamp:2025-03-01T12:00:00Z,detections:[{class:person,conf:0.87,bbox:[120,200,240,480]}]}。后续后端做数据分析非常轻松。第二种上报到自研的HTTP服务。适合已有后端系统的场景。用curl命令行显然不够优雅我在板子里集成了一个轻量的HTTP客户端库libcurl交叉编译带上ssl支持关键帧截图通过HTTP POST multipart上传。第三种本地联动响应。检测到目标就控制GPIO拉高推杆或者点亮报警灯。GPIO操作通过Linux标准的gpiod接口来做注意绕过内核里已被占用的端口操作前先用gpioinfo命令看清楚每个IO当前是输入还是输出。实际项目中三个方案往往是组合的本地GPIO快速响应 MQTT上报远程平台 HTTP抓拍截图留存一个需求完整同时照顾了三方消费方。4.5 日志、看门狗与性能优化要点嵌入式软件开发和高并发后台开发不一样它更接近“一个人管一整条链”。所以日志设计要清晰性能调优要靠数据运行稳健要靠看门狗。日志我强烈推荐结构化JSON格式方便后续平台采集分析。每条日志清晰打点时间、模块名、级别、事件、耗时。排查问题时就能按模块过滤不会在瞎print里迷路。一个MP4从日志里定位到“摄像头偶发断流”花了我半天时间换了结构化日志后这种问题的定位时间缩短到了十几分钟。性能优化要先用数据说话。我用板端的perf stat统计主循环各部分耗时刚跑通的YOLOv8n全流程是68毫秒拆解如下摄像头取帧5毫秒缩放预处理1080p - 640x6408毫秒NPU推理45毫秒后处理NMS7毫秒业务逻辑开销3毫秒NPU推理占大头这没得优化最值得抠的是预处理8毫秒是因为初始版本用了低效的双线性插值循环。我这里换成了用neonintrinsics写了一个高度优化的缩放函数耗时降到2.5毫秒整体提速到了62毫秒。如果你对ARM优化感兴趣这是个非常好的学习方向。5. 常见问题与排查技巧实录开发这一个月我把踩过的问题整理成了一份速查表每个问题都带排查思路和解决路径。这些内容常规教程不讲但开发时九成都会遇到。问题现象可能原因排查思路解决路径串口无输出或输出乱码波特率不匹配/串口TX RX接反确认跳线、换波特率测试115200 8N1重新接线共地上电后无任何反应供电不足/启动介质损坏测电源电压看电源指示灯换电源适配器重新烧录SD卡TF卡启动到一半卡住dtb不匹配/内核模块缺失看启动日志最后输出点换SDK配套dtb重新烧录摄像头花屏/绿屏ISP配置不对/CSI排线松动检查设备树ISP配置测CSI信号配置自动白平衡重新插排线模型转换工具报算子不支持模型含NPU不支持算子查看报错算子在哪个层修改网络结构或用CPU算子补丁INT8量化后mAP掉点严重校准集分布偏了分析校准集与真实场景差异补充代表性图片重新校准推理结果坐标偏移明显预处理流程与训练不一致打印预处理后图片检查严格按训练时letterbox参数处理NPU推理偶尔崩溃电压不稳/内存不足检查供电纹波free看内存换工业电源关闭冗余服务GPIO操作返回拒绝访问端口已被其他服务占用gpioinfo查看占用情况释放端口改设备树标注长时间运行后画面掉帧内存泄漏/文件句柄耗尽监控内存、fd数量定位泄漏点加自动重启机制再补充几个排查时的老经验。查问题先看日志日志比什么都靠谱。无论是内核日志dmesg还是应用日志先看它们不要上来就瞎改代码那样可能让问题更隐蔽。改完代码记得回归测试。嵌入式改了摄像头配置经常会连带影响ISP色彩效果那就要把整个采集推理流程重新跑一遍。备份现场。板子开发阶段环境说崩就崩我每完成一个功能点就给TF卡做个镜像备份整个开发周期备份了6次每次恢复只要几分钟比重新配环境快太多。6. 整机联调与压测跑一个通宵看看稳定性单模块跑通不算完边缘设备是要7x24小时在户外或者产线上干活的稳定性必须靠压测验证。我建议整机联调按这个顺序来先冷启动、后反复重启、再长时间带载运行。具体做法是写一个压测脚本统计每一帧推理的结果和耗时连续跑12小时以上记录系统是否发生崩溃、内存是否泄漏、NPU温度是否长时间超过80度。这个数据会直接告诉你整个系统能不能扛住真实工况。在HD1910上我压测12小时最终数据是这样总推理次数约64000次平均推理耗时47毫秒最大内存占用868MB4GB内存绰绰有余NPU温度最高72度没出现一次崩溃或死机。对一块被动散热的板子来说这个数据已达到可交付状态。压测容易暴露出来的问题主要有三类内存泄漏、日志文件无限膨胀、看门狗误触发。内存泄漏可以用valgrind在板端分析或者简单点写个脚本监控/proc/meminfo的趋势日志膨胀就加日志轮转logrotate看门狗误触发就检查喂狗线程有没有被长推理卡住必要时把喂狗挪到独立线程。整机稳定跑过后这块板子才算是从“能玩”升级到“能用”。你再拿它做出来的东西是产品原型不只是玩具。7. 最后的经验之谈在Microduck-HD1910上完整走完模型部署、硬件调试、软件开发一整套流程后我最大的体会是边缘AI项目的难度不在于某一个环节有多深而在于每个环节你都绕不过去。纯搞算法的人会卡在交叉编译和看门狗上纯搞嵌入式的会卡在模型量化和算子兼容上。只有把三块知识拼成一张完整图景项目才跑得起来。还有一件事我想多说一句别闭门造车善用工具链自身的生态。Microduck-HD1910官方SDK里其实带了一些示例代码包括摄像头采集、NPU推理、GPIO控制很多人不看文档就自己硬写结果绕了远路还更容易出问题。先跑通官方示例再改效率翻倍。如果你正准备上手这块板子按这篇教程的顺序来先稳定再功能先简单模型再复杂业务遇到问题回到第五节的速查表里找思路。技术这条路没什么捷径但把前人的坑提前填好你走起来会快很多。祝顺利。
返回列表