当前位置: 首页 > article >正文

机械臂视觉抓取(三):从手眼标定到实际抓取

机械臂视觉抓取从手眼标定到实际抓取上一篇文章记录了机械臂手眼标定的两种方式注意都是基于单相机以眼在手上为例可以通过棋盘格标定出相机坐标系和夹爪坐标系的关系。标定出这个关系怎么通过视觉指挥抓手去抓取实际的物体呢而且有的时候机械臂末端安装的可能仅仅是一台普通的 2D 相机根本就没有办法得到深度信息并且现实物体并不是简单一个点机械臂运动过去就行了于是出现了下面一些系列问题只有一个相机如何得到被抓物体在相机坐标系下的坐标被抓物体通常不是一个点而是一个有体积的物体应该计算哪个点被抓物体有体积不管返回物体上的哪个点机械臂直接运动到那个点的话必然发生碰撞怎么解决机械臂夹爪坐标系通常是建立在机械臂末端法兰盘上如果我在末端安装了类似抓手、吸盘、探针之类的工装这些工装如何能按照我们的要求抓取、吸附、接触物体这样一看只完成了相机内参数标定和手眼标定是远远不够的在不同的项目不同的场景中还有很多实际问题要解决标定只是建立了相机和机械臂之间的关系相当于给机械臂装上了眼睛。至于怎么能够在不同场景下利用眼睛解决不同的问题还有很多工作要做。本文以一个眼在手外Eye-to-Hand的工件抓取项目为例记录从手眼标定完成到实际抓取过程中需要解决的各种问题。一、系统配置1.1 眼在手外 vs 眼在手上眼在手上 (Eye-in-Hand) 眼在手外 (Eye-to-Hand) 相机 机械臂 ↓ ↓ ┌────┴────┐ ┌──────┴──────┐ │机械臂末端│ │ 固定支架 │ └─────────┘ │ ↓ │ │ 相机 │ └─────────────┘本项目采用眼在手外配置相机固定在机械臂工作区域正上方相机视野覆盖整个工作区域机械臂在相机视场内运动1.2 应用场景┌─────────────────────────────┐ │ 固定相机 │ ← 正对下方拍摄 └──────────────┬──────────────┘ │ ↓ 视野范围 ┌─────────────────────────────┐ │ ┌──────┐ │ │ │ 工件 1│ ┌──────┐ │ │ └──────┘ │ 工件 2│ │ │ └──────┘ │ │ ┌──────┐ │ ← 工作台 │ │ 工件 3│ │ │ └──────┘ │ │ 机械臂 │ └─────────────────────────────┘二、问题 1如何得到物体在相机坐标系下的坐标2.1 2D 相机的局限我们使用的是一台普通的 2D 相机只能得到图像的像素坐标 (u, v)没有深度信息 Z。但机械臂运动需要的是 3D 空间坐标 (X, Y, Z)。解决思路对于眼在手外配置如果工作平面是已知的比如工作台平面可以利用平面约束将 2D 图像坐标转换为 3D 空间坐标。2.2 建立物体坐标系对于规则形状的工件我们可以选择一个容易识别的特征点作为坐标系原点。工件示例长方形带孔工件工件坐标系定义 Y 轴 ↑ │ ┌─────────────────┼─────────────────┐ │ │ │ │ ● P1 │ ● P2 │ │ │ │ │ ○ 原点 (0,0,0) │ │ (几何中心) │ │ │ │ │ ● P3 │ ● P4 │ │ │ │ └─────────────────┼─────────────────┘ │ │ Z 轴垂直向上 │ X 轴 →工件尺寸长 400mm × 宽 300mm × 高 50mm6 个特征点定义在物体坐标系中的坐标特征点X (mm)Y (mm)Z (mm)说明P1-15010025上表面左上角P215010025上表面右上角P3-150-10025上表面左下角P4150-10025上表面右下角P5-100025上表面左侧中心P6100025上表面右侧中心// 配置文件中的定义object_points:[[-150.0,100.0,25.0],// P1: 上表面左上角[150.0,100.0,25.0],// P2: 上表面右上角[-150.0,-100.0,25.0],// P3: 上表面左下角[150.0,-100.0,25.0],// P4: 上表面右下角[-100.0,0.0,25.0],// P5: 上表面左侧中心[100.0,0.0,25.0]// P6: 上表面右侧中心]为什么选择这些点全部位于上表面相机可以直接拍摄4 个角点 2 个边缘点分布均匀提高 PnP 求解精度关于原点对称便于计算几何中心2.3 深度学习特征点检测传统方法如角点检测在光照变化、遮挡情况下稳定性差。本项目采用深度学习特征点检测方法。整体流程输入图像 → 深度学习模型 → 特征点热力图 → 亚像素角点 → 6 个特征点坐标网络结构┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ 输入图像 │ │ 特征提取 │ │ 特征点检测 │ │ 512×512×3 │ → │ Encoder │ → │ 6 个热力图 │ └─────────────┘ └─────────────┘ └─────────────┘ ↓ 512×512×6 (每个通道对应一个特征点)特征点提取代码// 1. 深度学习推理得到 6 个特征点的热力图cv::Mat heatmapsonnx_inference-inference(input_image);// 2. 对每个热力图找到响应最强的位置std::vectorcv::Point2fimage_points;for(inti0;i6;i){cv::Mat single_heatmapheatmaps[i].clone();// 找到最大值位置亚像素精度cv::Point maxLoc;doubleminVal,maxVal;cv::minMaxLoc(single_heatmap,minVal,maxVal,nullptr,maxLoc);// 亚像素优化cv::Point2f refined_pointsubpixel_refinement(single_heatmap,maxLoc);image_points.push_back(refined_point);}为什么用深度学习鲁棒性强对光照变化、轻微遮挡不敏感精度高可以达到亚像素级检测精度端到端不需要手工设计特征2.4 PnP 求解物体位姿已知 6 个特征点的 3D 坐标物体坐标系和对应的 2D 图像坐标使用 PnP 算法求解物体位姿// object_points: 6 个特征点在物体坐标系中的 3D 坐标已知// image_points: 6 个特征点在图像中的 2D 坐标深度学习检测// camera_matrix: 相机内参标定得到// dist_coeffs: 畸变系数标定得到cv::Mat rvec,tvec;cv::solvePnP(object_points,image_points,camera_matrix,dist_coeffs,rvec,tvec);// 旋转矢量转旋转矩阵cv::Mat rotation_matrix;cv::Rodrigues(rvec,rotation_matrix);// 组合成 4x4 变换矩阵 T_target2cam物体→相机cv::Mat T_target2camcv::Mat::eye(4,4,CV_64FC1);rotation_matrix.copyTo(T_target2cam(cv::Rect(0,0,3,3)));tvec.copyTo(T_target2cam(cv::Rect(3,0,1,3)));输出物体相对于相机的位置和姿态6 自由度三、问题 2物体是一个立体应该抓取哪个点3.1 定义抓取点对于长方体工件合理的抓取点应该是Z 轴高度方向 ↑ │ ┌────────────┼────────────┐ │ │ │ │ · ← 抓取点 │ ← 上表面中心 │ (0,0,25) │ └────────────┼────────────┘ │ │ XY 平面抓取点选择原则便于夹爪接近无遮挡夹持稳定不易滑落考虑工件重心避免翻转3.2 坐标变换链眼在手外眼在手外配置的坐标变换链T_tool2base T_cam2base × T_target2cam × T_tool2target各变换矩阵含义变换矩阵含义来源T_cam2base相机→基座手眼标定结果T_target2cam物体→相机PnP 解算结果T_tool2target工具→物体工装补偿注意眼在手外配置中T_cam2base是固定的相机位置不变而眼在手上配置中这个矩阵会随机械臂运动而变化。四、问题 3 和 4工装补偿和预抓取位4.1 抓手工装补偿问题夹爪直接固定在法兰盘上没有单独标定怎么补偿本项目使用的是两指平行夹爪直接固定在机械臂末端法兰盘上。由于夹爪是刚性安装没有进行单独的 TCP 标定而是通过试错法 经验补偿来确定补偿参数。机械臂法兰盘 │ │ L1 (长度偏差) │ ┌────┴────┐ │ 夹爪底座 │ └────┬────┘ │ │ L2 (指尖长度) │ ┌─────────┴─────────┐ │ ● ● │ ← 两个指尖 │ P_left P_right │ └─────────────────────┘ ↕ L3 (指尖间距)补偿参数transform:{tvec:[0,-50,120],// [X, Y, Z] 工具中心点偏移eulRPY:[0.5,-0.3,0.1]// [Rx, Ry, Rz] 姿态补偿度}参数含义tvec[0] 0X 方向无偏移tvec[1] -50Y 方向偏移 -50mm夹爪中心在法兰盘后方 50mmtvec[2] 120Z 方向偏移 120mm指尖到法兰盘的距离eulRPY微小角度补偿确保夹爪平行于工件表面4.1.1 补偿参数的获取方法方法 1人工测量法粗略值1. 用卡尺测量法兰盘中心到指尖的距离 → Z 方向补偿 2. 观察夹爪安装方向确定 X/Y 偏移 → X/Y 方向补偿 3. 使用水平仪测量夹爪姿态 → 欧拉角补偿方法 2试错法精确值1. 用人工测量的粗略值作为初始补偿参数 2. 让机械臂运动到一个已知位置的工件上方 3. 观察实际抓取点与理论抓取点的偏差 (ΔX, ΔY, ΔZ, ΔRx, ΔRy, ΔRz) 4. 将偏差反向补偿到参数中 5. 重复步骤 2-4直到抓取精度满足要求方法 3三点法推荐1. 在工件上选择一个特征点 P 2. 控制机械臂以不同姿态接近 P 点记录三次位置 (x1,y1,z1), (x2,y2,z2), (x3,y3,z3) 3. 通过几何计算反推出 TCP 相对于法兰盘的偏移补偿公式// 理论抓取位姿cv::Mat T_theoryT_cam2base*T_target2cam;// 实际需要的夹爪位姿考虑补偿cv::Mat T_gripper2targetbuild_tool_offset(tvec,eulRPY);cv::Mat T_actualT_theory*T_gripper2target;// 如果抓取有偏差测量实际偏差 (dx, dy, dz, drx, dry, drz)// 更新补偿参数tvec[0]dx;tvec[1]dy;tvec[2]dz;eulRPY[0]drx;eulRPY[1]dry;eulRPY[2]drz;经验值参考夹爪类型Z 方向补偿 (mm)姿态补偿 (度)两指平行夹爪100-150±1° 以内三指定心夹爪80-120±0.5° 以内真空吸盘50-100±2° 以内4.2 预抓取位Approach Position抓取流程Step 1: 运动到预抓取位上方 ↓ Step 2: 垂直下降到预抓取位 ↓ Step 3: 继续下降到抓取位 ↓ ┌─────────────┐ │ 工 件 │ └─────────────┘预抓取位计算// 预抓取位抓取点正上方 150mm 处intapproach_distance150;// mmcv::Mat T_approach2tool(cv::Mat_double(4,4)1,0,0,0,0,1,0,0,0,0,1,-approach_distance,// Z 方向偏移向上0,0,0,1);// 预抓取位 抓取位 × 接近偏移cv::Mat T_approach2baseT_tool2base*T_approach2tool;为什么是 Z 方向在眼在手外配置中相机正对下方Z 轴垂直向上。预抓取位在抓取点正上方可以避免侧向碰撞。4.3 完整的抓取位姿计算// 1. 检测特征点std::vectorcv::Point2fimage_pointsdetect_feature_points(image);// 2. PnP 解算物体位姿cv::Mat T_target2camsolve_pnp(object_points,image_points);// 3. 坐标变换物体→相机→基座cv::Mat T_target2baseT_cam2base*T_target2cam;// 4. 工装补偿计算工具中心点 (TCP) 位姿cv::Mat T_tool2targetbuild_tool_offset(transform_params);cv::Mat T_tool2baseT_target2base*T_tool2target;// 5. 计算预抓取位cv::Mat T_approach2toolbuild_approach_offset(approach_distance);cv::Mat T_approach2baseT_tool2base*T_approach2tool;// 6. 提取 XYZ 和欧拉角发送给机械臂std::vectordoublepick_posematrix_to_xyzrpy(T_tool2base);std::vectordoubleapproach_posematrix_to_xyzrpy(T_approach2base);五、坐标系说明5.1 各坐标系定义世界坐标系/基座标系 (Base Frame) - 原点机械臂基座中心 - Z 轴垂直向上 - X 轴指向机械臂正前方 相机坐标系 (Camera Frame) - 原点相机光心 - Z 轴沿光轴向下指向工作台 - X 轴图像水平向右 物体坐标系 (Object Frame) - 原点工件几何中心 - Z 轴垂直于工件上表面 - XY 平面工件上表面 工具坐标系 (Tool Frame) - 原点夹爪中心点 (TCP) - Z 轴沿夹爪闭合方向 - X 轴两指尖连线方向5.2 坐标变换可视化T_cam2base (固定) 相机 ──────────────────→ 基座 ↑ ↑ T_target2cam │ T_tool2base │ │ │ │ T_tool2target │ 物体 ──────────────────→ 工具六、总结6.1 核心问题与解决方案问题解决方案关键参数2D 相机无深度PnP 算法 已知物体 3D 模型object_points (6 个特征点)特征点检测不稳定深度学习特征点检测ONNX 模型物体是立体定义抓取点几何中心-直接运动碰撞预抓取位approach_distance工装偏差工具中心点 (TCP) 补偿tvec, eulRPY6.2 眼在手外配置特点优点相机位置固定标定一次即可视野范围大可同时检测多个工件机械臂运动不受相机线缆限制缺点标定精度受相机安装位置影响机械臂可能遮挡相机视野需要较大的工作空间6.3 核心公式抓取位姿T_tool2base T_cam2base × T_target2cam × T_tool2target 预抓取位T_approach2base T_tool2base × T_approach2tool6.4 工程经验特征点选择应分布在物体不同位置避免共面提高 PnP 精度深度学习训练需要覆盖各种光照、角度、遮挡情况TCP 标定使用四点法或激光标定精度直接影响抓取成功率预抓取距离根据工件高度和夹爪开合距离调整一般 100-200mm坐标系验证用已知位置的标定板验证整个坐标变换链的准确性附录配置文件示例{camera:{resolution:[2560,1440],intrinsic_params:[...],// 内参矩阵distCoeffs:[...]// 畸变系数},object_points:[[-150.0,100.0,25.0],[150.0,100.0,25.0],[-150.0,-100.0,25.0],[150.0,-100.0,25.0],[-150.0,0.0,-25.0],[150.0,0.0,-25.0]],T_cam2base:[// 4x4 手眼标定矩阵眼在手外固定值1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,800.0,// 相机在工作台上方 800mm0.0,0.0,0.0,1.0],transform:{tvec:[0,-50,120],eulRPY:[0.5,-0.3,0.1],approach_distance:150}}

