ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

Automated Aerobics Trainer

Updated on January 16, 2020
Sumair Sajid profile image

Thank you for visiting my profile! I am dedicated to inspiring innovation through evolving to meet the latest technological demands

Purpose of document

The purpose of this article is to introduce the idea of Automated Aerobics Trainer to the reader. This is to develop the plan for the system that how the workflow will be done.


Definitions, Acronyms, and Abbreviations

 
 
Name/Term
Description
 
 
Kinect
Microsoft Kinect Sensor for Windows.
 
 
MoCap Dataset
Motion Capture Dataset.
 
 
Dataset
Dataset of exercises that is publicly available.
 
 

Introduction

Maintenance of a healthy life depends upon regular exercise. However, many exercisers perform improper exercises during their workouts and as a result they don’t exploit maximum benefit from exercise and also creates increasing risk of injury. These injuries limit a person to move and perform his daily activities. Identification of proper form of exercise is hence very necessary.

The need of building a system, by which a person just repeats exercises and the system analysis exercise, must be considered. Given input from a Microsoft Kinect camera, our objective is to predict which aspects of exercise can be improved most. With this aim, we are developing a system that will overcome these problems.

Our system performs following steps:

  • Pre Processing on dataset.
  • Extracting features from the practicing of person.
  • Constructing model from learned features.
  • Comparing the practical movements of person with the learned model.

Literature Review

This section describes the Automated Aerobics Trainer and components of this system. It uses Microsoft Kinect Camera, Motion Capture Dataset also known as MoCap.

Microsoft Kinect Camera is a device that is used to capture the motion of object. It is a widely used device and used in gaming as well. In this system it will be used to track the motion of the user who is performing the exercise. It will provide the movement and position of joints in 3D space.

Motion Capture Dataset, MoCap provide information of actors who performed exercise and their motion in 2 separate files. One is Acclaim Skeleton File .asf, that contains information of actor and Acclaim Motion Capture file .amc, that file contains motion information. Matlab parser combines the .amc and .asf file to form a complete motion.

Project Vision

Problem Statement

While performing exercise at home, people usually have high risk of injury because of inappropriate movement of our body. Benefits utilization from exercise is also very low when exerciser performs incorrect exercise. These problems may be overcome by hiring instructor, but it comes with its own constraints. In hiring instructor price, quality of instructor and time management are very crucial factor to be considered.

In case of recovering from injuries, people usually have to perform exercises. Patient are shown exercise once because of limited time therapist have, so in this case if there is ambiguity in understanding, this ambiguity may lead to a greater risk.

The need of building a system, by which a person just repeats sample exercises and the system analysis exercise, must be considered. Given input from a Microsoft Kinect camera, our objective is to predict which aspects of exercise can be improved most. With this aim, we proposed this system.

Business Opportunity

This system will provide facilities in multiple domains. It can target anyone who is an exercise performer, whether it’s an individual person or a training institute. Automated Aerobics Trainer is a complete fitness package for a home user. Our system also provides assistance to the physical trainer at gym for improving exercise or at medical center for identifying the incorrect flow to exercise, by looking at the error suggested by the system.

Objectives

Our first and primary objective will be replacing instructor or a physical therapist completely for a home user. Because home based care is very effective and convenient for people. It is also a cost-efficient. We will mainly focus on accuracy of our system, so it could be more reliable and accurate for user. If user performs an incorrect exercise, our system will be capable of guiding the user in real time environment.

Scope

Physical exercise helps restore movement and function when someone is affected by injury, illness or disability. Trainer or instructors help people affected by injury, illness or disability through movement and exercise. They maintain health for people of all ages, helping people to manage pain and prevent disease. Whatever the injury, illness or pain it is, first preference of people is always treatment at home because it is most cost-effective and high quality care. Our proposed system will not only provide home based care but also cost-effective means of recovery. We will mainly focus on replacing the instructor and providing an accurate system that will help person to perform his physical exercise in a correct way.

Constraints

We have following constraint on our system

  • Our system analysis a single person.
  • Kinect camera is necessary for our system.
  • Accuracy depends upon dataset.
  • Injuries cannot be identified.

Stakeholder Description

Our system has following stakeholders

  • User: Person who will be performing exercises.
  • Instructors: Want to observe the movements of athletes.
  • Subjects: Performing exercise to record their skeletal information’s and motions for dataset.
  • Physiotherapist: Observe movements of patients with injuries.

