1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957 |
- #LyX 1.6.5 created this file. For more info see http://www.lyx.org/
- \lyxformat 345
- \begin_document
- \begin_header
- \textclass article
- \use_default_options true
- \language english
- \inputencoding auto
- \font_roman default
- \font_sans default
- \font_typewriter default
- \font_default_family default
- \font_sc false
- \font_osf false
- \font_sf_scale 100
- \font_tt_scale 100
-
- \graphics default
- \paperfontsize default
- \spacing single
- \use_hyperref false
- \papersize a4paper
- \use_geometry false
- \use_amsmath 1
- \use_esint 1
- \cite_engine basic
- \use_bibtopic false
- \paperorientation portrait
- \secnumdepth 3
- \tocdepth 3
- \paragraph_separation skip
- \defskip medskip
- \quotes_language english
- \papercolumns 1
- \papersides 1
- \paperpagestyle default
- \tracking_changes false
- \output_changes false
- \author ""
- \author ""
- \end_header
-
- \begin_body
-
- \begin_layout Title
- Context-Aware API for Android Devices
- \end_layout
-
- \begin_layout Author
- Chris Smith
- \begin_inset Newline newline
- \end_inset
-
- Supervisor: Naranker Dulay
- \end_layout
-
- \begin_layout Date
- Summer 2010
- \end_layout
-
- \begin_layout Standard
- All materials can be accessed electronically at:
- \end_layout
-
- \begin_layout Standard
- /homes/cs106/....
- \end_layout
-
- \begin_layout Standard
- \begin_inset Newpage pagebreak
- \end_inset
-
-
- \end_layout
-
- \begin_layout Abstract
- In recent years location-based services have seen a dramatic increase in
- adoption, and all modern smartphone platforms have integrated services
- to facilitate the creation location-aware applications.
- Such applications enhance the experience of users, using location to modify
- content or alter the behaviour of the application to better suit the circumstan
- ces.
- \end_layout
-
- \begin_layout Abstract
- The product of this project is a
- \emph on
- context
- \emph default
- -aware API for the Android platform.
- This allows applications to augment the already available location data
- with extra
- \emph on
- context
- \emph default
- about the user's situation - primarily their current activity.
- It also develops an algorithm for recognising
- \emph on
- places
- \emph default
- which are relevant to the user, and monitoring which activities are performed
- in
- \emph on
- journeys
- \emph default
- between those places, thus enabling predictions of the user's likely destinatio
- n based on their activity.
- \end_layout
-
- \begin_layout Abstract
- Research into other methods of annotating context was conducted, and it
- was found that most potential sources of context information either produced
- little or no information, or were too battery-draining to perform in a
- real world environment with current technology.
- Much effort was placed into optimising the API to have as small effect
- on battery life as possible.
- \end_layout
-
- \begin_layout Abstract
- A context-aware API was successfully produced, along with a collection of
- applications which use the API in order to demonstrate its features or
- provide example use cases.
- \end_layout
-
- \begin_layout Standard
- \begin_inset Newpage pagebreak
- \end_inset
-
-
- \end_layout
-
- \begin_layout LyX-Code
- \begin_inset CommandInset toc
- LatexCommand tableofcontents
-
- \end_inset
-
-
- \end_layout
-
- \begin_layout LyX-Code
- \begin_inset Newpage pagebreak
- \end_inset
-
-
- \end_layout
-
- \begin_layout Part
- Introduction
- \end_layout
-
- \begin_layout Section
- Proposal
- \end_layout
-
- \begin_layout Quote
- Objective: to create an API for android applications to query the user's
- [probable] current activity, and to consider and implement possible uses
- for this API in existing applications.
- The user's activity would be determined based on available sensor and ambient
- data (e.g.
- time, location, orientation/movement of device, background noises, camera
- image, in-range bluetooth devices, etc), previous behaviour of the user,
- and possibly behaviour of other users which has been shared between devices.
- \end_layout
-
- \begin_layout Quote
- Motivation: Activity-awareness would be a major step forward in making mobile
- devices better able to adapt to what the user wants to do with them.
- The latest generation of mobile phones have made location-aware applications
- quite ubiquitous, and a lot of these could be further enhanced by making
- them activity aware.
- For example, an application which lists businesses in a certain area could
- not only know the search area (by merit of being location-aware), but could
- also make an educated guess at what you're looking for (e.g.
- the activity API may suggest the user is likely to be going to lunch, so
- the application could initially show nearby eating establishments instead
- of requiring the user to search for them).
- \end_layout
-
- \begin_layout Quote
- Challenges/issues: primary challenge is developing an algorithm which can
- make reasonable estimates as to the user's activity (or attempting and
- then justifying why such an algorithm is not feasible, and investigating
- requirements or alternatives), and would form the bulk of the project.
- Sub-challenges within this include: researching/implementing machine learning
- techniques so the algorithm can take previous behaviour into account, processin
- g data from 'messy' inputs such as mic/camera, and designing an API that
- would enable third-party app developers to easily make their applications
- activity aware.
- \end_layout
-
- \begin_layout Quote
- Approach: data from sensors would need to be processed (e.g.
- mic input processed into a figure for ambient noise level in dB).
- The combination of this processed data would then need to be fed into an
- algorithm (possibly a neural network) to determine likelihood of various
- activities.
- There would need to be some mechanism for users to correct or train the
- system (at least initially), and it's possible that this data could then
- be shared to other users of the api/application.
- \end_layout
-
- \begin_layout Section
- Aims and Motivation
- \end_layout
-
- \begin_layout Standard
- The primary aim of this project is to create an application for the Android
- platform that can sense the user's context in some fashion.
- This application will have a public interface which will allow other applicatio
- ns written by third party developers to read and receive updates about the
- user's context.
- \end_layout
-
- \begin_layout Standard
- The ease of access to location aware services in modern smartphone platforms
- has lead to a surge in the number of applications which improve their utility
- or behaviour by integrating location information.
- It stands to reason that if additional context information were available,
- developers would be able to take advantage of this and further improve
- the utility of their applications.
- This, in turn, would increase the productivity of the end-user.
- \end_layout
-
- \begin_layout Standard
- As discussed in
- \begin_inset CommandInset ref
- LatexCommand ref
- reference "par:Background"
-
- \end_inset
-
- , a large amount of existing research has been done on context-aware devices,
- and specifically on activity-aware systems.
- There have also been some limited implementations for smartphones.
- Unfortunately, the end product of most of this research is not suitable
- for deployment or use in practical, every-day circumstances.
- This project aims to produce a working prototype which can be used on a
- day-to-day basis on an Android smartphone without significantly degrading
- performance.
- \end_layout
-
- \begin_layout Section
- Issues and challenges
- \end_layout
-
- \begin_layout Standard
- One of the main challenges for this project will be accomplashing accurate
- and useful context-awareness without significantly hindering the battery
- life or performance of a typical device.
- Existing algorithms tend to be extremely verbose, sometimes performing
- upwards of thousands of calculations per classification; on a mobile device
- this is likely to severely cripple battery life.
- \end_layout
-
- \begin_layout Standard
- The problem of battery life affects all areas of the project - from how
- often data is collected, how the data is then analysed, and which sources
- of potential data are consulted.
- A large amount of time will need to be spent analysing the various potential
- data sources and establishing whether or not the cost in consulting them
- is worth the reduction in battery lifetime and any gain in the reliability
- or accuracy of context information.
- \end_layout
-
- \begin_layout Standard
- The aim of the application is to provide the context data to third-party
- applications, so another challenge will be designing an appropriate interface
- which will allow applications to query and receive updates about the user's
- context.
- Consideration will have to be given as to any security measures (such as
- access control) which may need to be applied in order to protect user privacy.
- \end_layout
-
- \begin_layout Standard
- \begin_inset Newpage pagebreak
- \end_inset
-
-
- \end_layout
-
- \begin_layout Part
- Background
- \begin_inset CommandInset label
- LatexCommand label
- name "par:Background"
-
- \end_inset
-
-
- \end_layout
-
- \begin_layout Standard
- Context- or Activity-Aware devices is an area currently under lots of research.
- There are many and varied applications of activity-aware devices, ranging
- from personal fitness and healthcare to training factory workers or merely
- playing music.
- \end_layout
-
- \begin_layout Standard
- While this research is going on, there has been a huge expansion in the
- ownership, use and power of mobile telephones.
- Mobile telephones are so ubiquitous and now come with such a large sensor
- platform that they are the obvious choice for implementing activity-aware
- technologies for use in day-to-day life.
- \end_layout
-
- \begin_layout Standard
- This project aims to make a context-aware API available on an open mobile
- platform, which will enable developers to start adding context-aware functional
- ity to their applications without the extremely large overhead of writing
- a logger and classifier themselves, or re-engineering the application to
- use an existing context-aware framework if one is available.
- \end_layout
-
- \begin_layout Section
- Applications
- \end_layout
-
- \begin_layout Standard
- There are many documented applications of activity-aware systems, and current
- research efforts which bring the technology to mobile telephones will only
- serve to lengthen this list.
- \end_layout
-
- \begin_layout Standard
- The canonical example for activity-awareness, especially on mobile telephones,
- is modeling the user's
- \begin_inset Quotes eld
- \end_inset
-
- interruptibility
- \begin_inset Quotes erd
- \end_inset
-
-
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Siewiorek2003,Raento2005"
-
- \end_inset
-
- .
- This allows the software to know whether it's appropriate (or "polite")
- to disturb the user, and can advise the user's contacts when they are busy.
- It can also be used to create a
- \begin_inset Quotes eld
- \end_inset
-
- smart answering machine
- \begin_inset Quotes erd
- \end_inset
-
-
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Hudson2003"
-
- \end_inset
-
- which can selectively direct calls straight to an answering machine if
- the user is engaged in an "uninterpretable" activity and the call does
- not appear to be important.
- These allow the user's mobile telephone to better approximate human behaviour
- - when approaching someone in person it is normally quite easy to determine
- whether it would be polite or necessary to disturb them, based on their
- demeanour, activity, and the urgency of your request; when picking up the
- telephone it is not possible at all without assistance from an activity-aware
- system.
- \end_layout
-
- \begin_layout Standard
- The current implementations of these ideas have several problems, however.
- The more interesting research
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Hudson2003"
-
- \end_inset
-
- requires a static camera fixed in an office to observe user behaviour,
- instead of implementing it directly on a telephone, which obviously constrains
- its usefulness.
- Of the two solutions actually targeted at mobile telephones, one
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Siewiorek2003"
-
- \end_inset
-
- requires bulky custom hardware which the user must carry on their belt,
- and the other
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Raento2005"
-
- \end_inset
-
- does not expose an API to other applications and only surfaces the context-aware
- functionality in two small applications whose focus is on social interaction
- rather than improving the user's experience of the telephone locally.
- This project will aim to bring the ideas of these to generic hardware (an
- Android mobile telephone), and to provide an API which other applications
- can harness.
- \end_layout
-
- \begin_layout Standard
- One use particularly suitable for mobile phones is dynamic adaptation of
- the device's settings based on the user's current activity and context
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Schmidt1999"
-
- \end_inset
-
- .
- When a user is walking the device can dynamically increase the font size
- to make it easier to read with an unsteady hand, and correspondingly decrease
- it when the user is stationary.
- In a similar fashion, the brightness of the backlight can be altered based
- on the ambient light level, and the ringer volume altered according to
- the noise level.
- Unfortunately this research did not progress beyond a feasibility study
- and was implemented on a Nokia 6110, which is severely outdated by today's
- standards.
-
- \end_layout
-
- \begin_layout Standard
- Another popular area for activity-aware systems is in healthcare.
- Such systems can be used to monitor vulnerable people as they go about
- day to day activities to ensure that they're not in trouble - several systems
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Song2005,Maurer2006"
-
- \end_inset
-
- can be used to monitor elderly persons and summon help if it is detected
- that they have fallen.
- Another healthcare application
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Tentori2008"
-
- \end_inset
-
- allows nurses to remotely monitor the activities of their patients in a
- hospital ward, allowing them to respond to problems and keep up-to-date
- with their patients' well-being while not physically present.
- Activity-aware applications have also been used to try to encourage users
- to be more healthy; one novel application records the day-to-day fitness
- activities a user performs and uses this as a basis for a virtual
- \begin_inset Quotes eld
- \end_inset
-
- garden
- \begin_inset Quotes erd
- \end_inset
-
- that blossoms or wilts according to how much the user works out in a week
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Consolvo2008"
-
- \end_inset
-
- .
- \end_layout
-
- \begin_layout Standard
- As well as monitoring activities which the user is familiar with, activity-aware
- systems can also be used to assist users in learning new activities.
- One application
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Stiefmeier2008"
-
- \end_inset
-
- monitors the activities of trainee workers in a car manufacturing plant,
- and helps to provide a link between theoretical classroom-based training
- and practical work.
- The activity-aware system can offer advice to the workers that's directly
- related to the current task they're performing, and can even monitor their
- activities for compliance with procedures and give them a score afterwards.
- \end_layout
-
- \begin_layout Standard
- While the research into healthcare and training applications present novel
- uses of activity-aware systems, the applications themselves are not really
- applicable to a mobile device or the scope of this project.
- The research does, however, describe the techniques used in those applications
- for activity classification and should prove useful in that respect.
- \end_layout
-
- \begin_layout Standard
- Other areas of research include making activity-aware suggestions to the
- user
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Bellotti2008"
-
- \end_inset
-
- , or issuing reminders or alerts based on the user's activity
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Schilit1994"
-
- \end_inset
-
- .
- One example of the latter is an activity-aware system that detects when
- the user is making coffee, and plays a sound on a remote computer to alert
- thirsty coworkers to the fact.
- Sound isn't only limited to alerts, however: the
- \noun on
- XPOD
- \noun default
-
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Dornbush2005"
-
- \end_inset
-
- project is an activity-aware music player, which tailors the music being
- played to the user's current activity based on their past ratings.
- This type of activity-aware device presents a much greater level of personalisa
- tion than previously possible, and making this type of customisation available
- to mobile telephone users and application developers will surely result
- in many new applications.
- \end_layout
-
- \begin_layout Section
- Inferring activity
- \end_layout
-
- \begin_layout Standard
- There are three general phases in most context-aware systems: a sensing
- component, which reads or receives raw sensor data relating to the user's
- environment or activity; a feature extraction component, which analysis
- the sensor data and identifies a set of features from that data; and a
- classification component, which uses the extracted features to reason about
- the user's activity
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Choudhury2008"
-
- \end_inset
-
- .
- Each of these components will be expanded on below.
- Depending on the method of classification, some initial or continuous training
- may be required, and this is also considered below.
- \end_layout
-
- \begin_layout Subsection
- Sensors and devices
- \end_layout
-
- \begin_layout Standard
- At the basis of activity-recognition are the physical hardware sensors.
- The most commonly used sensor is the accelerometer, which outputs the accelerat
- ion of the sensor
- \begin_inset Foot
- status collapsed
-
- \begin_layout Plain Layout
- and thus the device to which it's attached, and therefore the person using
- the device
- \end_layout
-
- \end_inset
-
- along a certain axis.
- There is extensive research on using accelerometers to classify activities
- such as walking
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Mathie2004,Garakani2009"
-
- \end_inset
-
- (including whether or not the subject is walking on flat ground or up and
- down stairs
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Caros2005"
-
- \end_inset
-
- ), running
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Garakani2009"
-
- \end_inset
-
- , falling
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Mathie2004"
-
- \end_inset
-
- , sitting
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Mathie2004,Garakani2009"
-
- \end_inset
-
- , cycling
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Garakani2009"
-
- \end_inset
-
- , etc.
- \end_layout
-
- \begin_layout Standard
- Accelerometers can be combined with magnetic field sensors to convert the
- relative acceleration of the device into an absolute acceleration with
- respect to the Earth.
- This is particularly important when the sensor platform - a mobile telephone
- - can be oriented in different ways while performing the same activity.
- There are, for example, four different ways to comfortably fit a typical
- smartphone into a trouser pocket, made up of two possible orientations
- around two axis
- \begin_inset Foot
- status collapsed
-
- \begin_layout Plain Layout
- screen facing towards or away from the body, and the device oriented the
- right way up or upside down
- \end_layout
-
- \end_inset
-
- .
- With just raw accelerometer data these four orientations would lead to
- different data for the same activity, but with the combination of magnetic
- field sensors we can normalise them.
- \end_layout
-
- \begin_layout Standard
- Smartphones also come equipped with a microphone and GSM stack (prerequisites
- for a telephone conversation!), and commonly a camera, geolocation API
- (usually backed by GPS) and Bluetooth stack.
- With the exception of the latter two, these types of sensors are not particular
- ly well explored for their use in context-aware systems at present.
- It is easy to reason how each would be useful - a microphone can reveal
- the ambient noise, which could indicate the difference between sitting
- in a library and a bar; the camera likewise can reveal the lighting conditions
- (if the device is not in a pocket or bag).
- The GSM stack can provide rough location information and also a signal
- strength to one or more cell towers; the signal strength will vary both
- with the user's proximity to the cell tower and the environment around
- them - being inside will degrade the signal more than being in open air,
- for example - so may provide vital clues to a context-aware system.
- One aspect of this project will be to research how the microphone, camera
- and GSM stack can be used to enhance existing activity classification algorithm
- s.
- \end_layout
-
- \begin_layout Standard
- Current research on location information and Bluetooth device proximity
- is summarised in section
- \begin_inset CommandInset ref
- LatexCommand ref
- reference "sec:Location-analysis"
-
- \end_inset
-
- (p
- \begin_inset CommandInset ref
- LatexCommand pageref
- reference "sec:Location-analysis"
-
- \end_inset
-
- ) and
- \begin_inset CommandInset ref
- LatexCommand ref
- reference "sec:Bluetooth"
-
- \end_inset
-
- (p
- \begin_inset CommandInset ref
- LatexCommand pageref
- reference "sec:Bluetooth"
-
- \end_inset
-
- ) respectively.
- \end_layout
-
- \begin_layout Subsection
- Feature detection
- \end_layout
-
- \begin_layout Standard
- It is not possible to reason directly about raw sensor inputs, so the next
- step in inferring activities is to extract useful
- \emph on
- features
- \emph default
- from the raw input.
- Features are usually mathematical properties of the input data, such as
- the difference between the minimum and maximum data point in a given time
- frame.
- Most classifiers use an extremely large number of features -
- \begin_inset CommandInset citation
- LatexCommand citet
- key "Hein2008"
-
- \end_inset
-
- detect 562 different features from their inputs.
- \end_layout
-
- \begin_layout Standard
- Some of the more commonly used features in activity-recognition systems
- are: mean, standard deviation, energy, entropy, correlation between axis,
- and discrete FFT coefficients
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Huynh2005"
-
- \end_inset
-
- .
- Obviously, not all features are of equal value.
- FFT coefficients are generally very good indicators of activity, but the
- ideal coefficients and window sizes vary depending on the exact activity
- that is being detected.
- Likewise, the choice of other features to give the best recognition rate
- varies depending on the activity being detected
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Huynh2005"
-
- \end_inset
-
- .
- \end_layout
-
- \begin_layout Standard
- As the sensor data is received continuously, it needs to be partitioned
- somehow before features are extracted.
- Most implementations use a sliding window approach with a 50% overlap between
- windows
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Bao2004"
-
- \end_inset
-
- .
- A window size of 10 seconds with a 50% overlap would result in one set
- of features being computed every 5 seconds.
- The window size is normally selected to correspond to a pre-defined number
- of samples to enable fast computation of certain features - most notably
- FFTs
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Bao2004"
-
- \end_inset
-
- .
- \end_layout
-
- \begin_layout Standard
- One challenge will be determining a set of features that are robust enough
- to perform activity analysis on, but are sufficiently inexpensive to calculate
- continually on a mobile device, where CPU speed is limited and excessive
- usage results in undesirable higher battery consumption.
- \end_layout
-
- \begin_layout Subsection
- Training
- \end_layout
-
- \begin_layout Standard
- In order to meaningfully classify and label activities, some kind of training
- generally needs to be performed beforehand.
- The choice of classifier affects how much offline analysis has to be done
- on the training set, and whether or not it can be adapted at run-time.
- \end_layout
-
- \begin_layout Standard
- One might expect that training would best be performed in a controlled environme
- nt, to reduce external influences on the user, but subjects in a laboratory
- setting are much more self-conscious about their movements, and this manifests
- itself in the data collected.
- Walking in a laboratory tends to produce acceleration data showing a consistent
- gait cycle which can be split into distinct phases, whereas walking in
- an uncontrolled setting produces data showing large fluctuations in gait
- phases and length.
- This means that classifiers trained on laboratory data may achieve a much
- lower accuracy when deployed in natural conditions
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Bao2004"
-
- \end_inset
-
- .
- \end_layout
-
- \begin_layout Subsection
- Classification
- \end_layout
-
- \begin_layout Standard
- The classification step involves feeding the features for frame into some
- kind of machine learning algorithm which can, using training data
- \begin_inset Foot
- status collapsed
-
- \begin_layout Plain Layout
- and any offline analysis made of that data
- \end_layout
-
- \end_inset
-
- , determine which activity the feature-set most like represents.
- There are many different algorithms that can be used to perform the classificat
- ion, some of which are discussed below.
- \end_layout
-
- \begin_layout Subsubsection
- Decision trees
- \end_layout
-
- \begin_layout Standard
- Decision trees are possibly one of the simplest approaches possible
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Hudson2003"
-
- \end_inset
-
- .
- A tree is constructed such that each node contains a test function, with
- branches for each possible discrete outcome of the function.
- This allows data to be classified with a
- \begin_inset Quotes eld
- \end_inset
-
- divide and conquer
- \begin_inset Quotes erd
- \end_inset
-
- approach.
- While high accuracy is possible in some circumstances
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Hudson2003"
-
- \end_inset
-
- , there are several drawbacks to decision trees: a plain decision tree has
- no way to model uncertainty - in an activity-aware system there will always
- be a degree of uncertainty as to the classification, and being able to
- measure this is an important tool.
- They also have an inductive bias which leads to a preference for the most
- general solution, and in most cases this generalisation causes many false
- results
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Shen2004"
-
- \end_inset
-
- .
- \end_layout
-
- \begin_layout Standard
- Decision trees require the structure of the tree and the test functions
- for each node to be determined during training.
- They do not lend themselves to minor on-the-fly modifications or new activities
- that are not part of the training set.
- \end_layout
-
- \begin_layout Subsubsection
- Neural networks
- \end_layout
-
- \begin_layout Standard
- Neural networks are based on an extremely simplified model of the brain.
- The network consists of layers of neurons, and each neuron performs a simple
- arithmetic operation on its inputs.
- This normally consists of taking each of its inputs, multiplying it by
- a weight, and then summing all of the weighted inputs together; the resulting
- figure then becomes the neuron's output, and the input to one or more nodes
- in the next layer.
- \end_layout
-
- \begin_layout Standard
- A network consists of a layer of input neurons, a layer containing one or
- more output neurons, and one or more layers of
- \begin_inset Quotes eld
- \end_inset
-
- hidden
- \begin_inset Quotes erd
- \end_inset
-
- neurons in between.
- The number of
- \begin_inset Quotes eld
- \end_inset
-
- hidden
- \begin_inset Quotes erd
- \end_inset
-
- layers, and the number of neurons within those layers must be chosen before
- training of the network begins.
- The training process will then determine the weights for each link in the
- network.
- The choice of number of layers poses a problem when designing a network,
- as too small a number can cripple the power of the network, but too large
- can cause it to be too expensive to evaluate and can possibly lead to it
- memorising erroneous data
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Dornbush2005"
-
- \end_inset
-
- .
- \end_layout
-
- \begin_layout Standard
- Neural networks, however, do provide good accuracy and could potentially
- (although not easily) be modified on-the-fly to cope with new activities.
- \end_layout
-
- \begin_layout Subsubsection
- Genetic algorithms
- \end_layout
-
- \begin_layout Standard
- Genetic algorithms use the principle of natural selection to 'evolve' a
- solution to a problem.
- A set of random solutions are created, and a pre-defined fitness function
- is used to determine their relative worth.
- The best solutions are then combined together to produce the next generation
- of solutions, in a manner roughly analogous to reproduction in animals.
- Small
- \begin_inset Quotes eld
- \end_inset
-
- mutations
- \begin_inset Quotes erd
- \end_inset
-
- are also introduced into each generation to counter the effect of local
- maxima being reached.
- \end_layout
-
- \begin_layout Standard
- Genetic algorithms can be combined with other techniques such as neural
- networks - the weights in the neural network can be
- \begin_inset Quotes eld
- \end_inset
-
- evolved
- \begin_inset Quotes erd
- \end_inset
-
- using genetic algorithms to create a neural network which is good as satisfying
- the fitness function.
- \end_layout
-
- \begin_layout Standard
- The drawback of genetic algorithms is the need for a fitness function -
- the network will only ever be as good as the fitness function, and if you
- have a way to define what makes a good network you could in most cases
- hardcode the solution instead of evolving a network to satisfy it.
- \end_layout
-
- \begin_layout Subsubsection
- Instance-based learning
- \end_layout
-
- \begin_layout Standard
- Instance-based learning (IBL)
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Witten2000"
-
- \end_inset
-
- algorithms are a class of
- \begin_inset Quotes eld
- \end_inset
-
- lazy
- \begin_inset Quotes erd
- \end_inset
-
- algorithms.
- They perform classification based on previously observed instances that
- have already been classified.
- There is no training required for IBLs, they're extremely adept at adapting
- to new scenarios, and they have a very low error rate
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Dornbush2005"
-
- \end_inset
-
- which makes them ideal for activity-recognition.
- \end_layout
-
- \begin_layout Standard
- One particular type of IBL algorithm which is frequently seen in activity-aware
- research is the K-Nearest Neighbour (KNN) algorithm
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Han2006"
-
- \end_inset
-
- .
- With the KNN algorithm, each sample is treated as a vector, and the distance
- \begin_inset Foot
- status collapsed
-
- \begin_layout Plain Layout
- the euclidean distance is usually used, but any metric will suffice
- \end_layout
-
- \end_inset
-
- between the sample and the existing instances is calculated.
- The sample is then classified according to the classification of the majority
- of its
- \begin_inset Formula $k$
- \end_inset
-
- nearest neighbours.
- \end_layout
-
- \begin_layout Standard
- One drawback of IBLs is that each new instance tends to be remembered for
- future use, which eventually results in large amounts of memory consumption
- and complexity when comparing distances of new samples.
- This can be partially overcome by only storing instances which would affect
- the classification of new samples
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Witten2000"
-
- \end_inset
-
- .
- \end_layout
-
- \begin_layout Standard
- The KNN algorithm can be easily extended to support dynamic classification
- of new types of activities - if a sample is not within a certain distance
- of sufficient other samples, it can be classified as a new type of activity.
- \end_layout
-
- \begin_layout Subsubsection
- Conclusion
- \end_layout
-
- \begin_layout Standard
- There are numerous machine learning algorithms available and suitable for
- use in activity classification tasks.
- There has been a lot of research into their use, and all of the algorithms
- discussed have produced good results.
- Because of the lack of need for any training, however, the K-Nearest Neighbour
- algorithm appears to be the most promising for a mobile device.
- Any algorithm that needs explicit training prior to classification would
- almost certainly require a desktop application or a remote service to analyse
- the data, as it typically requires large amounts of memory and expensive
- computations.
- This either makes the application extremely cumbersome for the user (they
- have to connect their phone to a computer, transfer a file, obtain and
- run a separate application, then transfer some file back), or puts a large
- resource burden onto the distributor (having to remotely analyse all of
- the data from all users would require dedicated hardware for any more than
- a few users).
- \end_layout
-
- \begin_layout Section
- Mobile telephones
- \end_layout
-
- \begin_layout Standard
- It's hard to overstate the ubiquity of mobile telephones at present.
- In 2003, over a billion mobile telephones were sold - six times as many
- as the number of personal computers
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Eagle2004"
-
- \end_inset
-
- .
- In 2007, this same figure describes the number of cameraphones sold
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Reynolds2008"
-
- \end_inset
-
- , clearly representing a substantial growth in sales and advancements in
- the technology.
- In fact, mobile telephones are the fastest adopted technology in human
- history
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Eagle2004"
-
- \end_inset
-
- .
- This ubiquity, coupled with the fact that mobile telephones are comfortably
- carried around on a daily basis by most of their users, makes them a very
- attractive alternative to more traditional platforms used for activity-aware
- research, which typically involved bulky or inconvenient apparatus that
- was expensive to manufacture
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Schmidt2008"
-
- \end_inset
-
- and made users very self-conscious.
- \end_layout
-
- \begin_layout Subsection
- iPhone
- \end_layout
-
- \begin_layout Standard
- There have been several published works related to activity-recognition
- on the iPhone.
- The similarity between iPhone and Android platforms means that many of
- the concepts developed for or used on the iPhone are applicable to both.
- \end_layout
-
- \begin_layout Subsubsection
- iLearn
- \end_layout
-
- \begin_layout Standard
-
- \noun on
- iLearn
- \noun default
-
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Schmidt2008"
-
- \end_inset
-
- is a suite of three tools -
- \noun on
- iLog
- \noun default
- ,
- \noun on
- iModel,
- \noun default
- and
- \noun on
- iClassify
- \noun default
- - which together allow for real-time classification of low-level activities.
-
- \noun on
- iLog
- \noun default
- is run on the user's iPhone and allows the user to specify which activity
- they will be performing.
- The application then records raw sensor data from the iPhone's three-axis
- accelerometer and 124 features computed from this data in real-time.
- The data is then stored on the device, annotated with the selected activity.
- \end_layout
-
- \begin_layout Standard
- The training data collected by
- \noun on
- iLog
- \noun default
- is then transferred to a desktop computer where
- \noun on
- iModel
- \noun default
- uses a Naïve Bayesian Network (NBN) to create a model which can be used
- to classify future input.
- The choice of NBNs was based on their ability to classify a set of trial
- data correctly, and the low computational cost of classifying data once
- the model has been generated.
- \end_layout
-
- \begin_layout Standard
- Once the model has been created, it is transferred back to the device where
- it is used by
- \noun on
- iClassify
- \noun default
- .
- This provides an API for other applications, and allows them to register
- for a callback which it publishes the user's current activity to every
- second.
- \end_layout
-
- \begin_layout Standard
- Unfortunately, neither the source code nor the API are published.
- The inability to run background processes on the iPhone suggests that any
-
- \begin_inset Quotes eld
- \end_inset
-
- API
- \begin_inset Quotes erd
- \end_inset
-
- would have to be more like a framework where the third-party developer
- has to re-engineer their application to use the
- \noun on
- iClassify
- \noun default
- application as a base.
- This is undesirable as it makes it extremely difficult to adapt existing
- applications to use the activity-aware API, and is a very cumbersome way
- of providing what could be a very minor piece of functionality for the
- application.
- \end_layout
-
- \begin_layout Subsubsection
- Evaluation
- \end_layout
-
- \begin_layout Standard
- \begin_inset CommandInset citation
- LatexCommand citet
- key "Miluzzo2009"
-
- \end_inset
-
- present an evaluation of the iPhone for use in
- \begin_inset Quotes eld
- \end_inset
-
- people-centric sensing applications
- \begin_inset Quotes erd
- \end_inset
-
- .
- One of the major drawbacks highlighted is that the iPhone does not support
- applications which run in the background.
- This means that any application wishing to perform continuous real-time
- activity detection would need to run as a foreground process, preventing
- the user from using the device for any other function.
- \end_layout
-
- \begin_layout Standard
- The research also shows that the computational compatibility of the iPhone
- is more than sufficient to perform the necessary calculations for a typical
- activity-recognising application, which suggests that any modern smart
- phone would be capable of these.
- \end_layout
-
- \begin_layout Subsection
- Android
- \end_layout
-
- \begin_layout Standard
- While the Android platform is relatively new, it is rapidly gaining market
- share on the more established mobile operating systems.
- A December 2009 survey
- \begin_inset CommandInset citation
- LatexCommand cite
- key "ChangeWave2010"
-
- \end_inset
-
- shows that 21% of respondents want their next smartphone purchase to run
- Android, a 350% increase from the same survey conducted three months prior.
- This is compared to the iPhone, which dropped 4% to 28% in the same time
- period.
- Gartner, a respected IT research firm, predicts that by 2012, Android will
- be the second most popular mobile operating system globally
- \begin_inset CommandInset citation
- LatexCommand cite
- key "ComputerWorld2010"
-
- \end_inset
-
- .
- \end_layout
-
- \begin_layout Standard
- In addition to its rapidly increasing popularity, the Android platform offers
- several advantages over the iPhone platform.
- Most notably is the ability to run background processes (called
- \noun on
- services
- \noun default
- ), which will allow a classifier application to run without interfering
- with the user's normal use of their mobile telephone.
- In addition, the Android OS provides access to the Bluetooth and GSM stacks,
- allowing for data from both to be used for activity detection.
- \end_layout
-
- \begin_layout Standard
- The ability to run a background process will enable a proper API for sharing
- activity data with other applications, which will allow third-party developers
- to make their applications context-aware with relatively little work on
- their part.
- This is extremely desirable as it will allow rapid prototyping of applications,
- which will hopefully lead to innovative new uses of activity classification.
- \end_layout
-
- \begin_layout Standard
- While it is purported
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Garakani2009"
-
- \end_inset
-
- that there is research being done on bringing activity-awareness to Android
- platforms, there does not seem to be any work published on this matter
- or any applications available to support it.
- While there a small number of self-proclaimed
- \begin_inset Quotes eld
- \end_inset
-
- context-aware
- \begin_inset Quotes erd
- \end_inset
-
- applications for Android, this context is almost exclusively limited to
- geolocation.
- This project will therefore produce one of the first publicly available
- activity-aware applications for the Android platform.
- \end_layout
-
- \begin_layout Section
- Location analysis
- \begin_inset CommandInset label
- LatexCommand label
- name "sec:Location-analysis"
-
- \end_inset
-
-
- \end_layout
-
- \begin_layout Standard
- Location-based services are currently undergoing an
- \begin_inset Quotes eld
- \end_inset
-
- explosion
- \begin_inset Quotes erd
- \end_inset
-
-
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Bellavista2008"
-
- \end_inset
-
- , thanks to improvements in technology, and greater openness on the part
- of service providers and handset manufacturers.
- All modern smartphone platforms have a geolocation stack, usually backed
- by a GPS chipset and in most cases augmented with either a database of
- known cell tower locations, or a map of known wifi network identifiers
- and locations, or both.
- The two databases allow for rough geolocation when GPS is not available,
- or for greatly decreased lookup time when a GPS lock is available.
- \end_layout
-
- \begin_layout Standard
- However, while the geolocation stack is a rich source of data, it is a poor
- source of information.
- A latitude/longitude pair may describe the user's exact location, but a
- user would be hard-pressed to tell the difference between the latitude/longitud
- e of their home, place of work, or of somewhere in between the two with
- no real significance.
- A great deal of research has therefore been devoted to detecting meaningful
- locations from GPS traces.
- \end_layout
-
- \begin_layout Standard
- \begin_inset Quotes eld
- \end_inset
-
- Place recognition
- \begin_inset Quotes erd
- \end_inset
-
- has two phases: learning and recognising.
- An initial learning phase analyses a sensor log and segments the data into
- places where the device is stable (stationary), and designates this as
- a
- \begin_inset Quotes eld
- \end_inset
-
- waypoint
- \begin_inset Quotes erd
- \end_inset
-
- .
- It then merges
- \begin_inset Quotes eld
- \end_inset
-
- waypoints
- \begin_inset Quotes erd
- \end_inset
-
- that appear to identify the same place being visited multiple times.
- The second phase uses these learned waypoints to recognise when the device
- is revisiting a place, and therefore also when the device is not visiting
- a previously known place (for example when it is moving between two)
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Hightower2005"
-
- \end_inset
-
- .
- \end_layout
-
- \begin_layout Standard
- Unfortunately, quite a lot of research into location analysis uses GPS
- \begin_inset Quotes eld
- \end_inset
-
- blackspots
- \begin_inset Quotes erd
- \end_inset
-
- to identify useful places
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Nurmi2006,Liao2007b"
-
- \end_inset
-
- .
- With older GPS chipsets, the satellite signal would be lost when the user
- entered a building, and this allowed an inference that the current location
- was probably a place of interest.
- However, modern GPS chipsets receive a signal in most indoor locations.
- It is possible that a decrease in signal strength or number of locked satellite
- s may still occur, or that GSM signal strength could be used instead, but
- these ideas have not been widely explored at present.
- \end_layout
-
- \begin_layout Standard
- There is, however, plenty of research relating to the use of location data
- outdoors.
- One application
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Liao2007b"
-
- \end_inset
-
- learns not only the user's frequently visited places, but the method of
- transport used between them and the typical routes taken.
- It can then offer instructions showing the user how to go from place to
- place, or issue alerts if the user appears to be going the wrong way (by
- getting on the wrong bus, for instance).
- The ability to correctly infer the user's destination would be extremely
- useful in a context-aware system: a user walking to do their grocery shopping
- is almost certainly going to want to interact with their phone differently
- than a user on a bus going to work.
- \end_layout
-
- \begin_layout Section
- Bluetooth
- \begin_inset CommandInset label
- LatexCommand label
- name "sec:Bluetooth"
-
- \end_inset
-
-
- \end_layout
-
- \begin_layout Standard
- The user's context depends on not only what they are doing, where they are
- doing it, but also who they are with.
- Sitting and eating lunch with a manager is quite a different context to
- sitting and eating lunch with a spouse.
- It would therefore be desirable to be able to identify between different
- people when performing context analysis.
- \end_layout
-
- \begin_layout Standard
- One of the few ways that a mobile telephone can identify other people is
- by searching for
- \emph on
- their
- \emph default
- mobile telephones.
- This can be done by scanning for Bluetooth devices, which involves broadcasting
- a
- \begin_inset Quotes eld
- \end_inset
-
- device inquiry
- \begin_inset Quotes erd
- \end_inset
-
- message; if a device chooses to answer the inquiry, it discloses its unique
- MAC address and device class
- \begin_inset Foot
- status collapsed
-
- \begin_layout Plain Layout
- the device class tells us whether the device is a computer or a mobile telephone
- , for example
- \end_layout
-
- \end_inset
-
- .
- Unfortunately, this requires the person to not only be carrying a mobile
- telephone, but a Bluetooth-enabled model, and for them to have configured
- their device to have Bluetooth enabled and to be
- \begin_inset Quotes eld
- \end_inset
-
- visible
- \begin_inset Quotes erd
- \end_inset
-
- .
- A study in 2004
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Eagle2004"
-
- \end_inset
-
- found that only 1 in 150 people had such a configured device on a university
- campus.
- This figure will undoubtedly be greater now, and may well be greater when
- in public, but it highlights that only a handful of people may be detectable
- via their Bluetooth devices.
- \end_layout
-
- \begin_layout Standard
- A study in 2006
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Nicolai2006"
-
- \end_inset
-
- used a similar technique to monitor the social context of the user, introducing
- the idea of
- \begin_inset Quotes eld
- \end_inset
-
- familiar
- \begin_inset Quotes erd
- \end_inset
-
- people,
- \begin_inset Quotes eld
- \end_inset
-
- unfamiliar
- \begin_inset Quotes erd
- \end_inset
-
- people and
- \begin_inset Quotes eld
- \end_inset
-
- familiar strangers
- \begin_inset Quotes erd
- \end_inset
-
- .
- These labels were applied based on the number of times their Bluetooth
- devices were detected
- \begin_inset Foot
- status collapsed
-
- \begin_layout Plain Layout
- and by extension the number of times the user had come into contact with
- them
- \end_layout
-
- \end_inset
-
- .
- While the definition of
- \begin_inset Quotes eld
- \end_inset
-
- familiar
- \begin_inset Quotes erd
- \end_inset
-
- and
- \begin_inset Quotes eld
- \end_inset
-
- unfamiliar
- \begin_inset Quotes erd
- \end_inset
-
- are quite obvious,
- \begin_inset Quotes eld
- \end_inset
-
- familiar strangers
- \begin_inset Quotes erd
- \end_inset
-
- is a new class of people used to describe those who the user encounters
- repeatedly, but doesn't interact with.
- This may include neighbours that are passed on the street, or fellow commuters
- on a journey into work.
- The number of people in each of those groups (and any changes in those
- numbers) can be used to infer how
- \begin_inset Quotes eld
- \end_inset
-
- comfortable
- \begin_inset Quotes erd
- \end_inset
-
- the user feels with their social context, and whether their current activity
- is part of a normal routine or is novel.
- \end_layout
-
- \begin_layout Standard
- This research has, to date, not been readily combined with activity-aware
- applications, and this project will aim to integrate the results of Bluetooth
- scanning with
- \begin_inset Quotes eld
- \end_inset
-
- classical
- \begin_inset Quotes erd
- \end_inset
-
- activity classification techniques and to evaluate whether it provides
- any benefit.
- \end_layout
-
- \begin_layout Section
- Power management
- \begin_inset CommandInset label
- LatexCommand label
- name "sec:Power-management"
-
- \end_inset
-
-
- \end_layout
-
- \begin_layout Standard
- One major consideration when deploying an application on a mobile device
- is the amount of power it will use.
- An application constantly polling any one sensor can reduce battery life
- significantly, and an application which kept all available sensors active
- (in addition to doing CPU-heavy analysis on them) would drain the battery
- in a typical smartphone in a matter of hours.
- A context-aware application is not very useful for a user if they can only
- use their telephone for an hour or two before it needs recharging!
- \end_layout
-
- \begin_layout Standard
- One solution
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Wang2009"
-
- \end_inset
-
- is to only use one or two sensors to monitor the user's activity until it
- appears to be transitioning.
- For example, if the user is believed to be walking, the application only
- needs to periodically check either the accelerometer (to confirm the user
- is still making walking motions) or GPS (to confirm the distance traveled
- is still consistent with walking) to know that their activity has not changed.
- As soon as the user's behaviour becomes inconsistent with walking, the
- application can bring other sensors online until it has successfully reclassifi
- ed the activity, and then resume monitoring with minimal sensors.
- \end_layout
-
- \begin_layout Standard
- Another option
- \begin_inset CommandInset citation
- LatexCommand cite
- key "Wang2009"
-
- \end_inset
-
- (which can be used in conjunction) is to only enable sensors for a short
- amount of time, and then sleep for a period before reactivating them.
- The
- \begin_inset Quotes eld
- \end_inset
-
- duty cycle
- \begin_inset Quotes erd
- \end_inset
-
- suggested for accelerometers is 6 second of sensing followed by 10 seconds
- of sleeping.
- The six second window is enough time to allow for capturing a full range
- of motion (several complete strides) if the user is walking or running,
- and then the ten second sleep stops the accelerometer using battery power
- until the next cycle.
- This process obviously means that a sudden switch in activity will not
- be noticed immediately, but a delay of a few seconds is acceptable as most
- activities will last for minutes or longer.
- \end_layout
-
- \begin_layout Standard
- The battery life on modern smartphones rarely exceeds 24 hours of typical
- use, so it is extremely important that any applications developed for this
- project does not significantly reduce this.
- A balance between prompt detection and notification of activity changes
- and battery use by sensors and processing algorithms will need to be found.
- \end_layout
-
- \begin_layout Standard
- \begin_inset Newpage pagebreak
- \end_inset
-
-
- \end_layout
-
- \begin_layout Part
- Accelerometer classification
- \end_layout
-
- \begin_layout Part
- Microphone, camera and Bluetooth
- \end_layout
-
- \begin_layout Part
- Places
- \end_layout
-
- \begin_layout Part
- The Context Analyser
- \end_layout
-
- \begin_layout Standard
- \begin_inset Newpage pagebreak
- \end_inset
-
-
- \end_layout
-
- \begin_layout Part
- Evaluation
- \end_layout
-
- \begin_layout Section
- Reports
- \end_layout
-
- \begin_layout Standard
- The results of the experimentation described in section
- \begin_inset CommandInset ref
- LatexCommand ref
- reference "sec:Experimentation"
-
- \end_inset
-
- should be written up as a report.
- The reports must include the data collected in each of the experiments,
- the conclusions drawn from those, and the impact of the results of the
- experiment on the project deliverables.
- \end_layout
-
- \begin_layout Section
- Deliverables
- \end_layout
-
- \begin_layout Standard
- On successful completion of the project, there should be three deliverable
- applications as specified in section
- \begin_inset CommandInset ref
- LatexCommand ref
- reference "sec:Deliverables"
-
- \end_inset
-
- .
- These can be tested and evaluated in a variety of manners:
- \end_layout
-
- \begin_layout Subsection
- Unit tests
- \end_layout
-
- \begin_layout Standard
- Throughout the development of the project, unit tests should be created
- to test key functionality of all applications.
- It is expected that at the completion of the project, all unit tests should
- pass successfully, and they will have a code coverage of 80% or above.
- \end_layout
-
- \begin_layout Subsection
- System tests
- \end_layout
-
- \begin_layout Standard
- The classifier application should also have a suite of system tests.
- These should consist of a set of fake or pre-recorded inputs which are
- fed into the application in place of raw sensor data.
- The output of the classifier (via the API) can then be compared to expected
- output for the data.
- \end_layout
-
- \begin_layout Subsection
- User acceptance testing
- \end_layout
-
- \begin_layout Standard
- The Locale addon and context-aware home screen should be subject to user
- acceptance testing for evaluation.
- This should take the form of providing the applications to multiple end
- users, allowing them to use them for a period of time (providing instructions
- for certain tasks to complete).
- The users should then be presented with a questionnaire which they can
- use to evaluate the functionality, utility and design of the applications.
- \end_layout
-
- \begin_layout Subsubsection
- Android market
- \end_layout
-
- \begin_layout Standard
- In addition to providing the applications to a closed set of users, the
- applications should be published to the Android market.
- This will allow any owner of a compatible Android device to download and
- use the applications.
- The market also allows users to rate the application and leave comments,
- which will be an extremely useful method of evaluating the success of the
- applications.
- \end_layout
-
- \begin_layout Standard
- As part of this, the classifier application/framework will be published,
- and should include instructions for developers detailing how they can make
- their applications context-aware.
- The interest expressed and number of applications which use it (if any)
- will be an indicator of the effectiveness of the API and its documentation.
- \end_layout
-
- \begin_layout Subsection
- Classification scope
- \end_layout
-
- \begin_layout Standard
- The classifier should be able to classify the following activities:
- \end_layout
-
- \begin_layout Itemize
- walking
- \end_layout
-
- \begin_layout Itemize
- running
- \end_layout
-
- \begin_layout Itemize
- standing
- \end_layout
-
- \begin_layout Itemize
- sitting
- \end_layout
-
- \begin_layout Itemize
- traveling in a vehicle
- \end_layout
-
- \begin_layout Standard
- These should be evaluated by means of a leave-one-out cross-validation test,
- with data collected from one or more users and annotated by hand.
- It is expected that the classifier should correctly classify all activities
- with an accuracy of at least 70%, within 30 seconds of the activity being
- started.
- \end_layout
-
- \begin_layout Subsection
- Resource usage
- \end_layout
-
- \begin_layout Standard
- Finally, the applications should be evaluated based on their resource usage.
- One of the main concerns will be battery usage (caused both by the application
- using processor time, and activating sensors), but attention must also
- be paid to memory consumption (especially after extended use).
- The goal should be to ensure that the resource usage of the applications
- in this project do not adversely impact the functionality of the device;
- that is, battery life should not be reduced so significantly that it requires
- users to change their normal charging behaviour, and memory usage should
- not be so high as to cause other applications to become sluggish or be
- closed by the operating system.
- \end_layout
-
- \begin_layout Standard
- \begin_inset Newpage pagebreak
- \end_inset
-
-
- \end_layout
-
- \begin_layout Part
- Conclusion
- \begin_inset Newpage pagebreak
- \end_inset
-
-
- \end_layout
-
- \begin_layout Standard
- \begin_inset CommandInset bibtex
- LatexCommand bibtex
- bibfiles "/home/chris/Uni/project/papers/project"
- options "bibtotoc,savetrees"
-
- \end_inset
-
-
- \end_layout
-
- \end_body
- \end_document
|