串口集成
串口协议
当你想把SingTown AI Vision Module 通过串口连接到其他控制器,而控制器没有对应的代码时,会需要本文档来编写控制器的代码。
介绍
- SingTown AI Vision Module 识别结束后就会发送一次数据帧。即使没有识别到结果,也会发送数据帧。
- 串口发送的是二进制格式。每个数据帧,都会以帧头(0xEB,0x90)开始。
- 传输顺序为小端,也就是说对于 uint16,先传输低字节,再传输高字节。
- crc 为校验字节。校验不包括帧头。
目标检测格式
SingTown AI Vision Module 会按照下面的顺序发送数据帧。
- 发送帧头(0xEB,0x90),一共2字节。
- 发送识别到的数量num,1字节。
- 发送第一个识别对象的得分(score),标签编号(idx),矩形左上坐标(left, top),矩形右下坐标(right, bottom),每个识别对象10字节。
- 发送第二个,第三个...识别对象。直到一共发送num个识别对象。
- 发送crc检验,1字节。
| 字段名 | 类型 |
|---|---|
| frame head1 | 0xEB |
| frame head2 | 0x90 |
| num | uint8 |
| score1 | uint8 |
| idx1 | uint8 |
| left1 | uint16 |
| top1 | uint16 |
| right1 | uint16 |
| bottom1 | uint16 |
| score2 | uint8 |
| idx2 | uint8 |
| left2 | uint16 |
| top2 | uint16 |
| right2 | uint16 |
| bottom2 | uint16 |
| … | … |
| crc | uint8 |
各个值的意义:
- score 代表对应的识别对象的准确度,范围 0 到 255。score 值越大,越像目标。识别到多个目标时,按照得分从高到低顺序发送。
- idx 是用户自己设置的标签的编号,如果标签是猫和狗,0 就代表猫,1 就代表狗。标签列表是在星瞳AI云服务中设置的,每个项目都有不同的标签。
- left, top, right, bottom,是目标的位置坐标。原点在画面左上角。
分类格式
SingTown AI Vision Module 会按照下面的顺序发送数据帧。
- 发送帧头(0xEB,0x90),一共2字节。
- 发送分类的数量 num,一共 1 字节。如果标签是猫和狗,那么 num 就是 2。这个数量是在星瞳 AI 云服务中设置的,每个项目都有不同的分类数量。
- 发送每一个分类的得分(score)。每个得分1字节。score代表对应的识别对象的准确度,范围 0 到 255。score 值越大,越像目标。
- 发送 crc 检验,1 字节。