Opencv 使用暗网进行训练后获得预测
我是CNN的新手,我正在尝试使用数据集训练分类器。下面我将训练一个10类数据集的简单分类器。Opencv 使用暗网进行训练后获得预测,opencv,neural-network,deep-learning,conv-neural-network,Opencv,Neural Network,Deep Learning,Conv Neural Network,我是CNN的新手,我正在尝试使用数据集训练分类器。下面我将训练一个10类数据集的简单分类器。 我使用下面的代码对模型进行了训练,得到了cifar\u small.weights,我后来将其用于检测 ./darknet classifier train cfg/cifar.data cfg/cifar_small.cfg 训练完简单网络后,我尝试使用cifar\u small.cfg和cifar\u small.weights ./darknet detect cfg/cifar_small.c
我使用下面的代码对模型进行了训练,得到了
cifar\u small.weights
,我后来将其用于检测
./darknet classifier train cfg/cifar.data cfg/cifar_small.cfg
训练完简单网络后,我尝试使用cifar\u small.cfg
和cifar\u small.weights
./darknet detect cfg/cifar_small.cfg cifar_small.weights data/dog.jpg
层过滤器大小输入输出0转换32 3 x 3/1 28 x 28 x 3->28 x 28 x 32
1个最大2 x 2/2 28 x 28 x 32->14 x 14 x 32
2个conv 64 3 x 3/1 14 x 14 x 32->14 x 14 x 64
3个最大2 x 2/2 14 x 14 x 64->7 x 7 x 64
4 conv 128 3 x 3/1 7 x 7 x 64->7 x 7 x 128
5conv101x1/17x7x128->7x7x10
6平均7 x 7 x 10->10
7 softmax 10
8个成本10个装载重量
来自cifar\u small。重量…完成
data/dog.jpg:在中预测 0.007035秒。
未使用OpenCV编译,而是保存到predictions.png 它不会预测端子中的值,也不会在输出图像上绘制边界框。图像的输出与输入相同。
当我尝试使用
yolo.cfg
和预先训练的yolo.weights
对同一图像进行预测时,其工作原理如下所示
层过滤器大小输入输出0转换32 3 x 3/1 416 x 416 x 3->416 x 416 x 32
1个最大2 x 2/2 416 x 416 x 32->208 x 208 x 32
2 conv 64 3 x 3/1 208 x 208 x 32->208 x 208 x 64
3个最大2 x 2/2 208 x 208 x 64->104 x 104 x 64
4转换128 3 x 3/1 104 x 104 x 64->104 x 104 x 128
5节conv 64 1 x 1/1 104 x 104 x 128->104 x 104 x 64
6 conv 128 3 x 3/1 104 x 104 x 64->104 x 104 x 128
7最大2 x 2/2 104 x 104 x 128->52 x 52 x 128
8 conv 256 3 x 3/1 52 x 52 x 128->52 x 52 x 256
9 conv 128 1 x 1/1 52 x 52 x 256->52 x 52 x 128
10 conv 256 3 x 3/1 52 x 52 x 128->52 x 52 x 256
11最大2 x 2/2 52 x 52 x 256->26 x26x256
12 conv 512 3x3/126x26x256->
26 x 26 x 512
13 conv 256 1 x 1/1 26 x 26 x 512-> 26 x 26 x 256
14 conv 512 3 x 3/1 26 x 26 x 256-> 26 x 26 x 512
15 conv 256 1 x 1/1 26 x 26 x 512-> 26 x 26 x 256
16 conv 512 3 x 3/1 26 x 26 x 256-> 26 x 26 x 512
17最大2 x 2/2 26 x 26 x 512-> 13 x 13 x 512
18 conv 1024 3 x 3/1 13 x 13 x 512-> 13 x 13 x1024
19 conv 512 1 x 1/1 13 x 13 x1024-> 13 x 13 x 512
20 conv 1024 3 x 3/1 13 x 13 x 512-> 13 x 13 x1024
21 conv 512 1 x 1/1 13 x 13 x1024-> 13 x 13 x 512
22 conv 1024 3 x 3/1 13 x 13 x 512-> 13 x 13 x1024
23 conv 1024 3 x 3/1 13 x 13 x1024-> 13 x 13 x1024
24 conv 1024 3 x 3/1 13 x 13 x1024-> 13 x 13 x1024
25路线16
26 reorg/2
26 x 26 x 512->13 x 13 x2048
27路线26 24
28 conv 1024 3 x 3/1 13 x 13 x3072->13 x 13 x1024
29 conv 425 1 x 1/1 13 x 13 x1024->13 x 13 x 425
30检测
从yolo加载重量。重量…完成
data/dog.jpg:预测时间为11.057513秒。
汽车:54%
自行车:51%
狗:56%
它与输出图像中的边界框一起按预期进行预测。我认为您应该使用以下命令:
./darknet classify cfg/cifar_small.cfg cifar_small.weights data/dog.jpg
检查这里:在/examples/darknet.c(第422~500行)中,您可以看到darknet框架对“./darknet”之后的每个函数输入都做了什么。 在本例中,“/.darknet classification~”使函数“predict_classifier”在examples/classifier.c run中运行 预测结果由第601~606行的部件打印(在分类器c中)
for(i=0;i
for(i = 0; i < top; ++i)
{
int index = indexes[i];
printf("%5.2f%%: %s\n", predictions[index] * 100, names[index]);
}