diff --git a/src/PaddleClas/deploy/.idea/.gitignore b/src/PaddleClas/deploy/.idea/.gitignore
new file mode 100644
index 0000000..359bb53
--- /dev/null
+++ b/src/PaddleClas/deploy/.idea/.gitignore
@@ -0,0 +1,3 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
diff --git a/src/PaddleClas/deploy/.idea/deploy.iml b/src/PaddleClas/deploy/.idea/deploy.iml
new file mode 100644
index 0000000..8a05c6e
--- /dev/null
+++ b/src/PaddleClas/deploy/.idea/deploy.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/.idea/inspectionProfiles/profiles_settings.xml b/src/PaddleClas/deploy/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/src/PaddleClas/deploy/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/.idea/misc.xml b/src/PaddleClas/deploy/.idea/misc.xml
new file mode 100644
index 0000000..d56657a
--- /dev/null
+++ b/src/PaddleClas/deploy/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/.idea/modules.xml b/src/PaddleClas/deploy/.idea/modules.xml
new file mode 100644
index 0000000..1071ae1
--- /dev/null
+++ b/src/PaddleClas/deploy/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/.scannerwork/.sonar_lock b/src/PaddleClas/deploy/.scannerwork/.sonar_lock
new file mode 100644
index 0000000..e69de29
diff --git a/src/PaddleClas/deploy/.scannerwork/report-task.txt b/src/PaddleClas/deploy/.scannerwork/report-task.txt
new file mode 100644
index 0000000..d55dfb8
--- /dev/null
+++ b/src/PaddleClas/deploy/.scannerwork/report-task.txt
@@ -0,0 +1,6 @@
+projectKey=deploy
+serverUrl=http://localhost:9000
+serverVersion=8.1.0.31237
+dashboardUrl=http://localhost:9000/dashboard?id=deploy
+ceTaskId=AYA_xvBwrgFtfprwzYuQ
+ceTaskUrl=http://localhost:9000/api/ce/task?id=AYA_xvBwrgFtfprwzYuQ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_1.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_1.jpg
new file mode 100644
index 0000000..ec10770
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_1.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_10.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_10.jpg
new file mode 100644
index 0000000..5fca3bf
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_10.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_100.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_100.jpg
new file mode 100644
index 0000000..3588191
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_100.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_11.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_11.jpg
new file mode 100644
index 0000000..14f07c9
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_11.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_12.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_12.jpg
new file mode 100644
index 0000000..702051a
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_12.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_13.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_13.jpg
new file mode 100644
index 0000000..01126ea
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_13.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_14.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_14.jpg
new file mode 100644
index 0000000..3f8bc89
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_14.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_15.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_15.jpg
new file mode 100644
index 0000000..d2431a6
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_15.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_16.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_16.jpg
new file mode 100644
index 0000000..d466de8
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_16.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_17.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_17.jpg
new file mode 100644
index 0000000..d73830e
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_17.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_18.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_18.jpg
new file mode 100644
index 0000000..2330c27
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_18.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_19.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_19.jpg
new file mode 100644
index 0000000..76ef557
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_19.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_2.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_2.jpg
new file mode 100644
index 0000000..f541386
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_2.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_20.GIF b/src/PaddleClas/deploy/Trees/gallery/0/Image_20.GIF
new file mode 100644
index 0000000..c7d40c7
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_20.GIF differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_2001.png b/src/PaddleClas/deploy/Trees/gallery/0/Image_2001.png
new file mode 100644
index 0000000..3b4d6ce
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_2001.png differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_21.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_21.jpg
new file mode 100644
index 0000000..6ba0ae5
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_21.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_22.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_22.jpg
new file mode 100644
index 0000000..11481a0
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_22.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_23.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_23.jpg
new file mode 100644
index 0000000..8df03b9
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_23.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_24.GIF b/src/PaddleClas/deploy/Trees/gallery/0/Image_24.GIF
new file mode 100644
index 0000000..6775510
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_24.GIF differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_25.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_25.jpg
new file mode 100644
index 0000000..4e6f77a
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_25.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_26.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_26.jpg
new file mode 100644
index 0000000..8a65677
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_26.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_27.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_27.jpg
new file mode 100644
index 0000000..9d458aa
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_27.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_28.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_28.jpg
new file mode 100644
index 0000000..1abba95
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_28.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_29.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_29.jpg
new file mode 100644
index 0000000..6d94ca7
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_29.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_3.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_3.jpg
new file mode 100644
index 0000000..dda97fe
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_3.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_30.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_30.jpg
new file mode 100644
index 0000000..884e61d
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_30.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_31.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_31.jpg
new file mode 100644
index 0000000..09768ea
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_31.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_32.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_32.jpg
new file mode 100644
index 0000000..8963b22
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_32.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_33.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_33.jpg
new file mode 100644
index 0000000..76a983b
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_33.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_34.JPG b/src/PaddleClas/deploy/Trees/gallery/0/Image_34.JPG
new file mode 100644
index 0000000..232a661
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_34.JPG differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_35.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_35.jpg
new file mode 100644
index 0000000..d208c15
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_35.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_36.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_36.jpg
new file mode 100644
index 0000000..02d8547
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_36.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_37.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_37.jpg
new file mode 100644
index 0000000..9003b1c
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_37.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_38.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_38.jpg
new file mode 100644
index 0000000..c842b91
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_38.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_39.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_39.jpg
new file mode 100644
index 0000000..6ca2d5c
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_39.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_4.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_4.jpg
new file mode 100644
index 0000000..b9b3795
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_4.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_40.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_40.jpg
new file mode 100644
index 0000000..517349e
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_40.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_41.JPG b/src/PaddleClas/deploy/Trees/gallery/0/Image_41.JPG
new file mode 100644
index 0000000..2b15a9a
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_41.JPG differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_42.JPG b/src/PaddleClas/deploy/Trees/gallery/0/Image_42.JPG
new file mode 100644
index 0000000..c334734
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_42.JPG differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_43.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_43.jpg
new file mode 100644
index 0000000..bd855bb
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_43.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_44.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_44.jpg
new file mode 100644
index 0000000..c0786db
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_44.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_45.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_45.jpg
new file mode 100644
index 0000000..e99329c
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_45.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_46.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_46.jpg
new file mode 100644
index 0000000..8d8e08a
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_46.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_47.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_47.jpg
new file mode 100644
index 0000000..bb4b665
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_47.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_48.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_48.jpg
new file mode 100644
index 0000000..47ea88f
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_48.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_49.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_49.jpg
new file mode 100644
index 0000000..0d7298c
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_49.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_5.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_5.jpg
new file mode 100644
index 0000000..6ccbc9c
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_5.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_50.JPG b/src/PaddleClas/deploy/Trees/gallery/0/Image_50.JPG
new file mode 100644
index 0000000..3833fdd
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_50.JPG differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_51.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_51.jpg
new file mode 100644
index 0000000..9bb379a
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_51.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_52.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_52.jpg
new file mode 100644
index 0000000..e217583
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_52.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_53.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_53.jpg
new file mode 100644
index 0000000..ea90113
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_53.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_54.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_54.jpg
new file mode 100644
index 0000000..fe4aadc
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_54.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_55.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_55.jpg
new file mode 100644
index 0000000..38dbf05
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_55.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_56.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_56.jpg
new file mode 100644
index 0000000..9d150e1
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_56.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_57.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_57.jpg
new file mode 100644
index 0000000..2adbf1d
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_57.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_58.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_58.jpg
new file mode 100644
index 0000000..14e9595
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_58.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_59.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_59.jpg
new file mode 100644
index 0000000..3165ab9
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_59.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_6.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_6.jpg
new file mode 100644
index 0000000..90d8f5b
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_6.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_60.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_60.jpg
new file mode 100644
index 0000000..b5bed40
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_60.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_61.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_61.jpg
new file mode 100644
index 0000000..49a0acb
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_61.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_62.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_62.jpg
new file mode 100644
index 0000000..ae3689c
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_62.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_63.GIF b/src/PaddleClas/deploy/Trees/gallery/0/Image_63.GIF
new file mode 100644
index 0000000..ed1d98a
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_63.GIF differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_64.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_64.jpg
new file mode 100644
index 0000000..94116a9
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_64.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_65.JPG b/src/PaddleClas/deploy/Trees/gallery/0/Image_65.JPG
new file mode 100644
index 0000000..b1ae445
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_65.JPG differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_66.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_66.jpg
new file mode 100644
index 0000000..690995d
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_66.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_67.JPG b/src/PaddleClas/deploy/Trees/gallery/0/Image_67.JPG
new file mode 100644
index 0000000..d845f5d
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_67.JPG differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_68.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_68.jpg
new file mode 100644
index 0000000..6bf3f87
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_68.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_69.png b/src/PaddleClas/deploy/Trees/gallery/0/Image_69.png
new file mode 100644
index 0000000..662fee0
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_69.png differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_7.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_7.jpg
new file mode 100644
index 0000000..3588191
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_7.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_70.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_70.jpg
new file mode 100644
index 0000000..193e3c5
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_70.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_71.GIF b/src/PaddleClas/deploy/Trees/gallery/0/Image_71.GIF
new file mode 100644
index 0000000..6ca874d
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_71.GIF differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_72.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_72.jpg
new file mode 100644
index 0000000..cc895ed
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_72.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_73.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_73.jpg
new file mode 100644
index 0000000..d2178d0
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_73.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_74.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_74.jpg
new file mode 100644
index 0000000..9bc526c
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_74.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_75.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_75.jpg
new file mode 100644
index 0000000..0822d97
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_75.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_76.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_76.jpg
new file mode 100644
index 0000000..d21e900
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_76.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_77.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_77.jpg
new file mode 100644
index 0000000..050abd8
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_77.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_78.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_78.jpg
new file mode 100644
index 0000000..213b099
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_78.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_79.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_79.jpg
new file mode 100644
index 0000000..012ba5d
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_79.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_8.JPG b/src/PaddleClas/deploy/Trees/gallery/0/Image_8.JPG
new file mode 100644
index 0000000..cecf8f8
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_8.JPG differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_80.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_80.jpg
new file mode 100644
index 0000000..a516319
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_80.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_81.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_81.jpg
new file mode 100644
index 0000000..b2fd51c
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_81.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_82.GIF b/src/PaddleClas/deploy/Trees/gallery/0/Image_82.GIF
new file mode 100644
index 0000000..63c3cc5
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_82.GIF differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_83.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_83.jpg
new file mode 100644
index 0000000..4f6dcd2
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_83.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_84.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_84.jpg
new file mode 100644
index 0000000..6d8e7c3
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_84.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_85.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_85.jpg
new file mode 100644
index 0000000..b359e03
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_85.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_86.JPG b/src/PaddleClas/deploy/Trees/gallery/0/Image_86.JPG
new file mode 100644
index 0000000..274de00
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_86.JPG differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_87.png b/src/PaddleClas/deploy/Trees/gallery/0/Image_87.png
new file mode 100644
index 0000000..bf39fe1
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_87.png differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_88.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_88.jpg
new file mode 100644
index 0000000..3a668a4
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_88.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_89.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_89.jpg
new file mode 100644
index 0000000..89b8391
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_89.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_9.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_9.jpg
new file mode 100644
index 0000000..f2a96ff
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_9.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_90.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_90.jpg
new file mode 100644
index 0000000..ea45e0f
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_90.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_91.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_91.jpg
new file mode 100644
index 0000000..cb28403
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_91.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_92.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_92.jpg
new file mode 100644
index 0000000..427143f
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_92.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_93.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_93.jpg
new file mode 100644
index 0000000..4d411b4
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_93.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_94.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_94.jpg
new file mode 100644
index 0000000..ec10770
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_94.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_95.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_95.jpg
new file mode 100644
index 0000000..f541386
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_95.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_96.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_96.jpg
new file mode 100644
index 0000000..dda97fe
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_96.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_97.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_97.jpg
new file mode 100644
index 0000000..b9b3795
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_97.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_98.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_98.jpg
new file mode 100644
index 0000000..ef34d0e
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_98.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/0/Image_99.jpg b/src/PaddleClas/deploy/Trees/gallery/0/Image_99.jpg
new file mode 100644
index 0000000..90d8f5b
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/0/Image_99.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/1/Image_2007.png b/src/PaddleClas/deploy/Trees/gallery/1/Image_2007.png
new file mode 100644
index 0000000..b2dcb5f
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/1/Image_2007.png differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/Image_2002.png b/src/PaddleClas/deploy/Trees/gallery/Image_2002.png
new file mode 100644
index 0000000..369b4b7
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/Image_2002.png differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/Image_2003.png b/src/PaddleClas/deploy/Trees/gallery/Image_2003.png
new file mode 100644
index 0000000..7b70f9e
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/Image_2003.png differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/Image_2004.png b/src/PaddleClas/deploy/Trees/gallery/Image_2004.png
new file mode 100644
index 0000000..2720a67
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/Image_2004.png differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/Image_2005.png b/src/PaddleClas/deploy/Trees/gallery/Image_2005.png
new file mode 100644
index 0000000..e92a210
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/Image_2005.png differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/Image_2006.png b/src/PaddleClas/deploy/Trees/gallery/Image_2006.png
new file mode 100644
index 0000000..bf944c4
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/gallery/Image_2006.png differ
diff --git a/src/PaddleClas/deploy/Trees/gallery/tree_list.txt b/src/PaddleClas/deploy/Trees/gallery/tree_list.txt
new file mode 100644
index 0000000..abb056f
--- /dev/null
+++ b/src/PaddleClas/deploy/Trees/gallery/tree_list.txt
@@ -0,0 +1,2261 @@
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+0/Image_2001.png tree
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
+1/Image_2007.png trees
diff --git a/src/PaddleClas/deploy/Trees/gallery/tree_list_1.txt b/src/PaddleClas/deploy/Trees/gallery/tree_list_1.txt
new file mode 100644
index 0000000..e69de29
diff --git a/src/PaddleClas/deploy/Trees/gallery/tree_list_all.txt b/src/PaddleClas/deploy/Trees/gallery/tree_list_all.txt
new file mode 100644
index 0000000..4e87ed7
--- /dev/null
+++ b/src/PaddleClas/deploy/Trees/gallery/tree_list_all.txt
@@ -0,0 +1,95 @@
+0/Image_1.jpg tree
+0/Image_10.jpg tree
+0/Image_100.jpg tree
+0/Image_11.jpg tree
+0/Image_12.jpg tree
+0/Image_13.jpg tree
+0/Image_14.jpg tree
+0/Image_15.jpg tree
+0/Image_16.jpg tree
+0/Image_17.jpg tree
+0/Image_18.jpg tree
+0/Image_19.jpg tree
+0/Image_2.jpg tree
+0/Image_21.jpg tree
+0/Image_22.jpg tree
+0/Image_23.jpg tree
+0/Image_25.jpg tree
+0/Image_26.jpg tree
+0/Image_27.jpg tree
+0/Image_28.jpg tree
+0/Image_29.jpg tree
+0/Image_3.jpg tree
+0/Image_30.jpg tree
+0/Image_31.jpg tree
+0/Image_32.jpg tree
+0/Image_33.jpg tree
+0/Image_34.JPG tree
+0/Image_35.jpg tree
+0/Image_36.jpg tree
+0/Image_37.jpg tree
+0/Image_38.jpg tree
+0/Image_39.jpg tree
+0/Image_4.jpg tree
+0/Image_40.jpg tree
+0/Image_41.JPG tree
+0/Image_42.JPG tree
+0/Image_43.jpg tree
+0/Image_44.jpg tree
+0/Image_45.jpg tree
+0/Image_46.jpg tree
+0/Image_47.jpg tree
+0/Image_48.jpg tree
+0/Image_49.jpg tree
+0/Image_5.jpg tree
+0/Image_50.JPG tree
+0/Image_51.jpg tree
+0/Image_52.jpg tree
+0/Image_53.jpg tree
+0/Image_54.jpg tree
+0/Image_55.jpg tree
+0/Image_56.jpg tree
+0/Image_57.jpg tree
+0/Image_58.jpg tree
+0/Image_59.jpg tree
+0/Image_6.jpg tree
+0/Image_60.jpg tree
+0/Image_61.jpg tree
+0/Image_62.jpg tree
+0/Image_64.jpg tree
+0/Image_65.JPG tree
+0/Image_66.jpg tree
+0/Image_67.JPG tree
+0/Image_68.jpg tree
+0/Image_69.png tree
+0/Image_7.jpg tree
+0/Image_70.jpg tree
+0/Image_72.jpg tree
+0/Image_73.jpg tree
+0/Image_74.jpg tree
+0/Image_75.jpg tree
+0/Image_76.jpg tree
+0/Image_77.jpg tree
+0/Image_78.jpg tree
+0/Image_79.jpg tree
+0/Image_8.JPG tree
+0/Image_80.jpg tree
+0/Image_81.jpg tree
+0/Image_83.jpg tree
+0/Image_84.jpg tree
+0/Image_85.jpg tree
+0/Image_86.JPG tree
+0/Image_87.png tree
+0/Image_88.jpg tree
+0/Image_89.jpg tree
+0/Image_9.jpg tree
+0/Image_90.jpg tree
+0/Image_91.jpg tree
+0/Image_92.jpg tree
+0/Image_93.jpg tree
+0/Image_94.jpg tree
+0/Image_95.jpg tree
+0/Image_96.jpg tree
+0/Image_97.jpg tree
+0/Image_98.jpg tree
+0/Image_99.jpg tree
diff --git a/src/PaddleClas/deploy/Trees/index/id_map.pkl b/src/PaddleClas/deploy/Trees/index/id_map.pkl
new file mode 100644
index 0000000..3e774b1
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/index/id_map.pkl differ
diff --git a/src/PaddleClas/deploy/Trees/index/vector.index b/src/PaddleClas/deploy/Trees/index/vector.index
new file mode 100644
index 0000000..fd1b257
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/index/vector.index differ
diff --git a/src/PaddleClas/deploy/Trees/test_images/157333-1868444027.jpg b/src/PaddleClas/deploy/Trees/test_images/157333-1868444027.jpg
new file mode 100644
index 0000000..631bdda
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/test_images/157333-1868444027.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/test_images/202103160813194077.jpg b/src/PaddleClas/deploy/Trees/test_images/202103160813194077.jpg
new file mode 100644
index 0000000..6f9cb09
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/test_images/202103160813194077.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/test_images/202103160813194078.jpg b/src/PaddleClas/deploy/Trees/test_images/202103160813194078.jpg
new file mode 100644
index 0000000..95c4b3a
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/test_images/202103160813194078.jpg differ
diff --git a/src/PaddleClas/deploy/Trees/test_images/90.jpeg b/src/PaddleClas/deploy/Trees/test_images/90.jpeg
new file mode 100644
index 0000000..f13b396
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/test_images/90.jpeg differ
diff --git a/src/PaddleClas/deploy/Trees/test_images/Image_4.png b/src/PaddleClas/deploy/Trees/test_images/Image_4.png
new file mode 100644
index 0000000..aa938ce
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/test_images/Image_4.png differ
diff --git a/src/PaddleClas/deploy/Trees/test_images/Image_5.png b/src/PaddleClas/deploy/Trees/test_images/Image_5.png
new file mode 100644
index 0000000..694bc24
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/test_images/Image_5.png differ
diff --git a/src/PaddleClas/deploy/Trees/test_images/Image_6.jpg b/src/PaddleClas/deploy/Trees/test_images/Image_6.jpg
new file mode 100644
index 0000000..90d8f5b
Binary files /dev/null and b/src/PaddleClas/deploy/Trees/test_images/Image_6.jpg differ
diff --git a/src/PaddleClas/deploy/__init__.py b/src/PaddleClas/deploy/__init__.py
new file mode 100644
index 0000000..eb018c3
--- /dev/null
+++ b/src/PaddleClas/deploy/__init__.py
@@ -0,0 +1 @@
+from . import utils
diff --git a/src/PaddleClas/deploy/configs/ShuffleNetV2_x0_25.yaml b/src/PaddleClas/deploy/configs/ShuffleNetV2_x0_25.yaml
new file mode 100644
index 0000000..1246366
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/ShuffleNetV2_x0_25.yaml
@@ -0,0 +1,129 @@
+# global configs
+Global:
+ checkpoints: null
+ pretrained_model: null
+ output_dir: ./output/
+ device: cpu
+ save_interval: 1
+ eval_during_train: True
+ eval_interval: 1
+ epochs: 20
+ print_batch_step: 10
+ use_visualdl: False
+ # used for static mode and model export
+ image_shape: [3, 224, 224]
+ save_inference_dir: ./inference
+
+# model architecture
+Arch:
+ name: ShuffleNetV2_x0_25
+ class_num: 102
+
+# loss function config for traing/eval process
+Loss:
+ Train:
+ - CELoss:
+ weight: 1.0
+ Eval:
+ - CELoss:
+ weight: 1.0
+
+
+Optimizer:
+ name: Momentum
+ momentum: 0.9
+ lr:
+ name: Cosine
+ learning_rate: 0.0125
+ warmup_epoch: 5
+ regularizer:
+ name: 'L2'
+ coeff: 0.00001
+
+
+# data loader for train and eval
+DataLoader:
+ Train:
+ dataset:
+ name: ImageNetDataset
+ image_root: ./dataset/flowers102/
+ cls_label_path: ./dataset/flowers102/train_list.txt
+ transform_ops:
+ - DecodeImage:
+ to_rgb: True
+ channel_first: False
+ - RandCropImage:
+ size: 224
+ - RandFlipImage:
+ flip_code: 1
+ - NormalizeImage:
+ scale: 1.0/255.0
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+
+ sampler:
+ name: DistributedBatchSampler
+ batch_size: 256
+ drop_last: False
+ shuffle: True
+ loader:
+ num_workers: 4
+ use_shared_memory: True
+
+ Eval:
+ dataset:
+ name: ImageNetDataset
+ image_root: ./dataset/flowers102/
+ cls_label_path: ./dataset/flowers102/val_list.txt
+ transform_ops:
+ - DecodeImage:
+ to_rgb: True
+ channel_first: False
+ - ResizeImage:
+ resize_short: 256
+ - CropImage:
+ size: 224
+ - NormalizeImage:
+ scale: 1.0/255.0
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ sampler:
+ name: DistributedBatchSampler
+ batch_size: 64
+ drop_last: False
+ shuffle: False
+ loader:
+ num_workers: 4
+ use_shared_memory: True
+
+Infer:
+ infer_imgs: docs/images/inference_deployment/whl_demo.jpg
+ batch_size: 10
+ transforms:
+ - DecodeImage:
+ to_rgb: True
+ channel_first: False
+ - ResizeImage:
+ resize_short: 256
+ - CropImage:
+ size: 224
+ - NormalizeImage:
+ scale: 1.0/255.0
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ - ToCHWImage:
+ PostProcess:
+ name: Topk
+ topk: 5
+ class_id_map_file: ./dataset/flowers102/flowers102_label_list.txt
+
+Metric:
+ Train:
+ - TopkAcc:
+ topk: [1, 5]
+ Eval:
+ - TopkAcc:
+ topk: [1, 5]
diff --git a/src/PaddleClas/deploy/configs/build_general.yaml b/src/PaddleClas/deploy/configs/build_general.yaml
new file mode 100644
index 0000000..a632c99
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/build_general.yaml
@@ -0,0 +1,36 @@
+Global:
+ rec_inference_model_dir: "./models/general_PPLCNet_x2_5_lite_v1.0_infer"
+ batch_size: 32
+ use_gpu: False
+ enable_mkldnn: True
+ cpu_num_threads: 10
+ enable_benchmark: True
+ use_fp16: False
+ ir_optim: True
+ use_tensorrt: False
+ gpu_mem: 8000
+ enable_profile: False
+
+RecPreProcess:
+ transform_ops:
+ - ResizeImage:
+ size: 224
+ - NormalizeImage:
+ scale: 0.00392157
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ - ToCHWImage:
+
+RecPostProcess: null
+
+# indexing engine config
+IndexProcess:
+ index_method: "HNSW32" # supported: HNSW32, IVF, Flat
+ image_root: "./flowers102/gallery/"
+ index_dir: "./flowers102/index"
+ data_file: "./flowers102/gallery/train_label.txt"
+ index_operation: "new" # suported: "append", "remove", "new"
+ delimiter: "\t"
+ dist_type: "IP"
+ embedding_size: 512
diff --git a/src/PaddleClas/deploy/configs/inference_cartoon.yaml b/src/PaddleClas/deploy/configs/inference_cartoon.yaml
new file mode 100644
index 0000000..7d93d98
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/inference_cartoon.yaml
@@ -0,0 +1,65 @@
+Global:
+ infer_imgs: "./recognition_demo_data_v1.1/test_cartoon"
+ det_inference_model_dir: "./models/ppyolov2_r50vd_dcn_mainbody_v1.0_infer/"
+ rec_inference_model_dir: "./models/cartoon_rec_ResNet50_iCartoon_v1.0_infer/"
+ rec_nms_thresold: 0.05
+
+ batch_size: 1
+ image_shape: [3, 640, 640]
+ threshold: 0.2
+ max_det_results: 5
+ labe_list:
+ - foreground
+
+ use_gpu: True
+ enable_mkldnn: True
+ cpu_num_threads: 10
+ enable_benchmark: True
+ use_fp16: False
+ ir_optim: True
+ use_tensorrt: False
+ gpu_mem: 8000
+ enable_profile: False
+
+DetPreProcess:
+ transform_ops:
+ - DetResize:
+ interp: 2
+ keep_ratio: false
+ target_size: [640, 640]
+ - DetNormalizeImage:
+ is_scale: true
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ - DetPermute: {}
+
+DetPostProcess: {}
+
+RecPreProcess:
+ transform_ops:
+ - ResizeImage:
+ resize_short: 256
+ - CropImage:
+ size: 224
+ - NormalizeImage:
+ scale: 0.00392157
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ - ToCHWImage:
+
+RecPostProcess: null
+
+# indexing engine config
+IndexProcess:
+ index_method: "HNSW32" # supported: HNSW32, IVF, Flat
+ index_dir: "./recognition_demo_data_v1.1/gallery_cartoon/index/"
+ image_root: "./recognition_demo_data_v1.1/gallery_cartoon/"
+ data_file: "./recognition_demo_data_v1.1/gallery_cartoon/data_file.txt"
+ index_operation: "new" # suported: "append", "remove", "new"
+ delimiter: "\t"
+ dist_type: "IP"
+ embedding_size: 2048
+ batch_size: 32
+ return_k: 5
+ score_thres: 0.5
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/configs/inference_cls.yaml b/src/PaddleClas/deploy/configs/inference_cls.yaml
new file mode 100644
index 0000000..fc0f0fe
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/inference_cls.yaml
@@ -0,0 +1,35 @@
+Global:
+ infer_imgs: "./images/ILSVRC2012_val_00000010.jpeg"
+ inference_model_dir: "./models"
+ batch_size: 1
+ use_gpu: True
+ enable_mkldnn: True
+ cpu_num_threads: 10
+ enable_benchmark: True
+ use_fp16: False
+ ir_optim: True
+ use_tensorrt: False
+ gpu_mem: 8000
+ enable_profile: False
+
+PreProcess:
+ transform_ops:
+ - ResizeImage:
+ resize_short: 256
+ - CropImage:
+ size: 224
+ - NormalizeImage:
+ scale: 0.00392157
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ channel_num: 3
+ - ToCHWImage:
+
+PostProcess:
+ main_indicator: Topk
+ Topk:
+ topk: 5
+ class_id_map_file: "../ppcls/utils/imagenet1k_label_list.txt"
+ SavePreLabel:
+ save_dir: ./pre_label/
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/configs/inference_cls_ch4.yaml b/src/PaddleClas/deploy/configs/inference_cls_ch4.yaml
new file mode 100644
index 0000000..9b740ed
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/inference_cls_ch4.yaml
@@ -0,0 +1,35 @@
+Global:
+ infer_imgs: "./images/ILSVRC2012_val_00000010.jpeg"
+ inference_model_dir: "./models"
+ batch_size: 1
+ use_gpu: True
+ enable_mkldnn: True
+ cpu_num_threads: 10
+ enable_benchmark: True
+ use_fp16: False
+ ir_optim: True
+ use_tensorrt: False
+ gpu_mem: 8000
+ enable_profile: False
+
+PreProcess:
+ transform_ops:
+ - ResizeImage:
+ resize_short: 256
+ - CropImage:
+ size: 224
+ - NormalizeImage:
+ scale: 0.00392157
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ channel_num: 4
+ - ToCHWImage:
+
+PostProcess:
+ main_indicator: Topk
+ Topk:
+ topk: 5
+ class_id_map_file: "../ppcls/utils/imagenet1k_label_list.txt"
+ SavePreLabel:
+ save_dir: ./pre_label/
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/configs/inference_cls_multilabel.yaml b/src/PaddleClas/deploy/configs/inference_cls_multilabel.yaml
new file mode 100644
index 0000000..78912d0
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/inference_cls_multilabel.yaml
@@ -0,0 +1,35 @@
+Global:
+ infer_imgs: "./images/0517_2715693311.jpg"
+ inference_model_dir: "../inference/"
+ batch_size: 1
+ use_gpu: True
+ enable_mkldnn: False
+ cpu_num_threads: 10
+ enable_benchmark: True
+ use_fp16: False
+ ir_optim: True
+ use_tensorrt: False
+ gpu_mem: 8000
+ enable_profile: False
+
+PreProcess:
+ transform_ops:
+ - ResizeImage:
+ resize_short: 256
+ - CropImage:
+ size: 224
+ - NormalizeImage:
+ scale: 0.00392157
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ channel_num: 3
+ - ToCHWImage:
+
+PostProcess:
+ main_indicator: MultiLabelTopk
+ MultiLabelTopk:
+ topk: 5
+ class_id_map_file: None
+ SavePreLabel:
+ save_dir: ./pre_label/
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/configs/inference_det.yaml b/src/PaddleClas/deploy/configs/inference_det.yaml
new file mode 100644
index 0000000..c809a02
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/inference_det.yaml
@@ -0,0 +1,34 @@
+Global:
+ infer_imgs: "./images/wangzai.jpg"
+ det_inference_model_dir: "./models/ppyolov2_r50vd_dcn_mainbody_v1.0_infer"
+ batch_size: 1
+ image_shape: [3, 640, 640]
+ threshold: 0.2
+ max_det_results: 1
+ labe_list:
+ - foreground
+
+ # inference engine config
+ use_gpu: True
+ enable_mkldnn: True
+ cpu_num_threads: 10
+ enable_benchmark: True
+ use_fp16: False
+ ir_optim: True
+ use_tensorrt: False
+ gpu_mem: 8000
+ enable_profile: False
+
+DetPreProcess:
+ transform_ops:
+ - DetResize:
+ interp: 2
+ keep_ratio: false
+ target_size: [640, 640]
+ - DetNormalizeImage:
+ is_scale: true
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ - DetPermute: {}
+
+DetPostProcess: {}
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/configs/inference_drink.yaml b/src/PaddleClas/deploy/configs/inference_drink.yaml
new file mode 100644
index 0000000..d044965
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/inference_drink.yaml
@@ -0,0 +1,63 @@
+Global:
+ infer_imgs: "./drink_dataset_v1.0/test_images/hongniu_1.jpg"
+ det_inference_model_dir: "./models/picodet_PPLCNet_x2_5_mainbody_lite_v1.0_infer"
+ rec_inference_model_dir: "./models/general_PPLCNet_x2_5_lite_v1.0_infer"
+ rec_nms_thresold: 0.05
+
+ batch_size: 1
+ image_shape: [3, 640, 640]
+ threshold: 0.2
+ max_det_results: 5
+ labe_list:
+ - foreground
+
+ use_gpu: True
+ enable_mkldnn: False
+ cpu_num_threads: 10
+ enable_benchmark: False
+ use_fp16: False
+ ir_optim: True
+ use_tensorrt: False
+ gpu_mem: 8000
+ enable_profile: False
+
+DetPreProcess:
+ transform_ops:
+ - DetResize:
+ interp: 2
+ keep_ratio: false
+ target_size: [640, 640]
+ - DetNormalizeImage:
+ is_scale: true
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ - DetPermute: {}
+
+DetPostProcess: {}
+
+RecPreProcess:
+ transform_ops:
+ - ResizeImage:
+ size: 224
+ - NormalizeImage:
+ scale: 0.00392157
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ - ToCHWImage:
+
+RecPostProcess: null
+
+# indexing engine config
+IndexProcess:
+ index_method: "HNSW32" # supported: HNSW32, IVF, Flat
+ image_root: "./drink_dataset_v1.0/gallery"
+ index_dir: "./drink_dataset_v1.0/index"
+ data_file: "./drink_dataset_v1.0/gallery/drink_label.txt"
+ index_operation: "new" # suported: "append", "remove", "new"
+ delimiter: " "
+ dist_type: "IP"
+ embedding_size: 512
+ batch_size: 32
+ return_k: 5
+ score_thres: 0.4
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/configs/inference_general.yaml b/src/PaddleClas/deploy/configs/inference_general.yaml
new file mode 100644
index 0000000..df5ab58
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/inference_general.yaml
@@ -0,0 +1,63 @@
+Global:
+ infer_imgs: "./drink_dataset_v1.0/test_images/1101.jpeg"
+ det_inference_model_dir: "./models/picodet_PPLCNet_x2_5_mainbody_lite_v1.0_infer"
+ rec_inference_model_dir: "./models/general_PPLCNet_x2_5_lite_v1.0_infer"
+ rec_nms_thresold: 0.05
+
+ batch_size: 1
+ image_shape: [3, 640, 640]
+ threshold: 0.2
+ max_det_results: 5
+ labe_list:
+ - foreground
+
+ use_gpu: True
+ enable_mkldnn: True
+ cpu_num_threads: 10
+ enable_benchmark: True
+ use_fp16: False
+ ir_optim: True
+ use_tensorrt: False
+ gpu_mem: 8000
+ enable_profile: False
+
+DetPreProcess:
+ transform_ops:
+ - DetResize:
+ interp: 2
+ keep_ratio: false
+ target_size: [640, 640]
+ - DetNormalizeImage:
+ is_scale: true
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ - DetPermute: {}
+
+DetPostProcess: {}
+
+RecPreProcess:
+ transform_ops:
+ - ResizeImage:
+ size: 224
+ - NormalizeImage:
+ scale: 0.00392157
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ - ToCHWImage:
+
+RecPostProcess: null
+
+# indexing engine config
+IndexProcess:
+ index_method: "HNSW32" # supported: HNSW32, IVF, Flat
+ image_root: "./Trees/gallery/"
+ index_dir: "./Trees/index"
+ data_file: "./Trees/gallery/tree_list.txt"
+ index_operation: "new" # suported: "append", "remove", "new"
+ delimiter: "\t"
+ dist_type: "IP"
+ embedding_size: 512
+ batch_size: 32
+ return_k: 5
+ score_thres: 0.5
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/configs/inference_general_binary.yaml b/src/PaddleClas/deploy/configs/inference_general_binary.yaml
new file mode 100644
index 0000000..d76dae8
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/inference_general_binary.yaml
@@ -0,0 +1,65 @@
+Global:
+ infer_imgs: "./drink_dataset_v1.0/test_images/001.jpeg"
+ det_inference_model_dir: "./models/picodet_PPLCNet_x2_5_mainbody_lite_v1.0_infer"
+ rec_inference_model_dir: "./models/general_PPLCNet_x2_5_lite_binary_v1.0_infer"
+ rec_nms_thresold: 0.05
+
+ batch_size: 1
+ image_shape: [3, 640, 640]
+ threshold: 0.2
+ max_det_results: 5
+ labe_list:
+ - foreground
+
+ use_gpu: True
+ enable_mkldnn: True
+ cpu_num_threads: 10
+ enable_benchmark: True
+ use_fp16: False
+ ir_optim: True
+ use_tensorrt: False
+ gpu_mem: 8000
+ enable_profile: False
+
+DetPreProcess:
+ transform_ops:
+ - DetResize:
+ interp: 2
+ keep_ratio: false
+ target_size: [640, 640]
+ - DetNormalizeImage:
+ is_scale: true
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ - DetPermute: {}
+DetPostProcess: {}
+
+RecPreProcess:
+ transform_ops:
+ - ResizeImage:
+ size: 224
+ - NormalizeImage:
+ scale: 0.00392157
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ - ToCHWImage:
+
+RecPostProcess:
+ main_indicator: Binarize
+ Binarize:
+ method: "sign"
+
+# indexing engine config
+IndexProcess:
+ index_method: "Flat" # supported: HNSW32, Flat
+ image_root: "./drink_dataset_v1.0/gallery/"
+ index_dir: "./drink_dataset_v1.0/index_bin"
+ data_file: "./drink_dataset_v1.0/gallery/drink_label.txt"
+ index_operation: "new" # suported: "append", "remove", "new"
+ delimiter: "\t"
+ dist_type: "hamming"
+ embedding_size: 512
+ batch_size: 32
+ return_k: 5
+ hamming_radius: 100
diff --git a/src/PaddleClas/deploy/configs/inference_logo.yaml b/src/PaddleClas/deploy/configs/inference_logo.yaml
new file mode 100644
index 0000000..f78ca25
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/inference_logo.yaml
@@ -0,0 +1,63 @@
+Global:
+ infer_imgs: "./recognition_demo_data_v1.1/test_logo"
+ det_inference_model_dir: "./models/ppyolov2_r50vd_dcn_mainbody_v1.0_infer/"
+ rec_inference_model_dir: "./models/logo_rec_ResNet50_Logo3K_v1.0_infer/"
+ rec_nms_thresold: 0.05
+
+ batch_size: 1
+ image_shape: [3, 640, 640]
+ threshold: 0.2
+ max_det_results: 5
+ labe_list:
+ - foreground
+
+ use_gpu: True
+ enable_mkldnn: True
+ cpu_num_threads: 10
+ enable_benchmark: True
+ use_fp16: False
+ ir_optim: True
+ use_tensorrt: False
+ gpu_mem: 8000
+ enable_profile: False
+
+DetPreProcess:
+ transform_ops:
+ - DetResize:
+ interp: 2
+ keep_ratio: false
+ target_size: [640, 640]
+ - DetNormalizeImage:
+ is_scale: true
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ - DetPermute: {}
+
+DetPostProcess: {}
+
+RecPreProcess:
+ transform_ops:
+ - ResizeImage:
+ size: 224
+ - NormalizeImage:
+ scale: 0.00392157
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ - ToCHWImage:
+
+RecPostProcess: null
+
+# indexing engine config
+IndexProcess:
+ index_method: "HNSW32" # supported: HNSW32, IVF, Flat
+ index_dir: "./recognition_demo_data_v1.1/gallery_logo/index/"
+ image_root: "./recognition_demo_data_v1.1/gallery_logo/"
+ data_file: "./recognition_demo_data_v1.1/gallery_logo/data_file.txt"
+ index_operation: "new" # suported: "append", "remove", "new"
+ delimiter: "\t"
+ dist_type: "IP"
+ embedding_size: 512
+ batch_size: 32
+ return_k: 5
+ score_thres: 0.5
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/configs/inference_product.yaml b/src/PaddleClas/deploy/configs/inference_product.yaml
new file mode 100644
index 0000000..e7b494c
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/inference_product.yaml
@@ -0,0 +1,64 @@
+Global:
+ infer_imgs: "./recognition_demo_data_v1.1/test_product/daoxiangcunjinzhubing_6.jpg"
+ det_inference_model_dir: "./models/ppyolov2_r50vd_dcn_mainbody_v1.0_infer"
+ rec_inference_model_dir: "./models/product_ResNet50_vd_aliproduct_v1.0_infer"
+ rec_nms_thresold: 0.05
+
+ batch_size: 1
+ image_shape: [3, 640, 640]
+ threshold: 0.2
+ max_det_results: 5
+ labe_list:
+ - foreground
+
+ # inference engine config
+ use_gpu: True
+ enable_mkldnn: True
+ cpu_num_threads: 10
+ enable_benchmark: True
+ use_fp16: False
+ ir_optim: True
+ use_tensorrt: False
+ gpu_mem: 8000
+ enable_profile: False
+
+DetPreProcess:
+ transform_ops:
+ - DetResize:
+ interp: 2
+ keep_ratio: false
+ target_size: [640, 640]
+ - DetNormalizeImage:
+ is_scale: true
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ - DetPermute: {}
+
+DetPostProcess: {}
+
+RecPreProcess:
+ transform_ops:
+ - ResizeImage:
+ size: 224
+ - NormalizeImage:
+ scale: 0.00392157
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ - ToCHWImage:
+
+RecPostProcess: null
+
+# indexing engine config
+IndexProcess:
+ index_method: "HNSW32" # supported: HNSW32, IVF, Flat
+ index_dir: "./recognition_demo_data_v1.1/gallery_product/index"
+ image_root: "./recognition_demo_data_v1.1/gallery_product/"
+ data_file: "./recognition_demo_data_v1.1/gallery_product/data_file.txt"
+ index_operation: "new" # suported: "append", "remove", "new"
+ delimiter: "\t"
+ dist_type: "IP"
+ embedding_size: 512
+ batch_size: 32
+ return_k: 5
+ score_thres: 0.5
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/configs/inference_rec.yaml b/src/PaddleClas/deploy/configs/inference_rec.yaml
new file mode 100644
index 0000000..e183ef0
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/inference_rec.yaml
@@ -0,0 +1,28 @@
+Global:
+ infer_imgs: "./images/wangzai.jpg"
+ rec_inference_model_dir: "./models/product_ResNet50_vd_aliproduct_v1.0_infer"
+ batch_size: 1
+ use_gpu: False
+ enable_mkldnn: True
+ cpu_num_threads: 10
+ enable_benchmark: True
+ use_fp16: False
+ ir_optim: True
+ use_tensorrt: False
+ gpu_mem: 8000
+ enable_profile: False
+
+RecPreProcess:
+ transform_ops:
+ - ResizeImage:
+ resize_short: 256
+ - CropImage:
+ size: 224
+ - NormalizeImage:
+ scale: 0.00392157
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ - ToCHWImage:
+
+RecPostProcess: null
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/configs/inference_vehicle.yaml b/src/PaddleClas/deploy/configs/inference_vehicle.yaml
new file mode 100644
index 0000000..d99f42a
--- /dev/null
+++ b/src/PaddleClas/deploy/configs/inference_vehicle.yaml
@@ -0,0 +1,63 @@
+Global:
+ infer_imgs: "./recognition_demo_data_v1.1/test_vehicle/"
+ det_inference_model_dir: "./models/ppyolov2_r50vd_dcn_mainbody_v1.0_infer/"
+ rec_inference_model_dir: "./models/vehicle_cls_ResNet50_CompCars_v1.0_infer/"
+ rec_nms_thresold: 0.05
+
+ batch_size: 1
+ image_shape: [3, 640, 640]
+ threshold: 0.2
+ max_det_results: 5
+ labe_list:
+ - foreground
+
+ use_gpu: True
+ enable_mkldnn: True
+ cpu_num_threads: 10
+ enable_benchmark: True
+ use_fp16: False
+ ir_optim: True
+ use_tensorrt: False
+ gpu_mem: 8000
+ enable_profile: False
+
+DetPreProcess:
+ transform_ops:
+ - DetResize:
+ interp: 2
+ keep_ratio: false
+ target_size: [640, 640]
+ - DetNormalizeImage:
+ is_scale: true
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ - DetPermute: {}
+
+DetPostProcess: {}
+
+RecPreProcess:
+ transform_ops:
+ - ResizeImage:
+ size: 224
+ - NormalizeImage:
+ scale: 0.00392157
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+ order: ''
+ - ToCHWImage:
+
+RecPostProcess: null
+
+# indexing engine config
+IndexProcess:
+ index_method: "HNSW32" # supported: HNSW32, IVF, Flat
+ index_dir: "./recognition_demo_data_v1.1/gallery_vehicle/index/"
+ image_root: "./recognition_demo_data_v1.1/gallery_vehicle/"
+ data_file: "./recognition_demo_data_v1.1/gallery_vehicle/data_file.txt"
+ index_operation: "new" # suported: "append", "remove", "new"
+ delimiter: "\t"
+ dist_type: "IP"
+ embedding_size: 512
+ batch_size: 32
+ return_k: 5
+ score_thres: 0.5
\ No newline at end of file
diff --git a/src/PaddleClas/deploy/cpp/CMakeLists.txt b/src/PaddleClas/deploy/cpp/CMakeLists.txt
new file mode 100644
index 0000000..74c1c72
--- /dev/null
+++ b/src/PaddleClas/deploy/cpp/CMakeLists.txt
@@ -0,0 +1,225 @@
+project(clas_system CXX C)
+cmake_minimum_required(VERSION 3.14)
+
+option(WITH_MKL "Compile demo with MKL/OpenBlas support, default use MKL." ON)
+option(WITH_GPU "Compile demo with GPU/CPU, default use CPU." OFF)
+option(WITH_STATIC_LIB "Compile demo with static/shared library, default use static." ON)
+option(WITH_TENSORRT "Compile demo with TensorRT." OFF)
+
+SET(PADDLE_LIB "" CACHE PATH "Location of libraries")
+SET(OPENCV_DIR "" CACHE PATH "Location of libraries")
+SET(CUDA_LIB "" CACHE PATH "Location of libraries")
+SET(CUDNN_LIB "" CACHE PATH "Location of libraries")
+SET(TENSORRT_DIR "" CACHE PATH "Compile demo with TensorRT")
+
+set(DEMO_NAME "clas_system")
+
+include(external-cmake/yaml-cpp.cmake)
+include_directories("${CMAKE_SOURCE_DIR}/")
+include_directories("${CMAKE_CURRENT_BINARY_DIR}/ext/yaml-cpp/src/ext-yaml-cpp/include")
+link_directories("${CMAKE_CURRENT_BINARY_DIR}/ext/yaml-cpp/lib")
+
+macro(safe_set_static_flag)
+ foreach(flag_var
+ CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
+ CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
+ if(${flag_var} MATCHES "/MD")
+ string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
+ endif(${flag_var} MATCHES "/MD")
+ endforeach(flag_var)
+endmacro()
+
+if (WITH_MKL)
+ ADD_DEFINITIONS(-DUSE_MKL)
+endif()
+
+if(NOT DEFINED PADDLE_LIB)
+ message(FATAL_ERROR "please set PADDLE_LIB with -DPADDLE_LIB=/path/paddle/lib")
+endif()
+
+if(NOT DEFINED OPENCV_DIR)
+ message(FATAL_ERROR "please set OPENCV_DIR with -DOPENCV_DIR=/path/opencv")
+endif()
+
+
+if (WIN32)
+ include_directories("${PADDLE_LIB}/paddle/fluid/inference")
+ include_directories("${PADDLE_LIB}/paddle/include")
+ link_directories("${PADDLE_LIB}/paddle/fluid/inference")
+ find_package(OpenCV REQUIRED PATHS ${OPENCV_DIR}/build/ NO_DEFAULT_PATH)
+
+else ()
+ find_package(OpenCV REQUIRED PATHS ${OPENCV_DIR}/share/OpenCV NO_DEFAULT_PATH)
+ include_directories("${PADDLE_LIB}/paddle/include")
+ link_directories("${PADDLE_LIB}/paddle/lib")
+endif ()
+include_directories(${OpenCV_INCLUDE_DIRS})
+
+if (WIN32)
+ add_definitions("/DGOOGLE_GLOG_DLL_DECL=")
+ set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /bigobj /MTd")
+ set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /bigobj /MT")
+ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj /MTd")
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /bigobj /MT")
+ if (WITH_STATIC_LIB)
+ safe_set_static_flag()
+ add_definitions(-DSTATIC_LIB)
+ endif()
+else()
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O3 -std=c++11")
+ set(CMAKE_STATIC_LIBRARY_PREFIX "")
+endif()
+message("flags" ${CMAKE_CXX_FLAGS})
+
+
+if (WITH_GPU)
+ if (NOT DEFINED CUDA_LIB OR ${CUDA_LIB} STREQUAL "")
+ message(FATAL_ERROR "please set CUDA_LIB with -DCUDA_LIB=/path/cuda-8.0/lib64")
+ endif()
+ if (NOT WIN32)
+ if (NOT DEFINED CUDNN_LIB)
+ message(FATAL_ERROR "please set CUDNN_LIB with -DCUDNN_LIB=/path/cudnn_v7.4/cuda/lib64")
+ endif()
+ endif(NOT WIN32)
+endif()
+
+include_directories("${PADDLE_LIB}/third_party/install/protobuf/include")
+include_directories("${PADDLE_LIB}/third_party/install/glog/include")
+include_directories("${PADDLE_LIB}/third_party/install/gflags/include")
+include_directories("${PADDLE_LIB}/third_party/install/xxhash/include")
+include_directories("${PADDLE_LIB}/third_party/install/zlib/include")
+include_directories("${PADDLE_LIB}/third_party/boost")
+include_directories("${PADDLE_LIB}/third_party/eigen3")
+
+include_directories("${CMAKE_SOURCE_DIR}/")
+
+if (NOT WIN32)
+ if (WITH_TENSORRT AND WITH_GPU)
+ include_directories("${TENSORRT_DIR}/include")
+ link_directories("${TENSORRT_DIR}/lib")
+ endif()
+endif(NOT WIN32)
+
+link_directories("${PADDLE_LIB}/third_party/install/zlib/lib")
+
+link_directories("${PADDLE_LIB}/third_party/install/protobuf/lib")
+link_directories("${PADDLE_LIB}/third_party/install/glog/lib")
+link_directories("${PADDLE_LIB}/third_party/install/gflags/lib")
+link_directories("${PADDLE_LIB}/third_party/install/xxhash/lib")
+link_directories("${PADDLE_LIB}/paddle/lib")
+
+
+if(WITH_MKL)
+ include_directories("${PADDLE_LIB}/third_party/install/mklml/include")
+ if (WIN32)
+ set(MATH_LIB ${PADDLE_LIB}/third_party/install/mklml/lib/mklml.lib
+ ${PADDLE_LIB}/third_party/install/mklml/lib/libiomp5md.lib)
+ else ()
+ set(MATH_LIB ${PADDLE_LIB}/third_party/install/mklml/lib/libmklml_intel${CMAKE_SHARED_LIBRARY_SUFFIX}
+ ${PADDLE_LIB}/third_party/install/mklml/lib/libiomp5${CMAKE_SHARED_LIBRARY_SUFFIX})
+ execute_process(COMMAND cp -r ${PADDLE_LIB}/third_party/install/mklml/lib/libmklml_intel${CMAKE_SHARED_LIBRARY_SUFFIX} /usr/lib)
+ endif ()
+ set(MKLDNN_PATH "${PADDLE_LIB}/third_party/install/mkldnn")
+ if(EXISTS ${MKLDNN_PATH})
+ include_directories("${MKLDNN_PATH}/include")
+ if (WIN32)
+ set(MKLDNN_LIB ${MKLDNN_PATH}/lib/mkldnn.lib)
+ else ()
+ set(MKLDNN_LIB ${MKLDNN_PATH}/lib/libmkldnn.so.0)
+ endif ()
+ endif()
+else()
+ if (WIN32)
+ set(MATH_LIB ${PADDLE_LIB}/third_party/install/openblas/lib/openblas${CMAKE_STATIC_LIBRARY_SUFFIX})
+ else ()
+ set(MATH_LIB ${PADDLE_LIB}/third_party/install/openblas/lib/libopenblas${CMAKE_STATIC_LIBRARY_SUFFIX})
+ endif ()
+endif()
+
+# Note: libpaddle_inference_api.so/a must put before libpaddle_fluid.so/a
+if(WITH_STATIC_LIB)
+ if(WIN32)
+ set(DEPS
+ ${PADDLE_LIB}/paddle/lib/paddle_inference${CMAKE_STATIC_LIBRARY_SUFFIX})
+ else()
+ set(DEPS
+ ${PADDLE_LIB}/paddle/lib/libpaddle_inference${CMAKE_STATIC_LIBRARY_SUFFIX})
+ endif()
+else()
+ if(WIN32)
+ set(DEPS
+ ${PADDLE_LIB}/paddle/lib/paddle_inference${CMAKE_SHARED_LIBRARY_SUFFIX})
+ else()
+ set(DEPS
+ ${PADDLE_LIB}/paddle/lib/libpaddle_inference${CMAKE_SHARED_LIBRARY_SUFFIX})
+ endif()
+endif(WITH_STATIC_LIB)
+
+if (NOT WIN32)
+ set(DEPS ${DEPS}
+ ${MATH_LIB} ${MKLDNN_LIB}
+ glog gflags protobuf z xxhash yaml-cpp
+ )
+ if(EXISTS "${PADDLE_LIB}/third_party/install/snappystream/lib")
+ set(DEPS ${DEPS} snappystream)
+ endif()
+ if (EXISTS "${PADDLE_LIB}/third_party/install/snappy/lib")
+ set(DEPS ${DEPS} snappy)
+ endif()
+else()
+ set(DEPS ${DEPS}
+ ${MATH_LIB} ${MKLDNN_LIB}
+ glog gflags_static libprotobuf xxhash libyaml-cppmt)
+ set(DEPS ${DEPS} libcmt shlwapi)
+ if (EXISTS "${PADDLE_LIB}/third_party/install/snappy/lib")
+ set(DEPS ${DEPS} snappy)
+ endif()
+ if(EXISTS "${PADDLE_LIB}/third_party/install/snappystream/lib")
+ set(DEPS ${DEPS} snappystream)
+ endif()
+endif(NOT WIN32)
+
+
+if(WITH_GPU)
+ if(NOT WIN32)
+ if (WITH_TENSORRT)
+ set(DEPS ${DEPS} ${TENSORRT_DIR}/lib/libnvinfer${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(DEPS ${DEPS} ${TENSORRT_DIR}/lib/libnvinfer_plugin${CMAKE_SHARED_LIBRARY_SUFFIX})
+ endif()
+ set(DEPS ${DEPS} ${CUDA_LIB}/libcudart${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(DEPS ${DEPS} ${CUDNN_LIB}/libcudnn${CMAKE_SHARED_LIBRARY_SUFFIX})
+ else()
+ set(DEPS ${DEPS} ${CUDA_LIB}/cudart${CMAKE_STATIC_LIBRARY_SUFFIX} )
+ set(DEPS ${DEPS} ${CUDA_LIB}/cublas${CMAKE_STATIC_LIBRARY_SUFFIX} )
+ set(DEPS ${DEPS} ${CUDNN_LIB}/cudnn${CMAKE_STATIC_LIBRARY_SUFFIX})
+ endif()
+endif()
+
+
+if (NOT WIN32)
+ set(EXTERNAL_LIB "-ldl -lrt -lgomp -lz -lm -lpthread")
+ set(DEPS ${DEPS} ${EXTERNAL_LIB})
+endif()
+
+set(DEPS ${DEPS} ${OpenCV_LIBS})
+
+include(FetchContent)
+include(external-cmake/auto-log.cmake)
+include_directories(${FETCHCONTENT_BASE_DIR}/extern_autolog-src)
+
+AUX_SOURCE_DIRECTORY(./src SRCS)
+add_executable(${DEMO_NAME} ${SRCS})
+ADD_DEPENDENCIES(${DEMO_NAME} ext-yaml-cpp)
+
+target_link_libraries(${DEMO_NAME} ${DEPS})
+
+if (WIN32 AND WITH_MKL)
+ add_custom_command(TARGET ${DEMO_NAME} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PADDLE_LIB}/third_party/install/mklml/lib/mklml.dll ./mklml.dll
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PADDLE_LIB}/third_party/install/mklml/lib/libiomp5md.dll ./libiomp5md.dll
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PADDLE_LIB}/third_party/install/mkldnn/lib/mkldnn.dll ./mkldnn.dll
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PADDLE_LIB}/third_party/install/mklml/lib/mklml.dll ./release/mklml.dll
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PADDLE_LIB}/third_party/install/mklml/lib/libiomp5md.dll ./release/libiomp5md.dll
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PADDLE_LIB}/third_party/install/mkldnn/lib/mkldnn.dll ./release/mkldnn.dll
+ )
+endif()
diff --git a/src/PaddleClas/deploy/cpp/docs/imgs/ILSVRC2012_val_00000666.JPEG b/src/PaddleClas/deploy/cpp/docs/imgs/ILSVRC2012_val_00000666.JPEG
new file mode 100644
index 0000000..ebb5625
Binary files /dev/null and b/src/PaddleClas/deploy/cpp/docs/imgs/ILSVRC2012_val_00000666.JPEG differ
diff --git a/src/PaddleClas/deploy/cpp/docs/imgs/cpp_infer_result.png b/src/PaddleClas/deploy/cpp/docs/imgs/cpp_infer_result.png
new file mode 100644
index 0000000..6a1adfe
Binary files /dev/null and b/src/PaddleClas/deploy/cpp/docs/imgs/cpp_infer_result.png differ
diff --git a/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step1.png b/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step1.png
new file mode 100644
index 0000000..58fdf2f
Binary files /dev/null and b/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step1.png differ
diff --git a/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step2.png b/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step2.png
new file mode 100644
index 0000000..f1b5fd0
Binary files /dev/null and b/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step2.png differ
diff --git a/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step3.png b/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step3.png
new file mode 100644
index 0000000..cb1b2ae
Binary files /dev/null and b/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step3.png differ
diff --git a/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step4.png b/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step4.png
new file mode 100644
index 0000000..5fc0408
Binary files /dev/null and b/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step4.png differ
diff --git a/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step5.png b/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step5.png
new file mode 100644
index 0000000..fbb2e4c
Binary files /dev/null and b/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step5.png differ
diff --git a/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step6.png b/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step6.png
new file mode 100644
index 0000000..86a8039
Binary files /dev/null and b/src/PaddleClas/deploy/cpp/docs/imgs/vs2019_step6.png differ
diff --git a/src/PaddleClas/deploy/cpp/docs/windows_vs2019_build.md b/src/PaddleClas/deploy/cpp/docs/windows_vs2019_build.md
new file mode 100644
index 0000000..6e2b370
--- /dev/null
+++ b/src/PaddleClas/deploy/cpp/docs/windows_vs2019_build.md
@@ -0,0 +1,119 @@
+# Visual Studio 2019 Community CMake 编译指南
+
+PaddleClas在Windows 平台下基于`Visual Studio 2019 Community` 进行了测试。微软从`Visual Studio 2017`开始即支持直接管理`CMake`跨平台编译项目,但是直到`2019`才提供了稳定和完全的支持,所以如果你想使用CMake管理项目编译构建,我们推荐使用`Visual Studio 2019`。如果您希望通过生成`sln解决方案`的方式进行编译,可以参考该文档:[https://zhuanlan.zhihu.com/p/145446681](https://zhuanlan.zhihu.com/p/145446681)。
+
+
+## 前置条件
+* Visual Studio 2019
+* CUDA 9.0 / CUDA 10.0,cudnn 7.6+ (仅在使用GPU版本的预测库时需要)
+* CMake 3.0+
+
+请确保系统已经正确安装并配置好上述基本软件,其中:
+ * 在安装`Visual Studio 2019`时,`工作负载`需要勾选`使用C++的桌面开发`;
+ * CUDA需要正确安装并设置系统环境变量;
+ * CMake需要正确安装并将路径添加到系统环境变量中。
+
+以下测试基于`Visual Studio 2019 Community`版本。
+
+**下面所有示例以工作目录为 `D:\projects`演示**。
+
+### Step1: 下载PaddlePaddle C++ 预测库 paddle_inference_install_dir
+
+PaddlePaddle C++ 预测库针对不同的`CPU`和`CUDA`版本提供了不同的预编译版本,请根据实际情况下载: [C++预测库下载列表](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/05_inference_deployment/inference/windows_cpp_inference.html)。
+
+解压后`D:\projects\paddle_inference_install_dir`目录包含内容为:
+
+```
+paddle_inference_install_dir
+├── paddle # paddle核心库和头文件
+|
+├── third_party # 第三方依赖库和头文件
+|
+└── version.txt # 版本和编译信息
+```
+
+然后需要将`Paddle预测库`的路径`D:\projects\paddle_inference_install_dir\paddle\lib`添加到系统环境变量`Path`中。
+
+### Step2: 安装配置OpenCV
+
+1. 在OpenCV官网下载适用于Windows平台的3.4.6版本, [下载地址](https://sourceforge.net/projects/opencvlibrary/files/3.4.6/opencv-3.4.6-vc14_vc15.exe/download)
+2. 运行下载的可执行文件,将OpenCV解压至指定目录,如`D:\projects\opencv`
+3. 配置环境变量,如下流程所示
+ - 此电脑(我的电脑)-> 属性 -> 高级系统设置 -> 环境变量
+ - 在系统变量中找到Path(如没有,自行创建),并双击编辑
+ - 新建,将OpenCV路径填入并保存,如 `D:\projects\opencv\build\x64\vc14\bin`
+
+### Step3: 使用Visual Studio 2019直接编译CMake
+
+1. 打开Visual Studio 2019 Community,点击 `继续但无需代码`
+
+
+
+2. 点击: `文件`->`打开`->`CMake`
+
+
+
+选择项目代码所在路径,并打开`CMakeList.txt`:
+
+
+
+3. 点击:`项目`->`cpp_inference_demo的CMake设置`
+
+
+
+4. 请设置以下参数的值
+
+
+| 名称 | 值 | 保存到 JSON |
+| ----------------------------- | ------------------ | ----------- |
+| CMAKE_BACKWARDS_COMPATIBILITY | 3.17 | [√] |
+| CMAKE_BUILD_TYPE | RelWithDebInfo | [√] |
+| CUDA_LIB | CUDA的库路径 | [√] |
+| CUDNN_LIB | CUDNN的库路径 | [√] |
+| OpenCV_DIR | OpenCV的安装路径 | [√] |
+| PADDLE_LIB | Paddle预测库的路径 | [√] |
+| WITH_GPU | [√] | [√] |
+| WITH_MKL | [√] | [√] |
+| WITH_STATIC_LIB | [√] | [√] |
+
+**注意**:
+
+1. `CMAKE_BACKWARDS_COMPATIBILITY` 的值请根据自己 `cmake` 版本设置,`cmake` 版本可以通过命令:`cmake --version` 查询;
+2. `CUDA_LIB` 、 `CUDNN_LIB` 的值仅需在使用**GPU版本**预测库时指定,其中CUDA库版本尽量对齐,**使用9.0、10.0版本,不使用9.2、10.1等版本CUDA库**;
+3. 在设置 `CUDA_LIB`、`CUDNN_LIB`、`OPENCV_DIR`、`PADDLE_LIB` 时,点击 `浏览`,分别设置相应的路径;
+ * `CUDA_LIB`和`CUDNN_LIB`:该路径取决于CUDA与CUDNN的安装位置。
+ * `OpenCV_DIR`:该路径下需要有`.cmake`文件,一般为`opencv/build/`;
+ * `PADDLE_LIB`:该路径下需要有`CMakeCache.txt`文件,一般为`paddle_inference_install_dir/`。
+4. 在使用 `CPU` 版预测库时,请不要勾选 `WITH_GPU` - `保存到 JSON`。
+
+
+
+**设置完成后**, 点击上图中 `保存并生成CMake缓存以加载变量` 。
+
+5. 点击`生成`->`全部生成`
+
+
+
+
+### Step4: 预测及可视化
+
+在完成上述操作后,`Visual Studio 2019` 编译产出的可执行文件 `clas_system.exe` 在 `out\build\x64-Release`目录下,打开`cmd`,并切换到该目录:
+
+```
+cd D:\projects\PaddleClas\deploy\cpp_infer\out\build\x64-Release
+```
+可执行文件`clas_system.exe`即为编译产出的的预测程序,其使用方法如下:
+
+```shell
+.\clas_system.exe D:\projects\PaddleClas\deploy\cpp_infer\tools\config.txt .\docs\ILSVRC2012_val_00008306.JPEG
+```
+
+上述命令中,第一个参数(`D:\projects\PaddleClas\deploy\cpp_infer\tools\config.txt`)为配置文件路径,第二个参数(`.\docs\ILSVRC2012_val_00008306.JPEG`)为需要预测的图片路径。
+
+注意,需要在配置文件中正确设置预测参数,包括所用模型文件的路径(`cls_model_path`和`cls_params_path`)。
+
+
+### 注意
+* 在Windows下的终端中执行文件exe时,可能会发生乱码的现象,此时需要在终端中输入`CHCP 65001`,将终端的编码方式由GBK编码(默认)改为UTF-8编码,更加具体的解释可以参考这篇博客:[https://blog.csdn.net/qq_35038153/article/details/78430359](https://blog.csdn.net/qq_35038153/article/details/78430359)。
+* 如果需要使用CPU预测,PaddlePaddle在Windows上仅支持avx的CPU预测,目前不支持noavx的CPU预测。
+* 在使用生成的`clas_system.exe`进行预测时,如提示`由于找不到paddle_fluid.dll,无法继续执行代码。重新安装程序可能会解决此问题`,请检查是否将Paddle预测库路径添加到系统环境变量,详见[Step1: 下载PaddlePaddle C++ 预测库 paddle_inference_install_dir](#step1-下载paddlepaddle-c-预测库-paddle_inference_install_dir)
diff --git a/src/PaddleClas/deploy/cpp/external-cmake/auto-log.cmake b/src/PaddleClas/deploy/cpp/external-cmake/auto-log.cmake
new file mode 100644
index 0000000..9be9c2f
--- /dev/null
+++ b/src/PaddleClas/deploy/cpp/external-cmake/auto-log.cmake
@@ -0,0 +1,12 @@
+find_package(Git REQUIRED)
+include(FetchContent)
+
+set(FETCHCONTENT_BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}/third-party")
+
+FetchContent_Declare(
+ extern_Autolog
+ PREFIX autolog
+ GIT_REPOSITORY https://github.com/LDOUBLEV/AutoLog.git
+ GIT_TAG main
+)
+FetchContent_MakeAvailable(extern_Autolog)
diff --git a/src/PaddleClas/deploy/cpp/external-cmake/yaml-cpp.cmake b/src/PaddleClas/deploy/cpp/external-cmake/yaml-cpp.cmake
new file mode 100644
index 0000000..7bc7f34
--- /dev/null
+++ b/src/PaddleClas/deploy/cpp/external-cmake/yaml-cpp.cmake
@@ -0,0 +1,30 @@
+
+find_package(Git REQUIRED)
+
+include(ExternalProject)
+
+message("${CMAKE_BUILD_TYPE}")
+
+ExternalProject_Add(
+ ext-yaml-cpp
+ URL https://bj.bcebos.com/paddlex/deploy/deps/yaml-cpp.zip
+ URL_MD5 9542d6de397d1fbd649ed468cb5850e6
+ CMAKE_ARGS
+ -DYAML_CPP_BUILD_TESTS=OFF
+ -DYAML_CPP_BUILD_TOOLS=OFF
+ -DYAML_CPP_INSTALL=OFF
+ -DYAML_CPP_BUILD_CONTRIB=OFF
+ -DMSVC_SHARED_RT=OFF
+ -DBUILD_SHARED_LIBS=OFF
+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+ -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
+ -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
+ -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/ext/yaml-cpp/lib
+ -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/ext/yaml-cpp/lib
+ PREFIX "${CMAKE_BINARY_DIR}/ext/yaml-cpp"
+ # Disable install step
+ INSTALL_COMMAND ""
+ LOG_DOWNLOAD ON
+ LOG_BUILD 1
+)
diff --git a/src/PaddleClas/deploy/cpp/include/cls.h b/src/PaddleClas/deploy/cpp/include/cls.h
new file mode 100644
index 0000000..8456d10
--- /dev/null
+++ b/src/PaddleClas/deploy/cpp/include/cls.h
@@ -0,0 +1,90 @@
+// Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#pragma once
+
+#include "opencv2/core.hpp"
+#include "opencv2/imgcodecs.hpp"
+#include "opencv2/imgproc.hpp"
+#include "paddle_inference_api.h"
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+
+#include "include/cls_config.h"
+#include
+
+using namespace paddle_infer;
+
+namespace PaddleClas {
+
+ class Classifier {
+ public:
+ explicit Classifier(const ClsConfig &config) {
+ this->use_gpu_ = config.use_gpu;
+ this->gpu_id_ = config.gpu_id;
+ this->gpu_mem_ = config.gpu_mem;
+ this->cpu_math_library_num_threads_ = config.cpu_threads;
+ this->use_fp16_ = config.use_fp16;
+ this->use_mkldnn_ = config.use_mkldnn;
+ this->use_tensorrt_ = config.use_tensorrt;
+ this->mean_ = config.mean;
+ this->std_ = config.std;
+ this->resize_short_size_ = config.resize_short_size;
+ this->scale_ = config.scale;
+ this->crop_size_ = config.crop_size;
+ this->ir_optim_ = config.ir_optim;
+ LoadModel(config.cls_model_path, config.cls_params_path);
+ }
+
+ // Load Paddle inference model
+ void LoadModel(const std::string &model_path, const std::string ¶ms_path);
+
+ // Run predictor
+ void Run(cv::Mat &img, std::vector &out_data, std::vector &idx,
+ std::vector ×);
+
+ private:
+ std::shared_ptr predictor_;
+
+ bool use_gpu_ = false;
+ int gpu_id_ = 0;
+ int gpu_mem_ = 4000;
+ int cpu_math_library_num_threads_ = 4;
+ bool use_mkldnn_ = false;
+ bool use_tensorrt_ = false;
+ bool use_fp16_ = false;
+ bool ir_optim_ = true;
+
+ std::vector mean_ = {0.485f, 0.456f, 0.406f};
+ std::vector std_ = {0.229f, 0.224f, 0.225f};
+ float scale_ = 0.00392157;
+
+ int resize_short_size_ = 256;
+ int crop_size_ = 224;
+
+ // pre-process
+ ResizeImg resize_op_;
+ Normalize normalize_op_;
+ Permute permute_op_;
+ CenterCropImg crop_op_;
+ };
+
+} // namespace PaddleClas
diff --git a/src/PaddleClas/deploy/cpp/include/cls_config.h b/src/PaddleClas/deploy/cpp/include/cls_config.h
new file mode 100644
index 0000000..225e728
--- /dev/null
+++ b/src/PaddleClas/deploy/cpp/include/cls_config.h
@@ -0,0 +1,133 @@
+// Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#pragma once
+
+#ifdef WIN32
+#define OS_PATH_SEP "\\"
+#else
+#define OS_PATH_SEP "/"
+#endif
+
+#include "include/utility.h"
+#include "yaml-cpp/yaml.h"
+#include
+#include
+#include