串口协议
当你想把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字节。
frame head1 |
0xEB |
frame head2 |
0x90 |
num |
uint8 |
score1 |
uint8 |
score2 |
uint8 |
… |
… |
crc |
uint8 |