🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# `KPU`_神经网络处理器(`import KPU`) `KPU`是通用的神经网络处理器,实现卷积神经网络计算,时时获取被检测目标的大小、坐标和种类,对人脸或者物体进行检测和分类 > KPU 具备以下几个特点: > * 支持主流训练框架按照特定限制规则训练出来的定点化模型 > * 对网络层数无直接限制,支持每层卷积神经网络参数单独配置,包括输入输出通道数目、输入输 出行宽列高 > * 支持两种卷积内核 1x1 和 3x3 > * 支持任意形式的激活函数 > * 实时工作时最大支持神经网络参数大小为 5.5MiB 到 5.9MiB > * 非实时工作时最大支持网络参数大小为(Flash 容量-软件体积) ***** * [ ] **加载模型** ``` KPU.load(offset or file_path) ``` > 从flash或者文件系统中加载模型 *参数:* * `offtset`: 模型在 flash 中的偏移大小,如`0xd00000`表示模型烧录在13M起始的地方 * `file_path`: 模型在文件系统中为文件名, 如`“/sd/xxx.kmodel”` *返回:* * `kpu_net`: `KPU` 网络对象 ***** * [ ] **初始化yolo2网络** ``` KPU.init_yolo2(kpu_net, threshold ,nms_value, anchor_num, anchor) ``` > yolo2网络模型传入初始化参数 *参数:* * `kpu_net`: `KPU.load `返回的 `kpu_net `对象 * `threshold`: 概率阈值 * `nms_value`: `box_iou `门限 * `anchor_num`: 锚点数 * `anchor`: 锚点参数与模型参数一致 *返回:* * `None` ***** * [ ] **反初始化** ``` kpu.deinit(kpu_net) ``` > 反初始化 *参数:* `kpu_net`: `KPU.load `返回的 `kpu_net `对象 *返回:* * `None` ***** * [ ] **运行yolo2网络** ``` KPU.run_yolo2(kpu_net,image_t) ``` > 反初始化 *参数:* * `kpu_net`: `KPU.load `返回的 `kpu_net `对象 * `image_t`:从 sensor 采集到的图像 *返回:* * `kpu_yolo2_find` 的列表 ***** * [ ] **网络前向运算** ``` KPU.forward(kpu_net,image_t,int) ``` > 计算已加载的网络模型到指定层数,输出目标层的特征图 *参数:* * `kpu_net`: `KPU.load `返回的 `kpu_net `对象 * `image_t`: 从 sensor 采集到的图像 * `int`: 指定计算到网络的第几层 *返回:* *`fmap` 特征图对象,内含当前层所有通道的特征图 ***** * [ ] **fmap 特征图** ``` KPU.fmap(fmap,int) ``` > 取特征图的指定通道数据到image对象 *参数:* * `fmap`: 特征图 对象 * `int`: 指定特征图的通道号 *返回:* * `image`: 特征图对应通道生成的灰度图 *****