【问题标题】:Detect person's fall with Android用安卓检测人的跌倒
【发布时间】:2014-01-13 16:10:42
【问题描述】:

早上好,

在使用 Microsoft SQL Server 在 C#/ASP.NET 中开发一些应用程序/网站之前,我是 Android 开发的新手。 现在我必须开发一个 Android 应用程序来检测我何时跌倒并发送警报。 我发现了一个这样的例子:

public class MainActivity extends Activity implements SensorEventListener{
    private SensorManager sensorManager;
    TextView text_X;
    TextView text_Y;
    TextView text_Z;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
        sensorManager.registerListener(this, sensorManager.getDefaultSensor( Sensor.TYPE_ACCELEROMETER ),SensorManager.SENSOR_DELAY_NORMAL );
        //Collegamento con le textView del layout
        text_X=(TextView)findViewById(R.id.txtXValue);
        text_Y=(TextView)findViewById(R.id.txtYValue);
        text_Z=(TextView)findViewById(R.id.txtZValue);
    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
            //L'accelerometro ha cambiato stato
            mostraValori(event);
        }

    }   

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }

    private void mostraValori(SensorEvent event){
        float[] valori=event.values;//array che contiene i valori dell'accelerometro
        //modifica del valore delle textView

        text_X.setText("Valore X: "+valori[0]);
        text_Y.setText("Valore Y: "+valori[1]);
        text_Z.setText("Valore Z: "+valori[2]);

    }
}

所以我在屏幕上显示了加速度计的 X、Y 和 Z 值。 现在下一步是什么?

谢谢。

【问题讨论】:

    标签: android accelerometer gravity


    【解决方案1】:

    恕我直言,下一步是让您确定加速度计值在一段时间内的哪些配置文件代表“下降”,以最大限度地减少误报和漏报。这需要考虑到正在使用的设备类型(平板电脑?手机?手表?眼镜?)以及它的使用方式(手中的手机?口袋里的手机?钱包里的手机?)。

    【讨论】:

      【解决方案2】:

      为此,您需要对想要定义为“跌倒”的内容进行建模。正如 CommonsWare 所指出的,这是一个很难解决的问题,因为您需要减少误报和误报。

      看到这个:https://github.com/BharadwajS/Fall-detection-in-Android

      还有一个类似的问题:Android - How to approach fall detection algorithm

      我建议开始的一种方法是自己测试一些“跌倒”情况,并在执行此操作时监控 x、y 和 z 坐标。然后,在测试手机的加速/减速以表示跌倒时,您应该提出一些合理的限制。请注意,您不希望您的模型简单地寻找加速度,因为这会产生很多误报(例如,当您在汽车中时),但是您希望在 1g 左右有一个缓慢的加速度,然后在最后突然减速到零。这一切都可能在一两秒钟内发生,因此您应该根据测试提出一些启发式方法并定义您的模型。

      您可能还希望允许用户在应用程序本身中进行校准。

      【讨论】:

      • 我几乎同意你所说的一切,但我很好奇你希望用户做什么来校准下降运动。这个应用程序很可能会用于老年人/残疾人,所以没有要求他们放下设备或开始跌倒(这对他们来说似乎都不安全),我不知道每个用户如何准确地校准它。你有别的想法吗?
      猜你喜欢
      • 1970-01-01
      • 2018-06-29
      • 2021-09-08
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      相关资源
      最近更新 更多