Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
wangsen
paddle_dbnet
Commits
4684103f
Commit
4684103f
authored
May 25, 2021
by
Leif
Browse files
Merge remote-tracking branch 'PaddlePaddle/dygraph' into dygraph
parents
2bea3736
19204e8f
Changes
126
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
221 additions
and
49 deletions
+221
-49
.gitignore
.gitignore
+5
-1
README.md
README.md
+1
-1
README_ch.md
README_ch.md
+1
-1
configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml
configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml
+0
-5
configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml
configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml
+0
-5
configs/det/det_mv3_db.yml
configs/det/det_mv3_db.yml
+0
-5
configs/det/det_mv3_east.yml
configs/det/det_mv3_east.yml
+0
-5
configs/det/det_r50_vd_db.yml
configs/det/det_r50_vd_db.yml
+0
-5
configs/det/det_r50_vd_east.yml
configs/det/det_r50_vd_east.yml
+0
-5
configs/det/det_r50_vd_sast_icdar15.yml
configs/det/det_r50_vd_sast_icdar15.yml
+0
-5
configs/det/det_r50_vd_sast_totaltext.yml
configs/det/det_r50_vd_sast_totaltext.yml
+0
-5
configs/e2e/e2e_r50_vd_pg.yml
configs/e2e/e2e_r50_vd_pg.yml
+0
-5
configs/rec/rec_icdar15_train.yml
configs/rec/rec_icdar15_train.yml
+1
-1
deploy/android_demo/.gitignore
deploy/android_demo/.gitignore
+9
-0
deploy/android_demo/README.md
deploy/android_demo/README.md
+19
-0
deploy/android_demo/app/.gitignore
deploy/android_demo/app/.gitignore
+1
-0
deploy/android_demo/app/build.gradle
deploy/android_demo/app/build.gradle
+98
-0
deploy/android_demo/app/proguard-rules.pro
deploy/android_demo/app/proguard-rules.pro
+21
-0
deploy/android_demo/app/src/androidTest/java/com/baidu/paddle/lite/demo/ocr/ExampleInstrumentedTest.java
...m/baidu/paddle/lite/demo/ocr/ExampleInstrumentedTest.java
+26
-0
deploy/android_demo/app/src/main/AndroidManifest.xml
deploy/android_demo/app/src/main/AndroidManifest.xml
+39
-0
No files found.
.gitignore
View file @
4684103f
...
@@ -24,4 +24,8 @@ output/
...
@@ -24,4 +24,8 @@ output/
build/
build/
dist/
dist/
paddleocr.egg-info/
paddleocr.egg-info/
\ No newline at end of file
/deploy/android_demo/app/OpenCV/
/deploy/android_demo/app/PaddleLite/
/deploy/android_demo/app/.cxx/
/deploy/android_demo/app/cache/
README.md
View file @
4684103f
...
@@ -43,7 +43,7 @@ The above pictures are the visualizations of the general ppocr_server model. For
...
@@ -43,7 +43,7 @@ The above pictures are the visualizations of the general ppocr_server model. For
-
Scan the QR code below with your Wechat, you can access to official technical exchange group. Look forward to your participation.
-
Scan the QR code below with your Wechat, you can access to official technical exchange group. Look forward to your participation.
<div
align=
"center"
>
<div
align=
"center"
>
<img
src=
"https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/
release/2.0
/doc/joinus.PNG"
width =
"200"
height =
"200"
/>
<img
src=
"https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/
dygraph
/doc/joinus.PNG"
width =
"200"
height =
"200"
/>
</div>
</div>
...
...
README_ch.md
View file @
4684103f
...
@@ -46,7 +46,7 @@ PaddleOCR同时支持动态图与静态图两种编程范式
...
@@ -46,7 +46,7 @@ PaddleOCR同时支持动态图与静态图两种编程范式
-
微信扫描二维码加入官方交流群,获得更高效的问题答疑,与各行各业开发者充分交流,期待您的加入。
-
微信扫描二维码加入官方交流群,获得更高效的问题答疑,与各行各业开发者充分交流,期待您的加入。
<div
align=
"center"
>
<div
align=
"center"
>
<img
src=
"https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/
release/2.0
/doc/joinus.PNG"
width =
"200"
height =
"200"
/>
<img
src=
"https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/
dygraph
/doc/joinus.PNG"
width =
"200"
height =
"200"
/>
</div>
</div>
## 快速体验
## 快速体验
...
...
configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml
View file @
4684103f
...
@@ -7,11 +7,6 @@ Global:
...
@@ -7,11 +7,6 @@ Global:
save_epoch_step
:
1200
save_epoch_step
:
1200
# evaluation is run every 5000 iterations after the 4000th iteration
# evaluation is run every 5000 iterations after the 4000th iteration
eval_batch_step
:
[
3000
,
2000
]
eval_batch_step
:
[
3000
,
2000
]
# 1. If pretrained_model is saved in static mode, such as classification pretrained model
# from static branch, load_static_weights must be set as True.
# 2. If you want to finetune the pretrained models we provide in the docs,
# you should set load_static_weights as False.
load_static_weights
:
True
cal_metric_during_train
:
False
cal_metric_during_train
:
False
pretrained_model
:
./pretrain_models/MobileNetV3_large_x0_5_pretrained
pretrained_model
:
./pretrain_models/MobileNetV3_large_x0_5_pretrained
checkpoints
:
checkpoints
:
...
...
configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml
View file @
4684103f
...
@@ -7,11 +7,6 @@ Global:
...
@@ -7,11 +7,6 @@ Global:
save_epoch_step
:
1200
save_epoch_step
:
1200
# evaluation is run every 5000 iterations after the 4000th iteration
# evaluation is run every 5000 iterations after the 4000th iteration
eval_batch_step
:
[
3000
,
2000
]
eval_batch_step
:
[
3000
,
2000
]
# 1. If pretrained_model is saved in static mode, such as classification pretrained model
# from static branch, load_static_weights must be set as True.
# 2. If you want to finetune the pretrained models we provide in the docs,
# you should set load_static_weights as False.
load_static_weights
:
True
cal_metric_during_train
:
False
cal_metric_during_train
:
False
pretrained_model
:
./pretrain_models/ResNet18_vd_pretrained
pretrained_model
:
./pretrain_models/ResNet18_vd_pretrained
checkpoints
:
checkpoints
:
...
...
configs/det/det_mv3_db.yml
View file @
4684103f
...
@@ -7,11 +7,6 @@ Global:
...
@@ -7,11 +7,6 @@ Global:
save_epoch_step
:
1200
save_epoch_step
:
1200
# evaluation is run every 2000 iterations
# evaluation is run every 2000 iterations
eval_batch_step
:
[
0
,
2000
]
eval_batch_step
:
[
0
,
2000
]
# 1. If pretrained_model is saved in static mode, such as classification pretrained model
# from static branch, load_static_weights must be set as True.
# 2. If you want to finetune the pretrained models we provide in the docs,
# you should set load_static_weights as False.
load_static_weights
:
True
cal_metric_during_train
:
False
cal_metric_during_train
:
False
pretrained_model
:
./pretrain_models/MobileNetV3_large_x0_5_pretrained
pretrained_model
:
./pretrain_models/MobileNetV3_large_x0_5_pretrained
checkpoints
:
checkpoints
:
...
...
configs/det/det_mv3_east.yml
View file @
4684103f
...
@@ -7,11 +7,6 @@ Global:
...
@@ -7,11 +7,6 @@ Global:
save_epoch_step
:
1000
save_epoch_step
:
1000
# evaluation is run every 5000 iterations after the 4000th iteration
# evaluation is run every 5000 iterations after the 4000th iteration
eval_batch_step
:
[
4000
,
5000
]
eval_batch_step
:
[
4000
,
5000
]
# 1. If pretrained_model is saved in static mode, such as classification pretrained model
# from static branch, load_static_weights must be set as True.
# 2. If you want to finetune the pretrained models we provide in the docs,
# you should set load_static_weights as False.
load_static_weights
:
True
cal_metric_during_train
:
False
cal_metric_during_train
:
False
pretrained_model
:
./pretrain_models/MobileNetV3_large_x0_5_pretrained
pretrained_model
:
./pretrain_models/MobileNetV3_large_x0_5_pretrained
checkpoints
:
checkpoints
:
...
...
configs/det/det_r50_vd_db.yml
View file @
4684103f
...
@@ -7,11 +7,6 @@ Global:
...
@@ -7,11 +7,6 @@ Global:
save_epoch_step
:
1200
save_epoch_step
:
1200
# evaluation is run every 2000 iterations
# evaluation is run every 2000 iterations
eval_batch_step
:
[
0
,
2000
]
eval_batch_step
:
[
0
,
2000
]
# 1. If pretrained_model is saved in static mode, such as classification pretrained model
# from static branch, load_static_weights must be set as True.
# 2. If you want to finetune the pretrained models we provide in the docs,
# you should set load_static_weights as False.
load_static_weights
:
True
cal_metric_during_train
:
False
cal_metric_during_train
:
False
pretrained_model
:
./pretrain_models/ResNet50_vd_ssld_pretrained
pretrained_model
:
./pretrain_models/ResNet50_vd_ssld_pretrained
checkpoints
:
checkpoints
:
...
...
configs/det/det_r50_vd_east.yml
View file @
4684103f
...
@@ -7,11 +7,6 @@ Global:
...
@@ -7,11 +7,6 @@ Global:
save_epoch_step
:
1000
save_epoch_step
:
1000
# evaluation is run every 5000 iterations after the 4000th iteration
# evaluation is run every 5000 iterations after the 4000th iteration
eval_batch_step
:
[
4000
,
5000
]
eval_batch_step
:
[
4000
,
5000
]
# 1. If pretrained_model is saved in static mode, such as classification pretrained model
# from static branch, load_static_weights must be set as True.
# 2. If you want to finetune the pretrained models we provide in the docs,
# you should set load_static_weights as False.
load_static_weights
:
True
cal_metric_during_train
:
False
cal_metric_during_train
:
False
pretrained_model
:
./pretrain_models/ResNet50_vd_pretrained/
pretrained_model
:
./pretrain_models/ResNet50_vd_pretrained/
checkpoints
:
checkpoints
:
...
...
configs/det/det_r50_vd_sast_icdar15.yml
View file @
4684103f
...
@@ -7,11 +7,6 @@ Global:
...
@@ -7,11 +7,6 @@ Global:
save_epoch_step
:
1000
save_epoch_step
:
1000
# evaluation is run every 5000 iterations after the 4000th iteration
# evaluation is run every 5000 iterations after the 4000th iteration
eval_batch_step
:
[
4000
,
5000
]
eval_batch_step
:
[
4000
,
5000
]
# 1. If pretrained_model is saved in static mode, such as classification pretrained model
# from static branch, load_static_weights must be set as True.
# 2. If you want to finetune the pretrained models we provide in the docs,
# you should set load_static_weights as False.
load_static_weights
:
True
cal_metric_during_train
:
False
cal_metric_during_train
:
False
pretrained_model
:
./pretrain_models/ResNet50_vd_ssld_pretrained/
pretrained_model
:
./pretrain_models/ResNet50_vd_ssld_pretrained/
checkpoints
:
checkpoints
:
...
...
configs/det/det_r50_vd_sast_totaltext.yml
View file @
4684103f
...
@@ -7,11 +7,6 @@ Global:
...
@@ -7,11 +7,6 @@ Global:
save_epoch_step
:
1000
save_epoch_step
:
1000
# evaluation is run every 5000 iterations after the 4000th iteration
# evaluation is run every 5000 iterations after the 4000th iteration
eval_batch_step
:
[
4000
,
5000
]
eval_batch_step
:
[
4000
,
5000
]
# 1. If pretrained_model is saved in static mode, such as classification pretrained model
# from static branch, load_static_weights must be set as True.
# 2. If you want to finetune the pretrained models we provide in the docs,
# you should set load_static_weights as False.
load_static_weights
:
True
cal_metric_during_train
:
False
cal_metric_during_train
:
False
pretrained_model
:
./pretrain_models/ResNet50_vd_ssld_pretrained/
pretrained_model
:
./pretrain_models/ResNet50_vd_ssld_pretrained/
checkpoints
:
checkpoints
:
...
...
configs/e2e/e2e_r50_vd_pg.yml
View file @
4684103f
...
@@ -7,11 +7,6 @@ Global:
...
@@ -7,11 +7,6 @@ Global:
save_epoch_step
:
10
save_epoch_step
:
10
# evaluation is run every 0 iterationss after the 1000th iteration
# evaluation is run every 0 iterationss after the 1000th iteration
eval_batch_step
:
[
0
,
1000
]
eval_batch_step
:
[
0
,
1000
]
# 1. If pretrained_model is saved in static mode, such as classification pretrained model
# from static branch, load_static_weights must be set as True.
# 2. If you want to finetune the pretrained models we provide in the docs,
# you should set load_static_weights as False.
load_static_weights
:
False
cal_metric_during_train
:
False
cal_metric_during_train
:
False
pretrained_model
:
pretrained_model
:
checkpoints
:
checkpoints
:
...
...
configs/rec/rec_icdar15_train.yml
View file @
4684103f
...
@@ -82,7 +82,7 @@ Eval:
...
@@ -82,7 +82,7 @@ Eval:
dataset
:
dataset
:
name
:
SimpleDataSet
name
:
SimpleDataSet
data_dir
:
./train_data/
data_dir
:
./train_data/
label_file_list
:
[
"
./train_data/
train
_list.txt"
]
label_file_list
:
[
"
./train_data/
val
_list.txt"
]
transforms
:
transforms
:
-
DecodeImage
:
# load image
-
DecodeImage
:
# load image
img_mode
:
BGR
img_mode
:
BGR
...
...
deploy/android_demo/.gitignore
0 → 100644
View file @
4684103f
*.iml
.gradle
/local.properties
/.idea/*
.DS_Store
/build
/captures
.externalNativeBuild
deploy/android_demo/README.md
0 → 100644
View file @
4684103f
# 如何快速测试
### 1. 安装最新版本的Android Studio
可以从 https://developer.android.com/studio 下载。本Demo使用是4.0版本Android Studio编写。
### 2. 按照NDK 20 以上版本
Demo测试的时候使用的是NDK 20b版本,20版本以上均可以支持编译成功。
如果您是初学者,可以用以下方式安装和测试NDK编译环境。
点击 File -> New ->New Project, 新建 "Native C++" project
### 3. 导入项目
点击 File->New->Import Project..., 然后跟着Android Studio的引导导入
# 获得更多支持
前往
[
端计算模型生成平台EasyEdge
](
https://ai.baidu.com/easyedge/app/open_source_demo?referrerUrl=paddlelite
)
,获得更多开发支持:
-
Demo APP:可使用手机扫码安装,方便手机端快速体验文字识别
-
SDK:模型被封装为适配不同芯片硬件和操作系统SDK,包括完善的接口,方便进行二次开发
deploy/android_demo/app/.gitignore
0 → 100644
View file @
4684103f
/build
deploy/android_demo/app/build.gradle
0 → 100644
View file @
4684103f
import
java.security.MessageDigest
apply
plugin:
'com.android.application'
android
{
compileSdkVersion
29
defaultConfig
{
applicationId
"com.baidu.paddle.lite.demo.ocr"
minSdkVersion
23
targetSdkVersion
29
versionCode
1
versionName
"1.0"
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild
{
cmake
{
cppFlags
"-std=c++11 -frtti -fexceptions -Wno-format"
arguments
'-DANDROID_PLATFORM=android-23'
,
'-DANDROID_STL=c++_shared'
,
"-DANDROID_ARM_NEON=TRUE"
}
}
ndk
{
// abiFilters "arm64-v8a", "armeabi-v7a"
abiFilters
"arm64-v8a"
,
"armeabi-v7a"
ldLibs
"jnigraphics"
}
}
buildTypes
{
release
{
minifyEnabled
false
proguardFiles
getDefaultProguardFile
(
'proguard-android-optimize.txt'
),
'proguard-rules.pro'
}
}
externalNativeBuild
{
cmake
{
path
"src/main/cpp/CMakeLists.txt"
version
"3.10.2"
}
}
}
dependencies
{
implementation
fileTree
(
include:
[
'*.jar'
],
dir:
'libs'
)
implementation
'androidx.appcompat:appcompat:1.1.0'
implementation
'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation
'junit:junit:4.12'
androidTestImplementation
'com.android.support.test:runner:1.0.2'
androidTestImplementation
'com.android.support.test.espresso:espresso-core:3.0.2'
}
def
archives
=
[
[
'src'
:
'https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/paddle_lite_libs_v2_9_0.tar.gz'
,
'dest'
:
'PaddleLite'
],
[
'src'
:
'https://paddlelite-demo.bj.bcebos.com/libs/android/opencv-4.2.0-android-sdk.tar.gz'
,
'dest'
:
'OpenCV'
],
[
'src'
:
'https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ocr_v2_for_cpu.tar.gz'
,
'dest'
:
'src/main/assets/models'
],
[
'src'
:
'https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_dict.tar.gz'
,
'dest'
:
'src/main/assets/labels'
]
]
task
downloadAndExtractArchives
(
type:
DefaultTask
)
{
doFirst
{
println
"Downloading and extracting archives including libs and models"
}
doLast
{
// Prepare cache folder for archives
String
cachePath
=
"cache"
if
(!
file
(
"${cachePath}"
).
exists
())
{
mkdir
"${cachePath}"
}
archives
.
eachWithIndex
{
archive
,
index
->
MessageDigest
messageDigest
=
MessageDigest
.
getInstance
(
'MD5'
)
messageDigest
.
update
(
archive
.
src
.
bytes
)
String
cacheName
=
new
BigInteger
(
1
,
messageDigest
.
digest
()).
toString
(
32
)
// Download the target archive if not exists
boolean
copyFiles
=
!
file
(
"${archive.dest}"
).
exists
()
if
(!
file
(
"${cachePath}/${cacheName}.tar.gz"
).
exists
())
{
ant
.
get
(
src:
archive
.
src
,
dest:
file
(
"${cachePath}/${cacheName}.tar.gz"
))
copyFiles
=
true
;
// force to copy files from the latest archive files
}
// Extract the target archive if its dest path does not exists
if
(
copyFiles
)
{
copy
{
from
tarTree
(
"${cachePath}/${cacheName}.tar.gz"
)
into
"${archive.dest}"
}
}
}
}
}
preBuild
.
dependsOn
downloadAndExtractArchives
\ No newline at end of file
deploy/android_demo/app/proguard-rules.pro
0 → 100644
View file @
4684103f
# Add project specific ProGuard rules here.
#
You
can
control
the
set
of
applied
configuration
files
using
the
#
proguardFiles
setting
in
build
.
gradle
.
#
#
For
more
details
,
see
#
http
://
developer
.
android
.
com
/
guide
/
developing
/
tools
/
proguard
.
html
#
If
your
project
uses
WebView
with
JS
,
uncomment
the
following
#
and
specify
the
fully
qualified
class
name
to
the
JavaScript
interface
#
class
:
#-
keepclassmembers
class
fqcn
.
of
.
javascript
.
interface
.
for
.
webview
{
#
public
*
;
#
}
#
Uncomment
this
to
preserve
the
line
number
information
for
#
debugging
stack
traces
.
#-
keepattributes
SourceFile
,
LineNumberTable
#
If
you
keep
the
line
number
information
,
uncomment
this
to
#
hide
the
original
source
file
name
.
#-
renamesourcefileattribute
SourceFile
deploy/android_demo/app/src/androidTest/java/com/baidu/paddle/lite/demo/ocr/ExampleInstrumentedTest.java
0 → 100644
View file @
4684103f
package
com.baidu.paddle.lite.demo.ocr
;
import
android.content.Context
;
import
android.support.test.InstrumentationRegistry
;
import
android.support.test.runner.AndroidJUnit4
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
static
org
.
junit
.
Assert
.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith
(
AndroidJUnit4
.
class
)
public
class
ExampleInstrumentedTest
{
@Test
public
void
useAppContext
()
{
// Context of the app under test.
Context
appContext
=
InstrumentationRegistry
.
getTargetContext
();
assertEquals
(
"com.baidu.paddle.lite.demo"
,
appContext
.
getPackageName
());
}
}
deploy/android_demo/app/src/main/AndroidManifest.xml
0 → 100644
View file @
4684103f
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"com.baidu.paddle.lite.demo.ocr"
>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.CAMERA"
/>
<application
android:allowBackup=
"true"
android:icon=
"@mipmap/ic_launcher"
android:label=
"@string/app_name"
android:roundIcon=
"@mipmap/ic_launcher_round"
android:supportsRtl=
"true"
android:theme=
"@style/AppTheme"
>
<!-- to test MiniActivity, change this to com.baidu.paddle.lite.demo.ocr.MiniActivity -->
<activity
android:name=
"com.baidu.paddle.lite.demo.ocr.MainActivity"
>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
<category
android:name=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
<activity
android:name=
"com.baidu.paddle.lite.demo.ocr.SettingsActivity"
android:label=
"Settings"
>
</activity>
<provider
android:name=
"androidx.core.content.FileProvider"
android:authorities=
"com.baidu.paddle.lite.demo.ocr.fileprovider"
android:exported=
"false"
android:grantUriPermissions=
"true"
>
<meta-data
android:name=
"android.support.FILE_PROVIDER_PATHS"
android:resource=
"@xml/file_paths"
></meta-data>
</provider>
</application>
</manifest>
\ No newline at end of file
Prev
1
2
3
4
5
…
7
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment