[Android] Add PP-OCRv3 int8 docs and fix NULL cls result error (#762)

* [Android] Update ppseg jni via new api and optimize jni vis funcs

* delete local refs

* [Android] Add PPTinyPose jni and java api

* [Android] Update gradle download tasks info

* [Android] Add PPTinyPose Android app example

* update app build.gradle

* [Android] Add PP-OCRv3 int8 docs and fix NULL cls result error
This commit is contained in:
DefTruth
2022-12-01 11:16:40 +08:00
committed by GitHub
parent 9afb4d4296
commit 63f60aa35c
4 changed files with 31 additions and 8 deletions

View File

@@ -15,14 +15,14 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".keypointdetection.KeyPointDetectionMainActivity">
<activity android:name=".ocr.OcrMainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".keypointdetection.KeyPointDetectionSettingsActivity"
android:name=".ocr.OcrSettingsActivity"
android:label="Settings">
</activity>
</application>

View File

@@ -31,6 +31,7 @@ import android.widget.TextView;
import com.baidu.paddle.fastdeploy.RuntimeOption;
import com.baidu.paddle.fastdeploy.app.examples.R;
import com.baidu.paddle.fastdeploy.pipeline.PPOCRv2;
import com.baidu.paddle.fastdeploy.pipeline.PPOCRv3;
import com.baidu.paddle.fastdeploy.ui.Utils;
import com.baidu.paddle.fastdeploy.ui.view.CameraSurfaceView;
import com.baidu.paddle.fastdeploy.ui.view.ResultListView;
@@ -41,6 +42,7 @@ import com.baidu.paddle.fastdeploy.vision.Visualize;
import com.baidu.paddle.fastdeploy.vision.ocr.Classifier;
import com.baidu.paddle.fastdeploy.vision.ocr.DBDetector;
import com.baidu.paddle.fastdeploy.vision.ocr.Recognizer;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -423,9 +425,7 @@ public class OcrMainActivity extends Activity implements View.OnClickListener, C
if (OcrSettingsActivity.checkAndUpdateSettings(this)) {
String realModelDir = getCacheDir() + "/" + OcrSettingsActivity.modelDir;
String detModelName = "ch_PP-OCRv2_det_infer";
// String detModelName = "ch_ppocr_mobile_v2.0_det_infer";
String clsModelName = "ch_ppocr_mobile_v2.0_cls_infer";
// String recModelName = "ch_ppocr_mobile_v2.0_rec_infer";
String recModelName = "ch_PP-OCRv2_rec_infer";
String realDetModelDir = realModelDir + "/" + detModelName;
String realClsModelDir = realModelDir + "/" + clsModelName;
@@ -460,11 +460,11 @@ public class OcrMainActivity extends Activity implements View.OnClickListener, C
clsOption.enableLiteFp16();
recOption.enableLiteFp16();
}
DBDetector detModel = new DBDetector(detModelFile, detParamsFile, detOption);
Classifier clsModel = new Classifier(clsModelFile, clsParamsFile, clsOption);
Recognizer recModel = new Recognizer(recModelFile, recParamsFile, recLabelFilePath, recOption);
predictor.init(detModel, clsModel, recModel);
}
}

View File

@@ -842,9 +842,12 @@ bool AllocateOCRResultFromJava(
return false;
}
const int cls_len = env->GetArrayLength(j_ocr_cls_scores_float_arr);
if (cls_len != env->GetArrayLength(j_ocr_cls_labels_int_arr)) {
return false;
int cls_len = 0;
if ((j_ocr_cls_labels_int_arr != NULL) && (j_ocr_cls_scores_float_arr != NULL)) {
cls_len = env->GetArrayLength(j_ocr_cls_scores_float_arr);
if (cls_len != env->GetArrayLength(j_ocr_cls_labels_int_arr)) {
return false;
}
}
// Init cxx result