tag 标签: 算法

相关博文
  • 2025-4-29 11:07
    0 个评论
    高逼真合成数据助力智驾“看得更准、学得更快”
    一、引言 随着自动驾驶技术的逐步落地, 感知系统对数据的依赖 正以前所未有的速度增长。 传统实车采集 虽然真实可信,但在 效率 、 安全性 、 标注精度 以及 边缘场景覆盖 方面均存在 显著限制 。 合成数据(Synthetic Data) 因具备低成本、高可控性、无限扩展性和高精度标签等优势,已成为 感知算法训练与验证 的重要数据来源。尤其在多模态、多场景、大规模自动化生成等方面, 仿真平台 正成为构建感知数据体系的重要工具。 在感知系统的开发过程中,我们依托仿真平台生成覆盖多种场景和传感器类型的合成数据,用于支持 AVM(环视系统) 开发,同时也利用合成数据生成符合公开格式标准的数据集,助力算法在 真实部署前 实现高效迭代与验证。 本文将系统介绍利用合成数据开发的具体应用流程和实践效果。 二、 AVM系统开发中的仿真验证应用 环视系统(AVM, Around View Monitor) 是自动驾驶和高级辅助驾驶系统(ADAS)中常见的功能模块,通常由4个或更多广角鱼眼相机构成,通过拼接多个摄像头图像生成车辆周围360°的鸟瞰图。 自动泊车系统(APA) 需要环视图像提供对车辆周围环境的精准感知。通过仿真方式模拟鱼眼相机布设和 BEV 拼接,可生成多种泊车场景下的高保真图像,包括地库、斜列车位、窄通道等复杂工况。 相比实车采集,仿真 不仅可以批量构造极端和边缘泊车条件,还能自动提供精确的障碍物位置与车辆姿态标注,大幅加速感知模型的训练和验证流程, 减少实车调试时间 。 传统 AVM 系统的相机 标定依赖人工操作和实车设备, 流程繁琐且精度受限 。 通过仿真 ,可控制各摄像头位置与视角,并生成可重复、可验证的图像和标定数据,适用于整车项目开发初期的快速迭代。 虚拟标定 不仅 提高了标定效率 ,还支持在方案切换、批量测试、相机布局验证等场景中自动生成对齐标注,降低人力投入, 提升系统上线速度 。 在实际开发中,AVM对图像畸变建模、拼接精度、投影映射等有较高要求,传统方法依赖人工标定与测试,周期长、灵活性差。而基于aiSim的仿真流程,可有效提升开发效率与验证精度。 通过合成数据仿真平台,我们借助从 环境搭建 到 数据生成 的 全流程仿真 ,成功实现了 4个鱼眼相机生成AVM合成数据的优化和验证。 图1 基于aiSim构建AVM图像流程 1、标定地图与仿真环境构建 我们在 Unreal Engine环境 中快速搭建6米×11米标定区域,使用2×2黑白相间标定板构成特征纹理区域,并精确布设车辆初始位置,确保视野重叠区域满足投影需求,并通过特定插件将其无缝导入仿真器中。 图2 基于aiSim插件的Unreal Engine地图编辑 2、鱼眼相机配置与参数设置 设置 前、后、左、右 四个鱼眼相机,分别具备: (1)高水平FOV(约180°); (2)不同俯仰角(前15°、后25°、侧向40°); (3)安装位置贴近真实车辆安装场景(如后视镜下方)。 我们采用了仿真器内置的 OpenCV标准内参 建模,输出图像同步生成物体的2D/3D边界框与语义标签。 图3 环视OpenCV鱼眼相机传感器配置 3、BEV图像生成与AVM拼接 利用已知相机内参和标定区域结构,通过OpenCV完成图像去畸变与投影矩阵求解,逐方向生成 BEV视图(Bird's Eye View) 。结合车辆图层与坐标对齐规则,拼接生成完整的AVM图像。 支持配置图像分辨率(如1cm²/像素)与投影视野范围,确保几何准确性。 图4 投影区域及BEV转化示意图 4、多场景合成与传感器布局优化 通过 批量仿真脚本 ,可 快速测试 不同环境(如夜间、窄巷、地库)、不同相机布局组合对AVM系统效果的影响。在算法不变的前提下,系统性评估外参配置的优劣,为传感器部署提供数据支持。 图5 不同场景下的AVM合成数据 三、合成数据构建多模态数据集 随着智能驾驶逐步从基础辅助走向复杂场景下的高阶功能,对 感知系统的数据需求 也在迅速升级。不仅需要覆盖高速、城区、出入口等典型 NOA 场景,还要求在 不同模态之间实现精确对齐 ,以支撑融合感知模型的训练与验证。在这类任务中, 仿真生成的合成数据 具备可控性强、标签精准、格式标准的优势,正在成为算法开发的重要支撑手段。 在 智能领航辅助(NOA)场景 中,系统需识别高速匝道、变道车辆、道路边缘等要素,对 训练数据多样性与标注精度要求极高。通过仿真构建 城市快速路、高速公路等 多类 NOA 场景 ,配合光照、天气、车流密度等变量自动生成图像与多模态同步数据。 这类合成数据 可用于训练检测、分割、追踪等模型模块,特别适合用于 填补实车采集难以覆盖的复杂或高风险场景 ,增强模型鲁棒性。 融合感知模型 依赖相机、毫米波雷达、激光雷达等 多种传感器协同输入 ,对数据的同步性和一致性要求较高。 通过仿真 ,可以 同时生成这三类传感器 的视角数据,并自动对齐时间戳、坐标系和标注信息,输出包括 3D 边界框、语义分割、目标速度等在内的完整标签,且格式兼容 nuScenes 等主流标准。这类数据可用于 训练融合模型识别道路上的异形障碍物 ,例如夜间难以通过视觉识别的散落杂物,或需要多模态补强感知的边缘目标。仿真带来的高度可控性也 便于统一测试条件 ,对模型性能进行定量分析与精细化调优。 在实际项目中, 合成数据的价值 不仅体现在生成效率和标注精度,更在于其 能否与下游算法开发流程无缝衔接 。为了实现这一目标,我们将 aiSim 导出的多模态原始数据,通过 自研数据处理脚本 ,转换为 基本符合 nuScenes 标准格式的数据集 。 数据构建流程如下: 1、编写符合 nuScenes 规范的传感器配置文件 首先 ,我们 根据 nuScenes 的数据结构要求 ,定义并生成了包含相机、雷达、激光雷达等传感器的配置文件,包括传感器类型、安装位置、外参信息等。该步骤确保生成数据可直接映射至 nuScenes 的 calibrated_sensor.json 和 sensor.json。 图6 激光雷达部分的传感器配置文件 图7 符合nuScenes格式的传感器配置 2、利用 aiSim Stepped 模式导出对齐的原始数据 其次,在仿真阶段, 我们启用了 仿真器的 Stepped Simulation 模式 ,该模式支持以固定时间步长(如每 0.1 秒)推进仿真,并确保所有传感器在 同一时间戳输出数据 。这种方式实现了多模态数据的时间戳全局对齐,满足 nuScenes 对数据同步的要求。 图8 aiSim相机传感器Bounding Box真值输出 然后,在仿真运行中 ,我们导出包含图像、点云、雷达、Ego Pose、2D/3D 标注等原始数据,场景长度约为 20 秒,覆盖了一段在高流量城市交通中经过十字路口的场景,作为构建示例数据集的基础。 3、结构化转换为 nuScenes JSON 格式 此外,使用 自研转换脚本 ,我们将导出的原始数据组织并填充为 nuScenes 所需的各类 JSON 文件 ,并和官方标准格式对齐,包括: scene.json:记录场景序列; sample.json:定义帧级时间结构; sample_data.json:图像、雷达、点云等数据路径与时间戳; calibrated_sensor.json 和 sensor.json:传感器类型及配置; ego_pose.json:车辆轨迹; sample_annotation.json:3D 边界框、类别、属性; instance.json、category.json、visibility.json 等其他语义层级数据。 图9 nuScenes 标准数据集JSON结构表 4、数据集结构搭建完成 最终, 构建完成的数据集具备 完整的时空同步结构 与 语义标签 ,可直接用于视觉感知、雷达检测、融合感知等模型训练与评估任务。该流程验证了合成数据向标准训练数据的转换路径,并具备可扩展性, 适用于更大规模的批量数据生成 。 图10 激光雷达点云 + 相机融合标注框 图11 激光雷达点云 + 同类型标注框 (俯视/侧视) 图12 多帧实例+激光雷达点云 (俯视+路径) 这一完整流程不仅验证了合成数据在工程流程中的落地能力,也为后续基于大规模仿真生成标准训练集打下了结构基础。 四、aiSim:感知研发全流程平台 在自动驾驶感知系统的开发过程中,仿真平台已逐渐发展为合成数据生产的重要基础设施。 aiSim 通过集成环境建模、传感器仿真、多模态数据输出与标准格式转换等功能, 支持从场景构建到数据集生成的完整流程 。 1、多样场景与数据格式的灵活支持 aiSim 可 精细还原 环视系统中鱼眼相机的安装布局、图像畸变特性及 BEV 视角拼接逻辑,生成 贴近实车采集的高保真图像 。同时,平台有一套 自成体系的仿真数据组织与输出机制 ,涵盖视觉、激光雷达、毫米波雷达等多类型传感器数据及真值标注。支持通过脚本调度 自动批量生成 不同气候、光照、地形和交通条件下的多样化场景,满足大规模训练与边缘场景验证的需求。 2、从物理建模到标签输出的完整链条 借助图形引擎,aiSim 实现了对真实物理光照、材质、阴影和天气的 动态建模 。平台支持相机、激光雷达、毫米波雷达等传感器的物理与几何特性建模,兼容 OpenCV、ROS 等常见开发标准。在数据输出方面,aiSim 支持多传感器同步控制 ,可自动生成对齐的 2D/3D 检测框、语义标签、Ego 轨迹等数据,覆盖感知算法训练常见需求,减少数据清洗与后处理工作量。 3、工程集成与可扩展性 aiSim 提供 图形界面、工具链与开放 API ,方便用户将其集成至企业现有的数据平台和模型训练流程中。平台内的场景配置与资源系统具备良好的 可扩展性 ,支持用户自定义传感器布设、交通要素和场景资产,用于支持环视系统、感知模型、融合算法等不同研发阶段的需求。 无论是 环视系统的泊车能力 与 虚拟标定 ,还是面向 NOA 和多模态融合 的训练任务, 仿真生成的数据 都在感知系统的实际落地中提供了可衡量、可扩展的价值。让数据获取从“拍”到“造”,从“靠人”到“自动”,为智能驾驶研发提速、降本、增稳。
  • 2025-3-28 10:17
    102 次阅读|
    0 个评论
    多模态自动驾驶混合渲染HRMAD:将NeRF和3DGS进行感知验证和端到端AD测试
    基于 3DGS 和 NeRF 的 三维重建技术 在过去的一年中取得了快速的进步,动态模型也变得越来越普遍,然而这些模型仅限于处理 原始轨迹域内的对象。 HRMAD 作为一种混合方案,将传统的基于网格的动态三维神经重建和物理渲染优势结合,支持在任意位置部署网格动态代理,自由调整环境条件,在多个相机视角下进行自由切换,与传统仿真方法相比有效 减少了领域差距, 同时 保留了可控性。 一、方法描述 HRMAD提出的 NeRF2GS双模型训练范式 显著提升了 合成质量 ,尤其是道路和车道标志,同时满足交互式帧率。通过此块级并行训练架构,可以处理 超过10万平方米场景重建 ,并同步传输出分割掩膜/法线图/深度图。通过物理光栅化/光线追踪渲染后端,HRMAD支持多个相机模型、LiDAR和Radar的 实时多模态输出 。如图1所示的模型架构。 图1 具体而言,HRMAD基于RGB相机、GNSS和LiDAR的同步数据进行模型训练。该方案结合了 NeRF优秀的泛化能力 和 3DGS实时的渲染速度 ,通过T-S结构,将NeRF生成的深度、法线和外观监督信息传递给3DGS模型,并通过正则化将LiDAR深度数据引入NeRF,从而实现更准确的 几何结构建模 。 传统基于透视投影的渲染方法通常依赖于特定的投影模型,为了在3DGS场景中 适配任意传感器 ,HRMAD提出了一种 新的渲染算法架构 ,如下图2所示。 图2 该架构基于 共享代码库 实现了光栅化和光线追踪渲染,用于计算高斯沿射线的贡献。这样不仅能够在三维重建场景中支持 任意相机畸变模型 ,还能够减轻LiDAR仿真中伪影的产生。图3展示了在aiSim中采用HRMAD渲染场景并配置LiDAR后, 点云的可视化效果 。 图3 图4表明HRMAD在 极端视角 下RGB、深度、法线和分割(基于Mask2Former)模态下的几何细节和表面特性,重建面积约为165000平方米(ZalaZone测试场,此重建场景将于 aiSim5.7 版本进行发布)。 图4 二、下游任务验证 1、重建质量验证 由于HRMAD采用的是 基于双边网格的色彩校正方法 ,传统的PSNR指标不再适用,而SSIM和LPIPS指标对 结果相似性 更为敏感,但从结果上看,这两个指标仍然受到 ISP解耦 导致的RAW与重建图像之间 色彩失配 的影响。这一影响体现在了评估结果中,如表1,表中对比了原始3DGS和TCLC-GS在 6个Waymo场景 上的指标表现。 表1 2、语义分割验证 在语义分割上分别从 三个角度 评估模型性能, 首先 通过统计所有像素中 语义分类一致 的比例,反映 全局重建一致性 。 通过 Mask2Former 获取真实图像上计算的分割Mask,并与HRMAD-NeRF(Teacher)和HRMAD-NeRF(Student)渲染得到的分割Mask进行比较,验证 重建的准确性 。同时为了降低道路、天空等易分割区域对整体结果的偏差影响,针对" Car "进行 单独IoU计算 。 为确保验证过程的公平性,真实图像被 重投影 至与渲染过程一致的无畸变针孔相机参数空间,当重建结果正确标注了远距离或被遮挡物体,而Mask2Former因输入信息有限导致 误判 时,此类误差会被 计入评估指标 。同时在夜间拍摄场景和相机直对太阳的场景中(如场景11037651和14663356), 掩膜一致性 显著下降。结果如表2所示。 表2 其次 在 非常规视角 下进行模型渲染,并基于Mask2former生成的Mask与模型预测Mask进行比较。此渲染视角沿自车轨迹生成,并在 米范围内平移前视相机仿真模型。 表3 展示了针对道路表面信息和车辆的 重建性能 。其中 Car类型 的重建性能相对较低,这是由于 Mask2Frame 无法检测远处或被遮挡的物体,从而扩大了差异。 图5 显了示相关结果,绿色为匹配区域,蓝色和橙色分别表示模型预测Mask和Mask2Former的Mask输出。 表3 图5 最后在 极端渲染视角 下(高5m,横向偏移2m,向下偏转25°),针对车道线和路沿语义分割结果进行了 定性评估 ,如图6所示。 图6 3、3D目标检测验证 为了验证HRMAD在 3D目标检测 上的 一致性 ,采用在Waymo Open数据集训练中公开的 DEVIANT 3D目标检测模型 ,进行定量和定性实验。 定量实验 中,在Waymo-13469905891836363794片段中从 横向偏移视角下进行验证,并通过平移变换后的3DBBox定量计算。 定性实验 选取三个驾驶片段进行 静态环境渲染 ,并基于网格渲染添加动态车辆,主要用于评估仿真生成的车辆是否引入了 领域差距 。 表4基于 Waymo指标 进行验证,Original为原始图像。特别在近距离下,HRMAD的表现性能要优于原始图像,这是由于原始图像中 假阳FP 数量更高。在非常规视角渲染下,观察到的差异主要是横向偏移视角下 目标截断 的数量增加,但 整体检测结果 在很大程度上 保持一致。 表4 图7为 DEVIANT模型 在HRMAD渲染Waymo场景中的表现。 图7 三、结语 虽然 HRMAD渲染方法 旨在最大程度减少 区块边界的不连续性 ,但仍不可避免地会产生可见的 伪影 ,特别是在天空和远距离目标区域中。比如天空的RGB重建效果良好,但在自动驾驶仿真测试场景中,在非常规视角下仍然会导致 伪影和结构痕迹 。 在下游任务中,HRMAD针对自动驾驶场景的评估结果已 非常接近真实数据, 但由于 样本有限 ,仍需要更大规模的数据集进行进一步验证。未来的研究也会致力于进一步缩小重建场景和真实数据之间的领域差距,具体来说,可以通过探索 层次化高斯泼溅 来减少区块伪影,并利用生成的法线信息改进LiDAR强度模拟,来更好地反应 点云数据 的方向敏感强度。
  • 2025-3-20 09:57
    114 次阅读|
    0 个评论
    方案分享 | AVM合成数据仿真验证方案
    随着自动驾驶技术的快速发展,仿真软件在开发过程中扮演着越来越重要的角色。 仿真传感器与环境 不仅能够加速算法验证,还能在安全可控的条件下进行复杂场景的重复测试。 本文将分享如何利用 自动驾驶仿真软件配置仿真传感器与搭建仿真环境 ,并对脚本进行修改,优化和验证4个鱼眼相机生成AVM(Around View Monitor) 合成数据 的流程。通过这一过程,一同深入体验仿真软件的应用潜力! 一、流程概述 AVM 是一种通过多相机实现车辆周围环境的 实时监控和显示 的系统,广泛应用于自动驾驶和高级驾驶辅助系统(ADAS)的环境感知中。本文基于仿真软件与脚本生成AVM图像的流程如下所示: 图1:基于aiSim构建AVM图像流程 首先,在 Unreal Engine 中配置标定投影参数所需的地图,并在仿真器中为车辆部署4个方向的鱼眼相机; 其次,基于相机内参进行 去畸变 ,并记录求解投影矩阵所需的 关键参考值 ,例如AVM画幅尺寸、参考点的相对坐标、参考区域的大小与位置、车辆与参考区域的距离等; 随后,在完成了角点提取预处理的标定图像中快速 选取参考点 ,生成单方向的BEV视图,重复4次完成 标定去畸变 ; 后文将对每个流程进行具体描述。 二、仿真传感器与环境配置 对于AVM功能而言,通常需要配备4个及以上的 大FOV相机 以拍摄车辆周围的图像,在此基础上还可 配备雷达 以更好地获取车辆周围的障碍物信息。 图2:aiSim相机传感器障碍物真值输出 由于本文所使用仿真软件的相机传感器可以直接输出识别对象(车辆、行人等)的2D、3D边界框真值,所以只需配置 4个方向的鱼眼相机 即可满足整体需求: (1)前置鱼眼相机: 安装在前方车标附近,约15°俯视角; (2)后置鱼眼相机: 安装在后备箱附近,约25°俯视角; (3)左、右侧鱼眼相机: 分别安装在左右后视镜下方,约40°俯视角与相对车纵轴约100°的偏航角。 图3:环视OpenCV鱼眼相机传感器配置 除了传感器的配置,考虑到脚本是通过选取地面点,求解相机到地面的投影矩阵,并转换生成BEV视图进行组合,所以还需要构建一张 特征明显、易于辨认标定效果的地图。 本文所使用的仿真软件支持在 Unreal Engine 中进行 地图编辑与导出 ,并带有一定数量的 3D资产库, 因此可以基于一张基础室内地图,布置一定数量的正方形黑白标定板,根据需要搭建一个标定地图: 图4:基于aiSim插件的Unreal Engine地图编辑 首先,在 Unreal Engine 中打开项目,并进入 室内合成地图; 然后,从 3D资产库 中选择100cm×100cm×5cm的标定板静态网格体,拖放到地图中; 随后,通过直接拖动模型上的变换工具或者修改侧边栏中的变换属性框 调整标定板的位置与姿态; 进而,配置标定板的材质,以黑色、白色的交替顺序铺展标定板; 最终形成一个 长方形的标定区域。 图5:编辑完成后的地图效果参考 批量铺展的过程可以拆分为对2×2的标定板组合实施 横向与纵向阵列 ,完成后的地图如图所示,整体是一个6m×11m的矩形区域, 车辆 放置在中间2m×5m的矩形区域中。 三、图像处理与AVM合成验证集 如前文所述,本文使用的 AVM脚本 是基于车辆四周,位于相邻两个相机重叠视野的标定物,通过 选取参考投影区域 实现鱼眼相机到 BEV 的转化,以前视鱼眼相机为例: 图6:投影区域及BEV转化示意图 首先,由于是仿真传感器的标准OpenCV鱼眼相机模型,焦距、中心像素位置、畸变参数等内参均已知,可直接使用 OpenCV的去畸变函数 实现去畸变,如图6的(c)到(d)所示; 其次,设定 图6(a)与(b)所示关键参数 ,确定图像上的点对应的真实世界位置,进而计算尺度: (1)AVM视野总宽 total_width = 2 × shift_width + 6 × board_size; (2)AVM视野总长 total_height = 2 × shift_height + 11 × board_size; (3)board_size为 标定板边长 ,此处为100,单位cm; (4)shift_width与shift_height为 视野延伸距离 ,单位cm; (5)左上角投影点 projection_point_0:(shift_width + 100, shift_height),以此类推 右上角、左下角、右下角 投影点坐标,形成 投影区域; (6)inner_height与inner_width为投影区域相对车辆的 横向、纵向距离 ,单位cm,由此可以推算出自车所处区域; 而后,对去畸变相机图像追加 Shi-Tomasi角点提取处理 ,并增加 半自动采点 的模式切换,自动选取鼠标点击像素位置周围欧式距离最小的角点,保障准确度的同时提升效率; 最后,如图6(d)选取4个角点,形成与(b)对应的参考投影区域,输出的 BEV视图 如图6(e)所示。 图7:环视BEV合成AVM示例 以此类推可以得到4个方向的BEV视图及对应的投影参数,结合车辆图层作为覆盖,即可生成对应传感器布置下的 二维AVM合成图像 ,如图7所示,其中每个像素分辨率为1cm²。 图8:传感器外参优化示例 通过仿真软件,一方面可以在 控制算法不变 的情况下寻找出更优的 传感器外参布局 ,另一方面也可以在 控制传感器不变 的情况下在多种不同场景验证,进而迭代 优化AVM算法 的表现。结合相机传感器自带的标注信息,后续也可以进行包括 障碍物识别 在内的更多功能验证。 图9:不同场景下的AVM合成数据 四、总结与展望 本文介绍了基于aiSim仿真软件生成 AVM合成数据 的完整流程,包括传感器与地图的配置、图像处理与BEV视图生成以及最终的AVM合成验证。 不难看出,仿真软件的 高效性与灵活性 保障了在安全可控的环境中 快速验证算法性能 的可行性,并可以通过多场景测试与参数优化改进算法,最终提升其综合表现。
  • 2024-6-4 14:00
    0 个评论
    经纬恒润成功研发LRR610雷达先进算法!
    好消息!经纬恒润搭载Arbe芯片组的LRR610 4D成像雷达 算法开发出先进的后点云算法,并已圆满完成集成工作,这标志着智能驾驶感知系统迈向了一个新的里程碑。 经纬恒润自主开发的成像雷达算法,可以有效地跟踪数百个运动和静止目标,输出可行驶区域和道路边界,仅基于成像雷达点云,即可对常见道路目标进行分类识别,辅助驾驶决策,实现智能驾驶。当前这一算法成功地运行在 经纬恒润 自主开发的域控平台上。您是否期待一睹这些先进技术在实际应用中的风采?赶快点击下方链接观看精彩视频吧! 经纬恒润自主开发的成像雷达算法演示 了解更多: 请致电 010-64840808转6117或发邮件至market_dept@hirain.com(联系时请说明来自面包房社区)
  • 热度 6
    2023-11-18 17:03
    671 次阅读|
    0 个评论
    下载链接!! 本文介绍一款成熟的伺服驱动器方案,包含详细的软硬件方案。硬件方案包括原理图,PCB,BOM。软件方案包含源代码以及Hex(Bin)文件。软件部分也有相关位置模式中断定长功能应用步骤简单说明。小编觉得,这可以说是一份比较完整的方案,对于伺服驱动相关开发工程师有很大的提升和帮助。 硬件方案--显示板 显示板主要功能是按键,数码管等用户交互界面。包含5个按键,2个共阳极数码管,2个位移寄存器74HCT595D。PCB板是2层板。 硬件方案--大功率驱动板 大功率驱动板包含整流桥DB207S,变频器模块PS21767,变压器,运算放大器MCP6002T,LDO,光耦,电流传感器ACS710KLATR等器件。PCB是2层板,大面积铺铜过大电流。 硬件方案--控制板 控制板是整机控制单元,主控采用了DSPTMS320F28034PNT,包含了原理图,PCB文件,BOM文件。包括了D-sub15和D-sub25等接口,485通信,ADC采样等电路。PCB分了两个版本,一个是2层板,一个是4层板。 软件方案 软件方案包含了工程文件,无需自己再搭建工程。应该是用CCS打开,包含了详细的功能模块:485通信收/发独立功能,modbus相关功能,混合控制模式,转矩控制模式,估值滤波器,速度观测器,增量型PID等,有需要的工程师朋友应该在分析电路后仔细阅读代码,会有收获的。
相关资源
  • 所需E币: 5
    时间: 2024-8-1 16:15
    大小: 14.58MB
    上传者: 周垚
    152张图表,轻松掌握17种常用算法!没有复杂公式,零基础也可轻松读懂!用Python3.7实现机器学习的相关算法!本书基于丰富的图示,详细介绍了有监督学习和无监督学习的17种算法,包括线性回归、正则化、逻辑回归、支持向量机、核方法、朴素贝叶斯、随机森林、神经网络、KNN、PCA、LSA、NMF、LDA、k-means算法、混合高斯分布、LLE和t-SNE。书中针对各算法均用Python代码进行了实现,读者可一边运行代码一边阅读,从而加深对算法的理解。
  • 所需E币: 5
    时间: 2024-7-18 14:15
    大小: 9.96MB
    上传者: weixianghui
    Matlab simulink模型包括:1. State of Charge(SOC) 扩展卡尔曼滤波和无迹卡尔曼滤波估计算法2. 主动均衡算法3.故障诊断、预充电
  • 所需E币: 1
    时间: 2024-5-25 11:07
    大小: 24.48MB
    主要是介绍数据结构和算法分析,很经典。
  • 所需E币: 0
    时间: 2024-3-12 10:43
    大小: 7.6MB
    上传者: htwdb
    随着计算机技术的飞速发展和生物识别技术的广泛应用,人们越来越多地关注身份认证的安全,指纹识别因其隐私性和便捷性,已经成为当前发展最成熟的身份认证技术,在各个行业领域中都得到了广泛应用.除了有着重要的理论意义和应用价值之外,指纹识别技术也是一门能广泛应用在信息安全、网络安全、犯罪处理等多个领域的综合性技术.本文以本人在校外实习期间参与完成的高性能指纹识别芯片课题为基础,详细介绍了指纹组成、特征及指纹识别算法流程,并对各个步骤的原理和算法具体实现过程做出了详细描述,并结合C语言指纹识别算法,针对PC端对系统时间、系统空间以及函数代码这三个方面提出了一些优化策略和方法.然后详细介绍了用MFC图形化界面设计指纹预处理图形交互界面的流程,通过对C语言各个模块函数的调用展示了指纹录入、指纹预处理的功能,并对界面进行优化,增强了软件界面的灵活性.   本文将研究设计分为"C语言算法描述与优化"和"MFC图形化界面设计"这两个主要部分:(1)C语言算法描述与优化:对指纹识别算法中指纹图像采集、指纹图像预处理、指纹特征提取这三个关键步骤的原理进行了介绍,并结合C语言指纹识别算法,详细描述了各个步骤的原理和算法实现过程.针对PC端系统时间、系统空间的一些优化方案的原理和具体实现进行了说明和概述.主要内容包括系统时间优化的方案如Gabor滤波模块优化、算法数据浮点转定点,系统空间优化的方案如选择合适的数据结构和尽量小的数据类型,并概括了一些实习工作中总结的函数代码优化的方法.(2)MFC图形化界面设计:着重介绍用MFC中的C++类库设计一个指纹预处理系统界面,这个系统界面的目的是评估指纹预处理算法,在MFC对话框类的基础上添加不同的控件,通过对C语言的算法调用,在PC端展示从文件中选择指纹图像、指纹预处理图像显示、各模块阈值自定义设定等功能,并对界面进行优化,实现了界面与控件自适应、界面尺寸控制等功能,增强了软件界面的灵活性.最后,本文对研究工作进行总结,并在本论文的工作基础上提出了一些进一步的优化方案,对课题未来进行展望.
  • 所需E币: 0
    时间: 2024-1-30 15:29
    大小: 2.32KB
    今天抽空跟大家讨论一下关于成为AI人工智能算法工程师的条件是什么?众所周知,AI人工智能是当前最热门的技术之一,那么需要掌握哪些技术才能胜任这一职位呢?我们今天就来唠一唠。算法工程师是一个很高端的岗位,要求有很高的数学水平和逻辑思维能力,需要学习高等数学、离散数学Q、线性代数、数据结构和计算机等课程。专业要求:计算机、通信、数学、电子等相关专业。学历要求:本科及其以上学历,大多数都是硕士及其以上学历。语言要求:英语要求熟练,基本上可以阅读国外相关的专业书刊。另外,还必须要掌握计算机相关的知识,能够熟练使用仿真工具MATLAB等,必须要掌握一门编程语言。那算法工程师到底具体需要哪些知识第一个:肯定就是数学和统计学数学和统计学是算法工程师必备的基础知识,要掌握线性代数、概率论、统计学等知识,才能理解和应用各种机器学习算法和模型。第二个:数据结构和算法数据结构和算法是算法工程师必备的知识,需要熟练掌握各种数据结构和算法,如数组、链表、树、图、排序、查找、动态规划等,以便能够设计和实现高效的算法。第三个:编程语言和工具算法工程师需要熟练掌握至少一门编程语言,如Python、C++等,并熟悉常用的开发工具和框架,如Git、JupyterNotebook、PyTorch等。第四个:深度学习深度学习是机器学习的一个子集,常见的深度学习算法包括受限波尔兹曼机、DeepBeliefNetworks、卷积网络、堆栈式自动编码器等。第五个:算法基础算法工程师需要掌握算法基础,包括线性代数、概率论与数理统计、数据结构、算法分析与设计等方面的知识。当然还有很多,在此就不一一列举,主要分为4个部分:数学基础、编程能力、算法基础、实战。接下来,我们聊聊大家最关心的薪资这块。算法岗位薪资方面:在前几年,算法岗的薪资确实是比开发岗要高很多,可以称之为红利期。但最近几年,算法和开发岗有趋于拉平的意思,但是相对来说,同级情况下,算法岗还是要高1~2k的样子。领域分类:算法岗位的方向还是很多的,一方面是按技术领域,可以划分为计算视觉(CV),自然语言处理(NLP),AIGC,语音算法等等。另一方面是按行业领域,分成气象、交通、工业。。。等等等等。方向不一样,技术栈相差非常大了。优缺点在薪资方面,算法打赢开发。在难度方面,算法打赢开发。在工作强度方面,开发打赢算法。在岗位数量方面,开发打赢算法。在职业周期长度方面,算法打赢开发。(这也是一些焦虑状态下的程序员对算法岗动心的原因)在职业发展上限方面,算法打赢开发。最后我们来谈谈十大基础算法都有哪些。一、选择排序过程简单描述:首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。其次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。这种方法我们称之为选择排序。二、插入排序我们在玩打牌的时候,你是怎么整理那些牌的呢?一种简单的方法就是一张一张的来,将每一张牌插入到其他已经有序的牌中的适当位置。当我们给无序数组做排序的时候,为了要插入元素,我们需要腾出空间,将其余所有元素在插入之前都向右移动一位,这种算法我们称之为插入排序。三、冒泡排序1、把第一个元素与第二个元素比较,如果第一个比第二个大,则交换他们的位置。接着继续比较第二个与第三个元素,如果第二个比第三个大,则交换他们的位置….四、希尔排序五、归并排序六、快速排序七、计数排序八、桶排序九、基数排序十、堆排序
  • 所需E币: 0
    时间: 2024-1-30 12:04
    大小: 2.79KB
    上传者: 开心就很好了
    今天给大家讲讲关于AI,打通视觉,NLP,机器学习,深度学习,推荐搜索,AIGC,大模型等等这些当下最热门技术,我将从以下9个方面给大家做详细讲解关于AI人工智能算法工程师的相关知识。阶段一:从AI全面认知到基础夯实-行业认知&Python&必备数学阶段二:从AI核心技术理论体系构建到项目实战:机器学习&深度学习阶段三:构建AI的数据驱动力--数据预处理工程阶段四:AI深度学习框架实战-Pytorch从基础到进阶阶段五:AI核心算法+方法——经典深度学习模型实战阶段六:AI计算机视觉核心技术与项目实战-工业&医疗与直播&自动驾驶等主流领域阶段七:AIGC火热领域技术与项目-文本图像生成&扩散模型等阶段八:NLP自然语言处理与LLM大语言模型应用实战阶段九:AI工程师入行&转化&就业&面试指导首先,我们先来说说什么是人工智能:人工智能(ArtificialIntelligence),简称为AI,是一门集多学科于一体的综合性技术科学。它的核心目的是创造出能够模拟人类思维能力的机器,使其具备感知、思考和决策的能力。自然语言处理(NaturalLanguageProcessing,简称NLP)是计算机科学和人工智能领域的一个重要分支。它的核心目标是让计算机能够理解和生成人类自然语言,这包括了文本、语音等多种形式的人类语言输入输出。机器学习是一门人工智能的科学,其核心在于计算机通过对数据的学习和经验积累来自动提升性能。深度学习是机器学习的一个子领域,它受到人类大脑神经网络的启发,旨在模拟人类的学习过程。生成式人工智能——AIGC(ArtificialIntelligenceGeneratedContent),是指基于生成对抗网络、大型预训练模型等人工智能的技术方法,通过已有数据的学习和识别,以适当的泛化能力生成相关内容的技术。大模型是指包含超大规模参数(通常在十亿个以上)的神经网络模型。接下来,我们讲解环境的安装配置:安装CPU版本PyTorch#创建PyTorch环境condacreate-ntorch2python==3.10#进入环境condaactivatetorch2#安装cpu版本pytorchpipinstalltorch==2.0.0torchvision==0.15.1torchaudio==2.0.1--index-urlhttps://download.pytorch.org/whl/cpu验证CPU版是否安装成功importtorchprint(torch.__version__)print(torch.cuda.is_available())输出2.0.0+cpuFalseTensor存储的数值Tensor可以用多种方法进行初始化。下面给出例子:直接传数据Tensor可以直接从数据进行创建,数据类型会自动适应。importtorchdata=[[1,2],[3,4]]x_data=torch.tensor(data)print(x_data)使用Numpy数据可以通过Numpy矩阵中进行创建importtorchimportnumpyasnpnp_array=np.array([[1,2],           [3,4]])x_np=torch.from_numpy(np_array)print(x_np)利用已有tensor根据已有的数据形式(形状,数据类型),创建出新的tensorimporttorchdata=[[1,2],[3,4]]x_data=torch.tensor(data)#保持了x_data的数据属性与形状x_ones=torch.ones_like(x_data) print(f"OnesTensor:\n{x_ones}\n")#保持x_data的形状,重新定义x_data的数据属性x_rand=torch.rand_like(x_data,dtype=torch.float) print(f"RandomTensor:\n{x_rand}\n")最后到案例部分:案例1:导入两个列表到Dataset举一个例子,fromtorch.utils.dataimportDataset,DataLoaderclassMyDataset(Dataset):#继承自Dataset  def__init__(self,):#定义数据集包含了什么东西    self.x=[iforiinrange(10)]    self.y=[2*iforiinrange(10)]  def__len__(self):#返回数据集的总长度    returnlen(self.x)  def__getitem__(self,idx):#当数据集被读取时,需要返回的数据    returnself.x[idx],self.y[idx]my_dataset=MyDataset()my_dataloader=DataLoader(my_dataset)forx_i,y_iinmy_dataloader:  print("x_i=",x_i,"y_i=",y_i)输出x_i= tensor([0]) y_i= tensor([0])x_i= tensor([1]) y_i= tensor([2])x_i= tensor([2]) y_i= tensor([4])x_i= tensor([3]) y_i= tensor([6])x_i= tensor([4]) y_i= tensor([8])x_i= tensor([5]) y_i= tensor([10])x_i= tensor([6]) y_i= tensor([12])x_i= tensor([7]) y_i= tensor([14])x_i= tensor([8]) y_i= tensor([16])x_i= tensor([9]) y_i= tensor([18])案例2:导入Excel数据到Dataset中dataset只是一个类,因此数据可以从外部导入,我们也可以在dataset中规定数据在返回时进行更多的操作,数据在返回时也不一定是有两个。fromtorch.utils.dataimportDataset,DataLoaderimportpandasaspdclassMyDataset(Dataset):#继承自Dataset  def__init__(self,data_loc):#定义数据集包含了什么东西    data=pd.read_excel(data_loc)    self.x1,self.x2,self.x3,self.x4,self.y=data['x1'],data['x2'],data['x3'],data['x4'],data['y']  def__len__(self):#返回数据集的总长度    returnlen(self.x1)  def__getitem__(self,idx):#当数据集被读取时,需要返回的数据    returnself.x1[idx],self.x2[idx],self.x3[idx],self.x4[idx],self.y[idx]if__name__=='__main__':  data_loc="模仿数据读取.xlsx"  my_dataset=MyDataset(data_loc)  my_dataloader=DataLoader(my_dataset,batch_size=2)  forx1_i,x2_i,x3_i,x4_i,y_iinmy_dataloader:    print(f"x1_i={x1_i},x2_i={x2_i},x3_i={x3_i},x4_i={x4_i},y_i={y_i}")
  • 所需E币: 0
    时间: 2023-8-4 17:08
    大小: 982.15KB
    上传者: L716
    算法交易是国内交易趋势 
  • 所需E币: 1
    时间: 2023-7-10 14:56
    大小: 1.08MB
    上传者: 张红川
    温度控制的pid算法的c语言程序.doc
  • 所需E币: 1
    时间: 2023-7-10 15:04
    大小: 1.7MB
    上传者: 张红川
    中英文翻译---常规PID和模糊PID算法的分析比较.doc
  • 所需E币: 1
    时间: 2023-7-10 14:51
    大小: 76KB
    上传者: 张红川
    51单片机PID算法程序(二)位置式PID控制算法.doc
  • 所需E币: 1
    时间: 2023-7-10 14:52
    大小: 101.89KB
    上传者: 张红川
    BA单片机PID算法的直流电机测控系统1.pdf
  • 所需E币: 1
    时间: 2023-7-3 10:39
    大小: 44KB
    上传者: 张红川
    PI的计算算法.doc
  • 所需E币: 2
    时间: 2023-7-1 20:56
    大小: 125.84MB
    上传者: Argent
    Python算法教程
  • 所需E币: 2
    时间: 2023-7-1 20:29
    大小: 56.4MB
    上传者: Argent
    C++数据结构与算法(Edition4)
  • 所需E币: 1
    时间: 2023-6-29 08:59
    大小: 1001.61KB
    上传者: 张红川
    【10】图像聚类算法.pdf
  • 所需E币: 1
    时间: 2023-6-28 13:50
    大小: 4.67MB
    上传者: 张红川
    【13】OpenCV算法解析.pptx
  • 所需E币: 1
    时间: 2023-6-28 13:41
    大小: 25.14MB
    上传者: 张红川
    百面机器学习算法工程师带你去面试.pdf
  • 所需E币: 1
    时间: 2023-6-28 11:26
    大小: 35.26KB
    上传者: 张红川
    CRC算法原理及C语言实现.pdf
  • 所需E币: 1
    时间: 2023-6-25 13:33
    大小: 712.5KB
    上传者: 张红川
    DSP大作业-快速傅立叶变换(FFT)算法实验.doc
  • 所需E币: 1
    时间: 2023-6-25 13:33
    大小: 464.92KB
    上传者: 张红川
    FFT算法DSP实现(DIT基2FFT运算流图).pdf