Stakeholder Summary

This section will provide a brief overview on stakeholders and users of the system.

Varieties of parties are interested in this project. Everyone is playing their roles at different stages, from development stage of dataset to the deployment stage of this project in various fields. It begins from organizations like CMU Carnegie Mullen University and many other institutes, which developed dataset known as MoCap. Instructors, Physiotherapist and Athletes need this system in operational form to perform the actions, observe and make recommendations to athletes.

Key High Level Goals and Problems of Stakeholders

Our system will be a practical solution for motion quantification that allows the user to evaluate performance during in-home exercising. It goes beyond the state-of-the-art by monitoring multiple joints and calculating the error while performing exercise.

Our goal is to provide user a real time environment where he can perform exercise and without getting instructor help, he should be able to see analysis on his exercise. For improvement in his performed exercise, our system will recommend user to perform incorrect action again.

System Requirement Specification

The purpose of this system requirement specification is to describe features of this product. Technologies that is necessary for the working of the Automated Aerobics Trainer. Environments in which the developed system will provide accurate results and the sequence in which program will provide services to athletes in order to increase the benefits of the exercise.

This is a desktop-based system, which will use MoCap dataset and train the model for given exercises. Later any user will come and perform the exercise in front of Kinect camera. System will examine the exercise and display the accuracy of the performed exercise.

Features

Automated Aerobics Trainer works in following steps:

  • Displays results of exercise.
  • Performs comparisons with the trained model.
  • Trains the model based on MoCap.
  • Captures skeletal motion of the user performing exercise in front of camera.

Model Training

Description and Priority

Program will add MoCap dataset to train the model. This dataset is developed under a controlled environment. It will classify the different kind of motions. This will be one time process for training dataset.

Stimulus/ Response Sequences

  • User starts the program.
  • Opens the model training tab.
  • Selects the skeletal information
  • Selects the motion information
  • Starts training the model.

Functional Requirements:

REQ-1: Skeletal information is available i.e. .amc files.

REQ-2: Motion information is available .i.e .asf files.

Pre-Processing

Description and Priority

Before analyzing the exercise and training the model, motion will normalized using translation and motion techniques. It will bring skeleton to standard point in the frame.

Stimulus/ Response Sequences

  • System reads MOCAP dataset or motion from the Kinect camera.
  • Performs the translation.
  • Performs the rotations.
  • Now motion will be available for further comparisons.

Functional Requirements:

REQ-1: Skeletal information is available i.e. .amc files.

REQ-2: Motion information is available i.e. .asf files.

REQ-3: Microsoft Kinect Camera is working for capturing movement of user.

Error Measurement

Description and Priority

System will perform analysis on the motion of the user captured from the camera and calculate the errors by doing the comparisons with the trained model and display the errors that occurred during the exercise.

Stimulus/ Response Sequences

  • User selects to perform exercise.
  • Microsoft Kinect Camera starts capturing the motion information.
  • Start performing the exercise.
  • System performs normalization on the captured information.
  • System performs analysis on normalized motions.
  • System measures the errors.

Functional Requirements:

REQ-1: Trained model of exercises.

REQ-2: Kinect camera captures the motion.

REQ-3: Pre-Processing module working.

Live Suggestion

Description and Priority

If the user is performing the incorrect motion system will identify the points where user is performing incorrect motion by highlighting those points.

Stimulus/ Response Sequences

  • User selects perform exercise.
  • Start performing the exercise.
  • System starts examining the exercise.
  • System highlights the points where user is incorrect.

Functional Requirements:

REQ-1: Trained model of exercises.

REQ-2: Kinect camera captures the motion.

REQ-3: Pre-Processing module working.

ALERT

Description and Priority

If the user is performing the incorrect motion system will alert beep and beep stops when the motion is correct again.

Stimulus/ Response Sequences

  • User selects perform exercise.
  • Start performing the exercise.
  • System starts examining the exercise.
  • If the user perform incorrect exercise system starts beep.
  • After user performs the correct exercise beep stops.

Functional Requirements:

REQ-1: Trained model of exercises.

REQ-2: Kinect camera captures the motion.

REQ-3: Pre-Processing module working.

REQ-4: Sound device is connected.

Workout Report

Report will be generated after completion of workout.

Stimulus/ Response Sequences

  • User selects perform exercise.
  • Start performing the exercise.
  • System starts examining the exercise.
  • Analyses the overall workout
  • Show results accuracy in form of percentage.

Functional Requirements:

REQ-1: Trained model of exercises.

REQ-2: Kinect camera captures the motion.

REQ-3: Pre-Processing module working.

Functional Requirements

Robustness

The system needs to be robust enough generate a realistic and accurate environment based on the locations of the Kinect camera and performer. The system should also be able to dynamically accommodate all position and lightning issues so that a clear and accurate input is obtained for the calculation of errors.

Reliability

The system should able to continuously run for a long duration of time and should not suffer from system slowdowns or crashes caused from memory leaks and arbitrary actions. System should be reliable in all type of interrupt e.g. another person is entering the Kinect area.

Portability

The software should be able to run on any Microsoft windows based platform. To set up and tear down the entire system, displays need to be set in place and user not disturb while performing exercise. The atmosphere is just like instructor is observing the performer. Kinect need to be connected to the computer. Ideal set up/tear down time should be approximately two minutes.

Ease of Use

Someone with little to none technical experience in the operations of electronics should be able to setup and use this system by following a simple set of instructions or some video tutorials.

Ease of Learning

The learning curve for this software should be short since the software should perform the corresponding tasks based on natural human motions.


Use Case Diagram

Use Case Diagram
Use Case Diagram | Source

High Level Use Cases

Initiate Session

 
 
Use case ID:
1
Use case Name:
Initiate Session
Actor:
User
Type:
Primary
Description:
System should be initiated before use.

Choose Excercise

 
 
Use case ID:
2
Use case Name:
Choose Exercise
Actor:
User
Type:
Primary
Description:
Person can choose any exercise from the given list.

Animate Excercise

 
 
Use case ID:
3
Use case Name:
Animate Exercise
Actor:
User
Type:
Primary
Description:
Person can view how to perform the selected exercise.

Suggest About Excercise

 
 
Use case ID:
4
Use case Name:
Suggest about Exercise
Actor:
System
Type:
Primary
Description:
After person has performed exercise, he can get the suggestion from the system about his exercise.

View Report

 
 
Use case ID:
5
Use case Name:
View Report
Actor:
User
Type:
Primary
Description:
After performing exercise, Person can view the error in his exercise in form of percentage, or by highlighting wrong steps.

Train Data for Excercise

 
 
Use case ID:
6
Use case Name:
Train Data for Exercise
Actor:
System
Type:
Primary
Description:
System needs to be trained for performing analysis on exercises.

Detect Skeleton

 
 
Use case ID:
7
Use case Name:
Detect Skeleton
Actor:
System
Type:
Secondary
Description:
When person comes in front of camera, system must detect its skeleton

Normalize 2D Features

 
 
Use case ID:
8
Use case Name:
Normalize 2D Features
Actor:
System
Type:
Primary
Description:
Perform translation and rotations on images received from Kinect camera.

Extract 2D Features

 
 
Use case ID:
9
Use case Name:
Extract 2D Features
Actor:
System
Type:
Primary
Description:
After normalization of frames, features must be extracted

Normalize 3D Features

 
 
Use case ID:
10
Use case Name:
Normalize 3D Features
Actor:
System
Type:
Primary
Description:
Normalize 3D features of MoCap using translation and rotation.

Extract 3D Features

 
 
Use case ID:
11
Use case Name:
Extract 3D Features
Actor:
System
Type:
Primary
Description:
Extract 3D features from a normalized MoCap Data.

Extended Use Cases

Initiate Session

 
 
Use case ID
1
Use case Name
Initiate Session
Actor:
User
Description:
System should be initiated before use
Trigger:
Event will be initiated by the User
Pre-condition:
Person has system
Post-condition:
Person initiate session
Normal Flow:
1. User stand in front of Kinect camera
 
2. Kinect detects user
 
3. System allow person to perform exercise
Alternative Flow:
2a. Kinect doesnot detect user. Use case ends
Frequency of use:
High
Special requirements:
Kinect camera is connected

Choose Excercise

 
 
Use case ID
2
Use case Name
Choose Exercise
Actor:
User
Description:
Person can choose any exercise from the given list.
Trigger:
Event will be trigger by the User
Pre-condition:
Person must have access to system
Post-condition:
Selected exercise is displayed
Normal Flow:
1. User click on menu button
 
