智能车编码器测距:从原理到实践,实现精准里程计算与定位
1. 项目概述为什么智能车必须精确计算路程在智能车竞赛的赛道上我们经常看到小车风驰电掣但你是否想过它如何知道自己跑了多远是靠感觉吗当然不是。对于追求速度和精度的竞速组或者要求定点停车的创意组知道自己的绝对位置是完成比赛任务的基础。而编码器就是智能车用来“丈量”赛道的尺子。我参加过几届比赛从最初靠陀螺仪和摄像头“毛估估”到后来引入编码器进行精确的里程计算整个车的控制水平和成绩稳定性有了质的飞跃。这个项目就是聚焦于如何利用编码器将车轮转动的物理信号转化为我们可以直接使用的“实际路程”数据这是实现闭环控制、路径规划和精准停车的核心技术基石。简单来说这解决了智能车“盲跑”的问题。没有路程反馈你的PID速度控制就是开环的车速会随着电池电压、地面摩擦力的变化而飘忽不定你的路径积分也是不准确的跑着跑着就可能偏离预定轨迹。编码器提供的路程信息让车有了“自知之明”是构建稳定、可靠、高性能智能车系统的关键一步。无论你是刚接触智能车的新手还是想优化现有方案的老手搞懂编码器测距的原理和实现都至关重要。2. 编码器测距的核心原理与硬件选型2.1 编码器是如何“数格子”的要理解路程计算首先得明白编码器在“数”什么。你可以把编码器想象成一个在车轮轴上安装的“精密刻度盘”。车轮每转动一圈这个刻度盘就会输出固定数量的脉冲信号。我们常用的增量式正交编码器会输出两路相位差90度的方波信号通常称为A相和B相。通过检测这两路信号的边沿和相位关系我们不仅可以“数”出脉冲的个数从而知道转了多少角度还能判断出车轮是正转还是反转。计算路程的基本公式非常直观实际路程 脉冲累计数 × 车轮周长 / 编码器分辨率。脉冲累计数这是你的单片机通过编码器接口如定时器的编码器模式实时计数得到的值。正转加反转减。车轮周长这是一个物理常量测量你的轮胎直径d周长C π × d。这是将“转动圈数”转化为“直线距离”的桥梁。编码器分辨率这是编码器固有的参数表示旋转一圈所产生的脉冲数。比如一个500线的编码器分辨率就是500 PPRPulses Per Revolution。注意有些地方会提到“四倍频”这指的是利用A、B两相的上升沿和下降沿进行计数可以将有效分辨率提高到4倍即2000个计数/圈从而获得更高的角度测量精度。注意公式里的“编码器分辨率”在实际编程中要与你采用的计数模式对应。如果使用了四倍频那么公式中分母就应该是“编码器线数 × 4”。2.2 常见编码器类型与选型考量面对市面上五花八门的编码器该怎么选这需要结合你的车模、电机和控制核心来定。霍尔编码器如MG310电机内置这是最常见、成本最低的方案。通常集成在直流减速电机内部分辨率较低常见几十到几百PPR输出波形质量可能一般易受电机磁环和安装的影响。但对于一般的速度闭环和粗略的里程统计完全够用。接线简单通常是三根线VCC, GND, Signal或两根信号线A, B。光电增量式编码器如欧姆龙E6B2-CWZ6C这是追求精度队伍的标配。通过光栅盘和光电传感器产生信号分辨率高几百到几千PPR精度高响应快。需要单独安装在电机轴或传动轴上安装要求较高同心度、间隙体积相对较大。接线通常是五根线电源、地、A、B、Z相Z相每圈一个脉冲用于清零参考。磁编码器如AS5047P, MA732一种非接触式的高性能选择。通过检测磁场变化来测量角度分辨率可以做到很高14位即16384步/圈且体积小抗振动和污染能力强。通常通过SPI或ABI接口通信。AS5047P这类芯片需要自己设计PCB安装对磁铁安装位置有严格要求但能提供绝对角度信息无需担心上电累积误差。选型心得新手入门/成本敏感直接使用车模配套的带霍尔编码器的电机如常见的TT电机、N20电机带霍尔版本。先让系统跑起来理解整个流程。竞速组追求性能首选高质量的光电增量式编码器。500线或1024线是常见选择配合四倍频能获得非常精细的数据。创意组/需要绝对位置可以考虑磁编码器。比如在舵机转向轮上安装一个AS5047P就能精确知道当前转向角结合主驱动轮里程实现更复杂的定位。核心主控支持确认你的单片机是否有硬件编码器接口。STM32的通用定时器基本都支持MSPM0G3507的TimerA也支持ESP32-S3有专门的脉冲计数模块PCNT。有硬件支持能极大减轻CPU负担并提高计数可靠性。如果主控没有则需用外部中断软件模拟这会占用大量CPU时间且在高转速下易丢脉冲。3. 从脉冲到路程的软件实现全解析硬件连接好后真正的挑战在软件。如何稳定、准确、高效地将脉冲数转化为路程值并处理好各种边界情况是本节的重点。3.1 硬件接口配置与数据读取以最常见的STM32F103的定时器编码器模式为例。我们通常将一个定时器如TIM2、TIM3、TIM4配置为编码器模式。// 初始化TIM3为编码器接口模式 void Encoder_TIM3_Init(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_ICInitTypeDef TIM_ICInitStructure; GPIO_InitTypeDef GPIO_InitStructure; // 1. 使能时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 2. 配置GPIOPA6, PA7 作为 TIM3_CH1, CH2 GPIO_InitStructure.GPIO_Pin GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode GPIO_Mode_IN_FLOATING; // 浮空输入编码器一般有上拉 GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; GPIO_Init(GPIOA, GPIO_InitStructure); // 3. 初始化定时器时基 TIM_TimeBaseStructInit(TIM_TimeBaseStructure); TIM_TimeBaseStructure.TIM_Period 65535; // 16位计数器最大值用于溢出处理 TIM_TimeBaseStructure.TIM_Prescaler 0; // 不分频 TIM_TimeBaseStructure.TIM_ClockDivision TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, TIM_TimeBaseStructure); // 4. 配置编码器接口模式 TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising); // TIM_EncoderMode_TI12 表示在TI1和TI2的边沿都计数即四倍频 // 极性都选Rising具体根据编码器信号实际调整 TIM_ICStructInit(TIM_ICInitStructure); TIM_ICInitStructure.TIM_ICFilter 6; // 配置输入滤波器有助于抗干扰 TIM_ICInit(TIM3, TIM_ICInitStructure); // 5. 使能定时器 TIM_Cmd(TIM3, ENABLE); // 6. 设置计数器初始值可选用于清零 TIM_SetCounter(TIM3, 32768); // 设为中值方便正反转计数 }配置完成后定时器的计数器TIMx-CNT就会随着编码器脉冲自动增减。我们需要定期比如在1ms或5ms的控制周期中断里读取这个值并计算差值。3.2 路程计算的算法实现与溢出处理直接读取CNT值相减是不行的因为CNT是16位或32位的会溢出从65535跳回0或从0跳回65535。我们必须处理这个溢出。// 全局变量 int32_t g_encoder_total_ticks 0; // 累计的脉冲计数有符号支持反转 uint16_t g_encoder_last_cnt 0; // 上一次读取的CNT值 float g_wheel_circumference 3.1415926f * 6.5f; // 假设轮子直径6.5cm单位cm float g_distance_cm 0.0f; // 计算出的总路程单位厘米 const uint32_t ENCODER_RESOLUTION 500 * 4; // 500线编码器使用四倍频 // 在定时中断如1ms中调用此函数 void Encoder_UpdateDistance(void) { uint16_t current_cnt TIM3-CNT; // 读取当前计数值 int16_t diff (int16_t)(current_cnt - g_encoder_last_cnt); // 计算差值 // 处理计数器溢出/下溢 // 因为diff是int16_t当CNT从65535到0正转溢出diff会是 -65535实际应视为1 // 当CNT从0到65535反转下溢diff会是 65535实际应视为-1 // 利用int16_t的截断特性当实际差值超过±32768时diff会符号反转。 // 例如实际32769会被表示为-32767。我们可以通过判断diff的绝对值是否过大来修正。 if(diff 32767) { diff - 65536; // 修正为正转溢出情况 } else if(diff -32767) { diff 65536; // 修正为反转下溢情况 } // 经过修正diff现在表示从上一次采样到这一次采样之间真实、正确的脉冲变化量。 g_encoder_total_ticks diff; // 累加到总脉冲数 g_encoder_last_cnt current_cnt; // 更新上一次计数值 // 计算总路程 g_distance_cm (float)g_encoder_total_ticks * g_wheel_circumference / ENCODER_RESOLUTION; }关键点解析使用有符号累计值g_encoder_total_ticks必须是int32_t甚至int64_t因为路程可能很长且需要支持正反转。巧妙的溢出处理利用int16_t diff的截断和范围判断是处理16位计数器溢出的经典且高效的方法。这段代码是核心务必理解。浮点数与精度最终路程计算用了浮点数。对于实时控制在速度环PID计算中可以考虑使用“Q格式”定点数来提升速度但对于路程显示或路径记录浮点数更方便。采样周期1ms的更新周期对于智能车速度足够。周期太短diff可能经常为0周期太长会损失动态响应。5ms也是一个常用值。3.3 里程计的标定与误差来源分析你以为装上编码器按照公式算出来的路程就准了吗大错特错。标定是让里程计从“可用”到“精准”的必经之路。标定方法在平整地面上画一条已知长度L的直线例如2米。让小车沿直线匀速行驶从起点到终点控制尽量平稳。记录小车停止时g_encoder_total_ticks的值记为Ticks_measured。计算实际每脉冲距离Distance_per_tick L / Ticks_measured。用这个标定出的Distance_per_tick替换公式中的(g_wheel_circumference / ENCODER_RESOLUTION)。为什么要标定因为误差来源太多了轮胎打滑/空转这是最大误差源。加速、减速、转弯时轮胎与地面的滑动会导致编码器计数了但车没走那么远。轮胎直径变化轮胎磨损、气压变化、负载不同都会导致实际滚动半径变化。机械安装误差编码器轴与电机轴不同心、联轴器有间隙都会引入周期性误差。地面平整度在不平的路面行驶实际轨迹长度大于编码器测量的直线投影距离。实操心得标定最好在比赛实际使用的场地上进行并且让小车以接近比赛的平均速度运行。可以多次测量取平均值。对于竞速车在长直道上进行标定对于需要精准定位的创意组可以在其任务路径上进行分段标定。记住里程计是相对定位它积累的误差会随着时间/距离增加而发散。因此高水平的方案会融合陀螺仪IMU进行航迹推算Dead Reckoning或者用摄像头、激光雷达等传感器进行绝对定位修正。4. 高级应用融合多传感器提升定位可靠性单纯依靠编码器里程计在复杂赛道尤其是急弯、坡道上误差积累会非常快。因此我们需要进行传感器融合。4.1 与陀螺仪融合进行航迹推算这是最基础的融合。编码器提供前进方向的距离增量d陀螺仪Z轴角速度提供角度变化量θ。通过积分我们可以估算出小车在二维平面上的位置x, y和朝向φ。// 简化模型假设短时间内为直线运动 delta_d encoder_get_delta_distance(); // 本次周期内移动距离 delta_theta gyro_z * delta_t; // 本次周期内转过的角度弧度 // 更新位姿 x delta_d * cos(phi delta_theta / 2.0); // 使用中值角度减少误差 y delta_d * sin(phi delta_theta / 2.0); phi delta_theta;这种方法被称为“航迹推算”。它比纯编码器好因为考虑了转弯但依然存在误差积累特别是陀螺仪的零漂和温漂。4.2 引入视觉或激光雷达的闭环修正对于更高要求的场景如创意组的定点搬运、复杂路径跟踪需要引入绝对定位信息来“重置”累积误差。摄像头识别赛道上的特殊标记如Apriltag、二维码、特定颜色区块。当识别到标记时就知道小车在全局坐标系中的精确位置x_tag, y_tag此时可以直接用这个位置替换掉航迹推算出的位置或者用一个卡尔曼滤波器/Kalman Filter将两种信息融合。激光雷达LiDAR通过扫描周围环境与预先建好的地图进行匹配如ICP算法可以得到更连续、更鲁棒的全局定位。但这在智能车竞赛中因成本、算力和规则限制较少使用。融合策略示例卡尔曼滤波器思想预测步利用编码器陀螺仪的航迹推算模型预测小车下一时刻的位置。更新步当摄像头识别到路标时将识别到的位置作为观测值与预测值进行加权融合得到一个更优的估计位置。这个“预测-更新”的过程不断循环就能在大部分时间依赖高频率的里程计在关键时刻用绝对观测值修正漂移实现稳定可靠的定位。4.3 实际比赛中的路程信息应用场景速度闭环控制这是最直接的应用。通过微分路程数据速度 距离差 / 时间差得到实时车速作为PID控制的反馈量实现无论电池电量高低、路面摩擦如何都能保持设定速度。路径记录与重放在调试阶段让小车手动跑完一圈同时记录下每隔一定距离或时间的车速、舵机角度等信息。正式比赛时直接按照记录好的“路径点”执行这就是最简单的“离线轨迹跟踪”。路程在这里是回放的核心索引。分段速度规划知道全程距离后可以提前规划不同赛段的速度。例如直道全力加速入弯前减速弯心保持出弯加速。通过判断当前累计路程处于哪个区间来动态调整目标速度。精准停车对于需要停在指定区域的比赛任务当编码器累计路程接近目标距离时开始切换到一个精细的、低速的停车PID控制直到路程达到设定值实现厘米级甚至毫米级的停车精度。5. 调试技巧与常见问题排查理论终归要落地调试阶段会遇到各种妖魔鬼怪。下面是我踩过的一些坑和解决方法。5.1 编码器数据异常排查表现象可能原因排查方法计数不增加或减少1. 电源/地线未接好。2. 信号线接反或接触不良。3. 单片机编码器接口未正确配置。4. 编码器本身损坏。1. 用万用表检查电压。2. 交换A、B相线试试。3. 用示波器或逻辑分析仪看A、B相信号波形是否正常。4. 直接给编码器手动转动测量信号线电压是否跳变。计数方向与实际相反A、B相序接反。交换A、B相的接线。或者在软件中交换计数极性TIM_ICPolarity参数。计数速度慢且不线性1. 软件采样周期太长丢失脉冲。2. 编码器分辨率设置错误未考虑四倍频。3. 机械连接有严重打滑或间隙。1. 缩短读取CNT的周期。2. 确认分辨率参数。3. 检查编码器与轴的连接是否紧固。数据偶尔跳变毛刺信号受到干扰特别是电机PWM干扰。1. 编码器信号线使用双绞线远离电机电源线。2. 在单片机IO口增加滤波电容如10-100pF。3. 启用定时器输入捕获的硬件滤波器配置TIM_ICInitStructure.TIM_ICFilter如上文设置为6。4. 在软件中对路程数据进行低通滤波。小车静止时计数缓慢漂移1. 编码器信号抖动。2. 电机未完全停止时的微小振动。1. 加强硬件滤波和软件滤波。2. 在速度计算中设置一个死区Dead Zone当速度绝对值小于某个极小值时认为速度为零。5.2 软件层面的优化与抗干扰中断优先级管理编码器定时器中断的优先级不宜过高避免影响更关键的控制周期中断如1ms的PID计算中断。但也不能太低以防被阻塞导致计数丢失。数据滤波原始脉冲计数是干净的但计算出的速度可能噪声很大。可以采用一阶低通滤波或移动平均滤波来平滑速度值再用于PID控制。// 一阶低通滤波示例 float filtered_speed 0.9f * filtered_speed_prev 0.1f * raw_speed_current;滤波系数需要根据控制周期和系统响应速度调整。路程清零与同步在比赛起点或者识别到特定路标时需要有机制将g_encoder_total_ticks和g_distance_cm清零重新开始计算单圈或分段路程。同时如果使用多轮编码器如双电机差速模型需要确保左右轮编码器的读数在初始时刻是同步的或者通过软件校准消除零位差。5.3 机械安装的细节决定成败同心度编码器轴必须与电机轴严格同心。使用弹性联轴器可以补偿一定的不同心和轴向位移但最好还是精细安装。间隙任何机械连接间隙都会在电机启停、换向时造成编码器读数滞后或空程严重影响低速性能和控制精度。确保所有顶丝、螺丝锁紧。防护光电编码器怕灰尘和磕碰磁编码器怕强磁场干扰。做好物理防护。最后编码器路程计算是一个“系统工程”从硬件选型、安装、到软件配置、算法实现、标定调试环环相扣。它不像图像识别那样充满玄学每一个环节都有明确的因果关系。耐心地把每个环节做扎实你的智能车就能获得一双感知距离的“慧眼”在赛道上跑得又快又稳。我自己的经验是花在调试编码器和里程计上的时间最终都会在比赛成绩的稳定性上回报给你。刚开始可能觉得麻烦但一旦调通它将成为你最可靠的基础模块。

