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_scale
。scale_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之间。