2. User select view exercise tab
 
3. User selects required exercise from list
 
4. System selects the required exercise
Alternative Flow:
3a. List of exercise is not displayed by system
 
3b. System tries to fetch exercise list from database
Frequency of use:
Normal
Special requirements:
None

Animate Exercise

 
 
Use case ID
3
Use case Name
Animate Exercise
Actor:
User
Description:
Person can view, how to perform the selected exercise
Trigger:
Event will be trigger by User.
Pre-condition:
Exercise is selected
Post-condition:
System shows how to perform exercise
Normal Flow:
1. User clicks on Animate exercise
 
2. System animate exercise
Alternative Flow:
2a. System doesnot animate exercise.
 
2b. System goes back to menu
Frequency of use:
Normal
Special requirements:
None
 
 
 
 

Suggest About Exercise

 
 
Use case ID
4
Use case Name
Suggest about Exercise
Actor:
System.
Description:
After person has performed exercise, he can get the suggestion from the system about his exercise
Trigger:
Event will be triggered by the User.
Pre-condition:
Exercise is performed
Post-condition:
Person gets suggestion about his exercise
Normal Flow:
1. User clicks on get suggestion button
 
2.System perform analysis on exercise
 
3. System displays suggestion for exercise
Alternative Flow:
2a. Exercise is not performed by user
 
2b. System ask to repeat exercise
Frequency of use:
Normal
Special requirements:
None
 
 

View Report

 
 
Use case ID
5
Use case Name
View Report
Actor:
User
Description:
After performing exercise, Person can view the error in his exercise in form of percentage, or by highlighting wrong steps
Trigger:
Event will be triggered by the User.
Pre-condition:
Exercise is performed
Post-condition:
Error is displayed on screen
Normal Flow:
1.User perform exercise
 
2. System analysis the exercise
 
3. System let user to view error in two forms
 
4. User selects to view error in form of percentage or wronged performed steps
Alternative Flow:
2a. System doesnot perform analysis on exercise
 
2b. System ask to perform exercise again
Frequency of use:
High
Special requirements:
Model is trained

Train Data For Exercise

 
 
Use case ID
6
Use case Name
Train Data for Exercise
Actor:
System
Description:
System needs to be trained for performing analysis on exercises.
Trigger:
Event will be triggered by the System.
Pre-condition:
System has dataset for training
Post-condition:
System is trained for performing analysis on exercise
Normal Flow:
1. Programmer writes the algorithm
 
2. Dataset is trained on algorithm
 
3. System is ready to perform analysis on performed exercise.
Alternative Flow:
2a. Model is not trained.
 
2b. System displays error
 
2c. System is not ready to perform analysis
Frequency of use:
High
Special requirements:
None

Detect Skeleton

 
 
Use case ID
7
Use case Name
Detect Skeleton
Actor:
System
Description:
When person comes in front of camera, system must detect its skeleton
Trigger:
Event will be triggered by the System.
Pre-condition:
Kinect camera is present
Post-condition:
Skeleton is detected
Normal Flow:
1. User stand in front of Kinect camera
 
2. Kinect detects the person
 
3. System makes its skeleton
Alternative Flow:
3a. System doesnot draw skeleton. Use case ends.
Frequency of use:
High
Special requirements:
User must be present in front of Kinect camera
 
 
 
 

Normalize 2D Features

 
 
Use case ID
8
Use case Name
Normalize 2D Features
Actor:
System
Description:
Perform translation and rotations on images received from Kinect camera.
Trigger:
Event will be triggered by the System.
Pre-condition:
Kinect camera is present
Post-condition:
Normalized features.
Normal Flow:
1. System will capture motion using Kinect camera.
 
2. System performs normalization.
 
3. System performs translation.
Alternative Flow:
1a. System doesnot capture motion
 
2b. Check Kinect Camera and recapture
Frequency of use:
High
Special requirements:
None
 
 

Extract 2D Features

 
 
Use case ID
9
Use case Name
Extract 2D Features
Actor:
System
Description:
Extract 2D features from normalized data.
Trigger:
Event will be triggered by the System.
Pre-condition:
Normalized data is available.
Post-condition:
Extracted features of motion.
Normal Flow:
1. Normalized 2D data available.
 
2. Extract features of motion from normalized data.
Alternative Flow:
1a. No normalized data available. Use Case ends.
Frequency of use:
High
Special requirements:
Normalized data must be available.
 
 
 
 
 
 

Normalize 3D Features

 
 
Use case ID
10
Use case Name
Normalize 3D Features
Actor:
System
Description:
Normalize 3D features of MoCap using translation and rotation.
Trigger:
Event will be triggered by the System.
Pre-condition:
MoCap is available.
Post-condition:
Normalized 3D features.
Normal Flow:
1. System will use MoCap data.
 
2. System performs rotation.
 
3. System performs translation.
Alternative Flow:
1a. System doesnot get MoCap data.
 
1b. System doesnot perform normalization.
Frequency of use:
Low
Special requirements:
MoCap is available.
 
 

Extract 3D Features

 
 
Use case ID
11
Use case Name
Extract 3D Features
Actor:
System
Description:
Extract 3D features of motion from a MoCap.
Trigger:
Event will be triggered by the System.
Pre-condition:
Normalized data is available.
Post-condition:
Extracted features of motion.
Normal Flow:
1. Normalized 2D data available.
 
2. Extract features of motion from normalized data.
Alternative Flow:
1a. No normalized data available. Use Case ends.
Frequency of use:
Low
Special requirements:
Normalized data must be available.
 
 
 
 
 
 

Activity Diagram

Activity Diagram
Activity Diagram | Source

Domain Model

Domain Model
Domain Model | Source

Class Diagram

Class Diagram
Class Diagram | Source

Operation Contracts

InitiateSession();

Contract ID:
OC-1
Operation:
InitiateSession();
Type:
Class
Cross Reference:
Use Case: Initiate Session
Pre-Condition:
Person has system
Post-Condition:
Access is granted to person

ChoseExercise();

Contract ID:
OC-2
Operation:
ChoseExercise();
Type:
Class
Cross-Reference:
Use Case: Choose Exercise
Pre-Condition:
Person must have access to system
Post-Condition:
Selected exercise is displayed

AnimateExercise();

Contract ID:
OC-3
Operation:
AnimateExercise();
Type:
Class
Cross-Reference:
Use Case: Animate exercise
Pre-Condition:
Exercise is selected
Post-Condition:
System shows how to perform exercise

SuggestExercise();

Contract ID:
OC-4
Operation:
SuggestExercise();
Type:
Class
Cross-Reference:
Use Case: Suggest about Exercise
Pre-Condition:
Exercise is performed
Post-Condition:
Person gets suggestion about his exercise

ViewReport();

Contract ID:
OC-5
Operation:
ViewReport();
Type:
Class
Cross-Reference:
Use Case: View Report
Pre-Condition:
Exercise is performed
Post-Condition:
Error is displayed on screen

Sequence Diagram

Initiate Session

Initiate Session
Initiate Session | Source

Perform Exercise

Perform Exercise
Perform Exercise | Source

Choose Exercise

Choose Exercise
Choose Exercise | Source

View Report

View Report
View Report | Source

Suggest for Exercise

Suggest for Exercise
Suggest for Exercise | Source

Normalize 2D Feature

Normalize 2D Feature
Normalize 2D Feature | Source

Extract 2D Feature

Extract 2D Feature
Extract 2D Feature | Source

Detect Skeleton

Detect Skeleton
Detect Skeleton | Source

Normalize 3D Feature

Normalize 3D Feature
Normalize 3D Feature | Source

Extract 3D Feature

Extract 3D Feature
Extract 3D Feature | Source

System Sequence Diagram

System Sequence Diagram
System Sequence Diagram | Source

Architecture Diagram

Architecture Diagram
Architecture Diagram | Source

References

[1] http://resources.mpi-inf.mpg.de/HDM05/

[2] http://MoCap.cs.cmu.edu/search.php?maincat=4&subcat=9

[3] Vo Tran Trong Nghia. “Time Validating the Accuracy of Physiotherapy Exercises.” Department of Computer Science and Information Engineering, National Central University, Taiwan. 2017 IEEE International Conference on Consumer Electronics.

Comments

    0 of 8192 characters used
    Post Comment

    No comments yet.

    working

    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://maven.io/company/pages/privacy

    Show Details
    Necessary
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
    Features
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Marketing
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Statistics
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)
    ClickscoThis is a data management platform studying reader behavior (Privacy Policy)