相关新闻

HPM6750 RISC-V MCU开发环境搭建全攻略:从工具链配置到Hello World实战

HPM6750 RISC-V MCU开发环境搭建全攻略:从工具链配置到Hello World实战

1. 从零到一:为什么HPM6750值得你投入时间搭建环境 如果你最近在关注国产高性能MCU,那么先楫半导体的HPM6750系列大概率已经进入了你的视野。这不仅仅是一颗普通的微控制器,它搭载了双核RISC-V处理器,主频高达816MHz,还…

2026/7/29 6:01:33 阅读更多 →
DSP28335嵌入式开发实战:FreeRTOS移植与电机控制任务设计

DSP28335嵌入式开发实战:FreeRTOS移植与电机控制任务设计

1. 项目概述与核心价值在嵌入式开发领域,尤其是工业控制、电机驱动和新能源应用里,德州仪器(TI)的C2000系列DSP,特别是经典的DSP28335,一直是许多工程师的老朋友。它凭借强大的数字信号处理能力和丰富的外设…

2026/7/29 6:01:33 阅读更多 →
从 MySQL 到 TSDB:初学者也能看懂的数据库类型入门

从 MySQL 到 TSDB:初学者也能看懂的数据库类型入门

从 MySQL 到 TSDB:初学者也能看懂的数据库类型入门📘 本文简介 本文从“TSDB 是不是时空数据库”这个问题出发,介绍关系型数据库、时序数据库、空间数据库、时空数据库,以及键值、文档、图数据库等常见数据库类型,并结…

