Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
陈小光丶
yolov4-keras
提交
de6eaff4
Y
yolov4-keras
项目概览
陈小光丶
/
yolov4-keras
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
yolov4-keras
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
de6eaff4
编写于
5月 23, 2020
作者:
J
JiaQi Xu
提交者:
GitHub
5月 23, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add files via upload
上级
2b7e66f2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
81 addition
and
0 deletion
+81
-0
vision_for_anchors.py
vision_for_anchors.py
+81
-0
未找到文件。
vision_for_anchors.py
0 → 100644
浏览文件 @
de6eaff4
import
numpy
as
np
import
matplotlib.pyplot
as
plt
def
sigmoid
(
x
):
s
=
1
/
(
1
+
np
.
exp
(
-
x
))
return
s
#---------------------------------------------------#
# 将预测值的每个特征层调成真实值
#---------------------------------------------------#
# 13x13
def
yolo_head
(
feats
,
anchors
,
num_classes
):
# 3
num_anchors
=
len
(
anchors
)
# [1, 1, 1, num_anchors, 2]
anchors_tensor
=
np
.
reshape
(
anchors
,
[
1
,
1
,
1
,
num_anchors
,
2
])
/
32
# 获得x,y的网格
# (13,13, 1, 2)
grid_shape
=
np
.
shape
(
feats
)[
1
:
3
]
# height, width
print
(
grid_shape
)
grid_y
=
np
.
tile
(
np
.
reshape
(
np
.
arange
(
0
,
stop
=
grid_shape
[
0
]),
[
-
1
,
1
,
1
,
1
]),
[
1
,
grid_shape
[
1
],
1
,
1
])
grid_x
=
np
.
tile
(
np
.
reshape
(
np
.
arange
(
0
,
stop
=
grid_shape
[
1
]),
[
1
,
-
1
,
1
,
1
]),
[
grid_shape
[
0
],
1
,
1
,
1
])
grid
=
np
.
concatenate
([
grid_x
,
grid_y
],
-
1
)
print
(
np
.
shape
(
grid
))
# (batch_size,13,13,3,85)
feats
=
np
.
reshape
(
feats
,
[
-
1
,
grid_shape
[
0
],
grid_shape
[
1
],
num_anchors
,
num_classes
+
5
])
# 将预测值调成真实值
# box_xy对应框的中心点
# box_wh对应框的宽和高
box_xy
=
(
sigmoid
(
feats
[...,
:
2
])
+
grid
)
box_wh
=
np
.
exp
(
feats
[...,
2
:
4
])
*
anchors_tensor
box_confidence
=
sigmoid
(
feats
[...,
4
:
5
])
box_class_probs
=
sigmoid
(
feats
[...,
5
:])
fig
=
plt
.
figure
()
ax
=
fig
.
add_subplot
(
121
)
plt
.
ylim
(
-
2
,
15
)
plt
.
xlim
(
-
2
,
15
)
plt
.
scatter
(
grid_x
,
grid_y
)
plt
.
scatter
(
5
,
5
,
c
=
'black'
)
plt
.
gca
().
invert_yaxis
()
anchor_left
=
grid_x
-
anchors_tensor
/
2
anchor_top
=
grid_y
-
anchors_tensor
/
2
print
(
np
.
shape
(
anchors_tensor
))
rect1
=
plt
.
Rectangle
([
anchor_left
[
0
,
5
,
5
,
0
,
0
],
anchor_top
[
0
,
5
,
5
,
0
,
1
]],
anchors_tensor
[
0
,
0
,
0
,
0
,
0
],
anchors_tensor
[
0
,
0
,
0
,
0
,
1
],
color
=
"r"
,
fill
=
False
)
rect2
=
plt
.
Rectangle
([
anchor_left
[
0
,
5
,
5
,
1
,
0
],
anchor_top
[
0
,
5
,
5
,
1
,
1
]],
anchors_tensor
[
0
,
0
,
0
,
1
,
0
],
anchors_tensor
[
0
,
0
,
0
,
1
,
1
],
color
=
"r"
,
fill
=
False
)
rect3
=
plt
.
Rectangle
([
anchor_left
[
0
,
5
,
5
,
2
,
0
],
anchor_top
[
0
,
5
,
5
,
2
,
1
]],
anchors_tensor
[
0
,
0
,
0
,
2
,
0
],
anchors_tensor
[
0
,
0
,
0
,
2
,
1
],
color
=
"r"
,
fill
=
False
)
ax
.
add_patch
(
rect1
)
ax
.
add_patch
(
rect2
)
ax
.
add_patch
(
rect3
)
ax
=
fig
.
add_subplot
(
122
)
plt
.
ylim
(
-
2
,
15
)
plt
.
xlim
(
-
2
,
15
)
plt
.
scatter
(
grid_x
,
grid_y
)
plt
.
scatter
(
5
,
5
,
c
=
'black'
)
plt
.
scatter
(
box_xy
[
0
,
5
,
5
,:,
0
],
box_xy
[
0
,
5
,
5
,:,
1
],
c
=
'r'
)
plt
.
gca
().
invert_yaxis
()
pre_left
=
box_xy
[...,
0
]
-
box_wh
[...,
0
]
/
2
pre_top
=
box_xy
[...,
1
]
-
box_wh
[...,
1
]
/
2
rect1
=
plt
.
Rectangle
([
pre_left
[
0
,
5
,
5
,
0
],
pre_top
[
0
,
5
,
5
,
0
]],
box_wh
[
0
,
5
,
5
,
0
,
0
],
box_wh
[
0
,
5
,
5
,
0
,
1
],
color
=
"r"
,
fill
=
False
)
rect2
=
plt
.
Rectangle
([
pre_left
[
0
,
5
,
5
,
1
],
pre_top
[
0
,
5
,
5
,
1
]],
box_wh
[
0
,
5
,
5
,
1
,
0
],
box_wh
[
0
,
5
,
5
,
1
,
1
],
color
=
"r"
,
fill
=
False
)
rect3
=
plt
.
Rectangle
([
pre_left
[
0
,
5
,
5
,
2
],
pre_top
[
0
,
5
,
5
,
2
]],
box_wh
[
0
,
5
,
5
,
2
,
0
],
box_wh
[
0
,
5
,
5
,
2
,
1
],
color
=
"r"
,
fill
=
False
)
ax
.
add_patch
(
rect1
)
ax
.
add_patch
(
rect2
)
ax
.
add_patch
(
rect3
)
plt
.
show
()
#
feat
=
np
.
random
.
normal
(
0
,
0.5
,[
4
,
13
,
13
,
75
])
anchors
=
[[
142
,
110
],[
192
,
243
],[
459
,
401
]]
yolo_head
(
feat
,
anchors
,
20
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录