DarkNet框架下YOLO-v4算法推理过程的特征图可视化

更新时间:2023-07-27 11:41:41 阅读: 评论:0

DarkNet框架下YOLO-v4算法推理过程的特征图可视化
说明
本篇⽂章针对AB版DarkNet源代码进⾏了修改,添加了⼀些函数,进⾏全通道特征图可视化。主要针对YOLO-v4推理过程中,对中间计算结果的特征图数据进⾏转换,将转换结果⽤表⽰成图⽚进⾏保存。
DarkNet源代码修改
在network_kernel.cu⽂件中加⼊以下代码:
image float_to_cow_image(int w, int h, int c, float *data, int ai)
{
char tp[1000];
//保存⽂件到特定⽂件夹(feature_txt)中并根据ai⼤⼩命名
//sprintf(tp, "E:\\yolov4\\feature_save\\out_%d.txt", ai);
//FILE * stream = fopen(tp, "w+");
//创建⼀个1维的空图⽚
image out = make_empty_image(w, h, 1);
for (int k = 0; k < c; k++) {
if (ai < 10)
sprintf(tp, "E:\\yolov4\\feature_pic\\out_000%d", ai);
el
sprintf(tp, "E:\\yolov4\\feature_pic\\out_00%d", ai);
mkdir(tp);
if (ai < 10)
sprintf(tp, "E:\\yolov4\\feature_txt\\out_000%d", ai);
el
sprintf(tp, "E:\\yolov4\\feature_txt\\out_00%d", ai);
mkdir(tp);
if (ai < 10)
sprintf(tp, "E:\\yolov4\\feature_txt\\out_000%d\\out_000%d_%d.txt", ai, ai, k);
el
sprintf(tp, "E:\\yolov4\\feature_txt\\out_00%d\\out_00%d_%d.txt", ai, ai, k);
FILE * stream = fopen(tp, "w+");
int i, j;
//设计⼀个数组保存该图⽚内容
float * tempData = (float*)calloc(w*h, sizeof(float));
//初始化
for (i = 0; i < w*h; i++)
{
tempData[i] = 0;
}
for (i = 0; i < w*h; i++)
{
tempData[i] = 1.0 / (1 + exp(-1 * data[k*w*h + i]));
}
//保存到⽂件
for (i = 0; i < w*h; i++)
{
tempData[i] *= 255;
fprintf(stream, " %f", tempData[i]);
if ((i + 1) % w == 0)
fprintf(stream, "\n");
}
//关闭⽂件流
fclo(stream);
out.data = tempData;
}
return out;
}
smec
image get_network_cow_image_layer(network *net, int i)
{
//    image a;
layer l = net->layers[i];
#ifdef GPU
cuda_pull_array(l.output_gpu, l.output, l.outputs);
#endif
printf("w:%d,h:%d,c:%d\n", l.out_w, l.out_h, l.out_c);
if (l.out_w && l.out_h && l.out_c) {
//        return a;
return float_to_cow_image(l.out_w, l.out_h, l.out_c, l.output, i);
}
image def = { 0 };
return def;
}
在network_kernel.cu⽂件的forward_network_gpu函数中加⼊如下代码:
if(net.wait_stream)
cudaStreamSynchronize(get_cuda_stream());
state.input = l.output_gpu;
bool show_featuremap = true;
if (show_featuremap) {
//这个函数是新加的,⽤来得到图⽚保存图⽚
image tmp = get_network_cow_image_layer(&net, i);
}
重新⽣成
进⾏推理
新建⽬录,准备⽂件夹
进⼊所在⽂件夹,执⾏cmd,输⼊命令:
< detector test cfg/coco.data yolov4.cfg yolov4.weights -i 0 -thresh 0.25 -ext_output dog.jpg
pau
花的英文怎么写
推理执⾏中,显⽰如下:
E:\yolov4\darknet\build\darknet\x64& detector test cfg/coco.data yolov4.cfg yolov4.weights -i 0 -thresh 0.25 -ext_output dog.jpg  CUDA-version: 9000 (9000), cuDNN: 7.1.4, GPU count: 1
OpenCV version: 4.0.1
0 : compute_capability = 610, cudnn_half = 0, GPU: Quadro P6000
net.optimized_memory = 0
mini_batch = 1, batch = 8, time_steps = 1, train = 0
layer  filters  size/strd(dil)      input                output
0 conv    32      3 x 3/ 1    608 x 608 x  3 ->  608 x 608 x  32 0.639 BF
1 conv    64      3 x 3/
2    608 x 608 x  32 ->  304 x 304 x  64 3.407 BF
2 conv    64      1 x 1/ 1    304 x 304 x  64 ->  304 x 304 x  64 0.757 BF
3 route  1                                      ->  30
4 x 304 x  64
4 conv    64      1 x 1/ 1    304 x 304 x  64 ->  304 x 304 x  64 0.757 BF
5 conv    32      1 x 1/ 1    304 x 304 x  64 ->  304 x 304 x  32 0.379 BF
6 conv    64      3 x 3/ 1    304 x 304 x  32 ->  304 x 304 x  64 3.40
7 BF
7 Shortcut Layer: 4,  wt = 0, wn = 0, outputs: 304 x 304 x  64 0.006 BF
8 conv    64      1 x 1/ 1    304 x 304 x  64 ->  304 x 304 x  64 0.757 BFafrica
9 route  8 2                                    ->  304 x 304 x 128
10 conv    64      1 x 1/ 1    304 x 304 x 128 ->  304 x 304 x  64 1.514 BF
11 conv    128      3 x 3/ 2    304 x 304 x  64 ->  152 x 152 x 128 3.407 BF
12 conv    64      1 x 1/ 1    152 x 152 x 128 ->  152 x 152 x  64 0.379 BF
13 route  11                                    ->  152 x 152 x 128
14 conv    64      1 x 1/ 1    152 x 152 x 128 ->  152 x 152 x  64 0.379 BF
15 conv    64      1 x 1/ 1    152 x 152 x  64 ->  152 x 152 x  64 0.189 BF
16 conv    64      3 x 3/ 1    152 x 152 x  64 ->  152 x 152 x  64 1.703 BF
17 Shortcut Layer: 14,  wt = 0, wn = 0, outputs: 152 x 152 x  64 0.001 BF
18 conv    64      1 x 1/ 1    152 x 152 x  64 ->  152 x 152 x  64 0.189 BF
19 conv    64      3 x 3/ 1    152 x 152 x  64 ->  152 x 152 x  64 1.703 BF
20 Shortcut Layer: 17,  wt = 0, wn = 0, outputs: 152 x 152 x  64 0.001 BF
21 conv    64      1 x 1/ 1    152 x 152 x  64 ->  152 x 152 x  64 0.189 BF
22 route  21 12                                  ->  152 x 152 x 128
23 conv    128      1 x 1/ 1    152 x 152 x 128 ->  152 x 152 x 128 0.757 BF
24 conv    256      3 x 3/ 2    152 x 152 x 128 ->  76 x  76 x 256 3.407 BF
25 conv    128      1 x 1/ 1    76 x  76 x 256 ->  76 x  76 x 128 0.379 BF
26 route  24                                    ->  76 x  76 x 256
27 conv    128      1 x 1/ 1    76 x  76 x 256 ->  76 x  76 x 128 0.379 BF
28 conv    128      1 x 1/ 1    76 x  76 x 128 ->  76 x  76 x 128 0.189 BF
29 conv    128      3 x 3/ 1    76 x  76 x 128 ->  76 x  76 x 128 1.703 BF
30 Shortcut Layer: 27,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
31 conv    128      1 x 1/ 1    76 x  76 x 128 ->  76 x  76 x 128 0.189 BF
32 conv    128      3 x 3/ 1    76 x  76 x 128 ->  76 x  76 x 128 1.703 BF
33 Shortcut Layer: 30,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
34 conv    128      1 x 1/ 1    76 x  76 x 128 ->  76 x  76 x 128 0.189 BF
35 conv    128      3 x 3/ 1    76 x  76 x 128 ->  76 x  76 x 128 1.703 BF
36 Shortcut Layer: 33,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
37 conv    128      1 x 1/ 1    76 x  76 x 128 ->  76 x  76 x 128 0.189 BF
38 conv    128      3 x 3/ 1    76 x  76 x 128 ->  76 x  76 x 128 1.703 BF
39 Shortcut Layer: 36,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
40 conv    128      1 x 1/ 1    76 x  76 x 128 ->  76 x  76 x 128 0.189 BF
41 conv    128      3 x 3/ 1    76 x  76 x 128 ->  76 x  76 x 128 1.703 BF
42 Shortcut Layer: 39,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BFbenchmark什么意思
动词短语43 conv    128      1 x 1/ 1    76 x  76 x 128 ->  76 x  76 x 128 0.189 BF
44 conv    128      3 x 3/ 1    76 x  76 x 128 ->  76 x  76 x 128 1.703 BF
45 Shortcut Layer: 42,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
46 conv    128      1 x 1/ 1    76 x  76 x 128 ->  76 x  76 x 128 0.189 BF
47 conv    128      3 x 3/ 1    76 x  76 x 128 ->  76 x  76 x 128 1.703 BF
48 Shortcut Layer: 45,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
49 conv    128      1 x 1/ 1    76 x  76 x 128 ->  76 x  76 x 128 0.189 BF
50 conv    128      3 x 3/ 1    76 x  76 x 128 ->  76 x  76 x 128 1.703 BF
51 Shortcut Layer: 48,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BFcapex
52 conv    128      1 x 1/ 1    76 x  76 x 128 ->  76 x  76 x 128 0.189 BF
53 route  52 25                                  ->  76 x  76 x 256
54 conv    256      1 x 1/ 1    76 x  76 x 256 ->  76 x  76 x 256 0.757 BF
55 conv    512      3 x 3/ 2    76 x  76 x 256 ->  38 x  38 x 512 3.407 BF
56 conv    256      1 x 1/ 1    38 x  38 x 512 ->  38 x  38 x 256 0.379 BF
57 route  55                                    ->  38 x  38 x 512
58 conv    256      1 x 1/ 1    38 x  38 x 512 ->  38 x  38 x 256 0.379 BF
59 conv    256      1 x 1/ 1    38 x  38 x 256 ->  38 x  38 x 256 0.189 BF
60 conv    256      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 256 1.703 BF
61 Shortcut Layer: 58,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
62 conv    256      1 x 1/ 1    38 x  38 x 256 ->  38 x  38 x 256 0.189 BF
63 conv    256      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 256 1.703 BF
64 Shortcut Layer: 61,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
65 conv    256      1 x 1/ 1    38 x  38 x 256 ->  38 x  38 x 256 0.189 BF
66 conv    256      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 256 1.703 BF
66 conv    256      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 256 1.703 BF
67 Shortcut Layer: 64,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
68 conv    256      1 x 1/ 1    38 x  38 x 256 ->  38 x  38 x 256 0.189 BF
69 conv    256      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 256 1.703 BF
70 Shortcut Layer: 67,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
71 conv    256      1 x 1/ 1    38 x  38 x 256 ->  38 x  38 x 256 0.189 BF
72 conv    256      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 256 1.703 BF
73 Shortcut Layer: 70,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
74 conv    256      1 x 1/ 1    38 x  38 x 256 ->  38 x  38 x 256 0.189 BF
75 conv    256      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 256 1.703 BF
76 Shortcut Layer: 73,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
77 conv    256      1 x 1/ 1    38 x  38 x 256 ->  38 x  38 x 256 0.189 BF
78 conv    256      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 256 1.703 BF
79 Shortcut Layer: 76,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
80 conv    256      1 x 1/ 1    38 x  38 x 256 ->  38 x  38 x 256 0.189 BF
81 conv    256      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 256 1.703 BF
82 Shortcut Layer: 79,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
83 conv    256      1 x 1/ 1    38 x  38 x 256 ->  38 x  38 x 256 0.189 BF
84 route  83 56                                  ->  38 x  38 x 512
85 conv    512      1 x 1/ 1    38 x  38 x 512 ->  38 x  38 x 512 0.757 BF
86 conv  1024      3 x 3/ 2    38 x  38 x 512 ->  19 x  19 x1024 3.407 BF
87 conv    512      1 x 1/ 1    19 x  19 x1024 ->  19 x  19 x 512 0.379 BF
88 route  86                                    ->  19 x  19 x1024
89 conv    512      1 x 1/ 1    19 x  19 x1024 ->  19 x  19 x 512 0.379 BF
90 conv    512      1 x 1/ 1    19 x  19 x 512 ->  19 x  19 x 512 0.189 BF
salon91 conv    512      3 x 3/ 1    19 x  19 x 512 ->  19 x  19 x 512 1.703 BF
92 Shortcut Layer: 89,  wt = 0, wn = 0, outputs:  19 x  19 x 512 0.000 BF
93 conv    512      1 x 1/ 1    19 x  19 x 512 ->  19 x  19 x 512 0.189 BF
94 conv    512      3 x 3/ 1    19 x  19 x 512 ->  19 x  19 x 512 1.703 BF
95 Shortcut Layer: 92,  wt = 0, wn = 0, outputs:  19 x  19 x 512 0.000 BF
96 conv    512      1 x 1/ 1    19 x  19 x 512 ->  19 x  19 x 512 0.189 BF
97 conv    512      3 x 3/ 1    19 x  19 x 512 ->  19 x  19 x 512 1.703 BF
98 Shortcut Layer: 95,  wt = 0, wn = 0, outputs:  19 x  19 x 512 0.000 BF
99 conv    512      1 x 1/ 1    19 x  19 x 512 ->  19 x  19 x 512 0.189 BF  100 conv    512      3 x 3/ 1    19 x  19 x 512 ->  19 x  19 x 512 1.703 BF  101 Shortcut Layer: 98,  wt = 0, wn = 0, outputs:  19 x  19 x 512 0.000 BF  102 conv    512      1 x 1/ 1    19 x  19 x 512 ->  19 x  19 x 512 0.189 BF  103 route  102 87                                ->  19 x  19 x1024
104 conv  1024      1 x 1/ 1    19 x  19 x1024 ->  19 x  19 x1024 0.757 BF  105 conv    512      1 x 1/ 1    19 x  19 x1024 ->  19 x  19 x 512 0.379 BF  106 conv  1024      3 x 3/ 1    19 x  19 x 512 ->  19 x  19 x1024 3.407 BF  107 conv    512      1 x 1/ 1    19 x  19 x1024 ->  19 x  19 x 512 0.379 BF  108 max                5x 5/ 1    19 x  19 x 512 ->  19 x  19 x 512 0.005 BF
109 route  107                                            ->  19 x  19 x 512
110 max                9x 9/ 1    19 x  19 x 512 ->  19 x  19 x 512 0.015 BF
111 route  107                                            ->  19 x  19 x 512
112 max              13x13/ 1    19 x  19 x 512 ->  19 x  19 x 512 0.031 BF  113 route  112 110 108 107                        ->  19 x  19 x2048
114 conv    512      1 x 1/ 1    19 x  19 x2048 ->  19 x  19 x 512 0.757 BF  115 conv  1024      3 x 3/ 1    19 x  19 x 512 ->  19 x  19 x1024 3.407 BF  116 conv    512      1 x 1/ 1    19 x  19 x1024 ->  19 x  19 x 512 0.379 BF  117 conv    256      1 x 1/ 1    19 x  19 x 512 ->  19 x  19 x 256 0.095 BF  118 upsample                2x    19 x  19 x 256 ->  38 x  38 x 256
119 route  85                                    ->  38 x  38 x 512
120 conv    256      1 x 1/ 1    38 x  38 x 512 ->  38 x  38 x 256 0.379 BF  121 route  120 118                                ->  38 x  38 x 512
122 conv    256      1 x 1/ 1    38 x  38 x 512 ->  38 x  38 x 256 0.379 BF  123 conv    512      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 512 3.407 BF  124 conv    256      1 x 1/ 1    38 x  38 x 512 ->  38 x  38 x 256 0.379 BF  125 conv    512      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 512 3.407 BF  126 conv    256      1 x 1/ 1    38 x  38 x 512 ->  38 x  38 x 256 0.379 BF  127 conv    128      1 x 1/ 1    38 x  38 x 256 ->  38 x  38 x 128 0.095 BF  128 upsample                2x    38 x  38 x 128 ->  76 x  76 x 128
129 route  54                                    ->  76 x  76 x 256
130 conv    128      1 x 1/ 1    76 x  76 x 256 ->  76 x  76 x 128 0.379 BF  131 route  130 128                                ->  76 x  76 x 256
131 route  130 128                                ->  76 x  76 x 256
如何撒娇
132 conv    128      1 x 1/ 1    76 x  76 x 256 ->  76 x  76 x 128 0.379 BF
133 conv    256      3 x 3/ 1    76 x  76 x 128 ->  76 x  76 x 256 3.407 BF
134 conv    128      1 x 1/ 1    76 x  76 x 256 ->  76 x  76 x 128 0.379 BF
135 conv    256      3 x 3/ 1    76 x  76 x 128 ->  76 x  76 x 256 3.407 BF
136 conv    128      1 x 1/ 1    76 x  76 x 256 ->  76 x  76 x 128 0.379 BF
137 conv    256      3 x 3/ 1    76 x  76 x 128 ->  76 x  76 x 256 3.407 BF
138 conv    255      1 x 1/ 1    76 x  76 x 256 ->  76 x  76 x 255 0.754 BF
139 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, cls_norm: 1.00, scale_x_y: 1.20 nms_kind: greedynms (1), beta = 0.600000
140 route  136                                            ->  76 x  76 x 128
141 conv    256      3 x 3/ 2    76 x  76 x 128 ->  38 x  38 x 256 0.852 BF
142 route  141 126                                ->  38 x  38 x 512
143 conv    256      1 x 1/ 1    38 x  38 x 512 ->  38 x  38 x 256 0.379 BF
144 conv    512      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 512 3.407 BF
145 conv    256      1 x 1/ 1    38 x  38 x 512 ->  38 x  38 x 256 0.379 BF
146 conv    512      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 512 3.407 BF
147 conv    256      1 x 1/ 1    38 x  38 x 512 ->  38 x  38 x 256 0.379 BF
148 conv    512      3 x 3/ 1    38 x  38 x 256 ->  38 x  38 x 512 3.407 BF
149 conv    255      1 x 1/ 1    38 x  38 x 512 ->  38 x  38 x 255 0.377 BF
150 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, cls_norm: 1.00, scale_x_y: 1.10 nms_kind: greedynms (1), beta = 0.600000
151 route  147                                            ->  38 x  38 x 256
152 conv    512      3 x 3/ 2    38 x  38 x 256 ->  19 x  19 x 512 0.852 BF
153 route  152 116                                ->  19 x  19 x1024
154 conv    512      1 x 1/ 1    19 x  19 x1024 ->  19 x  19 x 512 0.379 BF
155 conv  1024      3 x 3/ 1    19 x  19 x 512 ->  19 x  19 x1024 3.407 BF
156 conv    512      1 x 1/ 1    19 x  19 x1024 ->  19 x  19 x 512 0.379 BF
157 conv  1024      3 x 3/ 1    19 x  19 x 512 ->  19 x  19 x1024 3.407 BF
agony什么意思158 conv    512      1 x 1/ 1    19 x  19 x1024 ->  19 x  19 x 512 0.379 BF
159 conv  1024      3 x 3/ 1    19 x  19 x 512 ->  19 x  19 x1024 3.407 BF
160 conv    255      1 x 1/ 1    19 x  19 x1024 ->  19 x  19 x 255 0.189 BF
161 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, cls_norm: 1.00, scale_x_y: 1.05 nms_kind: greedynms (1), beta = 0.600000
Total BFLOPS 128.459
avg_outputs = 1068395
Allocate additional workspace_size = 33.55 MB
Loading weights from
en 64, trained: 32032 K-images (500 Kilo-batches_64)
Done! Loaded 162 layers from weights-file
w:608,h:608,c:32
w:304,h:304,c:64
w:304,h:304,c:64
w:304,h:304,c:64
w:304,h:304,c:64
w:304,h:304,c:32
w:304,h:304,c:64
w:304,h:304,c:64
w:304,h:304,c:64
w:304,h:304,c:128
w:304,h:304,c:64
w:152,h:152,c:128
w:152,h:152,c:64
w:152,h:152,c:128
w:152,h:152,c:64
w:152,h:152,c:64
w:152,h:152,c:64
w:152,h:152,c:64
w:152,h:152,c:64
w:152,h:152,c:64
w:152,h:152,c:64
w:152,h:152,c:64
skirt怎么读w:152,h:152,c:128

本文发布于:2023-07-27 11:41:41,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1119954.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:保存   特征   函数   准备
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图