質問編集履歴
1
タイトル及びコード一式のダウンロード先URL(Git)の掲載になります
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
yolov3-tf2のmodels.py
|
1
|
+
yolov3-tf2のmodels.py内の、関数YoloV3で定義された変数x_36, x_61, xへの代入されている値が分からない
|
test
CHANGED
@@ -4,9 +4,17 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
関数Darknetのreturn tf.keras.Model(inputs, (x_36, x_61, x), name=name)
|
7
|
+
関数Darknetの【return tf.keras.Model(inputs, (x_36, x_61, x), name=name)】
|
8
8
|
|
9
|
-
は、引き数がinputs及びoutputsと定義されています
|
9
|
+
は、引き数がinputs及びoutputsと定義されています。
|
10
|
+
|
11
|
+
関数YoloV3の2行目において、
|
12
|
+
|
13
|
+
```
|
14
|
+
|
15
|
+
x_36, x_61, x = Darknet(name='yolo_darknet')(x)
|
16
|
+
|
17
|
+
```
|
10
18
|
|
11
19
|
x_36はx_36の値、x_61はx_61の値、xはxまでの値として代入されているのでしょうか。
|
12
20
|
|
@@ -14,9 +22,15 @@
|
|
14
22
|
|
15
23
|
|
16
24
|
|
25
|
+
下記がファイル一式のURLになります。コード内部への変更はしておらず、原文のまま掲載しております。
|
26
|
+
|
27
|
+
一式ダウンロード先URL:https://github.com/zzh8829/yolov3-tf2
|
28
|
+
|
17
29
|
|
18
30
|
|
19
31
|
```
|
32
|
+
|
33
|
+
※第一行目
|
20
34
|
|
21
35
|
def YoloV3(size=None, channels=3, anchors=yolo_anchors,
|
22
36
|
|
@@ -24,9 +38,59 @@
|
|
24
38
|
|
25
39
|
x = inputs = Input([size, size, channels], name='input')
|
26
40
|
|
41
|
+
|
42
|
+
|
27
43
|
x_36, x_61, x = Darknet(name='yolo_darknet')(x)
|
28
44
|
|
45
|
+
|
46
|
+
|
47
|
+
x = YoloConv(512, name='yolo_conv_0')(x)
|
48
|
+
|
49
|
+
output_0 = YoloOutput(512, len(masks[0]), classes, name='yolo_output_0')(x)
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
x = YoloConv(256, name='yolo_conv_1')((x, x_61))
|
54
|
+
|
55
|
+
output_1 = YoloOutput(256, len(masks[1]), classes, name='yolo_output_1')(x)
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
x = YoloConv(128, name='yolo_conv_2')((x, x_36))
|
60
|
+
|
61
|
+
output_2 = YoloOutput(128, len(masks[2]), classes, name='yolo_output_2')(x)
|
62
|
+
|
63
|
+
|
64
|
+
|
29
|
-
|
65
|
+
if training:
|
66
|
+
|
67
|
+
return Model(inputs, (output_0, output_1, output_2), name='yolov3')
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
boxes_0 = Lambda(lambda x: yolo_boxes(x, anchors[masks[0]], classes),
|
72
|
+
|
73
|
+
name='yolo_boxes_0')(output_0)
|
74
|
+
|
75
|
+
boxes_1 = Lambda(lambda x: yolo_boxes(x, anchors[masks[1]], classes),
|
76
|
+
|
77
|
+
name='yolo_boxes_1')(output_1)
|
78
|
+
|
79
|
+
boxes_2 = Lambda(lambda x: yolo_boxes(x, anchors[masks[2]], classes),
|
80
|
+
|
81
|
+
name='yolo_boxes_2')(output_2)
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
outputs = Lambda(lambda x: yolo_nms(x, anchors, masks, classes),
|
86
|
+
|
87
|
+
name='yolo_nms')((boxes_0[:3], boxes_1[:3], boxes_2[:3]))
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
return Model(inputs, outputs, name='yolov3')
|
92
|
+
|
93
|
+
|
30
94
|
|
31
95
|
```
|
32
96
|
|