相关文章:

机械臂视觉抓取(三):从手眼标定到实际抓取

机械臂视觉抓取:从手眼标定到实际抓取 上一篇文章记录了机械臂手眼标定的两种方式(注意都是基于单相机),以眼在手上为例,可以通过棋盘格标定出相机坐标系和夹爪坐标系的关系。标定出这个关系,怎么通过视觉指…...

库克回应“退休传闻”:“我无法想象没有苹果的生活”

整理 | 苏宓出品 | CSDN(ID:CSDNnews)2026 年 4 月 1 日,Apple 即将正式迎来成立 50 周年纪念日。就在这个节点前夕,CEO Tim Cook 在《Good Morning America》栏目中,用一场约 5 分钟的简短采访&#xff0c…...

一篇文章帮你搞定时间复杂度、空间复杂度!!!

引言在数据结构中,我们常常会用到时间复杂度和空间复杂度,不仅在日常学习中要用到,面试的时候也会问道,我们要足够清晰了解这两个概念并且能够计算出对应算法题的时间复杂度和空间复杂度这两者,较为重要的是时间复杂度…...

STM32duino VL53L4CX多目标ToF测距驱动详解

1. 项目概述STM32duino VL53L4CX 是一个面向 STM32 平台(兼容 Arduino API 风格)的开源驱动库,专为意法半导体(STMicroelectronics)推出的 VL53L4CX 高精度飞行时间(Time-of-Flight, ToF)测距传…...

