Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
曾经的那一瞬间
Models
提交
2c590a0e
M
Models
项目概览
曾经的那一瞬间
/
Models
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
Models
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2c590a0e
编写于
1月 26, 2022
作者:
A
Abdullah Rashwan
提交者:
A. Unique TensorFlower
1月 26, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Internal change
PiperOrigin-RevId: 424463592
上级
ca8c44d5
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
33 addition
and
9 deletion
+33
-9
official/vision/beta/projects/panoptic_maskrcnn/configs/panoptic_maskrcnn.py
...a/projects/panoptic_maskrcnn/configs/panoptic_maskrcnn.py
+2
-1
official/vision/beta/projects/panoptic_maskrcnn/modeling/factory.py
...ision/beta/projects/panoptic_maskrcnn/modeling/factory.py
+3
-2
official/vision/beta/projects/panoptic_maskrcnn/modeling/panoptic_maskrcnn_model.py
...cts/panoptic_maskrcnn/modeling/panoptic_maskrcnn_model.py
+6
-3
official/vision/beta/projects/panoptic_maskrcnn/serving/panoptic_segmentation.py
...ojects/panoptic_maskrcnn/serving/panoptic_segmentation.py
+21
-2
official/vision/beta/projects/panoptic_maskrcnn/tasks/panoptic_maskrcnn.py
...eta/projects/panoptic_maskrcnn/tasks/panoptic_maskrcnn.py
+1
-1
未找到文件。
official/vision/beta/projects/panoptic_maskrcnn/configs/panoptic_maskrcnn.py
浏览文件 @
2c590a0e
...
...
@@ -25,6 +25,7 @@ from official.modeling import optimization
from
official.vision.beta.configs
import
common
from
official.vision.beta.configs
import
maskrcnn
from
official.vision.beta.configs
import
semantic_segmentation
from
official.vision.beta.projects.deepmac_maskrcnn.configs
import
deep_mask_head_rcnn
as
deepmac_maskrcnn
SEGMENTATION_MODEL
=
semantic_segmentation
.
SemanticSegmentationModel
...
...
@@ -89,7 +90,7 @@ class PanopticSegmentationGenerator(hyperparams.Config):
@
dataclasses
.
dataclass
class
PanopticMaskRCNN
(
maskrcnn
.
Mask
RCNN
):
class
PanopticMaskRCNN
(
deepmac_maskrcnn
.
DeepMaskHead
RCNN
):
"""Panoptic Mask R-CNN model config."""
segmentation_model
:
semantic_segmentation
.
SemanticSegmentationModel
=
(
SEGMENTATION_MODEL
(
num_classes
=
2
))
...
...
official/vision/beta/projects/panoptic_maskrcnn/modeling/factory.py
浏览文件 @
2c590a0e
...
...
@@ -17,9 +17,9 @@
import
tensorflow
as
tf
from
official.vision.beta.modeling
import
backbones
from
official.vision.beta.modeling
import
factory
as
models_factory
from
official.vision.beta.modeling.decoders
import
factory
as
decoder_factory
from
official.vision.beta.modeling.heads
import
segmentation_heads
from
official.vision.beta.projects.deepmac_maskrcnn.tasks
import
deep_mask_head_rcnn
from
official.vision.beta.projects.panoptic_maskrcnn.configs
import
panoptic_maskrcnn
as
panoptic_maskrcnn_cfg
from
official.vision.beta.projects.panoptic_maskrcnn.modeling
import
panoptic_maskrcnn_model
from
official.vision.beta.projects.panoptic_maskrcnn.modeling.layers
import
panoptic_segmentation_generator
...
...
@@ -47,7 +47,7 @@ def build_panoptic_maskrcnn(
segmentation_config
=
model_config
.
segmentation_model
# Builds the maskrcnn model.
maskrcnn_model
=
models_factory
.
build_maskrcnn
(
maskrcnn_model
=
deep_mask_head_rcnn
.
build_maskrcnn
(
input_specs
=
input_specs
,
model_config
=
model_config
,
l2_regularizer
=
l2_regularizer
)
...
...
@@ -117,6 +117,7 @@ def build_panoptic_maskrcnn(
# Combines maskrcnn, and segmentation models to build panoptic segmentation
# model.
model
=
panoptic_maskrcnn_model
.
PanopticMaskRCNNModel
(
backbone
=
maskrcnn_model
.
backbone
,
decoder
=
maskrcnn_model
.
decoder
,
...
...
official/vision/beta/projects/panoptic_maskrcnn/modeling/panoptic_maskrcnn_model.py
浏览文件 @
2c590a0e
...
...
@@ -18,10 +18,10 @@ from typing import List, Mapping, Optional, Union
import
tensorflow
as
tf
from
official.vision.beta.modeling
import
maskrcnn_model
from
official.vision.beta.
projects.deepmac_maskrcnn.
modeling
import
maskrcnn_model
class
PanopticMaskRCNNModel
(
maskrcnn_model
.
MaskRCNNModel
):
class
PanopticMaskRCNNModel
(
maskrcnn_model
.
Deep
MaskRCNNModel
):
"""The Panoptic Segmentation model."""
def
__init__
(
...
...
@@ -49,7 +49,8 @@ class PanopticMaskRCNNModel(maskrcnn_model.MaskRCNNModel):
max_level
:
Optional
[
int
]
=
None
,
num_scales
:
Optional
[
int
]
=
None
,
aspect_ratios
:
Optional
[
List
[
float
]]
=
None
,
anchor_size
:
Optional
[
float
]
=
None
,
# pytype: disable=annotation-type-mismatch # typed-keras
anchor_size
:
Optional
[
float
]
=
None
,
use_gt_boxes_for_masks
:
bool
=
False
,
# pytype: disable=annotation-type-mismatch # typed-keras
**
kwargs
):
"""Initializes the Panoptic Mask R-CNN model.
...
...
@@ -94,6 +95,7 @@ class PanopticMaskRCNNModel(maskrcnn_model.MaskRCNNModel):
aspect_ratios=[1.0, 2.0, 0.5] adds three anchors on each scale level.
anchor_size: A number representing the scale of size of the base anchor to
the feature stride 2^level.
use_gt_boxes_for_masks: `bool`, whether to use only gt boxes for masks.
**kwargs: keyword arguments to be passed.
"""
super
(
PanopticMaskRCNNModel
,
self
).
__init__
(
...
...
@@ -115,6 +117,7 @@ class PanopticMaskRCNNModel(maskrcnn_model.MaskRCNNModel):
num_scales
=
num_scales
,
aspect_ratios
=
aspect_ratios
,
anchor_size
=
anchor_size
,
use_gt_boxes_for_masks
=
use_gt_boxes_for_masks
,
**
kwargs
)
self
.
_config_dict
.
update
({
...
...
official/vision/beta/projects/panoptic_maskrcnn/serving/panoptic_segmentation.py
浏览文件 @
2c590a0e
...
...
@@ -97,6 +97,20 @@ class PanopticSegmentationModule(detection.DetectionModule):
anchor_boxes
=
anchor_boxes
,
training
=
False
)
detections
.
pop
(
'rpn_boxes'
)
detections
.
pop
(
'rpn_scores'
)
detections
.
pop
(
'cls_outputs'
)
detections
.
pop
(
'box_outputs'
)
detections
.
pop
(
'backbone_features'
)
detections
.
pop
(
'decoder_features'
)
# Normalize detection boxes to [0, 1]. Here we first map them to the
# original image size, then normalize them to [0, 1].
detections
[
'detection_boxes'
]
=
(
detections
[
'detection_boxes'
]
/
tf
.
tile
(
image_info
[:,
2
:
3
,
:],
[
1
,
1
,
2
])
/
tf
.
tile
(
image_info
[:,
0
:
1
,
:],
[
1
,
1
,
2
]))
if
model_params
.
detection_generator
.
apply_nms
:
final_outputs
=
{
'detection_boxes'
:
detections
[
'detection_boxes'
],
...
...
@@ -109,10 +123,15 @@ class PanopticSegmentationModule(detection.DetectionModule):
'decoded_boxes'
:
detections
[
'decoded_boxes'
],
'decoded_box_scores'
:
detections
[
'decoded_box_scores'
]
}
masks
=
detections
[
'segmentation_outputs'
]
masks
=
tf
.
image
.
resize
(
masks
,
self
.
_input_image_size
,
method
=
'bilinear'
)
classes
=
tf
.
math
.
argmax
(
masks
,
axis
=-
1
)
scores
=
tf
.
nn
.
softmax
(
masks
,
axis
=-
1
)
final_outputs
.
update
({
'detection_masks'
:
detections
[
'detection_masks'
],
'segmentation_outputs'
:
detections
[
'segmentation_outputs'
],
'masks'
:
masks
,
'scores'
:
scores
,
'classes'
:
classes
,
'image_info'
:
image_info
})
if
model_params
.
generate_panoptic_masks
:
...
...
official/vision/beta/projects/panoptic_maskrcnn/tasks/panoptic_maskrcnn.py
浏览文件 @
2c590a0e
...
...
@@ -61,7 +61,7 @@ class PanopticMaskRCNNTask(maskrcnn.MaskRCNNTask):
def
initialize
(
self
,
model
:
tf
.
keras
.
Model
)
->
None
:
"""Loading pretrained checkpoint."""
if
not
self
.
task_config
.
init_checkpoint
_modules
:
if
not
self
.
task_config
.
init_checkpoint
:
return
def
_get_checkpoint_path
(
checkpoint_dir_or_file
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录