Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
s920243400
PaddleOCR
提交
37d92bea
P
PaddleOCR
项目概览
s920243400
/
PaddleOCR
与 Fork 源项目一致
Fork自
PaddlePaddle / PaddleOCR
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleOCR
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
37d92bea
编写于
10月 28, 2020
作者:
W
weishengyu
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' of
https://github.com/PaddlePaddle/PaddleOCR
into develop
上级
b60806e3
c162d4e0
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
822 addition
and
57 deletion
+822
-57
deploy/cpp_infer/include/preprocess_op.h
deploy/cpp_infer/include/preprocess_op.h
+1
-1
deploy/cpp_infer/src/ocr_cls.cpp
deploy/cpp_infer/src/ocr_cls.cpp
+1
-1
deploy/hubserving/ocr_det/module.py
deploy/hubserving/ocr_det/module.py
+11
-12
deploy/hubserving/ocr_rec/module.py
deploy/hubserving/ocr_rec/module.py
+13
-15
deploy/hubserving/ocr_system/module.py
deploy/hubserving/ocr_system/module.py
+13
-14
deploy/hubserving/readme.md
deploy/hubserving/readme.md
+0
-6
deploy/hubserving/readme_en.md
deploy/hubserving/readme_en.md
+2
-8
deploy/paddleOcrSpringBoot/mvnw
deploy/paddleOcrSpringBoot/mvnw
+310
-0
deploy/paddleOcrSpringBoot/mvnw.cmd
deploy/paddleOcrSpringBoot/mvnw.cmd
+182
-0
deploy/paddleOcrSpringBoot/paddleOcrSpringBoot.iml
deploy/paddleOcrSpringBoot/paddleOcrSpringBoot.iml
+93
-0
deploy/paddleOcrSpringBoot/pom.xml
deploy/paddleOcrSpringBoot/pom.xml
+65
-0
deploy/paddleOcrSpringBoot/readme.md
deploy/paddleOcrSpringBoot/readme.md
+37
-0
deploy/paddleOcrSpringBoot/src/main/java/com/paddelocr_springboot/demo/Controller/OCR.java
...in/java/com/paddelocr_springboot/demo/Controller/OCR.java
+61
-0
deploy/paddleOcrSpringBoot/src/main/java/com/paddelocr_springboot/demo/DemoApplication.java
...n/java/com/paddelocr_springboot/demo/DemoApplication.java
+13
-0
deploy/paddleOcrSpringBoot/src/main/resources/1.png
deploy/paddleOcrSpringBoot/src/main/resources/1.png
+0
-0
deploy/paddleOcrSpringBoot/src/main/resources/application.properties
...leOcrSpringBoot/src/main/resources/application.properties
+7
-0
deploy/paddleOcrSpringBoot/src/test/java/com/paddelocr_springboot/demo/DemoApplicationTests.java
...a/com/paddelocr_springboot/demo/DemoApplicationTests.java
+13
-0
未找到文件。
deploy/cpp_infer/include/preprocess_op.h
浏览文件 @
37d92bea
...
...
@@ -59,7 +59,7 @@ public:
class
ClsResizeImg
{
public:
virtual
void
Run
(
const
cv
::
Mat
&
img
,
cv
::
Mat
&
resize_img
,
const
std
::
vector
<
int
>
&
rec_image_shape
=
{
3
,
32
,
320
});
const
std
::
vector
<
int
>
&
rec_image_shape
=
{
3
,
48
,
192
});
};
}
// namespace PaddleOCR
\ No newline at end of file
deploy/cpp_infer/src/ocr_cls.cpp
浏览文件 @
37d92bea
...
...
@@ -21,7 +21,7 @@ cv::Mat Classifier::Run(cv::Mat &img) {
img
.
copyTo
(
src_img
);
cv
::
Mat
resize_img
;
std
::
vector
<
int
>
rec_image_shape
=
{
3
,
32
,
100
};
std
::
vector
<
int
>
rec_image_shape
=
{
3
,
48
,
192
};
int
index
=
0
;
float
wh_ratio
=
float
(
img
.
cols
)
/
float
(
img
.
rows
);
...
...
deploy/hubserving/ocr_det/module.py
浏览文件 @
37d92bea
...
...
@@ -3,11 +3,14 @@ from __future__ import absolute_import
from
__future__
import
division
from
__future__
import
print_function
import
os
import
sys
sys
.
path
.
insert
(
0
,
"."
)
import
argparse
import
ast
import
copy
import
math
import
os
import
time
from
paddle.fluid.core
import
AnalysisConfig
,
create_paddle_predictor
,
PaddleTensor
...
...
@@ -67,9 +70,7 @@ class OCRDet(hub.Module):
images
.
append
(
img
)
return
images
def
predict
(
self
,
images
=
[],
paths
=
[]):
def
predict
(
self
,
images
=
[],
paths
=
[]):
"""
Get the text box in the predicted images.
Args:
...
...
@@ -87,7 +88,7 @@ class OCRDet(hub.Module):
raise
TypeError
(
"The input data is inconsistent with expectations."
)
assert
predicted_data
!=
[],
"There is not any image to be predicted. Please check the input data."
all_results
=
[]
for
img
in
predicted_data
:
if
img
is
None
:
...
...
@@ -99,11 +100,9 @@ class OCRDet(hub.Module):
rec_res_final
=
[]
for
dno
in
range
(
len
(
dt_boxes
)):
rec_res_final
.
append
(
{
'text_region'
:
dt_boxes
[
dno
].
astype
(
np
.
int
).
tolist
()
}
)
rec_res_final
.
append
({
'text_region'
:
dt_boxes
[
dno
].
astype
(
np
.
int
).
tolist
()
})
all_results
.
append
(
rec_res_final
)
return
all_results
...
...
@@ -116,7 +115,7 @@ class OCRDet(hub.Module):
results
=
self
.
predict
(
images_decode
,
**
kwargs
)
return
results
if
__name__
==
'__main__'
:
ocr
=
OCRDet
()
image_path
=
[
...
...
@@ -124,4 +123,4 @@ if __name__ == '__main__':
'./doc/imgs/12.jpg'
,
]
res
=
ocr
.
predict
(
paths
=
image_path
)
print
(
res
)
\ No newline at end of file
print
(
res
)
deploy/hubserving/ocr_rec/module.py
浏览文件 @
37d92bea
...
...
@@ -3,11 +3,14 @@ from __future__ import absolute_import
from
__future__
import
division
from
__future__
import
print_function
import
os
import
sys
sys
.
path
.
insert
(
0
,
"."
)
import
argparse
import
ast
import
copy
import
math
import
os
import
time
from
paddle.fluid.core
import
AnalysisConfig
,
create_paddle_predictor
,
PaddleTensor
...
...
@@ -67,9 +70,7 @@ class OCRRec(hub.Module):
images
.
append
(
img
)
return
images
def
predict
(
self
,
images
=
[],
paths
=
[]):
def
predict
(
self
,
images
=
[],
paths
=
[]):
"""
Get the text box in the predicted images.
Args:
...
...
@@ -87,31 +88,28 @@ class OCRRec(hub.Module):
raise
TypeError
(
"The input data is inconsistent with expectations."
)
assert
predicted_data
!=
[],
"There is not any image to be predicted. Please check the input data."
img_list
=
[]
for
img
in
predicted_data
:
if
img
is
None
:
continue
img_list
.
append
(
img
)
rec_res_final
=
[]
try
:
rec_res
,
predict_time
=
self
.
text_recognizer
(
img_list
)
for
dno
in
range
(
len
(
rec_res
)):
text
,
score
=
rec_res
[
dno
]
rec_res_final
.
append
(
{
'text'
:
text
,
'confidence'
:
float
(
score
),
}
)
rec_res_final
.
append
({
'text'
:
text
,
'confidence'
:
float
(
score
),
})
except
Exception
as
e
:
print
(
e
)
return
[[]]
return
[
rec_res_final
]
@
serving
def
serving_method
(
self
,
images
,
**
kwargs
):
"""
...
...
@@ -121,7 +119,7 @@ class OCRRec(hub.Module):
results
=
self
.
predict
(
images_decode
,
**
kwargs
)
return
results
if
__name__
==
'__main__'
:
ocr
=
OCRRec
()
image_path
=
[
...
...
@@ -130,4 +128,4 @@ if __name__ == '__main__':
'./doc/imgs_words/ch/word_3.jpg'
,
]
res
=
ocr
.
predict
(
paths
=
image_path
)
print
(
res
)
\ No newline at end of file
print
(
res
)
deploy/hubserving/ocr_system/module.py
浏览文件 @
37d92bea
...
...
@@ -3,11 +3,14 @@ from __future__ import absolute_import
from
__future__
import
division
from
__future__
import
print_function
import
os
import
sys
sys
.
path
.
insert
(
0
,
"."
)
import
argparse
import
ast
import
copy
import
math
import
os
import
time
from
paddle.fluid.core
import
AnalysisConfig
,
create_paddle_predictor
,
PaddleTensor
...
...
@@ -52,7 +55,7 @@ class OCRSystem(hub.Module):
)
cfg
.
ir_optim
=
True
cfg
.
enable_mkldnn
=
enable_mkldnn
self
.
text_sys
=
TextSystem
(
cfg
)
def
read_images
(
self
,
paths
=
[]):
...
...
@@ -67,9 +70,7 @@ class OCRSystem(hub.Module):
images
.
append
(
img
)
return
images
def
predict
(
self
,
images
=
[],
paths
=
[]):
def
predict
(
self
,
images
=
[],
paths
=
[]):
"""
Get the chinese texts in the predicted images.
Args:
...
...
@@ -104,13 +105,11 @@ class OCRSystem(hub.Module):
for
dno
in
range
(
dt_num
):
text
,
score
=
rec_res
[
dno
]
rec_res_final
.
append
(
{
'text'
:
text
,
'confidence'
:
float
(
score
),
'text_region'
:
dt_boxes
[
dno
].
astype
(
np
.
int
).
tolist
()
}
)
rec_res_final
.
append
({
'text'
:
text
,
'confidence'
:
float
(
score
),
'text_region'
:
dt_boxes
[
dno
].
astype
(
np
.
int
).
tolist
()
})
all_results
.
append
(
rec_res_final
)
return
all_results
...
...
@@ -123,7 +122,7 @@ class OCRSystem(hub.Module):
results
=
self
.
predict
(
images_decode
,
**
kwargs
)
return
results
if
__name__
==
'__main__'
:
ocr
=
OCRSystem
()
image_path
=
[
...
...
@@ -131,4 +130,4 @@ if __name__ == '__main__':
'./doc/imgs/12.jpg'
,
]
res
=
ocr
.
predict
(
paths
=
image_path
)
print
(
res
)
\ No newline at end of file
print
(
res
)
deploy/hubserving/readme.md
浏览文件 @
37d92bea
...
...
@@ -29,12 +29,6 @@ deploy/hubserving/ocr_system/
```
shell
# 安装paddlehub
pip3
install
paddlehub
--upgrade
-i
https://pypi.tuna.tsinghua.edu.cn/simple
# 在Linux下设置环境变量
export
PYTHONPATH
=
.
# 或者,在Windows下设置环境变量
SET
PYTHONPATH
=
.
```
### 2. 下载推理模型
...
...
deploy/hubserving/readme_en.md
浏览文件 @
37d92bea
English |
[
简体中文
](
readme.md
)
PaddleOCR provides 2 service deployment methods:
-
Based on
**PaddleHub Serving**
: Code path is "
`./deploy/hubserving`
". Please follow this tutorial.
PaddleOCR provides 2 service deployment methods:
-
Based on
**PaddleHub Serving**
: Code path is "
`./deploy/hubserving`
". Please follow this tutorial.
-
Based on
**PaddleServing**
: Code path is "
`./deploy/pdserving`
". Please refer to the
[
tutorial
](
../../doc/doc_ch/serving_inference.md
)
for usage.
# Service deployment based on PaddleHub Serving
...
...
@@ -30,12 +30,6 @@ The following steps take the 2-stage series service as an example. If only the d
```
shell
# Install paddlehub
pip3
install
paddlehub
--upgrade
-i
https://pypi.tuna.tsinghua.edu.cn/simple
# Set environment variables on Linux
export
PYTHONPATH
=
.
# Set environment variables on Windows
SET
PYTHONPATH
=
.
```
### 2. Download inference model
...
...
deploy/paddleOcrSpringBoot/mvnw
0 → 100644
浏览文件 @
37d92bea
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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
#
# https://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.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if
[
-z
"
$MAVEN_SKIP_RC
"
]
;
then
if
[
-f
/etc/mavenrc
]
;
then
.
/etc/mavenrc
fi
if
[
-f
"
$HOME
/.mavenrc"
]
;
then
.
"
$HOME
/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin
=
false
;
darwin
=
false
;
mingw
=
false
case
"
`
uname
`
"
in
CYGWIN
*
)
cygwin
=
true
;;
MINGW
*
)
mingw
=
true
;;
Darwin
*
)
darwin
=
true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if
[
-z
"
$JAVA_HOME
"
]
;
then
if
[
-x
"/usr/libexec/java_home"
]
;
then
export
JAVA_HOME
=
"
`
/usr/libexec/java_home
`
"
else
export
JAVA_HOME
=
"/Library/Java/Home"
fi
fi
;;
esac
if
[
-z
"
$JAVA_HOME
"
]
;
then
if
[
-r
/etc/gentoo-release
]
;
then
JAVA_HOME
=
`
java-config
--jre-home
`
fi
fi
if
[
-z
"
$M2_HOME
"
]
;
then
## resolve links - $0 may be a link to maven's home
PRG
=
"
$0
"
# need this for relative symlinks
while
[
-h
"
$PRG
"
]
;
do
ls
=
`
ls
-ld
"
$PRG
"
`
link
=
`
expr
"
$ls
"
:
'.*-> \(.*\)$'
`
if
expr
"
$link
"
:
'/.*'
>
/dev/null
;
then
PRG
=
"
$link
"
else
PRG
=
"
`
dirname
"
$PRG
"
`
/
$link
"
fi
done
saveddir
=
`
pwd
`
M2_HOME
=
`
dirname
"
$PRG
"
`
/..
# make it fully qualified
M2_HOME
=
`
cd
"
$M2_HOME
"
&&
pwd
`
cd
"
$saveddir
"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if
$cygwin
;
then
[
-n
"
$M2_HOME
"
]
&&
M2_HOME
=
`
cygpath
--unix
"
$M2_HOME
"
`
[
-n
"
$JAVA_HOME
"
]
&&
JAVA_HOME
=
`
cygpath
--unix
"
$JAVA_HOME
"
`
[
-n
"
$CLASSPATH
"
]
&&
CLASSPATH
=
`
cygpath
--path
--unix
"
$CLASSPATH
"
`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if
$mingw
;
then
[
-n
"
$M2_HOME
"
]
&&
M2_HOME
=
"
`
(
cd
"
$M2_HOME
"
;
pwd
)
`
"
[
-n
"
$JAVA_HOME
"
]
&&
JAVA_HOME
=
"
`
(
cd
"
$JAVA_HOME
"
;
pwd
)
`
"
fi
if
[
-z
"
$JAVA_HOME
"
]
;
then
javaExecutable
=
"
`
which javac
`
"
if
[
-n
"
$javaExecutable
"
]
&&
!
[
"
`
expr
\"
$javaExecutable
\"
:
'\([^ ]*\)'
`
"
=
"no"
]
;
then
# readlink(1) is not available as standard on Solaris 10.
readLink
=
`
which
readlink
`
if
[
!
`
expr
"
$readLink
"
:
'\([^ ]*\)'
`
=
"no"
]
;
then
if
$darwin
;
then
javaHome
=
"
`
dirname
\"
$javaExecutable
\"
`
"
javaExecutable
=
"
`
cd
\"
$javaHome
\"
&&
pwd
-P
`
/javac"
else
javaExecutable
=
"
`
readlink
-f
\"
$javaExecutable
\"
`
"
fi
javaHome
=
"
`
dirname
\"
$javaExecutable
\"
`
"
javaHome
=
`
expr
"
$javaHome
"
:
'\(.*\)/bin'
`
JAVA_HOME
=
"
$javaHome
"
export
JAVA_HOME
fi
fi
fi
if
[
-z
"
$JAVACMD
"
]
;
then
if
[
-n
"
$JAVA_HOME
"
]
;
then
if
[
-x
"
$JAVA_HOME
/jre/sh/java"
]
;
then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD
=
"
$JAVA_HOME
/jre/sh/java"
else
JAVACMD
=
"
$JAVA_HOME
/bin/java"
fi
else
JAVACMD
=
"
`
which java
`
"
fi
fi
if
[
!
-x
"
$JAVACMD
"
]
;
then
echo
"Error: JAVA_HOME is not defined correctly."
>
&2
echo
" We cannot execute
$JAVACMD
"
>
&2
exit
1
fi
if
[
-z
"
$JAVA_HOME
"
]
;
then
echo
"Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER
=
org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir
()
{
if
[
-z
"
$1
"
]
then
echo
"Path not specified to find_maven_basedir"
return
1
fi
basedir
=
"
$1
"
wdir
=
"
$1
"
while
[
"
$wdir
"
!=
'/'
]
;
do
if
[
-d
"
$wdir
"
/.mvn
]
;
then
basedir
=
$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if
[
-d
"
${
wdir
}
"
]
;
then
wdir
=
`
cd
"
$wdir
/.."
;
pwd
`
fi
# end of workaround
done
echo
"
${
basedir
}
"
}
# concatenates all lines of a file
concat_lines
()
{
if
[
-f
"
$1
"
]
;
then
echo
"
$(
tr
-s
'\n'
' '
<
"
$1
"
)
"
fi
}
BASE_DIR
=
`
find_maven_basedir
"
$(
pwd
)
"
`
if
[
-z
"
$BASE_DIR
"
]
;
then
exit
1
;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if
[
-r
"
$BASE_DIR
/.mvn/wrapper/maven-wrapper.jar"
]
;
then
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
"Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
"Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if
[
-n
"
$MVNW_REPOURL
"
]
;
then
jarUrl
=
"
$MVNW_REPOURL
/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
else
jarUrl
=
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
fi
while
IFS
=
"="
read
key value
;
do
case
"
$key
"
in
(
wrapperUrl
)
jarUrl
=
"
$value
"
;
break
;;
esac
done
<
"
$BASE_DIR
/.mvn/wrapper/maven-wrapper.properties"
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
"Downloading from:
$jarUrl
"
fi
wrapperJarPath
=
"
$BASE_DIR
/.mvn/wrapper/maven-wrapper.jar"
if
$cygwin
;
then
wrapperJarPath
=
`
cygpath
--path
--windows
"
$wrapperJarPath
"
`
fi
if
command
-v
wget
>
/dev/null
;
then
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
"Found wget ... using wget"
fi
if
[
-z
"
$MVNW_USERNAME
"
]
||
[
-z
"
$MVNW_PASSWORD
"
]
;
then
wget
"
$jarUrl
"
-O
"
$wrapperJarPath
"
else
wget
--http-user
=
$MVNW_USERNAME
--http-password
=
$MVNW_PASSWORD
"
$jarUrl
"
-O
"
$wrapperJarPath
"
fi
elif
command
-v
curl
>
/dev/null
;
then
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
"Found curl ... using curl"
fi
if
[
-z
"
$MVNW_USERNAME
"
]
||
[
-z
"
$MVNW_PASSWORD
"
]
;
then
curl
-o
"
$wrapperJarPath
"
"
$jarUrl
"
-f
else
curl
--user
$MVNW_USERNAME
:
$MVNW_PASSWORD
-o
"
$wrapperJarPath
"
"
$jarUrl
"
-f
fi
else
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
"Falling back to using Java to download"
fi
javaClass
=
"
$BASE_DIR
/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if
$cygwin
;
then
javaClass
=
`
cygpath
--path
--windows
"
$javaClass
"
`
fi
if
[
-e
"
$javaClass
"
]
;
then
if
[
!
-e
"
$BASE_DIR
/.mvn/wrapper/MavenWrapperDownloader.class"
]
;
then
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
" - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
(
"
$JAVA_HOME
/bin/javac"
"
$javaClass
"
)
fi
if
[
-e
"
$BASE_DIR
/.mvn/wrapper/MavenWrapperDownloader.class"
]
;
then
# Running the downloader
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
" - Running MavenWrapperDownloader.java ..."
fi
(
"
$JAVA_HOME
/bin/java"
-cp
.mvn/wrapper MavenWrapperDownloader
"
$MAVEN_PROJECTBASEDIR
"
)
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export
MAVEN_PROJECTBASEDIR
=
${
MAVEN_BASEDIR
:-
"
$BASE_DIR
"
}
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
$MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS
=
"
$(
concat_lines
"
$MAVEN_PROJECTBASEDIR
/.mvn/jvm.config"
)
$MAVEN_OPTS
"
# For Cygwin, switch paths to Windows format before running java
if
$cygwin
;
then
[
-n
"
$M2_HOME
"
]
&&
M2_HOME
=
`
cygpath
--path
--windows
"
$M2_HOME
"
`
[
-n
"
$JAVA_HOME
"
]
&&
JAVA_HOME
=
`
cygpath
--path
--windows
"
$JAVA_HOME
"
`
[
-n
"
$CLASSPATH
"
]
&&
CLASSPATH
=
`
cygpath
--path
--windows
"
$CLASSPATH
"
`
[
-n
"
$MAVEN_PROJECTBASEDIR
"
]
&&
MAVEN_PROJECTBASEDIR
=
`
cygpath
--path
--windows
"
$MAVEN_PROJECTBASEDIR
"
`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS
=
"
$MAVEN_CONFIG
$@
"
export
MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER
=
org.apache.maven.wrapper.MavenWrapperMain
exec
"
$JAVACMD
"
\
$MAVEN_OPTS
\
-classpath
"
$MAVEN_PROJECTBASEDIR
/.mvn/wrapper/maven-wrapper.jar"
\
"-Dmaven.home=
${
M2_HOME
}
"
"-Dmaven.multiModuleProjectDirectory=
${
MAVEN_PROJECTBASEDIR
}
"
\
${
WRAPPER_LAUNCHER
}
$MAVEN_CONFIG
"
$@
"
deploy/paddleOcrSpringBoot/mvnw.cmd
0 → 100644
浏览文件 @
37d92bea
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo
off
@REM set title of command window
title
%
0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if
"
%MAVEN_BATCH_ECHO%
"
==
"on"
echo
%MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if
"
%HOME%
"
==
""
(
set
"HOME=
%HOMEDRIVE%%
HOMEPATH
%
"
)
@REM Execute a user defined script before this one
if
not
"
%MAVEN_SKIP_RC%
"
==
""
goto
skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if
exist
"
%HOME%
\mavenrc_pre.bat"
call
"
%HOME%
\mavenrc_pre.bat"
if
exist
"
%HOME%
\mavenrc_pre.cmd"
call
"
%HOME%
\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set
ERROR_CODE
=
0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if
not
"
%JAVA_HOME%
"
==
""
goto
OkJHome
echo
.
echo
Error
:
JAVA_HOME
not
found
in
your
environment
.
>&
2
echo
Please
set
the
JAVA_HOME
variable
in
your
environment
to
match
the
>&
2
echo
location
of
your
Java
installation
.
>&
2
echo
.
goto
error
:OkJHome
if
exist
"
%JAVA_HOME%
\bin\java.exe"
goto
init
echo
.
echo
Error
:
JAVA_HOME
is
set
to
an
invalid
directory
.
>&
2
echo
JAVA_HOME
=
"
%JAVA_HOME%
"
>&
2
echo
Please
set
the
JAVA_HOME
variable
in
your
environment
to
match
the
>&
2
echo
location
of
your
Java
installation
.
>&
2
echo
.
goto
error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set
MAVEN_PROJECTBASEDIR
=
%MAVEN_BASEDIR%
IF
NOT
"
%MAVEN_PROJECTBASEDIR%
"
==
""
goto
endDetectBaseDir
set
EXEC_DIR
=
%CD%
set
WDIR
=
%EXEC_DIR%
:findBaseDir
IF
EXIST
"
%WDIR%
"
\.mvn
goto
baseDirFound
cd
..
IF
"
%WDIR%
"
==
"
%CD%
"
goto
baseDirNotFound
set
WDIR
=
%CD%
goto
findBaseDir
:baseDirFound
set
MAVEN_PROJECTBASEDIR
=
%WDIR%
cd
"
%EXEC_DIR%
"
goto
endDetectBaseDir
:baseDirNotFound
set
MAVEN_PROJECTBASEDIR
=
%EXEC_DIR%
cd
"
%EXEC_DIR%
"
:endDetectBaseDir
IF
NOT
EXIST
"
%MAVEN_PROJECTBASEDIR%
\.mvn\jvm.config"
goto
endReadAdditionalConfig
@setlocal
EnableExtensions
EnableDelayedExpansion
for
/F
"usebackq delims="
%%a
in
(
"
%MAVEN_PROJECTBASEDIR%
\.mvn\jvm.config"
)
do
set
JVM_CONFIG_MAVEN_PROPS
=
!JVM_CONFIG_MAVEN_PROPS!
%%a
@endlocal
&
set
JVM_CONFIG_MAVEN_PROPS
=
%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET
MAVEN_JAVA_EXE
=
"
%JAVA_HOME%
\bin\java.exe"
set
WRAPPER_JAR
=
"
%MAVEN_PROJECTBASEDIR%
\.mvn\wrapper\maven-wrapper.jar"
set
WRAPPER_LAUNCHER
=
org
.apache.maven.wrapper.MavenWrapperMain
set
DOWNLOAD_URL
=
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
FOR
/F
"tokens=1,2 delims=="
%%A
IN
(
"
%MAVEN_PROJECTBASEDIR%
\.mvn\wrapper\maven-wrapper.properties"
)
DO
(
IF
"
%%A
"
==
"wrapperUrl"
SET
DOWNLOAD_URL
=
%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if
exist
%WRAPPER_JAR%
(
if
"
%MVNW_VERBOSE%
"
==
"true"
(
echo
Found
%WRAPPER_JAR%
)
)
else
(
if
not
"
%MVNW_REPOURL%
"
==
""
(
SET
DOWNLOAD_URL
=
"
%MVNW_REPOURL%
/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
)
if
"
%MVNW_VERBOSE%
"
==
"true"
(
echo
Couldn
't find
%WRAPPER_JAR%
, downloading it ...
echo Downloading from:
%DOWNLOAD_URL%
)
powershell -Command "&{"
^
"$webclient = new-object System.Net.WebClient;"
^
"if (-not ([string]::IsNullOrEmpty('
%MVNW_USERNAME%
') -and [string]::IsNullOrEmpty('
%MVNW_PASSWORD%
'))) {"
^
"$webclient.Credentials = new-object System.Net.NetworkCredential('
%MVNW_USERNAME%
', '
%MVNW_PASSWORD%
');"
^
"}"
^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('
%DOWNLOAD_URL%
', '
%WRAPPER_JAR%
')"
^
"}"
if "
%MVNW_VERBOSE%
" == "true" (
echo Finished downloading
%WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=
%
*
%MAVEN_JAVA_EXE%
%JVM_CONFIG_MAVEN_PROPS%
%MAVEN_OPTS%
%MAVEN_DEBUG_OPTS%
-classpath
%WRAPPER_JAR%
"-Dmaven.multiModuleProjectDirectory=
%MAVEN_PROJECTBASEDIR%
"
%WRAPPER_LAUNCHER%
%MAVEN_CONFIG%
%
*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=
%ERROR_CODE%
if not "
%MAVEN_SKIP_RC%
" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "
%HOME%
\mavenrc_post.bat" call "
%HOME%
\mavenrc_post.bat"
if exist "
%HOME%
\mavenrc_post.cmd" call "
%HOME%
\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to '
on
'
if "
%MAVEN_BATCH_PAUSE%
" == "on" pause
if "
%MAVEN_TERMINATE_CMD%
" == "on" exit
%ERROR_CODE%
exit /B
%ERROR_CODE%
deploy/paddleOcrSpringBoot/paddleOcrSpringBoot.iml
0 → 100644
浏览文件 @
37d92bea
<?xml version="1.0" encoding="UTF-8"?>
<module
org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule=
"true"
type=
"JAVA_MODULE"
version=
"4"
>
<component
name=
"FacetManager"
>
<facet
type=
"Spring"
name=
"Spring"
>
<configuration
/>
</facet>
<facet
type=
"web"
name=
"Web"
>
<configuration>
<webroots
/>
<sourceRoots>
<root
url=
"file://$MODULE_DIR$/src/main/java"
/>
<root
url=
"file://$MODULE_DIR$/src/main/resources"
/>
</sourceRoots>
</configuration>
</facet>
</component>
<component
name=
"NewModuleRootManager"
LANGUAGE_LEVEL=
"JDK_1_8"
>
<output
url=
"file://$MODULE_DIR$/target/classes"
/>
<output-test
url=
"file://$MODULE_DIR$/target/test-classes"
/>
<content
url=
"file://$MODULE_DIR$"
>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/resources"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/java"
isTestSource=
"true"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/target"
/>
</content>
<orderEntry
type=
"jdk"
jdkName=
"1.8"
jdkType=
"JavaSDK"
/>
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-web:2.3.4.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter:2.3.4.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot:2.3.4.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.4.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-logging:2.3.4.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-classic:1.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-core:1.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-api:2.13.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:jul-to-slf4j:1.7.30"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.annotation:jakarta.annotation-api:1.3.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.yaml:snakeyaml:1.26"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-json:2.3.4.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-databind:2.11.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-core:2.11.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-tomcat:2.3.4.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.38"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.glassfish:jakarta.el:3.0.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.38"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-web:5.2.9.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-beans:5.2.9.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-webmvc:5.2.9.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-aop:5.2.9.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context:5.2.9.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-expression:5.2.9.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.springframework.boot:spring-boot-starter-test:2.3.4.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.springframework.boot:spring-boot-test:2.3.4.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.4.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: com.jayway.jsonpath:json-path:2.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: net.minidev:json-smart:2.3"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: net.minidev:accessors-smart:1.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.ow2.asm:asm:5.0.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:slf4j-api:1.7.30"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: jakarta.activation:jakarta.activation-api:1.2.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.assertj:assertj-core:3.16.1"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.hamcrest:hamcrest:2.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.junit.jupiter:junit-jupiter:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.junit.jupiter:junit-jupiter-api:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.apiguardian:apiguardian-api:1.1.0"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.opentest4j:opentest4j:1.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.junit.platform:junit-platform-commons:1.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.junit.jupiter:junit-jupiter-params:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.junit.jupiter:junit-jupiter-engine:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.junit.platform:junit-platform-engine:1.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.mockito:mockito-core:3.3.3"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: net.bytebuddy:byte-buddy:1.10.14"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: net.bytebuddy:byte-buddy-agent:1.10.14"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.objenesis:objenesis:2.6"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.mockito:mockito-junit-jupiter:3.3.3"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.skyscreamer:jsonassert:1.5.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-core:5.2.9.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-jcl:5.2.9.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.springframework:spring-test:5.2.9.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.xmlunit:xmlunit-core:2.7.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.httpcomponents:httpclient:4.5.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.httpcomponents:httpcore:4.4.13"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-codec:commons-codec:1.14"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.google.code.gson:gson:2.8.6"
level=
"project"
/>
</component>
</module>
\ No newline at end of file
deploy/paddleOcrSpringBoot/pom.xml
0 → 100644
浏览文件 @
37d92bea
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.3.4.RELEASE
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>
com.paddelOcr_springBoot
</groupId>
<artifactId>
demo
</artifactId>
<version>
0.0.1-SNAPSHOT
</version>
<name>
demo
</name>
<description>
Demo project for Spring Boot
</description>
<properties>
<java.version>
1.8
</java.version>
</properties>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
<exclusions>
<exclusion>
<groupId>
org.junit.vintage
</groupId>
<artifactId>
junit-vintage-engine
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<!--引入RestTemplate-->
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpclient
</artifactId>
</dependency>
<dependency>
<groupId>
com.vaadin.external.google
</groupId>
<artifactId>
android-json
</artifactId>
<version>
0.0.20131108.vaadin1
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
com.google.code.gson
</groupId>
<artifactId>
gson
</artifactId>
<version>
2.8.6
</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
</plugins>
</build>
</project>
deploy/paddleOcrSpringBoot/readme.md
0 → 100644
浏览文件 @
37d92bea
简体中文
-
使用本教程前请先基于PaddleHub Serving的部署.
# 基于PaddleHub Serving的Java SpringBoot调用
paddleOcrSpringBoot服务部署目录下包括全部SpringBoot代码。目录结构如下:
```
deploy/paddleOcrSpringBoot/
└─ src 代码文件
└─ main 主函数代码
└─ java\com\paddelocr_springboot\demo
└─ DemoApplication.java SpringBoot启动代码
└─ Controller
└─ OCR.java 控制器代码
└─ test 测试代码
```
-
Hub Serving启动后的APi端口如下:
`http://[ip_address]:[port]/predict/[module_name]`
## 返回结果格式说明
返回结果为列表(list),列表中的每一项为词典(dict),词典一共可能包含3种字段,信息如下:
|字段名称|数据类型|意义|
|-|-|-|
|text|str|文本内容|
|confidence|float| 文本识别置信度|
|text_region|list|文本位置坐标|
不同模块返回的字段不同,如,文本识别服务模块返回结果不含
`text_region`
字段,具体信息如下:
|字段名/模块名|ocr_det|ocr_rec|ocr_system|
|-|-|-|-|
|text||✔|✔|
|confidence||✔|✔|
|text_region|✔||✔|
\ No newline at end of file
deploy/paddleOcrSpringBoot/src/main/java/com/paddelocr_springboot/demo/Controller/OCR.java
0 → 100644
浏览文件 @
37d92bea
package
com.paddelocr_springboot.demo.Controller
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
com.google.gson.Gson
;
import
com.google.gson.JsonElement
;
import
com.google.gson.JsonObject
;
import
com.google.gson.JsonParser
;
import
org.json.JSONObject
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.ResourceUtils
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.http.*
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.web.client.RestTemplate
;
import
sun.misc.BASE64Encoder
;
import
java.util.Objects
;
@RestController
public
class
OCR
{
@RequestMapping
(
"/"
)
public
ResponseEntity
<
String
>
hi
(){
//创建请求头
HttpHeaders
headers
=
new
HttpHeaders
();
//设置请求头格式
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
//读入静态资源文件1.png
InputStream
imagePath
=
this
.
getClass
().
getResourceAsStream
(
"/1.png"
);
//构建请求参数
MultiValueMap
<
String
,
String
>
map
=
new
LinkedMultiValueMap
<
String
,
String
>();
//添加请求参数images,并将Base64编码的图片传入
map
.
add
(
"images"
,
ImageToBase64
(
imagePath
));
//构建请求
HttpEntity
<
MultiValueMap
<
String
,
String
>>
request
=
new
HttpEntity
<
MultiValueMap
<
String
,
String
>>(
map
,
headers
);
RestTemplate
restTemplate
=
new
RestTemplate
();
//发送请求
ResponseEntity
<
String
>
response
=
restTemplate
.
postForEntity
(
"http://127.0.0.1:8866/predict/ocr_system"
,
request
,
String
.
class
);
//打印请求返回值
return
response
;
}
private
String
ImageToBase64
(
InputStream
imgPath
)
{
byte
[]
data
=
null
;
// 读取图片字节数组
try
{
InputStream
in
=
imgPath
;
System
.
out
.
println
(
imgPath
);
data
=
new
byte
[
in
.
available
()];
in
.
read
(
data
);
in
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
// 对字节数组Base64编码
BASE64Encoder
encoder
=
new
BASE64Encoder
();
// 返回Base64编码过的字节数组字符串
//System.out.println("图片转换Base64:" + encoder.encode(Objects.requireNonNull(data)));
return
encoder
.
encode
(
Objects
.
requireNonNull
(
data
));
}
}
deploy/paddleOcrSpringBoot/src/main/java/com/paddelocr_springboot/demo/DemoApplication.java
0 → 100644
浏览文件 @
37d92bea
package
com.paddelocr_springboot.demo
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@SpringBootApplication
public
class
DemoApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
DemoApplication
.
class
,
args
);
}
}
deploy/paddleOcrSpringBoot/src/main/resources/1.png
0 → 100644
浏览文件 @
37d92bea
2.8 KB
deploy/paddleOcrSpringBoot/src/main/resources/application.properties
0 → 100644
浏览文件 @
37d92bea
server.port
=
8081
http_pool.max_total
:
200
http_pool.default_max_per_route
:
100
http_pool.connect_timeout
:
5000
http_pool.connection_request_timeout
:
1000
http_pool.socket_timeout
:
65000
http_pool.validate_after_inactivity
:
2000
\ No newline at end of file
deploy/paddleOcrSpringBoot/src/test/java/com/paddelocr_springboot/demo/DemoApplicationTests.java
0 → 100644
浏览文件 @
37d92bea
package
com.paddelocr_springboot.demo
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.test.context.SpringBootTest
;
@SpringBootTest
class
DemoApplicationTests
{
@Test
void
contextLoads
()
{
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录