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