nn — 神经网络

nn 模块用于神经网络。

有关如何使用NN模块,请参阅OpenMV IDE附带的示例。

有关创建你自己的NN示例的更多信息,请参见 README on our github here.

nn_class 类 – 神经网络检测结果

nn_class对象由 net.search() 返回。

构造函数

class nn.nn_class

请调用 net.search() 来创建这个对象。

方法

nn_class.rect()

返回一个nn_class的边界框的矩形元组(x,y,w,h),用于像 image.draw_rectangle()image 方法。

nn_class.x()

返回nn_class的边界框的x坐标(int)。

您也可以通过索引 [0] 取得这个值。

nn_class.y()

返回nn_class的边界框的y坐标(int)。

您也可以通过索引 [1] 取得这个值。

nn_class.w()

返回nn_class的边界框的w坐标(int)。

您也可以通过索引 [2] 取得这个值。

nn_class.h()

返回nn_class的边界框的h坐标(int)。

您也可以通过索引 [3] 取得这个值。

nn_class.index()

返回nn类检测的索引(int)。

您也可以通过索引 [4] 取得这个值。

nn_class.value()

返回nn类检测的值(float)。

您也可以通过索引 [5] 取得这个值。

Net 类 – 神经网络

构造函数

class nn.load(path)

将神经网络从 .network 二进制文件加载到内存中。 神经网络的层/权值/偏置/等。存储在MicroPython堆上。 返回一个可以在图像上进行操作的Net对象。

方法

net.forward(image[, roi[, softmax=False[, dry_run=False]]])

在图像roi上运行网络(必要时自动缩放)并返回神经网络分类结果的浮点值列表。

roi 是感兴趣区域的矩形元组(x,y,w,h)。如果未指定,则它等于图像矩形。仅运算 roi 中的像素。

如果 softmax 为True,则列表中所有的输出总和为1。否则,列表中的任何输出都可以在0和1之间。

dry_run 设置为True以打印出正在执行的网络层而不是实际执行它们。这是为了调试debug。

net.search(image[, roi[, threshold=0.6[, min_scale=1.0[, scale_mul=0.5[, x_overlap=0[, y_overlap=0[, contrast_threshold=1[, softmax=False]]]]]]]])

以滑动窗口方式在图像roi上运行网络。 网络检测器窗口以多种比例滑过图像。

返回神经网络检测结果的 nn_class 对象列表。

roi 是感兴趣区域的矩形元组(x,y,w,h)。如果未指定,则它等于图像矩形。仅运算 roi 中的像素。

在图像中的区域上运行之后,将最大检测值超过 threshold 的对象添加到输出列表中。

min_scale 控制网络模型的缩放比例。在默认值下,网络不会缩放。但是,值为0.5将允许用于检测图像大小为50%的对象…

scale_mul 控制测试多少个不同的比例。滑动窗口方法的工作原理是将默认比例1乘以 scale_mul

并且结果需要大于 min_scalescale_mul 的默认值0.5,测试每个比例变化减少50%。 但是,0.95的值仅为5%的缩小量。

x_overlap 控制与滑动窗口的下一个检测区域重叠的百分比。值为零表示没有重叠。值为0.95意味着95%重叠。

y_overlap 控制与滑动窗口的下一个检测区域重叠的百分比。值为零表示没有重叠。值为0.95意味着95%重叠。

contrast_threshold 控制跳过图像低对比度区域的阈值。在图像中的某个区域上运行nn之前,将在该区域上计算标准偏差,如果标准偏差低于 contrast_threshold ,则跳过该区域。

如果 softmax 为True,则列表中所有的输出总和为1。否则,列表中的任何输出都可以在0和1之间。