Skip to content

Instantly share code, notes, and snippets.

@FrankWu100
Last active November 6, 2018 09:17
Show Gist options
  • Save FrankWu100/965986a3586fe0095fece70d17ac5554 to your computer and use it in GitHub Desktop.
Save FrankWu100/965986a3586fe0095fece70d17ac5554 to your computer and use it in GitHub Desktop.
From c8b6450817d314099897bd899849bcfe47ee949d Mon Sep 17 00:00:00 2001
From: Frank Wu <frankwu100@gmail.com>
Date: Tue, 29 May 2018 18:03:33 +0800
Subject: [PATCH] Demo, Landscape mode
---
tensorflow/examples/android/AndroidManifest.xml | 56 +++++++++++-----------
.../src/org/tensorflow/demo/CameraActivity.java | 9 ++++
.../tensorflow/demo/CameraConnectionFragment.java | 4 ++
.../src/org/tensorflow/demo/DetectorActivity.java | 4 +-
.../tensorflow/demo/tracking/MultiBoxTracker.java | 1 +
5 files changed, 44 insertions(+), 30 deletions(-)
diff --git a/tensorflow/examples/android/AndroidManifest.xml b/tensorflow/examples/android/AndroidManifest.xml
index 5c47ce6..e50a720 100644
--- a/tensorflow/examples/android/AndroidManifest.xml
+++ b/tensorflow/examples/android/AndroidManifest.xml
@@ -34,18 +34,18 @@
android:icon="@drawable/ic_launcher"
android:theme="@style/MaterialTheme">
- <activity android:name="org.tensorflow.demo.ClassifierActivity"
- android:screenOrientation="portrait"
- android:label="@string/activity_name_classification">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
- </intent-filter>
- </activity>
+ <!--<activity android:name="org.tensorflow.demo.ClassifierActivity"-->
+ <!--android:screenOrientation="landscape"-->
+ <!--android:label="@string/activity_name_classification">-->
+ <!--<intent-filter>-->
+ <!--<action android:name="android.intent.action.MAIN" />-->
+ <!--<category android:name="android.intent.category.LAUNCHER" />-->
+ <!--<category android:name="android.intent.category.LEANBACK_LAUNCHER" />-->
+ <!--</intent-filter>-->
+ <!--</activity>-->
<activity android:name="org.tensorflow.demo.DetectorActivity"
- android:screenOrientation="portrait"
+ android:screenOrientation="landscape"
android:label="@string/activity_name_detection">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -54,25 +54,25 @@
</intent-filter>
</activity>
- <activity android:name="org.tensorflow.demo.StylizeActivity"
- android:screenOrientation="portrait"
- android:label="@string/activity_name_stylize">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
- </intent-filter>
- </activity>
+ <!--<activity android:name="org.tensorflow.demo.StylizeActivity"-->
+ <!--android:screenOrientation="portrait"-->
+ <!--android:label="@string/activity_name_stylize">-->
+ <!--<intent-filter>-->
+ <!--<action android:name="android.intent.action.MAIN" />-->
+ <!--<category android:name="android.intent.category.LAUNCHER" />-->
+ <!--<category android:name="android.intent.category.LEANBACK_LAUNCHER" />-->
+ <!--</intent-filter>-->
+ <!--</activity>-->
- <activity android:name="org.tensorflow.demo.SpeechActivity"
- android:screenOrientation="portrait"
- android:label="@string/activity_name_speech">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
- </intent-filter>
- </activity>
+ <!--<activity android:name="org.tensorflow.demo.SpeechActivity"-->
+ <!--android:screenOrientation="portrait"-->
+ <!--android:label="@string/activity_name_speech">-->
+ <!--<intent-filter>-->
+ <!--<action android:name="android.intent.action.MAIN" />-->
+ <!--<category android:name="android.intent.category.LAUNCHER" />-->
+ <!--<category android:name="android.intent.category.LEANBACK_LAUNCHER" />-->
+ <!--</intent-filter>-->
+ <!--</activity>-->
</application>
</manifest>
diff --git a/tensorflow/examples/android/src/org/tensorflow/demo/CameraActivity.java b/tensorflow/examples/android/src/org/tensorflow/demo/CameraActivity.java
index 429138a..6353bc4 100644
--- a/tensorflow/examples/android/src/org/tensorflow/demo/CameraActivity.java
+++ b/tensorflow/examples/android/src/org/tensorflow/demo/CameraActivity.java
@@ -38,6 +38,7 @@ import android.os.Trace;
import android.util.Size;
import android.view.KeyEvent;
import android.view.Surface;
+import android.view.View;
import android.view.WindowManager;
import android.widget.Toast;
import java.nio.ByteBuffer;
@@ -73,6 +74,11 @@ public abstract class CameraActivity extends Activity
@Override
protected void onCreate(final Bundle savedInstanceState) {
LOGGER.d("onCreate " + this);
+
+ View decorView = getWindow().getDecorView();
+ int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
+ decorView.setSystemUiVisibility(uiOptions);
+
super.onCreate(null);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
@@ -339,6 +345,9 @@ public abstract class CameraActivity extends Activity
useCamera2API = (facing == CameraCharacteristics.LENS_FACING_EXTERNAL)
|| isHardwareLevelSupported(characteristics,
CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL);
+
+ useCamera2API = true;
+
LOGGER.i("Camera API lv2?: %s", useCamera2API);
return cameraId;
}
diff --git a/tensorflow/examples/android/src/org/tensorflow/demo/CameraConnectionFragment.java b/tensorflow/examples/android/src/org/tensorflow/demo/CameraConnectionFragment.java
index 361cf0e..5343910 100644
--- a/tensorflow/examples/android/src/org/tensorflow/demo/CameraConnectionFragment.java
+++ b/tensorflow/examples/android/src/org/tensorflow/demo/CameraConnectionFragment.java
@@ -588,9 +588,13 @@ public class CameraConnectionFragment extends Fragment {
(float) viewHeight / previewSize.getHeight(),
(float) viewWidth / previewSize.getWidth());
matrix.postScale(scale, scale, centerX, centerY);
+ matrix.postScale(-1*scale, scale, centerX, centerY);
matrix.postRotate(90 * (rotation - 2), centerX, centerY);
} else if (Surface.ROTATION_180 == rotation) {
+ matrix.postScale(-1, 1, centerX, centerY);
matrix.postRotate(180, centerX, centerY);
+ } else {
+ matrix.postScale(-1, 1, centerX, centerY);
}
textureView.setTransform(matrix);
}
diff --git a/tensorflow/examples/android/src/org/tensorflow/demo/DetectorActivity.java b/tensorflow/examples/android/src/org/tensorflow/demo/DetectorActivity.java
index 7882d87..b676865 100644
--- a/tensorflow/examples/android/src/org/tensorflow/demo/DetectorActivity.java
+++ b/tensorflow/examples/android/src/org/tensorflow/demo/DetectorActivity.java
@@ -92,7 +92,7 @@ public class DetectorActivity extends CameraActivity implements OnImageAvailable
private static final boolean MAINTAIN_ASPECT = MODE == DetectorMode.YOLO;
- private static final Size DESIRED_PREVIEW_SIZE = new Size(640, 480);
+ private static final Size DESIRED_PREVIEW_SIZE = new Size(1920, 1080);
private static final boolean SAVE_PREVIEW_BITMAP = false;
private static final float TEXT_SIZE_DIP = 10;
@@ -213,7 +213,7 @@ public class DetectorActivity extends CameraActivity implements OnImageAvailable
canvas.drawColor(backgroundColor);
final Matrix matrix = new Matrix();
- final float scaleFactor = 2;
+ final float scaleFactor = 4;
matrix.postScale(scaleFactor, scaleFactor);
matrix.postTranslate(
canvas.getWidth() - copy.getWidth() * scaleFactor,
diff --git a/tensorflow/examples/android/src/org/tensorflow/demo/tracking/MultiBoxTracker.java b/tensorflow/examples/android/src/org/tensorflow/demo/tracking/MultiBoxTracker.java
index af6af2b..ac4b39e 100644
--- a/tensorflow/examples/android/src/org/tensorflow/demo/tracking/MultiBoxTracker.java
+++ b/tensorflow/examples/android/src/org/tensorflow/demo/tracking/MultiBoxTracker.java
@@ -173,6 +173,7 @@ public class MultiBoxTracker {
(int) (multiplier * (rotated ? frameWidth : frameHeight)),
sensorOrientation,
false);
+ frameToCanvasMatrix.postScale(-1, 1 , frameWidth/2, frameHeight/2);
for (final TrackedRecognition recognition : trackedObjects) {
final RectF trackedPos =
(objectTracker != null)
--
2.8.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment