Firefly开源社区

标题: NCC S1工作流程 [打印本页]

作者: rany    时间: 2019-1-3 10:41
标题: NCC S1工作流程
本帖最后由 rany 于 2019-1-3 10:41 编辑

本文主要介绍NCC S1是如何与CPU进行搭配工作的。其实现细节部分可以结合SDK中的示例代码和PLAI进行对比学习。


注:图片来源于GTI文档

上图为SPR2801S在嵌入式系统中的一个典型工作流程,此流程也适用于NCC S1或USB Dongle。图的下半部分表示的的是一个网络模型,可以看出模型分为CNN Layer(卷积层)和FC Layer(全连接层),其中CNN Layer在SPR 2801S中进行处理,FC Layer在CPU中进行处理。这里以进行图片分类为例,其过程解析如下:  


1. CPU加载网络模型到NCC S1。
此过程为初始化SPR2801S,加载的模型为CNN模型,一般在SDK的data/Models/gti2801/[模型类别]/cnn目录下。SPR2801S通过CNN模型可以获取输入图像的Feature map(特征图)。


2. CPU处理输入图像并传入NCC S1进行卷积运算。  
此过程CPU会先对图像进行缩放和转换等处理,然后传入NCC S1。在SPR2801S中传入的图像会进行多层的卷积运算以得到最终的的结果Feature map,其中卷积运算的参数来源于CNN模型。


3. CPU从NCC S1中获取Feature map。  
在图像在SPR2801S中进行卷积运算的时候CPU会等待一定的时间(在userinput.txt中控制),然后从NCC S1中读回结果。


4. CPU处理Feature map完成分类。  
CPU从NCC S1中读取结果后会进行如FC等的计算最终得到分类的结果,结果表现为图片在各个分类下的相似率。








欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1