涨价4000元!新一代SU7售价21.99万元起;马斯克谈AI竞赛:中国会赢下地球,SpaceX赢下太空;OpenAI CEO发文感谢开发者却引众怒|极客头条

「极客头条」—— 技术人员的新闻圈!CSDN 的读者朋友们好,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。(投稿或寻求报道:zhanghycsdn.net)整理 | 苏宓出品 | CSDN(ID&…...

NodeRedTime:ESP32/ESP8266局域网轻量时间同步库

1. 项目概述 NodeRedTime 是一款专为 ESP32 和 ESP8266 平台设计的 Arduino 库,其核心目标是为资源受限的嵌入式 IoT 设备提供一种轻量、可靠且低功耗的本地时间同步机制。它不依赖于广域网(WAN)上的公共 NTP 服务器,而是将局域网…...

Luos串行网络协议:嵌入式微服务的确定性串行总线实现

1. 项目概述serial_network是 Luos 操作系统生态中专为串行总线设计的底层网络接口模块,其核心定位并非通用串口通信驱动,而是作为 Luos 微服务架构在物理层的确定性数据链路承载层。它不处理 UART 初始化、波特率配置或 GPIO 引脚复用等硬件抽象层&…...

小白也能懂:LingBot-Depth模型卡解读,快速上手单目深度估计

小白也能懂:LingBot-Depth模型卡解读,快速上手单目深度估计 1. 什么是LingBot-Depth模型? LingBot-Depth是一个专门用来"猜深度"的AI模型。想象一下,你给这个模型一张普通的彩色照片,它就能告诉你照片里每…...

互联网是从0到1,AI是1到无穷大

今日,移动广告巨头 AppLovin 联合创始人 Furqan Rydhan在 X(原推特)发布一篇长文《The Age of Abundance》直接引爆科技圈 —— AI Agent 不再是玩具,而是真正能干活、能交付、能信任的生产力。我们正在进入一个前所未有的丰裕时代。 今天用最通俗的话,把这篇刷屏长文的…...

java微信小程序的外卖点餐点单系统 商家协同过滤

目录商家协同过滤实现计划性能优化与评估系统集成项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作商家协同过滤实现计划 数据收集与预处理 收集用户历史订单数据、商家信息(如菜品、评分、…...

深度测评:2026年YOLO计算机视觉模型横评!目标检测哪家强?

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达文章来源于微信公众号:漠岩yggg本文仅用于学术分享,如有侵权,请联系后台作删文处理——目标检测哪家强?一篇帮你搞懂所有Y…...

鸿蒙权限管理:受限权限申请(六)

本文同步发表于我的微信公众号,微信搜索 程语新视界 即可关注,每个工作日都有文章更新 一、受限权限 受限权限是指默认不允许普通应用申请,只有在特殊场景下,通过应用市场(AGC)审核后才能使用的权限。 受…...

“基于粒子群算法的微网优化调度Matlab程序——考虑需求响应与能量约束的综合分析”

考虑需求响应的微网优化调度matlab 程序采用粒子群算法,风力发电机、光伏发电机、储能装置、燃气轮机、柴油机组等主体,考虑负荷需求响应、soc约束等,程序模块化编程,注释清楚,有对应资料一、程序概述 本程序基于粒子群…...

基于python大数据的天气可视化及预测系统

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实…...

保姆级教程:在NumPy实现的MLP中加入BatchNorm和Dropout(附完整代码)

从零实现NumPy版MLP:集成BatchNorm与Dropout的实战指南 如果你已经能用NumPy实现基础的多层感知机(MLP),却苦于模型在MNIST等数据集上表现不稳定、容易过拟合,那么Batch Normalization(批归一化&#xff09…...

亚洲美女-造相Z-Turbo在内容创作中的应用:社媒头像/壁纸/宣传图批量生成方案

亚洲美女-造相Z-Turbo在内容创作中的应用:社媒头像/壁纸/宣传图批量生成方案 1. 引言:当内容创作遇上AI美女生成 你有没有遇到过这样的烦恼?运营社交媒体账号,每天都要更新头像和背景图,找图找到眼花缭乱&#xff1b…...

JQ6500_Serial库详解:Arduino控制MP3模块全指南

1. JQ6500_Serial 库深度解析:面向嵌入式工程师的 MP3 模块全功能控制指南JQ6500_Serial 是一个专为 Arduino 平台设计的轻量级、高可靠性的串口通信库,用于完整控制 JQ6500 系列 MP3 解码模块(包括 JQ6500-28P 和 JQ6500-16P)。该…...

混合储能系统下垂控制策略在直流微网中的Simulink仿真研究(附参考文献)

混合储能系统/光储微网/下垂控制/Simulink仿真 注意版本2021A以上!!!! 由光伏发电系统和混合储能系统构成直流微网。 混合储能系统由超级电容器和蓄电池构成,通过控制混合储能系统来维持直流母线电压稳定。 混合储能系…...

WPF 仪表盘(Dashboard)的完整实现示例,聚焦工业上位机常见场景:实时圆形仪表盘(Circular Gauge) +线性仪表 +数字显示 + 多仪表联动

以下是针对 WPF 仪表盘(Dashboard) 的完整实现示例,聚焦工业上位机常见场景:实时圆形仪表盘(Circular Gauge) 线性仪表 数字显示 多仪表联动。示例使用免费/开源方式实现(避免商业控件依赖&a…...

工业数据可视化工具在智能制造、SCADA/HMI、生产监控、MES、能源管理等场景中扮演核心角色

工业数据可视化工具在智能制造、SCADA/HMI、生产监控、MES、能源管理等场景中扮演核心角色。2025–2026 年,随着 AI 驱动分析、信创适配、实时大屏、湖仓一体等趋势加速,工具选型已从“看图表美不美”转向“能否支撑业务闭环、AI 洞察、国产化合规、低 T…...

Z-Image-Turbo-辉夜巫女算法解析:深入理解其扩散模型与Token处理机制

Z-Image-Turbo-辉夜巫女算法解析:深入理解其扩散模型与Token处理机制 1. 引言 最近,一个名为“Z-Image-Turbo-辉夜巫女”的AI图像生成模型在开发者圈子里引起了不小的讨论。大家关注的焦点,除了它生成图片的速度和效果,更在于它…...

Vue—条件渲染与循环渲染

目录 v-if指令 v-if v-else-if v-else指令 template标签 v-show指令 v-if和v-show应该如何选择? v-for 遍历对象 遍历字符串 遍历指定次数 遍历数组 虚拟DOM和diff算法 虚拟DOM中key的作用(diff到底是怎么做对比?) 用…...

网络安全考量:保护cv_unet_image-colorization API接口免受攻击

网络安全考量:保护cv_unet_image-colorization API接口免受攻击 最近在帮一个朋友部署上色服务时,他问了我一个很实际的问题:“我把这个AI模型做成API开放出去,会不会被人搞垮?” 这个问题问到了点子上。确实&#xf…...

MATLAB 下载安装教程

安装前必看 软件名称:MATLAB适用系统:Windows 11所需知识:请确保你知道文件后缀、安装路径等概念需要下载的文件:我将安装包放在了对应版本的文件夹下了,为了避免选择困难,每个文件夹下仅有一个版本&#x…...

保姆级教程:Qwen3-VL-8B镜像部署与使用,图文并茂一看就会

保姆级教程:Qwen3-VL-8B镜像部署与使用,图文并茂一看就会 1. 为什么选择Qwen3-VL-8B Qwen3-VL-8B是阿里通义实验室推出的轻量级多模态大模型,仅80亿参数就能实现强大的图文理解能力。相比同类模型,它有三大突出优势:…...

OpenClaw核心内容总结

目录 一、OpenClaw 是什么 二、核心概念与架构 1. 基础核心机制 2. 架构与核心组件 三、安装与基础配置 1. 环境要求与安装 2. 初始化配置 四、进阶配置 1. 模型接入与切换 2. 接入飞书(国内推荐) 3. 安装技能(Skills) …...

Stable-Diffusion-V1-5 光影与材质研究:生成不同时间、天气条件下的场景对比

Stable-Diffusion-V1-5 光影与材质研究:生成不同时间、天气条件下的场景对比 最近在玩Stable Diffusion的时候,我一直在琢磨一个问题:这个模型到底有多懂“光”?它能像一位经验丰富的画家或摄影师那样,理解清晨的薄雾…...

LobeChat新手必看:一步步教你部署私人LLM网络应用

LobeChat新手必看:一步步教你部署私人LLM网络应用 1. 为什么选择LobeChat 在当今AI技术快速发展的时代,拥有一个私人定制的智能聊天机器人变得越来越重要。LobeChat作为一个开源、高性能的聊天机器人框架,提供了以下几个核心优势&#xff1…...

阿里小云KWS模型端到端延迟优化:从音频采集到唤醒响应

阿里小云KWS模型端到端延迟优化:从音频采集到唤醒响应 1. 引言 语音唤醒技术如今已经深入到我们生活的方方面面,从智能音箱到车载系统,从手机助手到智能家居。但你是否曾经遇到过这样的场景:对着设备喊了好几声"小云小云&q…...

MQ-2烟雾传感器原理与HC32F4A0嵌入式ADC集成

1. MQ-2烟雾检测传感器技术解析与嵌入式系统集成实践1.1 气敏传感原理与器件物理特性MQ-2传感器属于金属氧化物半导体(MOS)型气敏元件,其核心敏感材料为二氧化锡(SnO₂),在200℃~300℃工作温度区…...