2026/7/29 6:01:33 阅读更多 →

最新新闻

Shader优化实战:从变体管理到性能调优的完整指南

Shader优化实战:从变体管理到性能调优的完整指南

1. 项目概述:从Shader入门到性能调优的必经之路如果你是一名游戏开发者、图形程序员,或者是对实时渲染感兴趣的爱好者,那么“Shader”这个词对你来说一定不陌生。它就像是图形世界的魔法咒语,决定了屏幕上每一个像素的颜色、光影和…

2026/7/29 6:07:35 阅读更多 →
MySQL存储过程与Java代码修改的本质差异及实践

MySQL存储过程与Java代码修改的本质差异及实践

1. 存储过程修改的本质差异在数据库开发中,存储过程作为预编译的SQL语句集合,其修改逻辑与Java这类编程语言存在根本性差异。MySQL存储过程的修改不是简单的文本替换,而是需要重新编译整个过程体。这就像建筑改造时不能只换一块砖&#xff0c…

2026/7/29 6:07:35 阅读更多 →
文华商品指数实战指南:从市场晴雨表到交易决策核心工具

文华商品指数实战指南:从市场晴雨表到交易决策核心工具

1. 从零开始:我为什么要研究文华商品指数?如果你在期货市场里泡过一段时间,或者对大宗商品有点兴趣,那你大概率听过“文华商品指数”这个名字。它就像一个市场的“晴雨表”,每天开盘前,很多交易员都会习惯性…

