未验证 提交 98f95105 编写于 作者: J Jason 提交者: GitHub

Merge pull request #324 from FlyingQianMM/develop_qh

add params_not_prune for deeplabv3p_mobilenetv3_large and fix change_log for 1.2.0
...@@ -138,7 +138,6 @@ overlap_tile_predict(self, img_file, tile_size=[512, 512], pad_size=[64, 64], ba ...@@ -138,7 +138,6 @@ overlap_tile_predict(self, img_file, tile_size=[512, 512], pad_size=[64, 64], ba
> > > >
> > - **dict**: 包含关键字'label_map'和'score_map', 'label_map'存储预测结果灰度图,像素值表示对应的类别,'score_map'存储各类别的概率,shape=(h, w, num_classes)。 > > - **dict**: 包含关键字'label_map'和'score_map', 'label_map'存储预测结果灰度图,像素值表示对应的类别,'score_map'存储各类别的概率,shape=(h, w, num_classes)。
## paddlex.seg.UNet ## paddlex.seg.UNet
```python ```python
......
...@@ -2,23 +2,23 @@ ...@@ -2,23 +2,23 @@
**v1.2.0** 2020.09.07 **v1.2.0** 2020.09.07
- 模型更新 - 模型更新
> - 新增目标检测模型PPYOLO[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/apis/models/detection.html#paddlex-det-ppyolo) > - 新增产业最实用目标检测模型PP-YOLO,深入考虑产业应用对精度速度的双重面诉求,COCO数据集精度45.2%,Tesla V100预测速度72.9FPS。[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/apis/models/detection.html#paddlex-det-ppyolo)
> - FasterRCNN、MaskRCNN、YOLOv3、DeepLabv3p等模型新增内置COCO数据集预训练模型 > - FasterRCNN、MaskRCNN、YOLOv3、DeepLabv3p等模型新增内置COCO数据集预训练模型,适用于小数据集的微调训练。
> - 目标检测模型FasterRCNN和MaskRCNN新增backbone HRNet_W18[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/apis/models/detection.html#paddlex-det-fasterrcnn) > - 目标检测模型FasterRCNN和MaskRCNN新增backbone HRNet_W18,适用于对细节预测要求较高的应用场景。[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/apis/models/detection.html#paddlex-det-fasterrcnn)
> - 语义分割模型DeepLabv3p新增backbone MobileNetV3_large_ssld[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/apis/models/semantic_segmentation.html#paddlex-seg-deeplabv3p) > - 语义分割模型DeepLabv3p新增backbone MobileNetV3_large_ssld,模型体积9.3MB,Cityscapes数据集精度仍保持有73.28%。[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/apis/models/semantic_segmentation.html#paddlex-seg-deeplabv3p)
- 模型部署更新 - 模型部署更新
> - 新增模型通过OpenVINO的部署方案[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/deploy/openvino/index.html) > - 新增模型通过OpenVINO预测加速的部署方案,CPU上相比mkldnn加速库预测速度提升1.5~2倍左右。[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/deploy/openvino/index.html)
> - 新增模型在树莓派上的部署方案[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/deploy/raspberry/index.html) > - 新增模型在树莓派上的部署方案,进一步丰富边缘侧的部署方案。[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/deploy/raspberry/index.html)
> - 优化PaddleLite Android部署的数据预处理和后处理代码性能 > - 优化PaddleLite Android部署的数据预处理和后处理代码性能,预处理速度提升10倍左右,后处理速度提升4倍左右。
> - 优化Paddle服务端C++代码部署代码,增加use_mkl等参数,通过mkldnn显著提升模型在CPU上的预测性能 > - 优化Paddle服务端C++代码部署代码,增加use_mkl等参数,CPU上相比未开启mkldnn预测速度提升10~50倍左右。
- 产业案例更新 - 产业案例更新
> - 新增RGB图像遥感分割案例[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/examples/remote_sensing.html) > - 新增大尺寸RGB图像遥感分割案例,提供滑动窗口预测接口,不仅能避免显存不足的发生,而且能通过配置重叠程度消除最终预测结果中各窗口拼接处的裂痕感。[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/examples/remote_sensing.html)
> - 新增多通道遥感分割案例[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/examples/multi-channel_remote_sensing/README.html) > - 新增多通道遥感影像分割案例,打通语义分割任务对任意通道数量的数据分析、模型训练、模型部署全流程。[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/examples/multi-channel_remote_sensing/README.html)
- 其它 - 其它
> - 新增数据集切分功能,支持通过命令行切分ImageNet、PascalVOC、MSCOCO和语义分割数据集[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/data/format/classification.html#id2) > - 新增数据集切分功能,支持通过命令行一键切分ImageNet、PascalVOC、MSCOCO和语义分割数据集[详情链接](https://paddlex.readthedocs.io/zh_CN/develop/data/format/classification.html#id2)
**v1.1.0** 2020.07.12 **v1.1.0** 2020.07.12
......
...@@ -308,7 +308,9 @@ def get_prune_params(model): ...@@ -308,7 +308,9 @@ def get_prune_params(model):
'conv9_depthwise_weights', 'conv6_expand_weights', 'conv9_depthwise_weights', 'conv6_expand_weights',
'conv5_se_2_weights', 'conv14_expand_weights', 'conv5_se_2_weights', 'conv14_expand_weights',
'conv4_depthwise_weights', 'conv7_expand_weights', 'conv4_depthwise_weights', 'conv7_expand_weights',
'conv7_depthwise_weights' 'conv7_depthwise_weights', 'encoder/aspp0/weights',
'decoder/merge/weights', 'encoder/image_pool/weights',
'decoder/weights'
] ]
for param in program.global_block().all_parameters(): for param in program.global_block().all_parameters():
if 'weight' not in param.name: if 'weight' not in param.name:
......
...@@ -93,7 +93,9 @@ def visualize_segmentation(image, ...@@ -93,7 +93,9 @@ def visualize_segmentation(image,
if abs(weight) < 1e-5: if abs(weight) < 1e-5:
vis_result = pseudo_img vis_result = pseudo_img
else: else:
vis_result = cv2.addWeighted(im, weight, pseudo_img, 1 - weight, 0) vis_result = cv2.addWeighted(im, weight,
pseudo_img.astype('float32'), 1 - weight,
0)
if save_dir is not None: if save_dir is not None:
if not os.path.exists(save_dir): if not os.path.exists(save_dir):
......
...@@ -247,13 +247,16 @@ class Predictor: ...@@ -247,13 +247,16 @@ class Predictor:
[output_tensor.copy_to_cpu(), output_tensor_lod]) [output_tensor.copy_to_cpu(), output_tensor_lod])
return output_results return output_results
def predict(self, image, topk=1): def predict(self, image, topk=1, transforms=None):
""" 图片预测 """ 图片预测
Args: Args:
image(str|np.ndarray): 图像路径;或者是解码后的排列格式为(H, W, C)且类型为float32且为BGR格式的数组。 image(str|np.ndarray): 图像路径;或者是解码后的排列格式为(H, W, C)且类型为float32且为BGR格式的数组。
topk(int): 分类预测时使用,表示预测前topk的结果 topk(int): 分类预测时使用,表示预测前topk的结果。
transforms (paddlex.cls.transforms): 数据预处理操作。
""" """
if transforms is not None:
self.transforms = transforms
preprocessed_input = self.preprocess([image]) preprocessed_input = self.preprocess([image])
model_pred = self.raw_predict(preprocessed_input) model_pred = self.raw_predict(preprocessed_input)
im_shape = None if 'im_shape' not in preprocessed_input else preprocessed_input[ im_shape = None if 'im_shape' not in preprocessed_input else preprocessed_input[
...@@ -269,15 +272,18 @@ class Predictor: ...@@ -269,15 +272,18 @@ class Predictor:
return results[0] return results[0]
def batch_predict(self, image_list, topk=1): def batch_predict(self, image_list, topk=1, transforms=None):
""" 图片预测 """ 图片预测
Args: Args:
image_list(list|tuple): 对列表(或元组)中的图像同时进行预测,列表中的元素可以是图像路径 image_list(list|tuple): 对列表(或元组)中的图像同时进行预测,列表中的元素可以是图像路径
也可以是解码后的排列格式为(H,W,C)且类型为float32且为BGR格式的数组。 也可以是解码后的排列格式为(H,W,C)且类型为float32且为BGR格式的数组。
topk(int): 分类预测时使用,表示预测前topk的结果 topk(int): 分类预测时使用,表示预测前topk的结果。
transforms (paddlex.cls.transforms): 数据预处理操作。
""" """
if transforms is not None:
self.transforms = transforms
preprocessed_input = self.preprocess(image_list, self.thread_pool) preprocessed_input = self.preprocess(image_list, self.thread_pool)
model_pred = self.raw_predict(preprocessed_input) model_pred = self.raw_predict(preprocessed_input)
im_shape = None if 'im_shape' not in preprocessed_input else preprocessed_input[ im_shape = None if 'im_shape' not in preprocessed_input else preprocessed_input[
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册