Recognizing human motion using KNN
Core Motion is an iOS framework that provides an API for inertial sensors of mobile devices. It also recognizes some user motion types, and stores them to the HealthKit database.
Note
If you are not familiar with Core Motion API, please check the framework reference: https://developer.apple.com/reference/coremotion. The code for this example can be found in the Code/02DistanceBased/ MotionClassification
folder of supplementary materials.
As per iOS 11 beta 2, the CMMotionActivity
class includes the following types of motion:
- Stationary
- Walking
- Running
- Automotive
- Cycling
Everything else falls into an unknown category or is recognized as one of the preceding. Core Motion doesn't provide a way to recognize custom motion types so we'll train our own classifier for this purpose. Unlike decision trees from the previous chapter, KNN will be trained on device end-to-end. It will also not be frozen inside Core ML because as we keep all the control on it, we'll be able to...