Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
5e2a81dc
O
Opencv
项目概览
Greenplum
/
Opencv
11 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5e2a81dc
编写于
2月 08, 2019
作者:
A
Alexander Alekhin
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #13766 from dkurt:dnn_mask_rcnn_atrous
上级
52050ebe
6ad3bf31
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
44 addition
and
3 deletion
+44
-3
samples/dnn/tf_text_graph_mask_rcnn.py
samples/dnn/tf_text_graph_mask_rcnn.py
+44
-3
未找到文件。
samples/dnn/tf_text_graph_mask_rcnn.py
浏览文件 @
5e2a81dc
...
...
@@ -25,7 +25,8 @@ scopesToIgnore = ('FirstStageFeatureExtractor/Assert',
'FirstStageFeatureExtractor/Shape'
,
'FirstStageFeatureExtractor/strided_slice'
,
'FirstStageFeatureExtractor/GreaterEqual'
,
'FirstStageFeatureExtractor/LogicalAnd'
)
'FirstStageFeatureExtractor/LogicalAnd'
,
'Conv/required_space_to_batch_paddings'
)
# Load a config file.
config
=
readTextMessage
(
args
.
config
)
...
...
@@ -54,10 +55,30 @@ graph_def = parseTextGraph(args.output)
removeIdentity
(
graph_def
)
nodesToKeep
=
[]
def
to_remove
(
name
,
op
):
if
name
in
nodesToKeep
:
return
False
return
op
==
'Const'
or
name
.
startswith
(
scopesToIgnore
)
or
not
name
.
startswith
(
scopesToKeep
)
or
\
(
name
.
startswith
(
'CropAndResize'
)
and
op
!=
'CropAndResize'
)
# Fuse atrous convolutions (with dilations).
nodesMap
=
{
node
.
name
:
node
for
node
in
graph_def
.
node
}
for
node
in
reversed
(
graph_def
.
node
):
if
node
.
op
==
'BatchToSpaceND'
:
del
node
.
input
[
2
]
conv
=
nodesMap
[
node
.
input
[
0
]]
spaceToBatchND
=
nodesMap
[
conv
.
input
[
0
]]
paddingsNode
=
NodeDef
()
paddingsNode
.
name
=
conv
.
name
+
'/paddings'
paddingsNode
.
op
=
'Const'
paddingsNode
.
addAttr
(
'value'
,
[
2
,
2
,
2
,
2
])
graph_def
.
node
.
insert
(
graph_def
.
node
.
index
(
spaceToBatchND
),
paddingsNode
)
nodesToKeep
.
append
(
paddingsNode
.
name
)
spaceToBatchND
.
input
[
2
]
=
paddingsNode
.
name
removeUnusedNodesAndAttrs
(
to_remove
,
graph_def
)
...
...
@@ -106,8 +127,8 @@ heights = []
for
a
in
aspect_ratios
:
for
s
in
scales
:
ar
=
np
.
sqrt
(
a
)
heights
.
append
((
features
_stride
**
2
)
*
s
/
ar
)
widths
.
append
((
features
_stride
**
2
)
*
s
*
ar
)
heights
.
append
((
height
_stride
**
2
)
*
s
/
ar
)
widths
.
append
((
width
_stride
**
2
)
*
s
*
ar
)
proposals
.
addAttr
(
'width'
,
widths
)
proposals
.
addAttr
(
'height'
,
heights
)
...
...
@@ -252,5 +273,25 @@ graph_def.node[-1].name = 'detection_masks'
graph_def
.
node
[
-
1
].
op
=
'Sigmoid'
graph_def
.
node
[
-
1
].
input
.
pop
()
def
getUnconnectedNodes
():
unconnected
=
[
node
.
name
for
node
in
graph_def
.
node
]
for
node
in
graph_def
.
node
:
for
inp
in
node
.
input
:
if
inp
in
unconnected
:
unconnected
.
remove
(
inp
)
return
unconnected
while
True
:
unconnectedNodes
=
getUnconnectedNodes
()
unconnectedNodes
.
remove
(
graph_def
.
node
[
-
1
].
name
)
if
not
unconnectedNodes
:
break
for
name
in
unconnectedNodes
:
for
i
in
range
(
len
(
graph_def
.
node
)):
if
graph_def
.
node
[
i
].
name
==
name
:
del
graph_def
.
node
[
i
]
break
# Save as text.
graph_def
.
save
(
args
.
output
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录