mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-05 16:48:03 +08:00
[Bug Fix] fix android app detail page errors (#624)
This commit is contained in:
@@ -11,18 +11,18 @@
|
|||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:label="@string/segmentation_app_name"
|
android:label="@string/app_name"
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/AppTheme">
|
android:theme="@style/AppTheme">
|
||||||
<activity android:name=".segmentation.SegmentationMainActivity">
|
<activity android:name=".detection.DetectionMainActivity">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
<category android:name="android.intent.category.LAUNCHER"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name=".segmentation.SegmentationSettingsActivity"
|
android:name=".detection.DetectionSettingsActivity"
|
||||||
android:label="Settings">
|
android:label="Settings">
|
||||||
</activity>
|
</activity>
|
||||||
</application>
|
</application>
|
||||||
|
@@ -20,6 +20,7 @@ import android.preference.PreferenceManager;
|
|||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.app.ActivityCompat;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
@@ -64,8 +65,10 @@ public class ClassificationMainActivity extends Activity implements View.OnClick
|
|||||||
private TextView seekbarText;
|
private TextView seekbarText;
|
||||||
private float resultNum = 1.0f;
|
private float resultNum = 1.0f;
|
||||||
private ResultListView resultView;
|
private ResultListView resultView;
|
||||||
private Bitmap shutterBitmap;
|
|
||||||
private Bitmap picBitmap;
|
private Bitmap picBitmap;
|
||||||
|
private Bitmap shutterBitmap;
|
||||||
|
private Bitmap originPicBitmap;
|
||||||
|
private Bitmap originShutterBitmap;
|
||||||
private boolean isShutterBitmapCopied = false;
|
private boolean isShutterBitmapCopied = false;
|
||||||
|
|
||||||
public static final int TYPE_UNKNOWN = -1;
|
public static final int TYPE_UNKNOWN = -1;
|
||||||
@@ -103,13 +106,13 @@ public class ClassificationMainActivity extends Activity implements View.OnClick
|
|||||||
// Clear all setting items to avoid app crashing due to the incorrect settings
|
// Clear all setting items to avoid app crashing due to the incorrect settings
|
||||||
initSettings();
|
initSettings();
|
||||||
|
|
||||||
// Init the camera preview and UI components
|
|
||||||
initView();
|
|
||||||
|
|
||||||
// Check and request CAMERA and WRITE_EXTERNAL_STORAGE permissions
|
// Check and request CAMERA and WRITE_EXTERNAL_STORAGE permissions
|
||||||
if (!checkAllPermissions()) {
|
if (!checkAllPermissions()) {
|
||||||
requestAllPermissions();
|
requestAllPermissions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Init the camera preview and UI components
|
||||||
|
initView();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NonConstantResourceId")
|
@SuppressLint("NonConstantResourceId")
|
||||||
@@ -216,6 +219,7 @@ public class ClassificationMainActivity extends Activity implements View.OnClick
|
|||||||
if (!ARGB8888ImageBitmap.isRecycled()) {
|
if (!ARGB8888ImageBitmap.isRecycled()) {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
shutterBitmap = ARGB8888ImageBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
shutterBitmap = ARGB8888ImageBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
|
originShutterBitmap = ARGB8888ImageBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
}
|
}
|
||||||
SystemClock.sleep(TIME_SLEEP_INTERVAL);
|
SystemClock.sleep(TIME_SLEEP_INTERVAL);
|
||||||
isShutterBitmapCopied = true;
|
isShutterBitmapCopied = true;
|
||||||
@@ -234,6 +238,7 @@ public class ClassificationMainActivity extends Activity implements View.OnClick
|
|||||||
Uri uri = data.getData();
|
Uri uri = data.getData();
|
||||||
String path = getRealPathFromURI(this, uri);
|
String path = getRealPathFromURI(this, uri);
|
||||||
picBitmap = decodeBitmap(path, 720, 1280);
|
picBitmap = decodeBitmap(path, 720, 1280);
|
||||||
|
originPicBitmap = picBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
resultImage.setImageBitmap(picBitmap);
|
resultImage.setImageBitmap(picBitmap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -264,12 +269,16 @@ public class ClassificationMainActivity extends Activity implements View.OnClick
|
|||||||
copyBitmapFromCamera(ARGB8888ImageBitmap);
|
copyBitmapFromCamera(ARGB8888ImageBitmap);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean modified = false;
|
boolean modified = false;
|
||||||
|
|
||||||
long tc = System.currentTimeMillis();
|
long tc = System.currentTimeMillis();
|
||||||
ClassifyResult result = predictor.predict(ARGB8888ImageBitmap);
|
ClassifyResult result = predictor.predict(ARGB8888ImageBitmap,
|
||||||
|
true, ClassificationSettingsActivity.scoreThreshold);
|
||||||
timeElapsed += (System.currentTimeMillis() - tc);
|
timeElapsed += (System.currentTimeMillis() - tc);
|
||||||
Visualize.visClassification(ARGB8888ImageBitmap, result, resultNum, 12);
|
|
||||||
modified = result.initialized();
|
modified = result.initialized();
|
||||||
|
|
||||||
frameCounter++;
|
frameCounter++;
|
||||||
if (frameCounter >= 30) {
|
if (frameCounter >= 30) {
|
||||||
final int fps = (int) (1000 / (timeElapsed / 30));
|
final int fps = (int) (1000 / (timeElapsed / 30));
|
||||||
@@ -362,10 +371,11 @@ public class ClassificationMainActivity extends Activity implements View.OnClick
|
|||||||
if (TYPE == ALBUM_SELECT) {
|
if (TYPE == ALBUM_SELECT) {
|
||||||
SystemClock.sleep(500);
|
SystemClock.sleep(500);
|
||||||
detail(picBitmap);
|
detail(picBitmap);
|
||||||
|
picBitmap = originPicBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
} else {
|
} else {
|
||||||
SystemClock.sleep(500);
|
SystemClock.sleep(500);
|
||||||
svPreview.onPause();
|
|
||||||
detail(shutterBitmap);
|
detail(shutterBitmap);
|
||||||
|
shutterBitmap = originShutterBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -374,26 +384,25 @@ public class ClassificationMainActivity extends Activity implements View.OnClick
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void detail(Bitmap bitmap) {
|
private void detail(Bitmap bitmap) {
|
||||||
ClassifyResult result = predictor.predict(bitmap, true, ClassificationSettingsActivity.scoreThreshold);
|
|
||||||
if (scores == null) {
|
ClassifyResult result = predictor.predict(bitmap, true, resultNum);
|
||||||
|
|
||||||
scores = result.mScores;
|
scores = result.mScores;
|
||||||
}
|
|
||||||
if (labelId == null) {
|
|
||||||
labelId = result.mLabelIds;
|
labelId = result.mLabelIds;
|
||||||
}
|
|
||||||
initialized = result.initialized();
|
initialized = result.initialized();
|
||||||
if (initialized) {
|
if (initialized) {
|
||||||
for (int i = 0; i < labelId.length; i++) {
|
for (int i = 0; i < labelId.length; i++) {
|
||||||
for (int j = 0; j < labelText.size(); j++) {
|
|
||||||
if (scores[i] > resultNum) {
|
if (scores[i] > resultNum) {
|
||||||
if (labelId[i] == Integer.parseInt(labelText.get(j).substring(0, labelText.get(j).indexOf(" ")))) {
|
Log.d(TAG, "[fastdeploy] detail: scores[i]: " + scores[i]);
|
||||||
results.add(new BaseResultModel(labelId[i], labelText.get(j), scores[i]));
|
int idx = labelId[i];
|
||||||
|
String text = labelText.get(idx);
|
||||||
|
text = text.substring(text.indexOf(" "));
|
||||||
|
results.add(new BaseResultModel(idx, text, scores[i]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
BaseResultAdapter adapter = new BaseResultAdapter(getBaseContext(), R.layout.classification_result_page_item, results);
|
||||||
}
|
|
||||||
BaseResultAdapter adapter = new BaseResultAdapter(getBaseContext(), R.layout.ocr_result_page_item, results);
|
|
||||||
resultView.setAdapter(adapter);
|
resultView.setAdapter(adapter);
|
||||||
resultView.invalidate();
|
resultView.invalidate();
|
||||||
|
|
||||||
|
@@ -16,6 +16,7 @@ import android.preference.PreferenceManager;
|
|||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.app.ActivityCompat;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
@@ -64,8 +65,10 @@ public class DetectionMainActivity extends Activity implements View.OnClickListe
|
|||||||
private TextView seekbarText;
|
private TextView seekbarText;
|
||||||
private float resultNum = 1.0f;
|
private float resultNum = 1.0f;
|
||||||
private ResultListView resultView;
|
private ResultListView resultView;
|
||||||
private Bitmap shutterBitmap;
|
|
||||||
private Bitmap picBitmap;
|
private Bitmap picBitmap;
|
||||||
|
private Bitmap shutterBitmap;
|
||||||
|
private Bitmap originPicBitmap;
|
||||||
|
private Bitmap originShutterBitmap;
|
||||||
private boolean isShutterBitmapCopied = false;
|
private boolean isShutterBitmapCopied = false;
|
||||||
|
|
||||||
public static final int TYPE_UNKNOWN = -1;
|
public static final int TYPE_UNKNOWN = -1;
|
||||||
@@ -103,13 +106,13 @@ public class DetectionMainActivity extends Activity implements View.OnClickListe
|
|||||||
// Clear all setting items to avoid app crashing due to the incorrect settings
|
// Clear all setting items to avoid app crashing due to the incorrect settings
|
||||||
initSettings();
|
initSettings();
|
||||||
|
|
||||||
// Init the camera preview and UI components
|
|
||||||
initView();
|
|
||||||
|
|
||||||
// Check and request CAMERA and WRITE_EXTERNAL_STORAGE permissions
|
// Check and request CAMERA and WRITE_EXTERNAL_STORAGE permissions
|
||||||
if (!checkAllPermissions()) {
|
if (!checkAllPermissions()) {
|
||||||
requestAllPermissions();
|
requestAllPermissions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Init the camera preview and UI components
|
||||||
|
initView();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NonConstantResourceId")
|
@SuppressLint("NonConstantResourceId")
|
||||||
@@ -215,6 +218,7 @@ public class DetectionMainActivity extends Activity implements View.OnClickListe
|
|||||||
if (!ARGB8888ImageBitmap.isRecycled()) {
|
if (!ARGB8888ImageBitmap.isRecycled()) {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
shutterBitmap = ARGB8888ImageBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
shutterBitmap = ARGB8888ImageBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
|
originShutterBitmap = ARGB8888ImageBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
}
|
}
|
||||||
SystemClock.sleep(TIME_SLEEP_INTERVAL);
|
SystemClock.sleep(TIME_SLEEP_INTERVAL);
|
||||||
isShutterBitmapCopied = true;
|
isShutterBitmapCopied = true;
|
||||||
@@ -233,6 +237,7 @@ public class DetectionMainActivity extends Activity implements View.OnClickListe
|
|||||||
Uri uri = data.getData();
|
Uri uri = data.getData();
|
||||||
String path = getRealPathFromURI(this, uri);
|
String path = getRealPathFromURI(this, uri);
|
||||||
picBitmap = decodeBitmap(path, 720, 1280);
|
picBitmap = decodeBitmap(path, 720, 1280);
|
||||||
|
originPicBitmap = picBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
resultImage.setImageBitmap(picBitmap);
|
resultImage.setImageBitmap(picBitmap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -263,12 +268,16 @@ public class DetectionMainActivity extends Activity implements View.OnClickListe
|
|||||||
copyBitmapFromCamera(ARGB8888ImageBitmap);
|
copyBitmapFromCamera(ARGB8888ImageBitmap);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean modified = false;
|
boolean modified = false;
|
||||||
|
|
||||||
long tc = System.currentTimeMillis();
|
long tc = System.currentTimeMillis();
|
||||||
DetectionResult result = predictor.predict(ARGB8888ImageBitmap);
|
DetectionResult result = predictor.predict(ARGB8888ImageBitmap);
|
||||||
timeElapsed += (System.currentTimeMillis() - tc);
|
timeElapsed += (System.currentTimeMillis() - tc);
|
||||||
|
|
||||||
Visualize.visDetection(ARGB8888ImageBitmap, result, DetectionSettingsActivity.scoreThreshold);
|
Visualize.visDetection(ARGB8888ImageBitmap, result, DetectionSettingsActivity.scoreThreshold);
|
||||||
modified = result.initialized();
|
modified = result.initialized();
|
||||||
|
|
||||||
frameCounter++;
|
frameCounter++;
|
||||||
if (frameCounter >= 30) {
|
if (frameCounter >= 30) {
|
||||||
final int fps = (int) (1000 / (timeElapsed / 30));
|
final int fps = (int) (1000 / (timeElapsed / 30));
|
||||||
@@ -361,10 +370,12 @@ public class DetectionMainActivity extends Activity implements View.OnClickListe
|
|||||||
if (TYPE == ALBUM_SELECT) {
|
if (TYPE == ALBUM_SELECT) {
|
||||||
SystemClock.sleep(TIME_SLEEP_INTERVAL * 10);
|
SystemClock.sleep(TIME_SLEEP_INTERVAL * 10);
|
||||||
detail(picBitmap);
|
detail(picBitmap);
|
||||||
|
picBitmap = originPicBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
} else {
|
} else {
|
||||||
SystemClock.sleep(TIME_SLEEP_INTERVAL * 10);
|
SystemClock.sleep(TIME_SLEEP_INTERVAL * 10);
|
||||||
svPreview.onPause();
|
// svPreview.onPause();
|
||||||
detail(shutterBitmap);
|
detail(shutterBitmap);
|
||||||
|
shutterBitmap = originShutterBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -373,27 +384,24 @@ public class DetectionMainActivity extends Activity implements View.OnClickListe
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void detail(Bitmap bitmap) {
|
private void detail(Bitmap bitmap) {
|
||||||
DetectionResult result = predictor.predict(
|
|
||||||
bitmap, true, DetectionSettingsActivity.scoreThreshold);
|
DetectionResult result = predictor.predict(bitmap, true, resultNum);
|
||||||
if (scores == null) {
|
|
||||||
scores = result.mScores;
|
scores = result.mScores;
|
||||||
}
|
|
||||||
if (labelId == null) {
|
|
||||||
labelId = result.mLabelIds;
|
labelId = result.mLabelIds;
|
||||||
}
|
|
||||||
initialized = result.initialized();
|
initialized = result.initialized();
|
||||||
if (initialized) {
|
if (initialized) {
|
||||||
for (int i = 0; i < labelId.length; i++) {
|
for (int i = 0; i < labelId.length; i++) {
|
||||||
for (int j = 0; j < labelText.size(); j++) {
|
|
||||||
if (scores[i] > resultNum) {
|
if (scores[i] > resultNum) {
|
||||||
if (labelId[i] == j) {
|
Log.d(TAG, "[fastdeploy] detail: scores[i]: " + scores[i]);
|
||||||
results.add(new BaseResultModel(labelId[i], labelText.get(j), scores[i]));
|
int idx = labelId[i];
|
||||||
|
String text = labelText.get(idx);
|
||||||
|
results.add(new BaseResultModel(idx, text, scores[i]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
BaseResultAdapter adapter = new BaseResultAdapter(getBaseContext(), R.layout.detection_result_page_item, results);
|
||||||
}
|
|
||||||
BaseResultAdapter adapter = new BaseResultAdapter(getBaseContext(), R.layout.ocr_result_page_item, results);
|
|
||||||
resultView.setAdapter(adapter);
|
resultView.setAdapter(adapter);
|
||||||
resultView.invalidate();
|
resultView.invalidate();
|
||||||
|
|
||||||
|
@@ -64,8 +64,10 @@ public class FaceDetMainActivity extends Activity implements View.OnClickListene
|
|||||||
private TextView seekbarText;
|
private TextView seekbarText;
|
||||||
private float resultNum = 1.0f;
|
private float resultNum = 1.0f;
|
||||||
private ResultListView resultView;
|
private ResultListView resultView;
|
||||||
private Bitmap shutterBitmap;
|
|
||||||
private Bitmap picBitmap;
|
private Bitmap picBitmap;
|
||||||
|
private Bitmap shutterBitmap;
|
||||||
|
private Bitmap originPicBitmap;
|
||||||
|
private Bitmap originShutterBitmap;
|
||||||
private boolean isShutterBitmapCopied = false;
|
private boolean isShutterBitmapCopied = false;
|
||||||
|
|
||||||
public static final int TYPE_UNKNOWN = -1;
|
public static final int TYPE_UNKNOWN = -1;
|
||||||
@@ -101,13 +103,13 @@ public class FaceDetMainActivity extends Activity implements View.OnClickListene
|
|||||||
// Clear all setting items to avoid app crashing due to the incorrect settings
|
// Clear all setting items to avoid app crashing due to the incorrect settings
|
||||||
initSettings();
|
initSettings();
|
||||||
|
|
||||||
// Init the camera preview and UI components
|
|
||||||
initView();
|
|
||||||
|
|
||||||
// Check and request CAMERA and WRITE_EXTERNAL_STORAGE permissions
|
// Check and request CAMERA and WRITE_EXTERNAL_STORAGE permissions
|
||||||
if (!checkAllPermissions()) {
|
if (!checkAllPermissions()) {
|
||||||
requestAllPermissions();
|
requestAllPermissions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Init the camera preview and UI components
|
||||||
|
initView();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NonConstantResourceId")
|
@SuppressLint("NonConstantResourceId")
|
||||||
@@ -210,6 +212,7 @@ public class FaceDetMainActivity extends Activity implements View.OnClickListene
|
|||||||
if (!ARGB8888ImageBitmap.isRecycled()) {
|
if (!ARGB8888ImageBitmap.isRecycled()) {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
shutterBitmap = ARGB8888ImageBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
shutterBitmap = ARGB8888ImageBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
|
originShutterBitmap = ARGB8888ImageBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
}
|
}
|
||||||
SystemClock.sleep(TIME_SLEEP_INTERVAL);
|
SystemClock.sleep(TIME_SLEEP_INTERVAL);
|
||||||
isShutterBitmapCopied = true;
|
isShutterBitmapCopied = true;
|
||||||
@@ -228,6 +231,7 @@ public class FaceDetMainActivity extends Activity implements View.OnClickListene
|
|||||||
Uri uri = data.getData();
|
Uri uri = data.getData();
|
||||||
String path = getRealPathFromURI(this, uri);
|
String path = getRealPathFromURI(this, uri);
|
||||||
picBitmap = decodeBitmap(path, 720, 1280);
|
picBitmap = decodeBitmap(path, 720, 1280);
|
||||||
|
originPicBitmap = picBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
resultImage.setImageBitmap(picBitmap);
|
resultImage.setImageBitmap(picBitmap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -259,12 +263,14 @@ public class FaceDetMainActivity extends Activity implements View.OnClickListene
|
|||||||
copyBitmapFromCamera(ARGB8888ImageBitmap);
|
copyBitmapFromCamera(ARGB8888ImageBitmap);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean modified = false;
|
boolean modified = false;
|
||||||
|
|
||||||
long tc = System.currentTimeMillis();
|
long tc = System.currentTimeMillis();
|
||||||
SystemClock.sleep(TIME_SLEEP_INTERVAL);
|
|
||||||
FaceDetectionResult result = predictor.predict(
|
FaceDetectionResult result = predictor.predict(
|
||||||
ARGB8888ImageBitmap, FaceDetSettingsActivity.scoreThreshold, 0.4f);
|
ARGB8888ImageBitmap, FaceDetSettingsActivity.scoreThreshold, 0.4f);
|
||||||
timeElapsed += (System.currentTimeMillis() - tc);
|
timeElapsed += (System.currentTimeMillis() - tc);
|
||||||
|
|
||||||
Visualize.visFaceDetection(ARGB8888ImageBitmap, result);
|
Visualize.visFaceDetection(ARGB8888ImageBitmap, result);
|
||||||
modified = result.initialized();
|
modified = result.initialized();
|
||||||
frameCounter++;
|
frameCounter++;
|
||||||
@@ -310,8 +316,12 @@ public class FaceDetMainActivity extends Activity implements View.OnClickListene
|
|||||||
|
|
||||||
public void initView() {
|
public void initView() {
|
||||||
TYPE = REALTIME_DETECT;
|
TYPE = REALTIME_DETECT;
|
||||||
|
CameraSurfaceView.EXPECTED_PREVIEW_WIDTH = 720;
|
||||||
|
CameraSurfaceView.EXPECTED_PREVIEW_HEIGHT = 360;
|
||||||
svPreview = (CameraSurfaceView) findViewById(R.id.sv_preview);
|
svPreview = (CameraSurfaceView) findViewById(R.id.sv_preview);
|
||||||
svPreview.setOnTextureChangedListener(this);
|
svPreview.setOnTextureChangedListener(this);
|
||||||
|
svPreview.switchCamera(); // Front camera for HumanSeg
|
||||||
|
|
||||||
tvStatus = (TextView) findViewById(R.id.tv_status);
|
tvStatus = (TextView) findViewById(R.id.tv_status);
|
||||||
btnSwitch = (ImageButton) findViewById(R.id.btn_switch);
|
btnSwitch = (ImageButton) findViewById(R.id.btn_switch);
|
||||||
btnSwitch.setOnClickListener(this);
|
btnSwitch.setOnClickListener(this);
|
||||||
@@ -359,10 +369,11 @@ public class FaceDetMainActivity extends Activity implements View.OnClickListene
|
|||||||
if (TYPE == ALBUM_SELECT) {
|
if (TYPE == ALBUM_SELECT) {
|
||||||
SystemClock.sleep(TIME_SLEEP_INTERVAL * 10); // 500ms
|
SystemClock.sleep(TIME_SLEEP_INTERVAL * 10); // 500ms
|
||||||
detail(picBitmap);
|
detail(picBitmap);
|
||||||
|
picBitmap = originPicBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
} else {
|
} else {
|
||||||
SystemClock.sleep(TIME_SLEEP_INTERVAL * 10); // 500ms
|
SystemClock.sleep(TIME_SLEEP_INTERVAL * 10); // 500ms
|
||||||
svPreview.onPause();
|
|
||||||
detail(shutterBitmap);
|
detail(shutterBitmap);
|
||||||
|
shutterBitmap = originShutterBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -371,12 +382,11 @@ public class FaceDetMainActivity extends Activity implements View.OnClickListene
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void detail(Bitmap bitmap) {
|
private void detail(Bitmap bitmap) {
|
||||||
FaceDetectionResult result = predictor.predict(bitmap, true, FaceDetSettingsActivity.scoreThreshold, 0.4f);
|
FaceDetectionResult result = predictor.predict(bitmap, true, resultNum, 0.4f);
|
||||||
if (scores == null) {
|
|
||||||
scores = result.mScores;
|
scores = result.mScores;
|
||||||
}
|
|
||||||
initialized = result.initialized();
|
initialized = result.initialized();
|
||||||
Log.e("GBD", initialized + "---initialized");
|
|
||||||
if (initialized) {
|
if (initialized) {
|
||||||
for (int i = 0; i < scores.length; i++) {
|
for (int i = 0; i < scores.length; i++) {
|
||||||
if (scores[i] > resultNum) {
|
if (scores[i] > resultNum) {
|
||||||
@@ -384,7 +394,7 @@ public class FaceDetMainActivity extends Activity implements View.OnClickListene
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BaseResultAdapter adapter = new BaseResultAdapter(getBaseContext(), R.layout.ocr_result_page_item, results);
|
BaseResultAdapter adapter = new BaseResultAdapter(getBaseContext(), R.layout.facedet_result_page_item, results);
|
||||||
resultView.setAdapter(adapter);
|
resultView.setAdapter(adapter);
|
||||||
resultView.invalidate();
|
resultView.invalidate();
|
||||||
|
|
||||||
|
@@ -66,8 +66,10 @@ public class OcrMainActivity extends Activity implements View.OnClickListener, C
|
|||||||
private TextView seekbarText;
|
private TextView seekbarText;
|
||||||
private float resultNum = 1.0f;
|
private float resultNum = 1.0f;
|
||||||
private ResultListView resultView;
|
private ResultListView resultView;
|
||||||
private Bitmap shutterBitmap;
|
|
||||||
private Bitmap picBitmap;
|
private Bitmap picBitmap;
|
||||||
|
private Bitmap shutterBitmap;
|
||||||
|
private Bitmap originPicBitmap;
|
||||||
|
private Bitmap originShutterBitmap;
|
||||||
private boolean isShutterBitmapCopied = false;
|
private boolean isShutterBitmapCopied = false;
|
||||||
|
|
||||||
public static final int TYPE_UNKNOWN = -1;
|
public static final int TYPE_UNKNOWN = -1;
|
||||||
@@ -104,13 +106,13 @@ public class OcrMainActivity extends Activity implements View.OnClickListener, C
|
|||||||
// Clear all setting items to avoid app crashing due to the incorrect settings
|
// Clear all setting items to avoid app crashing due to the incorrect settings
|
||||||
initSettings();
|
initSettings();
|
||||||
|
|
||||||
// Init the camera preview and UI components
|
|
||||||
initView();
|
|
||||||
|
|
||||||
// Check and request CAMERA and WRITE_EXTERNAL_STORAGE permissions
|
// Check and request CAMERA and WRITE_EXTERNAL_STORAGE permissions
|
||||||
if (!checkAllPermissions()) {
|
if (!checkAllPermissions()) {
|
||||||
requestAllPermissions();
|
requestAllPermissions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Init the camera preview and UI components
|
||||||
|
initView();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NonConstantResourceId")
|
@SuppressLint("NonConstantResourceId")
|
||||||
@@ -216,6 +218,7 @@ public class OcrMainActivity extends Activity implements View.OnClickListener, C
|
|||||||
if (!ARGB8888ImageBitmap.isRecycled()) {
|
if (!ARGB8888ImageBitmap.isRecycled()) {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
shutterBitmap = ARGB8888ImageBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
shutterBitmap = ARGB8888ImageBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
|
originShutterBitmap = ARGB8888ImageBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
}
|
}
|
||||||
SystemClock.sleep(TIME_SLEEP_INTERVAL);
|
SystemClock.sleep(TIME_SLEEP_INTERVAL);
|
||||||
isShutterBitmapCopied = true;
|
isShutterBitmapCopied = true;
|
||||||
@@ -235,6 +238,7 @@ public class OcrMainActivity extends Activity implements View.OnClickListener, C
|
|||||||
Uri uri = data.getData();
|
Uri uri = data.getData();
|
||||||
String path = getRealPathFromURI(this, uri);
|
String path = getRealPathFromURI(this, uri);
|
||||||
picBitmap = decodeBitmap(path, 720, 1280);
|
picBitmap = decodeBitmap(path, 720, 1280);
|
||||||
|
originPicBitmap = picBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
resultImage.setImageBitmap(picBitmap);
|
resultImage.setImageBitmap(picBitmap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -265,12 +269,16 @@ public class OcrMainActivity extends Activity implements View.OnClickListener, C
|
|||||||
copyBitmapFromCamera(ARGB8888ImageBitmap);
|
copyBitmapFromCamera(ARGB8888ImageBitmap);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean modified = false;
|
boolean modified = false;
|
||||||
|
|
||||||
long tc = System.currentTimeMillis();
|
long tc = System.currentTimeMillis();
|
||||||
OCRResult result = predictor.predict(ARGB8888ImageBitmap, true);
|
OCRResult result = predictor.predict(ARGB8888ImageBitmap);
|
||||||
timeElapsed += (System.currentTimeMillis() - tc);
|
timeElapsed += (System.currentTimeMillis() - tc);
|
||||||
|
|
||||||
Visualize.visOcr(ARGB8888ImageBitmap, result);
|
Visualize.visOcr(ARGB8888ImageBitmap, result);
|
||||||
modified = result.initialized();
|
modified = result.initialized();
|
||||||
|
|
||||||
frameCounter++;
|
frameCounter++;
|
||||||
if (frameCounter >= 30) {
|
if (frameCounter >= 30) {
|
||||||
final int fps = (int) (1000 / (timeElapsed / 30));
|
final int fps = (int) (1000 / (timeElapsed / 30));
|
||||||
@@ -363,10 +371,11 @@ public class OcrMainActivity extends Activity implements View.OnClickListener, C
|
|||||||
if (TYPE == ALBUM_SELECT) {
|
if (TYPE == ALBUM_SELECT) {
|
||||||
SystemClock.sleep(TIME_SLEEP_INTERVAL * 10);
|
SystemClock.sleep(TIME_SLEEP_INTERVAL * 10);
|
||||||
detail(picBitmap);
|
detail(picBitmap);
|
||||||
|
picBitmap = originPicBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
} else {
|
} else {
|
||||||
SystemClock.sleep(TIME_SLEEP_INTERVAL * 10);
|
SystemClock.sleep(TIME_SLEEP_INTERVAL * 10);
|
||||||
svPreview.onPause();
|
|
||||||
detail(shutterBitmap);
|
detail(shutterBitmap);
|
||||||
|
shutterBitmap = originShutterBitmap.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -376,12 +385,10 @@ public class OcrMainActivity extends Activity implements View.OnClickListener, C
|
|||||||
|
|
||||||
private void detail(Bitmap bitmap) {
|
private void detail(Bitmap bitmap) {
|
||||||
OCRResult result = predictor.predict(bitmap, true);
|
OCRResult result = predictor.predict(bitmap, true);
|
||||||
if (texts == null) {
|
|
||||||
texts = result.mText;
|
texts = result.mText;
|
||||||
}
|
|
||||||
if (recScores == null) {
|
|
||||||
recScores = result.mRecScores;
|
recScores = result.mRecScores;
|
||||||
}
|
|
||||||
initialized = result.initialized();
|
initialized = result.initialized();
|
||||||
if (initialized) {
|
if (initialized) {
|
||||||
for (int i = 0; i < texts.length; i++) {
|
for (int i = 0; i < texts.length; i++) {
|
||||||
|
@@ -97,13 +97,13 @@ public class SegmentationMainActivity extends Activity implements View.OnClickLi
|
|||||||
// Clear all setting items to avoid app crashing due to the incorrect settings
|
// Clear all setting items to avoid app crashing due to the incorrect settings
|
||||||
initSettings();
|
initSettings();
|
||||||
|
|
||||||
// Init the camera preview and UI components
|
|
||||||
initView();
|
|
||||||
|
|
||||||
// Check and request CAMERA and WRITE_EXTERNAL_STORAGE permissions
|
// Check and request CAMERA and WRITE_EXTERNAL_STORAGE permissions
|
||||||
if (!checkAllPermissions()) {
|
if (!checkAllPermissions()) {
|
||||||
requestAllPermissions();
|
requestAllPermissions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Init the camera preview and UI components
|
||||||
|
initView();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NonConstantResourceId")
|
@SuppressLint("NonConstantResourceId")
|
||||||
@@ -253,12 +253,16 @@ public class SegmentationMainActivity extends Activity implements View.OnClickLi
|
|||||||
copyBitmapFromCamera(ARGB8888ImageBitmap);
|
copyBitmapFromCamera(ARGB8888ImageBitmap);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean modified = false;
|
boolean modified = false;
|
||||||
|
|
||||||
long tc = System.currentTimeMillis();
|
long tc = System.currentTimeMillis();
|
||||||
SegmentationResult result = predictor.predict(ARGB8888ImageBitmap);
|
SegmentationResult result = predictor.predict(ARGB8888ImageBitmap);
|
||||||
timeElapsed += (System.currentTimeMillis() - tc);
|
timeElapsed += (System.currentTimeMillis() - tc);
|
||||||
|
|
||||||
Visualize.visSegmentation(ARGB8888ImageBitmap, result);
|
Visualize.visSegmentation(ARGB8888ImageBitmap, result);
|
||||||
modified = result.initialized();
|
modified = result.initialized();
|
||||||
|
|
||||||
frameCounter++;
|
frameCounter++;
|
||||||
if (frameCounter >= 30) {
|
if (frameCounter >= 30) {
|
||||||
final int fps = (int) (1000 / (timeElapsed / 30));
|
final int fps = (int) (1000 / (timeElapsed / 30));
|
||||||
@@ -302,8 +306,12 @@ public class SegmentationMainActivity extends Activity implements View.OnClickLi
|
|||||||
|
|
||||||
public void initView() {
|
public void initView() {
|
||||||
TYPE = REALTIME_DETECT;
|
TYPE = REALTIME_DETECT;
|
||||||
|
CameraSurfaceView.EXPECTED_PREVIEW_WIDTH = 720;
|
||||||
|
CameraSurfaceView.EXPECTED_PREVIEW_HEIGHT = 360;
|
||||||
svPreview = (CameraSurfaceView) findViewById(R.id.sv_preview);
|
svPreview = (CameraSurfaceView) findViewById(R.id.sv_preview);
|
||||||
svPreview.setOnTextureChangedListener(this);
|
svPreview.setOnTextureChangedListener(this);
|
||||||
|
svPreview.switchCamera(); // Front camera for HumanSeg
|
||||||
|
|
||||||
tvStatus = (TextView) findViewById(R.id.tv_status);
|
tvStatus = (TextView) findViewById(R.id.tv_status);
|
||||||
btnSwitch = (ImageButton) findViewById(R.id.btn_switch);
|
btnSwitch = (ImageButton) findViewById(R.id.btn_switch);
|
||||||
btnSwitch.setOnClickListener(this);
|
btnSwitch.setOnClickListener(this);
|
||||||
|
Reference in New Issue
Block a user