Tensorflow Lite Android,用于横向方向的对象检测

时间:2019-07-02 09:22:24

标签: android object tensorflow detection tensorflow-lite

我正在尝试在Android设备上运行Tensorflow Lite对象检测示例。但是我需要重新配置此示例以适应横向屏幕方向。

我已将AndroidManifest.xml中的屏幕方向参数更改为“横向”,但屏幕预览仍处于纵向模式。正方形物体检测已正常运行,但似乎需要旋转摄像机视图。

请查看此屏幕截图https://ibb.co/Yftyk8P

    <activity
        android:name=".DetectorActivity"
        android:label="@string/activity_name_detection"
        android:screenOrientation="landscape">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

请帮助我解决此问题

1 个答案:

答案 0 :(得分:1)

我的智能玻璃上始终遇到横向屏幕取向问题。您不一定需要更改AndroidManifest.xml。 我更改了以下内容以使其正常工作:

1。将旋转角度更改为0 CameraActivity.java:200

替换onPreviewSizeChosen(new Size(previewSize.width,PreviewSize.height), 90 );与 + onPreviewSizeChosen(new Size(previewSize.width,PreviewSize.height), 0 );

2。评论 camera.setDisplayOrientation(90); 来自LegacyCameraConnectionFragment.java:88

3。在97和99行的LegacyCameraConnectionFragment.java中交换宽度和高度

OLD:

camera.addCallbackBuffer(new byte [ImageUtils.getYUVByteSize(s.height,s.width)]);; textureView.setAspectRatio(s.height,s.width);

新:

camera.addCallbackBuffer(new byte [ImageUtils.getYUVByteSize(s.width,s.height)]);; textureView.setAspectRatio(s.width,s.height);

就是这样。现在它可以在任何景观设备上使用。