File: README.md

package info (click to toggle)
opencv 4.10.0%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 282,092 kB
  • sloc: cpp: 1,178,079; xml: 682,621; python: 49,092; lisp: 31,150; java: 25,469; ansic: 11,039; javascript: 6,085; sh: 1,214; cs: 601; perl: 494; objc: 210; makefile: 173
file content (78 lines) | stat: -rw-r--r-- 2,050 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# Run PaddlePaddle model using OpenCV

These two demonstrations show how to inference PaddlePaddle model using OpenCV.

## Environment Setup

```shell
pip install paddlepaddle-gpu
pip install paddlehub
pip install paddle2onnx
```

## 1. Run PaddlePaddle ResNet50 using OpenCV

### Run PaddlePaddle model demo

Run the code sample as follows:

```shell
python paddle_resnet50.py
```

There are three parts to the process:

1. Export PaddlePaddle ResNet50 model to onnx format.
2. Use `cv2.dnn.readNetFromONNX` to load the model file.
3. Preprocess image file and do the inference.

## 2. Run PaddleSeg Portrait Segmentation using OpenCV

### Convert to ONNX Model

#### 1. Get Paddle Inference model

For more details, please refer to [PaddleSeg](https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.1/contrib/HumanSeg/README.md).

```shell
wget https://x2paddle.bj.bcebos.com/inference/models/humanseg_hrnet18_small_v1.zip
unzip humanseg_hrnet18_small_v1.zip
```

Notes:

* The exported model must have a fixed input shape, as dynamic is not supported at this moment.

#### 2. Convert to ONNX model using paddle2onnx

To convert the model, use the following command:

```
paddle2onnx --model_dir humanseg_hrnet18_small_v1 \
            --model_filename model.pdmodel \
            --params_filename model.pdiparams \
            --opset_version 11 \
            --save_file humanseg_hrnet18_tiny.onnx
```

The converted model can be found in the current directory by the name `humanseg_hrnet18_tiny.onnx` .

### Run PaddleSeg Portrait Segmentation demo

Run the code sample as follows:

```shell
python paddle_humanseg.py
```

There are three parts to the process:

1. Use `cv2.dnn.readNetFromONNX` to load the model file.
2. Preprocess image file and do inference.
3. Postprocess image file and visualize.

The resulting file can be found at `data/result_test_human.jpg` .

### Portrait segmentation visualization

<img src="../../../../data/messi5.jpg" width="50%" height="50%"><img src="./data/result_test_human.jpg" width="50%" height="50%">