2026/7/29 6:07:35 阅读更多 →
多模态AI进入实用阶段:从“能看懂“到“能创作“

多模态AI进入实用阶段:从“能看懂“到“能创作“

技术突破2026年,多模态AI终于从概念走向实用。以GPT-4o、Sora 2为代表的技术突破,实现了文本、图像、音频、视频的跨模态生成与交互。关键进展1. 文生视频成本骤降深圳可灵AI的文生视频模型已实现:单集制作成本降至人工拍摄的1/102025年营收突…

2026/7/29 6:07:35 阅读更多 →
Nginx静态资源安全配置实战:从目录遍历漏洞到性能优化

Nginx静态资源安全配置实战:从目录遍历漏洞到性能优化

1. 项目概述:一次由安全扫描引发的深度复盘那天下午,我正在工位上喝着咖啡,突然钉钉群里弹出一条告警信息,来自我们部署的安全扫描平台。告警级别是“高危”,标题赫然写着“Nginx目录遍历漏洞”。我心里咯噔一下&#…

2026/7/29 6:07:35 阅读更多 →
C++网络爬虫实战:基于cpp-httplib与Gumbo-parser的高效数据采集方案

C++网络爬虫实战:基于cpp-httplib与Gumbo-parser的高效数据采集方案

1. 项目概述与核心价值最近在做一个数据分析项目,需要大量、实时的房产信息作为基础数据源。手动去各个房产网站复制粘贴显然不现实,效率太低且无法保证数据的时效性。于是,我决定自己动手写一个网络爬虫。考虑到性能、跨平台和代码的简洁性&…

2026/7/29 6:06:35 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