April 2018
Band 33, Nummer 4
Dieser Artikel wurde maschinell übersetzt.
Machine Learning – Sensoren im Sport: Analysieren menschlicher Bewegungen mit KI
Durch Kevin Herr Herr
In der Zukunft zeilenfilterausdruck Sportler wahrscheinlich ihre Mobiltelefone zu öffnen, und stellen Sie eine einfache Frage: "Was muss ich meine Kenntnisse verbessern?" Machen wir noch frühen Schritte in Sport AI gegen diese grundlegenden Frage beantworten, aber wir hoffen, dass die Microsoft-Tools für Produktivität und Research wird Einbinden eines Tages machen eine tägliche Szenario. Mit vielen Sport ist es schwierig, für das Tabellenlayout, um alle Bewegungen zu beobachten, die eine Athleten im Verlauf einer Aktivität vorgenommen werden kann, aber es ist möglich, sogar unobservable Daten mit Sensoren aufzeichnen. Mithilfe von Machine Learning (ML) auf diese Daten können die Athleten und und Economy können erfahren Sie, basierend auf genauen Messungen und Analysen verbessern. Der instrumentierte Athlet neue Wettbewerbsvorteil gewinnt.
Wenn der aktuelle Trend fortgesetzt wird, haben die meisten Sport-Geräte, die im Speicher verkauft in einigen Jahren einen intelligenten Sensor eingebettet. Electronics werden immer kleineren, leichter und flexibler, und es ist wahrscheinlich sehen wir diese in Fabrics, Schuhe, kaufende, Tennisschläger und andere Arten von intelligenten "Zahnrad"-Symbols eingebettet. Bestimmen, wie die Technologie und Fertigkeiten, die im Internet of Things (IoT), mobile apps Microsoft Azure gelernt anwenden können, und ML, Sport.
Um Übernahme dieser Technologie, die einfacher zu gestalten, haben wir eine open-Source-Sensor-Kit erstellt, mit Komponenten verarbeiten, messen, analysieren und Sensor Messungen Sachen sportliches Leistung zu verbessern. Unser Ziel werden im Laufe der Zeit Community Sensor Kit zusammen mit Electronics und Sport Equipment Unternehmen und Sport Zuordnungen und Enthusiasten weiterentwickelt. Das Kit Sensor und alle Beispiele in diesem Artikel finden Sie unter bit.ly/2CmQhzq. Dies schließt Codebeispiele für R, Python, c#, Xamarin und Azure-Cosmos-Datenbank. Abbildung 1 zeigt die mobilen Winter Sport-app, die veranschaulicht der Verwendung des Temperatursensors Kits und steht als Download unter Winter sports.co.
Abbildung 1 Winter Sport Mobile App mit dem Sensor Kit-Integration mit einem Beispiel für die Beeinträchtigung der einer Abfahrt erzwingt
Die letzte deutlichen Erhöhung der rechenleistung, Zuverlässigkeit und Erschwinglichkeit Sensor ausgestattet Hardware hat viele Szenarien neu Gültigkeit. Und fortschrittliches Anwendungen AI auf Sensor Signale von Sportler erzeugten bieten neue Möglichkeiten zu verstehen und Sachen sportliches Umfang zur Leistungssteigerung. Z. B. einem Idol Sensor Signale interpretierbaren bereitstellen "Aktivität Signaturen" wie in Abbildung 2, Sport Analytics gross aktivitätsüberwachung und Aggregate hinausgehen, und messen Schlüsselelemente des eine Qualifikation ermöglichen oder Aktivität. Von Hardwarebeschleunigung, die über eine bestimmte aktivieren, um direktionale g-erzwingt, während jede Millisekunde engendered generiert wird die Analyse von Sport neu definiert wird. In diesem Artikel ausführlich wir, wie wir diese Aktivität Signaturen erkannt; In diesem Fall wird die betreffende Aktivität ausgeführt, während Skifahren oder snowboarding aktiviert.
Abbildung 2 Aktivität Signatur für schaltet Skifahren oder Snowboarding
Mit Azure KI (AI) in der Cloud, wir die Sensordaten aufgenommene, umfangreiche Analysen zu transformieren, und tippen Sie auf ML um sogar noch nützlicher Informationen zu den Athleten und Economy zu extrahieren. ML-Modelle können Kenntnisse Ebene bei jeder Ausführung Fähigkeit zu klassifizieren und vielleicht sogar Vorhersagen den Fortschritt und zukünftige Leistung von einem Idol auf ein bevorstehendes Ereignis Wettbewerber. Der Vorteil des freigegebenen Datenstandards ist dadurch Sportler vergleichen relativ zu sich selbst oder ihre Community Unterschiede, Schwachstellen und Vorteile zu verstehen. Und mit neuen fortschrittliches die Möglichkeit, am Rand AI implementieren, können wir push Aktivität Recognition, Vorhersagemodell Bewertung und die Leistung auf dem Gerät, für schnelle Verfügbarkeit der Athlet auf ihrem Gerät oder in einer gemischten Realität Anzeige misst. Wir hoffen, dass dieser Satz von open Source-Ressourcen nurtures und Innovation, in der Community Sport beschleunigt.
Temperatursensor-Verwaltungskit (Übersicht)
Der Sensor-Kit ist ein Satz von open Source-plattformübergreifende Daten Produktivitätstools, einschließlich Codebeispielen für als "Erfassung" Daten, Analyse und ML sowie Sensor Hardware Verweis Entwürfe arbeiten. Das Kit hilft Sport Wissenschaftlern, Reisezug- und Sportler Erfassen des Athleten Bewegung mit millisekundengenauigkeit und ML Modelle auszuwerten, die Daten für die Analyse der Verschiebung. Das Kit dient, Hersteller, Daten und Sport Wissenschaftlern und Reisezug-interessiert moderne Sport Science, einschließlich ml- und AI-Methoden unterstützen. Abbildung 3 bietet einen allgemeinen Überblick über die Elemente des Temperatursensors Kits. In den folgenden Abschnitten, werden viele Elemente im Kit Sensor von Hardware, die als "Erfassung" Daten und die Datentransformation, Analyse, ML und Präsentation beschrieben.
Abbildung 3-Sensor-Kit für Sport-Anwendungen
Das Kit soll das Sport-Enthusiast oder Professional teilweise oder vollständig seiner Komponenten verwenden können. Beispielsweise sollten dem Analytiker einfach eine Möglichkeit, die Signale der Sensor-Daten zu erfassen und Transformieren von Daten in ein Format für die Analyse bereit. Pipeline-Codebeispiele Daten sind für einige typische Rohdaten-Formate verfügbar. Oder der Analyst verbindungsmöglichkeiten mit Nutzung von Wiederholungslogik oder codeänderungen zum Transformieren der Daten in Berichten nutzbar Analytics oder Vorhersagemodelle ML wechseln möchten. Wir bieten mehrere Codesätze, mit die bestimmte Sachen sportliches Aktivitäten und die Leistungskennzahlen dieser Aktivitäten, z. B. erkannt, deaktiviert und die Beschleunigung aus der Reihe realisiert. Der Sensor-Kit-SDK ist mit plattformübergreifende Entwicklung Denken Sie daran, geschrieben, wie eine plattformübergreifende .NET Standard 2.0 C#-Bibliothek und kompiliert mit Xamarin, damit Sie es in Android, iOS und Windows-apps verwenden können.
Temperatursensor-Hardware
Abbildung 4 wird die hardwarezusammenfassung Sensor-Kit. Was ist ein Sensor? Hardware-Hersteller finden Sie in der Regel in Sensoren als Messung zweckgebunden-Geräte. In diesem Artikel ist ein Sensor eine Trägheit Messung Einheit (IMU) Gerät leistungsfähig genug ist, und Daten aus mehreren sensorische Eingaben verarbeiten, speichern die Ergebnisse und zurück an den Host oder ein Gateway zu übertragen. Der Sensor-System besteht aus:
- Ein IMU (Freiheitsgrade) 9-FG Beschleunigungsmesser, Gyrometer und Magnetometer Daten 40-100 Hz bereitstellen.
- Bluetooth geringem Energieverbrauch (aktivieren) oder auf andere Weise von Funkkommunikation.
- Speicher, dessen Fähigkeitsgrad für Aggregat- oder unformatierte Sensordaten.
- Andere Sensoren, etwa solche für NEAR, Speicherort und So weiter.
Abbildung 4 Sensor-Kit-Hardware
Die Daten modellieren und Pipeline
Wie die folgende angezeigt wird, eine Reise von Tausend Meilen beginnt mit dem ersten Schritt. Und damit wir mit Ausführlichere Codebeispiele beginnen erfassen, Transformieren und die Daten für spätere Analysen und Präsentationen vorbereiten. Wir beschreiben hier zwei grundlegende Elemente der Datenstruktur oder "Datenmodell" Entwerfen und Entwerfen der Pipeline von Daten vom Gerät dem Speicher, und klicken Sie dann transformieren und die Informationen für die Athleten und Economy verfügbar machen.
Beginnen Sie mit dem Datenmodell. Das Kit Sensor verfügt über drei Modi der Datenaggregation – Zusammenfassung Ereignis Ebene und unformatierte Protokollierung:
- Vorab aggregierte Daten auf der Sensor um Zusammenfassungsdaten handelt. In den meisten Szenarien für Einzelhandel Sensor ist dies eine relativ kleine Nutzlast, die übertragen werden mit jedem Dataset an.
- Ereignisebene Daten durch bestimmte Ereignisse, z. B. schaltet die ausgelöst wird, springt usw. lauten. Ereignisebene Daten möglicherweise mehrere hundert oder Tausend Datensätze pro Sitzung. Diese Ereignisse basieren auf vordefinierten Aktivität Signaturen die Sensordaten abgeleitet. Sie sind in der Reihe "Erkennen von Signaturen von Sensor Aktivitätsdaten" Abschnitt ausführlicher beschrieben.
- RAW-Protokollierung ist am besten für die Aufzeichnung von Daten mit hoher Frequenz, in der Regel die oberste Häufigkeit der Sensor bieten – 40-100Hz oder mehr.
Je nach der Samplingrate von Sensor möglicherweise Aggregation der Protokollierung Rohdaten zum Sammeln von Daten vom Gerät in praktisch in Echtzeit ermöglichen. In größeren Consumer Massenspeicher Markt Szenarien können erzeugen, speichern und so viel präzise Daten übertragen übermäßige, sein, sodass wir Modus "standard" in der Sensor-Kit etwas aggregierte Daten um Daten durchsatzanforderungen zu reduzieren übertragen definiert. Wenn Sie die detaillierten Daten benötigen, können die Sensor-Kit aktivieren ausführliche Protokollierung erfolgt über die SetLogging(true)-Aufruf.
Herstellen einer Verbindung mit Sensoren
Beginnen Sie die Beschreibung des Datenpipelinefunktionen Sensor selbst an. Initialisieren der Sensor-Kit ist einfach, indem Sie einfach die Init-Methode aufrufen:
SensorKit.Instance.Init();
Das Kit Sensor funktioniert in den Modi Pull und Push; mit Pull registriert sich Modus, die die app explizit die Sync-Methode auf einen Sensor, beim pushmodus automatisch aufrufen muss, für Sensor-Benachrichtigung. Um Push-Updates zu aktivieren, können Sie SetAutoUpdates(true) aufrufen. Verwenden Sie zum Abonnieren von Sensor Updates die Subscribe-Methode:
await Task.Run(async () =>
{
await sensor.Instance.Subscribe();
});
Das Kit Sensor verwendet Daten von Sensoren, stellt Methoden für die zeitsynchronisierung und sendet die Daten in der Cloud. Die zeitsynchronisierung ist wichtig, insbesondere wenn Sportler können mehrere Sensoren angefügt, und der Sensor-Kit automatisch den Zeitstempel auf die Hardwaregeräte mit der Zeit auf dem Hostgerät mit der Sensor-Kit-fähige Anwendung löst. Die Methode zum Speichern von Daten in der Cloud ist bis zu den app-Entwickler; die Bibliothek ein Cosmos-DB-Connector und Azure-Container entsprechend der Einfachheit halber stellt Abbildung 5.
Abbildung 5 der Sensor-Kit-Bibliothek in Visual Studio
Der Sensor-Kit bietet einige Ereignisse transformierten Daten und Aggregate aus dem Gerät selbst an. Die folgende Liste der Element-Schema beschreibt die Taxonomie für diese Datenelemente:
- SensorItem: Single-Sensor-Datenelement; Elemente können von Dauer oder Granularität sein.
- SensorTurnData: Schaltet die aggregierten Daten
- SensorAirData: Zusammengefasste Daten für Sprünge
- SensorSummaryData: Zusammengefasste Daten aggregiert pro Temperatursensor
- SensorRawData: Hochfrequente-Rohdaten (z. B. 100Hz)
- UserData*: Benutzerebene Informationen (optional,-app-spezifisch)
- TeamData*: Teamebene Daten für Teams Sportler (optional,-app-spezifisch)
Das Speichern von Sensordaten in Cosmos-DB
Es gibt natürlich zahlreiche Optionen beim Laden von Daten in der Cloud. COSMOS DB eignet sich hervorragend für IoT und Telemetrie-Daten, wie gezeigt in Abbildung 6, und bietet mehrere APIs für das Laden und Abfragen von Daten sowie Skalierbarkeit und globale Verteilung.
Abbildung 6-Cosmos-Datenbank mit der Sensor Dokumente Kit
Das Sensor-Kit enthält einen Cosmos-DB-Connector und der Azure-Funktionen für Speichercontainer, die sich am bit.ly/2GEB5Mk. Sie können problemlos Daten aus der Sensoren im Sensor-Kit mit Cosmos-Datenbank verbunden werden, mithilfe der folgenden Methode aktualisieren:
await SensorKit.AzureConnectorInstance.InsertUserSensorDataAsync(userSensorData);
Sportler können mehrere Sensoren und der Sensor-Kit Aggregate Sensordaten auf Athleten Ebene und Updates Cosmos-DB mit neuen Daten verfügen. Sobald die Daten in der Cosmos-Datenbank ist, ist es einfach, diese Daten über mehrere Schnittstellen, SQL und nicht-SQL-Abfragen. Sie können z. B. Microsoft Power BI verwenden, um eine spezielle Economy Ansicht der Daten von Sensoren des jeder Athleten im Team zu erstellen oder verwenden Sie die mobile app zum Darstellen der Daten. Diese folgende Abfrage gibt zusammengefasste Daten aus jedem Sensor, der über das Kit Sensor gefunden zurück, entsprechend Abbildung 7:
SELECT * FROM Items.sensorSummary c
Abbildung 7-Cosmos-DB Ergebnisse Kit Zusammenfassung Sensordaten Abfragen
Nachdem die Daten in Azure hochgeladen wurde, können Sie ML Trainieren der Modelle oder die Daten verarbeiten.
Nun, dass Sie wissen, wie die Daten in die Cloud abruft, konzentrieren wir uns auf dem logischen Teil der Sensor-Datenanalyse und, genauer gesagt, die Analyse für die Sport-Domäne. Arbeiten mit Reisezugwagen, ergeben wir, dass sie interessiert Erkennen von Ereignissen, z. B. aktiviert, und aus g-erzwingt demzufolge von Sportler während ausgeführt wird laden. Sehen wir uns an, wie zum Erkennen von Skifahren Schaltet die gesammelte Daten analysiert werden kann.
Erkennen von Aktivität Signaturen Sensordaten
Die wichtigsten Kurve von der Abfahrt ausgerichtet ist Bewegung des seinen Mittelpunkt der Masse wir einen Sensor in der Mitte der Pelvis innerhalb der Pocket in die Ski-Hülle platziert. Wir haben die Daten aus einer Beschleunigungsmesser und eine Gyroskop empfangen. Mithilfe von Informationen aus der Sensor, konnten wir Analysieren des Athleten Bewegung und definieren eine Aktivität Signatur.
Unsere Daten bestehen aus Beschleunigungsmesser und Gyrometer Werten in einer Beispiel-Textdatei gespeichert (bit.ly/2GJkk2w). Unsere 9 FG Sensoren senden Sie uns eine 3D Beschleunigung und Angular Geschwindigkeit Vektoren aus, den Beschleunigungsmesser und die Gyroskop, bzw. gesampelt ungefähr 100 Hz. Zur Analyse der Daten laden wir es in RStudio. Können Sie unsere Analyse Code, der zur bit.ly/2GLc5mG, und Laden Sie unsere Beispieldateien.
Arbeiten mit 9 FG Sensoren erfordert sorgfältige Kalibrierung von Sensor, in der eine Prozedur sehr aufwändig ist. Unser Ziel wurde in diesem Fall einfach zum Berechnen der der Anzahl der aktiviert, die Durchführen einer Analyse präzise Bewegung entlang einer Achse keine erforderlich. Für diesen Artikel und unsere Berechnungen zu vereinfachen verwenden wir das Ausmaß der Beschleunigung und Angular-Geschwindigkeit.
Da Experiment umfasst das Erkennen von aktiviert, sind wir nur etwas interessiert, wenn der Athlet verschoben werden. Wenn weiterhin der Athlet steht, repräsentieren der Beschleunigungsmesser Sensor fast flache Linie der Geschwindigkeit des Angular noch geändert werden kann. Beim Starten der Verschiebung der tatsächlichen ändert die Amplitude der Beschleunigung und Gyrometer Werte schnell, damit die Standardabweichung wird erhöht. Als Abbildung 8 gezeigt, definieren wir eine Aktivität Ausgangspunkt am Anfang der Daten, in denen Beschleunigungsmesser Werte eine feste Schwellenwert überschreiten. Der Endpunkt wird am Ende der Daten Speicherorts Beschleunigungsmesser unter diesem Schwellenwert.
Abbildung 8 Beginn und Ende Acceleration-Aktivität
Es ist gut bekannt, dass Beschleunigungsmesser Sensordaten sehr laut, und verwenden eine gleitende Durchschnitt Berechnung eine glattere Signal ergibt. Wir definieren Sie einen Punkt in der Zeit, wenn die Standardabweichung für den Schwellenwert als Prozentsatz der Durchschnittswert des Signals als Ausgangspunkt überschreitet:
a_smooth1 <- SlidingAvg(a,lag,threshold,influence)
st<-which(a_smooth1$std > thresholdPct* a_smooth1$avg)
startPos<-min(st)
endPos<-max(st)
Eine Möglichkeit zum Erkennen von Spitzen (Peaks) in der Daten ist die Verwendung die Eigenschaft als Maßeinheit einen Spitzenwert größer als die unmittelbaren Nachbarn sein muss. Hier ist, wie wir das Ausmaß der Beschleunigungsmesser und Gyrometer Werte berechnen:
lag <- 30
threshold <- 1.5
influence <- 0.5
res<-SmoothAndFindPeaks(df$magnitudeW,df$magnitudeA,lag,threshold,influence)
print (paste("Total peaks in A = ", length(res$pks_a), " peaks in W = ", length(res$pks_w) ))
Dies führt:
> res<-SmoothAndFindPeaks(df$magnitudeW,df$magnitudeA,lag,threshold,influence)
[1] "Calculation for activity start = 3396 end = 4239"
> print (paste("Total peaks in A = ”, length(res$pks_a), " peaks in W = ", length(res$pks_w) ))
[1] "Total peaks in A = 29 peaks in W = 22"
Diese Ergebnisse werden im veranschaulicht Abbildung 9.
Abbildung 9 suchen Spitzen im Beschleunigungsmesser und Gyrometer Werte
Beobachtung des Sportler beim Deaktivieren der Übertragung der protokollsicherungsdaten zeigt, dass jedes Mal, wenn während der Übergangsphase aktivieren, wird die Größenordnung auf einen niedrigeren Wert und an der zonenspitze aktivieren Ruft die Größe auf das Maximum. Dies bedeutet, dass wenn wir Spitzen in der "verschieben" Datensegment zählen wir unsere gewünschte Anzahl erhalten. Gyrometer Daten auch wesentlich übersichtlicher und wir Angular Geschwindigkeit Größe verwenden, um Spitzen (Peaks), um zu bestimmen, die aktiviert zu berechnen. Danach müssen wir Spitzen beseitigen, die zu nah an sind jeweils anderen.
Um niedrige Rauschen Daten erhalten, die mit der Zeit stabil ist, könnten wir einen ergänzenden Filter verwenden, der die langfristige Stabilität der Zugriffstaste mit der kurzfristigen Genauigkeit der Gyroskop kombiniert.
Nun mit dem R-Code für die Erkennung aktivieren, können wir erstellen eine ML trainingsmodell in einem Prozess mit dem Umwandlungsoperator, die in einem Machine Learning Blog beschrieben wird zur post bit.ly/2EPosSa.
Messen der Athleten-Auslastungstest mit G erzwingt
Sachen sportliches Laden in ein Trainings einfach die aggregierte Measures eines Abstands zurückgelegt hinausgeht oder insgesamt Aktivitäten als abgeschlossen. Ein wichtiger Aspekt Verständnis des Athleten anwendungsbelastung und die Qualität des Trainings messen die Belastung der Athlet. Es gibt mehrere Komponenten Sachen sportliches geladen. Zu den wichtigsten umfasst g-erzwingt generiert und demzufolge von der Athlet, die erzwingt, die sie, um zu steuern, die im Verlauf einer Aktivität, z. B. eine Ski aktivieren sowie Jerks benötigen erstellt und Dockt generierten aus der Terrain oder ihre Bewegung, sie müssen zu berücksichtigen.
Menschen sind die Grenzwerte, die im Zusammenhang mit der g-erzwingt, die sie tolerieren können. Diese Grenzwerte hängen davon ab, die Zeitspanne, die der Beanspruchung durch die aufgetreten ist und ob es eine niedrige Intensität über einen längeren Zeitraum oder eine hohe Intensität für kurze Dauer ist. Und diese Grenzwerte hängen auch die Richtung in dem g-Force sind ist. Beispielsweise sind die Menschen viel leistungsfähigere Datenträgerausfälle hohe vertikaler Richtung g-Force (der Zugriff auf "Z"), anstatt eine hohe seitliche Richtung g-Force (der Zugriff auf "y") mit der Belastung des trichterhalses zurück und Knoten. Glücklicherweise wurden umfassende Feld Untersuchungen der g-Force Effekte und Grenzwerte, die von der Branche Luftfahrt und NASA, den wir nutzen können, um zu messen und g-Force und g-Force Toleranzen charakterisieren. Wir beschäftigen in g-erzwingt, dass auf der menschliche Körper, wie wir messen und wie Sie die Last darstellen, die sie auf der Athlet erstellen.
G-Force-Berechnungen aus Acceleration Sensor Measures berechnen richtungslose g-Force auf der menschliche Körper unsere Sensor Acceleration Measures des Cubes ist wie folgt mit dem Satz des Pythagoras:
Directionless G-Force = Math.sqrt(AccelerationX^2 + AccelerationY^2 + AccelerationZ^2)
G-Force in eine bestimmte Richtung wird berechnet, indem Division Beschleunigung von 9.81, vorausgesetzt wird Beschleunigung in Metern pro Sekunde gemessen Quadrat. Y-Richtung g-Force ist z. B. wie folgt berechnet:
Y G-Force = AccelerationY / 9.81
Natürlich ist eine wichtige Komponente der g-Force Belastung der Athlet den Zeitraum fest, bei denen es sind ist.
G-Force-Höchstwerte nach Dauer für Sachen sportliches Aktivität ist kein sinnvoller Vergleich der g-Force-Höchstwerte, die in jede Richtung der menschliche Körper tolerieren kann. Und während dieser g-erzwingt Höchstwerte für den Schwerpunkt widerspiegeln, anstatt für einen bestimmten Knoten bieten eine gute Möglichkeit, die von einem Idol aufgetreten ist, als Prozentanteil des diese Maximalwerte g-erzwingt express. Angenommen, wir g-Force-Dauer der Sample Rate von Sensor, in eine beliebige Stelle in 10-Beispielen pro Sekunde (10 hz) auf 100 Samplings pro Sekunde (100 hz), messen können können wir die Athleten g-erzwungenen Ladevorgangs als Prozentsatz der maximal für eine bestimmte Dauer charakterisieren.
Python-Code zum Berechnen G-erzwingt wie bereits erwähnt, muss die Formel einfach Acceleration X, Y und Z Measures aus der Sensor. Und Sie müssen die Skala zu verstehen, in der er hat gemessen, in der Regel in Meter pro Sekunde Quadrat oder Quadrat in Metern pro Sekunde. Aus diesen Elementen kann g-Force in eine bestimmte Richtung sowie richtungslose g-Force aufgetretenen insgesamt von der Athlet Stelle berechnet werden. Dank unsere Partner XSens verwenden wir Präzisions-Sensoren zum Aufzeichnen von datenbewegungen auf 100 Samplings pro Sekunde (100 hz), und Laden Sie diese in Azure.
Abbildung 10 zeigt eine Aufzeichnungsinstanz aus der Sensoren eine 3D Animation zugeordnet. Wie Sie sehen können, ist die Abfahrt g-Force in der Y-Richtung sowie in der X-Richtung auftreten, wie er nach unten der Hill übertragen werden. Berechnen diese erzwingt, in Kombination mit der Beschleunigung erreicht aus, aktivieren ermöglicht Sportler, um ihre Leistung zu navigieren, g-Force durch das Einschalten besser zu verstehen.
Abbildung 10 G-erzwungenen Ladevorgangs unterscheidet sich auf verschiedenen Achsen, wie durch XSens Software visualisiert
Abbildung 11 wird der Python-Code für die Berechnung der g-Force dargestellt.
Abbildung 11 Python-Code für die Berechnung der G-Force
########################
# G-Force, Using Python 3.5+
########################
#Directionless g-force (gg = Math.sqrt(Accx * Accx + Accy * Accy + Accz * Accz)) <pythagorean theorem>
#Assuming accelerometer is in meters per second squared, gforce measurement by dividing by 9.81
#1 acceleration of gravity [g] = 9.80664999999998 meter/second² [m/s²]
#our data is in feet per second so we use the converstion 1 ft/s2 = 0.3048 m/s2
#Set Conversion Metrics
G_conversion = (9.80664999999998)
MperS_conversion = (.3048) #from above
#Replace na's with zeroes to avoid math errors
dataset=dataset.fillna(0)
#Using acceleration measures from 'dataset' dataframe, we convert to meters per second squared
#In our case our acceleration variables are labeled AccX, AccY and AccZ
#In our case, acceleration was in feet per second, so we needed to apply a conversion.
dataset["AccX_mtrpersecsqrd"] = dataset["AccX"]/MperS_conversion]
dataset["AccY_mtrpersecsqrd"] = dataset["AccY"]/MperS_conversion]
dataset["AccZ_mtrpersecsqrd"] = dataset["AccZ"]/MperS_conversion]
#Generate Directionless G-Force measure, call it 'DirectionlessGG'
dataset["DirectionlessGG"] = ((dataset["AccX"]*dataset["AccX"])+(dataset["AccY"]*dataset["AccY"])+dataset["AccZ"]*dataset["AccZ"])).astype(float)
dataset["DirectionlessGG"] = np.sqrt(dataset["DirectionlessGG"])#.astype(float)
#Generate Direction Specific G-Force, call them 'X_GG', 'Y_GG' and 'Z_GG'.
dataset["X_GG"] = dataset["AccX"]/MperS_converstion/G_conversion
dataset["Y_GG"] = dataset["AccY"]/MperS_converstion/G_conversion
dataset["Z_GG"] = dataset["AccZ"]/MperS_converstion/G_conversion
Sie finden das Skript zum Berechnen der g-Force-als auch zusätzliche Berechnungen in das Skript einschließlich g-Force relativ zum Höchstwerte, klicken Sie auf unserer GitHub-Rep am bit.ly/2BPS6nA. Zum Lesen mehr über die physikalische g erzwingt und deren Auswirkung auf die Menschen, sehen Sie sich die "hinter Geschwindigkeits- und: Vollidiot, Snap und höhere Ableitungen"Artikel aus der Europäischen Journal physikalische am bit.ly/2FvLkTD, das beschreibt g-erzwingt, dass relativ zum Kontext der Achterbahn Darstellung. Und einen Überblick über interaktive Workflowdienste Toleranzen sowie Einschränkungen der g-erzwingt, finden Sie in der Wikipedia-Artikel unter bit.ly/2EPQDjE, sowie für die Auflistung NASA Research am go.nasa.gov/2oyS9fj. Weitere Informationen zur Berechnung der g-Force finden Sie unter bit.ly/2Fzxpfa.
Zusammenfassung
Wir benutzerspezifisches und Partner vorgenommenen Sensoren Athleten Datensammlung verwendet, und veranschaulicht die Verwendung von unserem open Source-Sensor-Kit, das mit mobilen apps Sensoren verbindet und Azure-Cosmos-Datenbank. Es wurde erläutert, wie diese Daten mit Statistiktools, wie z. B. R, zum Extrahieren von "Aktivität Signaturen", die der Schaltet die beschreiben, die beim Skifahren Sportler vornehmen zu verarbeiten. Schließlich wir wurde erläutert, wie Daten aus Sensoren zum Berechnen des Athleten Last von g-erzwingt mithilfe von Python verwenden.
Kevin Ashley ist ein Architect Evangelist bei Microsoft. Er ist Mitautor von "Professional Windows 8-Programmierung" (Wrox, 2012) und Entwickler von Top-apps und Spiele, insbesondere Active Eignung (activefitness.co). Er zeigt häufig für Technologie auf verschiedene Ereignisse, zeigt der Branche und Webcasts an Er arbeitet in seiner Funktion mit Startupunternehmen und Partnern zusammen und berät diese bezüglich des Softwareentwurfs, der Geschäfts- und Technologiestrategie, der Architektur und der Entwicklung. Ihm auf Twitter folgen: @kashleytwit.
OLGA Vigdorovichist ein Datenbankadministrator, Datenanalysten und einer Abfahrt engagierter. Er erstellt das Datenmodell und die Back-End für die skalierbare Cloud-Plattformen, die basierend auf Microsoft Azure, einschließlich Winter Sport, für die aktive Eignung am Summit Daten Corp.
Patty Ryanist ein angewendeten Datenanalysten für Microsoft. She Codes mit Partnern und Kunden schwierig Probleme mithilfe von Machine Learning-Ansätze mit Sensor, Text und Vision Daten konfigurieren. Ihr auf Twitter folgen: @singingdata.
Unser Dank gilt dem folgenden technischen Experten von Microsoft für die Durchsicht dieses Artikels: Mona Soliman Habib