STM32红外NEC协议解码实战:从原理到稳定实现的避坑指南
1. 项目缘起从一次“失控”的空调说起去年夏天我手头一个基于STM32的智能家居中控项目遇到了一个不大不小的麻烦。项目需要集成红外遥控学习功能用来控制客厅里的一台老式美的空调。我信心满满地接好了红外接收头用逻辑分析仪抓取了原装遥控器的波形然后开始对着NEC协议的数据手册写解码程序。本以为是个标准操作结果却让人哭笑不得中控发出的指令十次里有八次空调没反应剩下两次要么是开了制冷却调到30度要么是打开了扫风模式。项目眼看要延期我开始从头排查这才发现红外NEC协议解码这个看似简单的任务里面藏着不少从数据手册上看不到的“坑”。红外遥控几乎是每个嵌入式开发者都会接触到的技术。它成本低廉、技术成熟广泛应用于家电、玩具等领域。而NEC协议则是红外遥控领域事实上的“普通话”绝大多数消费电子产品的红外遥控都兼容或基于此协议。对于STM32这类单片机来说实现NEC协议解码是检验其定时器、外部中断和GPIO应用能力的经典课题。但很多人包括当时的我容易把它想得太简单以为就是按照协议规定的时序去判断0和1结果在实际环境中却要面对信号畸变、环境光干扰、不同厂商的协议变种等一系列问题。今天我就结合那次踩坑和后续多个项目的实战经验为你彻底拆解如何在STM32上稳定、可靠地实现红外NEC协议解码。我们不止于读懂协议更要搞定从硬件连接到软件滤波从基础解码到处理“非标”信号的完整方案。无论你是正在做课程设计的学生还是需要为产品添加红外控制功能的工程师这篇内容都能让你避开我走过的弯路。2. NEC协议核心不止于0和1的时序逻辑在动手写代码之前我们必须吃透NEC协议的本质。很多教程只告诉你“引导码是9ms低电平4.5ms高电平”但这远远不够。理解其设计哲学才能写出健壮的代码。2.1 协议帧结构为何如此设计一帧完整的NEC协议数据通常由以下几部分组成引导码Start Code一个9ms的载波脉冲低电平紧接着一个4.5ms的空闲高电平。这个超长的、独特的信号就像广播里的报时音用于唤醒接收端并告诉它“注意下面要开始传数据了” 它的长度远大于数据位这为接收端的自动增益控制和噪声过滤提供了时间窗口。用户码Customer Code8位地址码用于区分不同厂家的设备。例如索尼的电视和松下的空调就有不同的用户码防止互相干扰。通常还会发送这8位的反码逻辑取反作为校验所以实际传输16位。接收端会同时检查原码和反码是否匹配这是第一道简单的容错机制。数据码Data Code8位命令码即具体的按键指令如“音量加”、“开机”。同样其后也跟随8位命令反码。结束位Stop Bit一个560μs的脉冲后跟随一段空闲。有时在连按按键时它会被简化为一个单独的560μs脉冲后面直接跟下一帧的引导码称为“重复码”。这个“原码反码”的双重传输机制是NEC协议在无线环境下的一个巧妙设计。它用极小的开销多传8位实现了单比特错误的检测在早期单片机处理能力有限、无线环境干扰大的背景下大大提升了可靠性。2.2 数据位的编码脉宽调制的奥秘NEC协议采用脉冲位置调制PPM的一种变体具体来说是脉冲宽度编码。逻辑‘0’由一个560μs的载波脉冲低电平和560μs的空闲高电平组成总周期为1.125ms。逻辑‘1’由一个560μs的载波脉冲低电平和1.69ms的空闲高电平组成总周期为2.25ms。这里有一个至关重要的细节无论是‘0’还是‘1’其起始部分都是一个560μs的脉冲。这个脉冲是载波信号通常为38kHz调制产生的。区别仅在于脉冲之后的高电平持续时间不同。这意味着接收端硬件一体化红外接收头在收到信号时会先解调掉38kHz的载波输出一个反向的电平信号。我们单片机检测的是这个解调后的波形。所以我们在示波器或逻辑分析仪上看到的“低电平”实际上对应着红外发射管正在发射光脉冲。理解这一点就能明白为什么我们的解码程序核心是测量两个下降沿之间的时间间隔。因为每个数据位都以一个下降沿脉冲开始为起点我们测量从这个下降到下一个下降沿的时间如果接近1.125ms则是‘0’如果接近2.25ms则是‘1’。2.3 示波器下的真实世界协议变种与噪声如果你用示波器去实测一个美的空调遥控器可能会发现它的引导码不是严格的9ms4.5ms可能是8.8ms4.4ms。数据位的脉宽也可能有微小的偏差。这就是“协议变种”。NEC协议是一个事实标准不同厂商在具体参数上会有细微调整但只要编码规则一致通常都能兼容。更麻烦的是环境噪声。日光灯、白炽灯、甚至阳光中都含有红外成分会被接收头拾取产生随机的低电平毛刺。这些毛刺如果被误判为数据位的起始下降沿就会导致解码完全错误。这就是我项目初期失败的主要原因——没有做有效的软件滤波。3. 硬件连接与信号调理给STM32一双“好耳朵”稳定的解码始于干净的信号。红外接收头如VS1838B、HS0038的选择和电路设计是第一步。3.1 一体化红外接收头不只是接三根线常用的一体化接收头有三个引脚VCC3.3V/5V、GND、OUT信号输出。它内部已经集成了红外接收管、前置放大器、带通滤波器中心频率38kHz和解调电路。你只需要给它供电它就能输出解调后的数字信号。注意务必在VCC和GND之间就近放置一个10uF~100uF的电解电容和一个0.1uF的瓷片电容用于电源去耦。红外接收头在工作时电流会有瞬间变化不稳定的电源会导致输出信号抖动产生误触发。这是我早期用面包板调试时踩过的坑加上电容后解码稳定性立竿见影。接收头的OUT引脚需要连接到STM32的GPIO。这里有一个关键决策点使用外部中断模式还是定时器输入捕获模式外部中断模式将GPIO配置为下降沿触发的外部中断。每个下降沿脉冲开始进入中断在中断服务函数中记录时间戳通过SysTick或通用定时器并计算时间间隔来判断是引导码、数据‘0’还是数据‘1’。这种方法直观对初学者友好但中断频繁一帧数据多达68个边沿在系统繁忙时可能丢失中断。定时器输入捕获模式将一个定时器的输入捕获通道配置为捕获该GPIO的下降沿。硬件会自动在边沿发生时记录定时器计数器的值并产生中断。你只需要在中断中读取两次捕获值的差值即可得到高电平或低电平的持续时间。这种方法更精确对CPU占用率更低是更专业的选择。对于追求稳定性和低功耗的产品我强烈推荐使用定时器输入捕获模式。下面我们以STM32F103C8T6的TIM2_CH1PA0引脚为例进行配置。3.2 定时器输入捕获配置详解我们目标是测量高电平的持续时间。NEC协议中无论是引导码还是数据位有用的信息都编码在高电平的宽度里。GPIO初始化将PA0配置为浮空输入或上拉输入因为接收头输出默认高电平。定时器初始化以TIM2为例。时钟源内部时钟APB1总线通常72MHz。预分频器PSC设置为71。这样定时器时钟 72MHz / (711) 1MHz即计数器每1微秒计数一次。这个精度足够测量毫秒和微秒级的红外信号。自动重装载值ARR设置为最大值0xFFFF65535。因为我们只关心两次捕获之间的差值ARR设大一些避免溢出65.535ms内必须处理完一次捕获对NEC协议绰绰有余。捕获/比较通道1配置为输入捕获模式捕获下降沿。开启捕获中断。中断服务函数逻辑这是解码的核心。第一次下降沿引导码开始记录捕获值IC1Value1然后将捕获边沿改为上升沿。第一次上升沿引导码低电平结束记录捕获值IC1Value2。计算差值IC1Value2 - IC1Value1这个值应该在9000左右对应9ms允许一定误差如±500。如果符合说明检测到引导码准备接收数据。然后将捕获边沿改回下降沿并清空数据缓冲区。后续的下降沿数据位开始对于数据位我们关心的是前一个上升沿到当前下降沿之间的时间即高电平持续时间。所以需要在每次上升沿时记录时间戳LastRiseTime。在下降沿中断中用当前捕获值减去LastRiseTime得到高电平持续时间HighLevelTime。如果HighLevelTime在1000~1350微秒之间理论1125μs则判定为逻辑‘0’。如果HighLevelTime在1600~2000微秒之间理论1690μs则判定为逻辑‘1’。将判断出的位存入缓冲区。重复上述过程直到收齐32位数据用户码16位数据码16位或超时。这种利用输入捕获自动测量脉宽的方式比在外部中断里手动开定时器要精准和可靠得多。4. 软件解码实战状态机与鲁棒性设计直接写一堆if-else来判断各种状态会让代码难以维护且容易出错。更好的方法是使用有限状态机FSM。对于NEC解码我们可以定义以下几个状态typedef enum { IR_IDLE, // 空闲状态等待引导码 IR_LEADER_CODE, // 已收到引导码等待用户码/数据码 IR_REPEAT_CODE, // 处理重复码连按 IR_ERROR // 错误状态 } IR_DecodeState_t;在定时器输入捕获的中断服务函数或由它触发的回调函数中我们根据当前状态和测量到的时间值进行状态转移和数据收集。4.1 解码状态机流程IR_IDLE状态当捕获到下降沿并测得低电平持续时间在8ms~10ms范围内且紧随其后的高电平持续时间在4ms~5ms范围内则判定为有效的引导码。状态转移到IR_LEADER_CODE复位位计数器bit_cnt 0清空数据缓冲区ir_data 0。IR_LEADER_CODE状态在此状态下我们开始按位接收数据。每次进入下降沿中断就根据前一个高电平的持续时间判断位值。将判断出的位值0或1移位存入ir_data。例如ir_data (ir_data 1) | bit_value。位计数器bit_cnt加1。当bit_cnt 32时表示一帧数据接收完成。接下来进行数据校验将收到的32位数据拆分为address高8位、~address次8位、command次次8位、~command低8位。检查address与~address是否互为反码command与~command是否互为反码。如果两者都通过则认为解码成功将address和command存入结果变量并设置一个标志位如ir_ok 1通知主循环。如果校验失败则转入IR_ERROR状态。无论成功与否解码完成后状态都回到IR_IDLE等待下一帧。重复码的处理当按键被长时间按住时遥控器不会发送完整帧而是先发一帧完整数据之后每隔约110ms发送一个特殊的“重复码”。重复码由9ms低电平和2.25ms高电平再加一个560μs的脉冲组成。在IR_IDLE状态如果捕获到一个下降沿且测得的前一个高电平持续时间在2.0ms~2.5ms之间对应重复码的2.25ms高电平则可以判定为重复码。此时状态转移到IR_REPEAT_CODE我们可以直接复用上一次成功解码的command并设置ir_repeat 1标志通知主循环“同一个键被持续按下”。处理完后状态回到IR_IDLE。IR_ERROR状态发生任何不符合预期的时序如位间隔超时、校验失败都进入此状态。在此状态可以记录错误类型或简单地复位所有变量然后无条件跳转回IR_IDLE状态。使用状态机后代码逻辑清晰易于调试和扩展。主循环只需要轮询ir_ok和ir_repeat标志即可。4.2 超时处理与软件滤波对抗干扰的盾牌这是保证解码鲁棒性的关键也是很多简单示例代码缺失的部分。位超时Bit Timeout在IR_LEADER_CODE状态每收到一个位都应该启动一个超时计时器可以用SysTick或另一个定时器。超时时间应略大于一个逻辑‘1’的周期2.5ms比较安全。如果在超时时间内没有收到下一个下降沿则认为本帧数据传输出错可能被噪声打断应强制跳转到IR_ERROR状态。这能有效防止因丢失一个边沿而导致程序永远卡在等待状态。帧间静默Inter-frame Gap在成功解码一帧或处理完重复码后可以故意让解码器进入一个短暂的“沉默期”例如10-20ms在此期间忽略所有外部中断或捕获事件。因为红外接收头在信号结束后可能还会输出一些杂波这个沉默期可以过滤掉它们防止误触发。数字滤波Digital Filtering对于GPIO输入STM32的硬件有可配置的消抖滤波功能但对于高速的红外信号微秒级通常不适用。更有效的软件滤波是“多次采样判决”。例如在判断下降沿时可以在中断中连续快速读取几次GPIO电平如果都是低电平才认为是真正的下降沿。这可以滤除极窄的噪声毛刺。但要注意这会增加中断处理时间需要权衡。动态阈值调整不要使用绝对固定的时间阈值如1125μs来判断‘0’和‘1’。可以在一帧数据开始时用测量到的引导码高低电平时间作为基准进行比例计算。例如测得引导码高电平为T_leader_high那么数据位高电平的判断阈值可以设为(T_leader_high / 4.5) * 1.125和(T_leader_high / 4.5) * 1.69附近的一个范围。这样能更好地适应不同遥控器的微小差异。5. 调试与验证让问题无处遁形写好了代码怎么知道它能不能用除了直接对着设备测试我们还需要更科学的调试手段。5.1 逻辑分析仪解码过程的“X光机”逻辑分析仪是调试数字通信协议的利器。将探头连接到红外接收头的OUT引脚和STM32的某个调试GPIO用于在代码中打点。抓取原始波形按下遥控器抓取完整的波形。验证引导码、数据位的波形是否符合预期。测量具体的时间参数用于校准你代码中的判断阈值。验证解码逻辑在STM32代码中每当成功解码一帧就让一个调试GPIO引脚翻转一次。在逻辑分析仪上同时观察这个引脚和红外信号。你可以清晰地看到每次红外信号结束后是否立即有一次翻转从而确认解码是否成功触发。你甚至可以把这个调试引脚当成一个简单的“解码成功”指示灯。5.2 串口打印内部状态的“监视器”通过串口将解码过程中的关键信息打印出来是最直接的调试方法。在收到引导码时打印“Leader Code Detected”。每收到一个位打印其值0/1和测量到的高电平时间。在完成一帧接收时打印出原始的32位数据以及解析出的地址码和命令码。在遇到错误时打印错误类型如“Timeout Error”, “Check Sum Error”。这样当解码失败时你可以通过串口日志一步步回溯看是在哪个环节出了错是时间测量不准还是状态机逻辑有漏洞。5.3 示波器实测深入信号的微观世界当遇到特别棘手的干扰问题时示波器比逻辑分析仪更能看清信号的细节。你可以观察到接收头输出的信号基线是否平稳有没有上下漂移低电平的底部有没有毛刺或振铃环境光干扰如快速开关日光灯在信号线上产生了什么样的噪声根据观察到的现象回头调整你的硬件如加强电源滤波、在接收头OUT引脚对地加一个小电容吸收尖峰或软件如调整滤波算法、超时时间。6. 进阶与扩展从解码到应用当你能够稳定解码NEC信号后就可以在此基础上构建更复杂的功能。6.1 构建红外信号数据库码库一个实用的红外学习型遥控器需要存储不同设备的编码。你可以设计一个简单的数据结构来管理typedef struct { uint16_t vendor_id; // 厂商ID用户码 uint8_t func_code; // 功能码命令码 char func_name[20]; // 功能描述如“Power”, “Vol” // 如果需要学习重复码间隔也可以存储 } IR_Command_t;通过“学习模式”将遥控器对准你的设备按键程序解码后把address和command存入Flash或EEPROM。在“发射模式”下根据存储的码值控制一个红外发射管需连接三极管驱动按照NEC协议格式发送出去。注意发射时需要用一个定时器如PWM模式产生38kHz的载波来调制信号。6.2 处理非标准NEC协议正如前文所述很多设备如我遇到的那台美的空调使用的是NEC协议的变种。它们的差异可能在于引导码长度不同。逻辑‘0’和‘1’的脉宽比例不同但‘1’总是‘0’的两倍左右。数据格式不同可能只有16位8位地址8位命令没有反码或者地址码是16位。应对策略就是让你的解码程序可配置化。不要将时间阈值写成死代码而是定义成变量typedef struct { uint16_t leader_low_min; uint16_t leader_low_max; uint16_t leader_high_min; uint16_t leader_high_max; uint16_t bit0_high_min; uint16_t bit0_high_max; uint16_t bit1_high_min; uint16_t bit1_high_max; uint8_t data_bits; // 总位数32或16 uint8_t with_inverse; // 是否包含反码 } IR_ProtocolConfig_t;为不同的设备预定义不同的配置结构体。在解码前先尝试用几种常见的配置去匹配引导码匹配成功后再用该配置进行后续数据位的解码。这就实现了一个简单的“自动协议识别”功能。6.3 低功耗设计考量如果设备是电池供电需要时刻监听红外信号那么功耗就很重要。一体化接收头本身在工作时就有一定电流约0.5-1mA。一种常见的优化是周期性唤醒让STM32和接收头大部分时间处于睡眠模式每隔几十毫秒唤醒一次快速检查一下是否有红外信号可以通过检查GPIO电平简单判断如果没有立即再次休眠。虽然可能丢失信号头部的几个毫秒但NEC协议的引导码很长有很大概率能捕捉到。这需要结合STM32的低功耗模式Stop模式来设计。从一次失败的空调控制开始到最终实现一个稳定可靠、能适应多种设备的红外解码模块这个过程让我对嵌入式开发中的“细节魔鬼”有了更深的认识。红外NEC解码就像一门基础内功它考验的是你对硬件定时器的掌握、对中断服务的理解、对状态机编程的熟练度以及最重要的——在充满噪声的真实世界中设计鲁棒性系统的能力。代码不仅仅要在实验室里跑通更要在客厅的日光灯下、在午后的阳光下稳定工作。当你按下遥控器设备应声而动的那一刻你会觉得所有这些关于时序、滤波、状态转移的思考都是值得的。

相关新闻

Agent 如何拆解任务:从经典范式到真实产品

Agent 如何拆解任务:从经典范式到真实产品

Agent 如何拆解任务一个反直觉的事实:当你问 Claude Code "重构这个支付模块"时,它不会一次性生成完整方案,而是边探索边决策、边执行边调整。这不是模型不够强,而是 Agent 任务拆解的本质——不是"一次性规划&quo…

2026/7/29 7:44:48 阅读更多 →
Tkinter窗口图标设置全攻略:跨平台兼容性与专业UI实现

Tkinter窗口图标设置全攻略:跨平台兼容性与专业UI实现

1. 项目概述:为什么你的Tkinter窗口需要一个专属Logo? 如果你用Python的Tkinter库做过图形界面,大概率遇到过这个情况:程序运行后,窗口左上角、任务栏图标,甚至程序坞里,显示的永远是那个默认的…

2026/7/29 7:44:48 阅读更多 →
天津网约车租赁靠谱品牌怎么选?看这几点

天津网约车租赁靠谱品牌怎么选?看这几点

随着网约车出行需求持续增长,天津网约车租赁市场吸引了大量从业者进入。但对于许多想入行的司机来说,面对市面上琳琅满目的租赁公司,如何挑选到一家可靠、合规、性价比高的服务商,成为摆在面前的第一道难题。结合行业现状与司机实…

2026/7/29 7:44:48 阅读更多 →

最新新闻

企业微信外部群消息推送机制与实现对比

企业微信外部群消息推送机制与实现对比

1. 企微外部群消息推送机制解析 企业微信外部群的消息推送主要分为两种形式:群机器人推送和应用消息推送。这两种机制在技术实现、使用场景和权限控制上存在本质区别。 群机器人推送是通过Webhook实现的轻量级消息通知方案。每个机器人都有独立的Webhook地址&#…

2026/7/29 9:26:16 阅读更多 →
基于微信小程序的非遗文化传承推广平台设计与实现

基于微信小程序的非遗文化传承推广平台设计与实现

背景 非遗文化作为中华民族优秀传统文化的重要组成部分,其传承与推广在数字化时代面临新的机遇与挑战。随着移动互联网的普及,微信小程序凭借其轻量化、易传播、低门槛的特性,成为非遗文化数字化传播的重要载体。当前非遗传承面临的主要问题包…

2026/7/29 9:26:16 阅读更多 →
基于掌控板与DS18B20的热水冷却实验:从硬件搭建到牛顿冷却定律验证

基于掌控板与DS18B20的热水冷却实验:从硬件搭建到牛顿冷却定律验证

1. 项目概述:从一杯热水开始的科学探究 你有没有盯着桌上那杯刚倒的热水,好奇它到底多久会凉下来?是均匀地变凉,还是先快后慢?这个看似简单的日常现象,背后其实藏着热力学、传热学乃至数据科学的入门钥匙。…

2026/7/29 9:26:16 阅读更多 →
C# 玩转 YOLOv8 目标检测:ONNX Runtime + DirectML 推理 DLL,图片、视频、RTSP、摄像头全打通

C# 玩转 YOLOv8 目标检测:ONNX Runtime + DirectML 推理 DLL,图片、视频、RTSP、摄像头全打通

文章目录 前言先上效果整体架构接口设计:这次不用 JSON,用结构体数组C# 集成实战1. P/Invoke 声明2. 图片检测:五行代码3. 视频检测:统一接口,三种输入4. 批量处理与循环测速 性能实测与调优建议测试环境性能数据调优建…

2026/7/29 9:26:16 阅读更多 →
绝缘类型深度解析:从基础绝缘到系统安全设计实战指南

绝缘类型深度解析:从基础绝缘到系统安全设计实战指南

1. 绝缘材料:从“隔电”到“系统守护”的本质跃迁提起“绝缘”,很多人的第一反应可能就是“不导电”,是电工胶带、是电线外皮那层塑料。这个理解没错,但太浅了。在我十多年的电气工程和电子设备维修经历里,对绝缘的认知…

2026/7/29 9:26:16 阅读更多 →
DIY生态舱CO2监测:NDIR传感器选型、Arduino集成与智能控制

DIY生态舱CO2监测:NDIR传感器选型、Arduino集成与智能控制

1. 项目概述与核心价值 最近在折腾我的“DIY海盗船”项目,这个系列已经更新到第八话了。之前我们搞定了温湿度监控、光照调节、水泵控制这些基础环境模块,让这个模拟的小生态舱运行得挺稳当。但玩久了总觉得还差点意思——舱内植物生长状态时好时坏&…

2026/7/29 9:25:16 阅读更多 →

日新闻

【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 阅读更多 →

月新闻