Next Article in Journal
On the Design of Dual-Polarised Linear Antenna Arrays with Enhanced Port-to-Port Isolation
Next Article in Special Issue
Computational Diagnostic Techniques for Electrocardiogram Signal Analysis
Previous Article in Journal
Enterprise Security for the Internet of Things (IoT): Lightweight Bootstrapping with EAP-NOOB
Previous Article in Special Issue
Mining Massive E-Health Data Streams for IoMT Enabled Healthcare Systems
 
 
Correction published on 8 September 2022, see Sensors 2022, 22(18), 6808.
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

DynDSE: Automated Multi-Objective Design Space Exploration for Context-Adaptive Wearable IoT Edge Devices

Digital Health, Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU), 91052 Erlangen, Germany
*
Author to whom correspondence should be addressed.
Sensors 2020, 20(21), 6104; https://doi.org/10.3390/s20216104
Submission received: 22 September 2020 / Revised: 14 October 2020 / Accepted: 21 October 2020 / Published: 27 October 2020 / Corrected: 8 September 2022

Abstract

:
We describe a simulation-based Design Space Exploration procedure (DynDSE) for wearable IoT edge devices that retrieve events from streaming sensor data using context-adaptive pattern recognition algorithms. We provide a formal characterisation of the design space, given a set of system functionalities, components and their parameters. An iterative search evaluates configurations according to a set of requirements in simulations with actual sensor data. The inherent trade-offs embedded in conflicting metrics are explored to find an optimal configuration given the application-specific conditions. Our metrics include retrieval performance, execution time, energy consumption, memory demand, and communication latency. We report a case study for the design of electromyographic-monitoring eyeglasses with applications in automatic dietary monitoring. The design space included two spotting algorithms, and two sampling algorithms, intended for real-time execution on three microcontrollers. DynDSE yielded configurations that balance retrieval performance and resource consumption with an F1 score above 80% at an energy consumption that was 70% below the default, non-optimised configuration. We expect that the DynDSE approach can be applied to find suitable wearable IoT system designs in a variety of sensor-based applications.

1. Introduction

Autonomous wearable IoT devices are being used for physiological and behavioural health-monitoring [1] and provide relevant health status information to their wearers [2,3]. Miniaturised electronics embedded in wearable accessories, garments, etc., provide the resources to retrieve pattern events from streaming sensor data and to interact with the wearer, which led to the concept of edge computing [4]. Edge computing aims to process data at the devices end, rather than the cloud to reduce network load and service response time. Furthermore, reducing communication bandwidth often lowers energy consumption, as well as privacy, and security concerns. For example, in medical IoT monitoring applications [5], a device may retrieve relevant events using embedded machine learning methods, thus sending only abstract event information to the cloud. Nevertheless, resource constrains are a key feature of IoT devices. A wearable IoT device typically consists of multiple sensors, a microcontroller ( μ C ), which runs data processing algorithms, memory, and a radio module for data communication (Figure 1). Therefore, the optimisation of resource-constrained IoT edge devices has high priority in the design process [6].
The design of an IoT device can be interpreted as the selection of an optimal hardware and software configuration from the wide design space of possible options. Certain system configurations may be not compatible with specific system requirements, e.g., energy saving and retrieval performance.
Available μ C s present differences in terms of resource consumption, execution time, and energy consumption. With the complex interplay of hardware and software components, it is a difficult task to quantify resource use and to manually identify optimal configurations that fulfil system requirements best. The size of the architectural design space often makes manual exploration of embedded systems unfeasible. Automated Design Space Exploration (DSE) [7,8] provides a computational framework to identify optimal configurations.
The design problem is exacerbated when the system does include functions that cannot be statically approximated, and by those with a dynamic effect on the resource-performance trade-off. Sampling strategies, e.g., context-adaptive sampling [9], are a basic dynamic function of wearable IoT devices. A context-adaptive sampling is a dynamic sampling strategy that tunes the sensor’s sampling rate based on a context measure, thus aiming at minimising energy consumption. The stochastic and variable nature of human behavioural patterns induces variability into context-adaptive sampling behaviour, which, in turn, drastically affects the resource-perfomance trade-off. Therefore, the main challenge for the design of a context-adaptive wearable IoT device lies in the identification of viable configurations that fulfil the system requirements under dynamically varying conditions. With DynDSE, we explicitly incorporate context-adaptive system behaviour in the design exploration and simulate systems with actual sensor data.
In this paper, we provide the following contributions:
  • We present a simulation-based Design Space Exploration (DynDSE) procedure for wearable IoT devices that employ context-adaptive pattern recognition algorithms for event retrieval, see Figure 1. We provide a formal characterisation of the design space, given a set of system functionalities, components, and their parameters. An iterative search evaluates configurations according to system requirements. The inherent trade-off embedded in conflicting objectives are explored to find an optimal configuration.
  • We perform a wearable IoT application evaluation to analyse the resource-performance trade-off considering static and dynamic design aspects through simulations with actual data of Electromyography (EMG)-monitoring eyeglasses in automated dietary monitoring.
In the present work, we formally introduce the DynDSE exploration framework in Section 3 and relevant optimisation metrics in Section 4. Subsequently, a comprehensive wearable IoT application case is presented and analysed in Section 5 and Section 6 to detail the potential of DynDSE.

2. Related Work

DSE frameworks are used for hardware/software co-design of heterogeneous multiprocessor and system-on-chip architectures [10], embedded systems [11], or Field Programmable Gate Array (FPGA) platforms [12]. In conventional DSE approaches, multiple metrics, e.g., energy consumption, memory demand, and cost, must be optimised concurrently according to some application requirements. The conflicting nature of objectives, which reflect many system characteristics, produces trade-offs inherent to the overall system performance. A decision on the most adequate system configuration needs to be taken according to a multi-objective optimisation process. The majority of DSE methods belongs to one of three analysis and evaluation categories, i.e., prototype-based, analytics-based, and simulation-based. The three categories differ in terms of a design time-modelling accuracy trade-off [8]. For example, the prototype-based evaluation provides adequate modelling accuracy, but requires development time with limited exploration capability. The analytics-based evaluation relies on analytical description of component interactions, which allows designers to explore larger design space portions in acceptable time. However, especially with complex architectures, the modelling accuracy of analytics-based evaluations is limited. The simulation-based evaluation is the most versatile approach, as time-modelling accuracy trade-offs of different designs can be achieved by tuning the simulation characteristics. For example, a lower abstraction simulation level, i.e., simulating digital signals between registers and combinational logic, yields higher accuracy but lowers simulation time for analysing software stacks. A higher abstraction simulation level, i.e., simulating system components at the cycle level, computes more efficient simulation, at the cost of averaging inter-cycle system state information. Moreover, simulation-based DSE enables dynamic profiling at run time, which allows the designer to quantify and optimise complex dynamic component interactions and workload.
In last two decades, many DSE approaches have been proposed to design wearable devices. For example, Bharatula et al. [13] proposed a design method to achieve a resource-performance trade-off for a highly-miniaturised multi-sensor context recognition system. Their evaluation showed that, through variations of system design space, the optimisation method was able to extend the battery lifetime by several hours. The same research group introduced multiple metrics to analyse the resource-performance trade-off of a wearable system, i.e., an accelerometer, a microphone, a light sensor, and a TI MSP430F1611 μ C [14]. The authors presented an experimental validation in which a manual multi-objective optimisation was applied to find the best system configuration. In contrast to the works of Bharatula et al., we propose an analytical characterisation of the system architecture with the aim to automate the DSE modelling. Anliker et al. [15,16] presented an automatic design methodology based on abstract modules and task-dependent constraint sets. A multi-objective function incorporated recognition accuracy, energy consumption, and wearability, applied to classification of three modes of locomotion. In contrast, our simulation-based analysis is based on a realistic dataset collected in daily living. We evaluated the relevant effects of the free-living settings on the metrics. Beretta et al. [17] presented a model-based design optimisation to analytically characterise the energy consumption of a wearable sensor node. The authors described a multi-objective exploration algorithm to evaluate system configurations and relative trade-off. The method was application-driven with a fixed system architecture. Stäger et al. [18] took in account several system configuration options, including sensor types, sensor parameters, features, and classifiers. A case study was described related to detection of interactions with household appliances by means of a wrist worn microphone and accelerometer. Evidences were presented for an improvement in battery lifetime by a factor 2–4 with only little degradation in recognition performance.
The aforementioned DSE approaches focused on the evaluation and exploration of wearable device architectures under static workloads. However, todays wearable systems may adopt opportunistic sensing strategies to balance energy consumption and information acquired by a wearable or mobile systems. For example, Rault et al. [19] provided an analysis of techniques for energy consumption reduction in wearable sensors for healthcare applications. Opportunistic sensing strategies consider dynamic effects on the resource consumption trade-off, not considered in a static DSE. For example, an adaptive sampling scheme may reduce sampling rate according to a detected lower signal entropy. For instance, Mesin [20] proposed an adaptive sampling scheme based on sample prediction, where a non-uniform schedule increased the sampling rate only during bursts of physical activity. A multi-layer perceptron predicted subsequent samples and their uncertainties, triggering a measurement when the uncertainty of the prediction exceeded a threshold. In contrast, our approach employs a transparent state-based reactive model to estimate relevance of future samples. Scarabottolo et. al. [21] presented a dynamic sampling strategy for low-power embedded devices. The sampling rate tuning was based on the analysis of the signal’s spectral content. Rieger and Taylor [22] proposed a low-power analog system for real-time adaptive sampling rate tuning, proportional to the signal curvature. Different from our approach, a-priori knowledge was required. Moreover, in contrast to Rieger and Taylor’s [22] low-power analog system, we consider a pattern spotting problem to analyse performance that is frequently required in wearable IoT systems.

3. Exploration Framework

3.1. Design Space Representation

The design space configurations consist of set X of functionalities, realised by a set E of components, which are characterised by the set Ω of parameters. An example is provided at the end of this section.
Formally, the set of functionalities X is expressed as:
X = { Ξ ξ } ξ ξ , ξ = { ξ | ξ N 1 , ξ N Ξ } ,
where the functionality Ξ ξ is the element of the set X , ξ is the index set to X , and N Ξ is the number of elements of ξ .
A functionality Ξ ξ is carried out by one or more components grouped in the set ϵ ξ , indexed by the index set q ξ , expressed as:
ϵ ξ = { ϵ ξ , q } q q ξ and q ξ = { q | q N 1 , q N ξ } ,
where the component ϵ ξ , q is the element of the set ϵ ξ , q ξ is the index set to ϵ ~ , and N ξ is the number of components associated to the functionality ξ .
Overall, the design space consists of a collection E of system components sets, indexed by the collection Q of index sets, expressed as:
E = { ϵ ξ } ξ ξ and Q = { q ξ | ξ ξ } .
A component ϵ ξ , q is characterised by one or more component parameters grouped in the set ω ξ , q , indexed by the index set w ξ , q , expressed as:
ω ξ , q = { ω ξ , q , w } w w ξ , q and w ξ , q = { w | w N 1 , w N ξ , q } ,
where the component parameter ω ξ , q , w is the element of the set ω ξ , q , w ξ , q is the index set to ω ξ , q , and N ξ , q is the number of component parameters associated to the functionality ξ and the component q. Overall, the design space consists of a collection Ω of component parameters sets, indexed by the collection W of index sets, expressed as:
Ω = { ω ξ , q } ( ξ , q ) ξ ξ ( ξ × q ξ ) and W = { w ξ , q | ( ξ , q ) ξ ξ ( ξ × q ξ ) } .
For example, a spotting algorithm Ξ 1 is represented by a component ϵ 1 , 1 , e.g., a FFT-based algorithm, characterised by a component parameter ω 1 , 1 , 1 , e.g., the data frame size. Data sampling Ξ 2 is represented by a component ϵ 2 , 1 , e.g., an uniform sampling. A processing unit Ξ 3 is represented by a component ϵ 3 , 2 , e.g., a Texas Instrument μ C , characterised by a component parameter ω 3 , 2 , 1 , e.g., the μ C ’s clock frequency. In a compact form, the design space is expressed as:
X | E , Ω .

3.2. Configuration Generation

The configuration generation selects a design candidate to be evaluated in the simulation, i.e., see Section 3.3. The configuration generation is composed by two main stages. In the first stage, for each functionality Ξ ξ , a component set ϵ ξ c , indexed by the index set q ξ c , is selected as:
ϵ ξ c = { ϵ ξ , q } q q ξ c and q ξ c q ξ ,
where q ξ c represents a subset of the the index set q ξ . Overall, a configuration consists of a collection E of system components sets, indexed by the collection Q c of index sets, expressed as:
E = { ϵ ξ c } ξ ξ and Q c = { q ξ c | ξ ξ } ,
In the second stage, for each component ϵ ξ , q ϵ ξ c a component parameters set ω ξ , q c , indexed by the index set w ξ , q c , is selected as:
ω ξ , q c = { ω ξ , q , w } w w ξ , q c and w ξ , q c w ξ , q ,
where w ξ , q c represents a subset of the the index set w ξ , q c . Overall, a system configuration consists of a collection Ω of system component parameters sets, indexed by the collection W c of index sets, expressed as:
Ω = { ω ξ , q c } ( ξ , q ) ξ ξ ( ξ × q ξ c ) and W c = { w ξ , q c | ( ξ , q ) ξ ξ ( ξ × q ξ c ) } .
In a compact form, a system configuration is expressed as:
X | E , Ω X | E , Ω .

3.3. Configuration Evaluation

A metric estimates benefits π or costs ρ of a configuration. The configuration evaluation is based on two sets of metrics. The benefit metric set is defined as:
π = { π p ( X | E , Ω ) } p p with
p = { p | p N 1 , p N p } ,
where the element π p ( X | E , Ω ) is a benefit metric and N p is the number of benefit metrics. The benefit metric set π is subjected to the benefit requirement set as:
z π = { z π p } p p ,
Similarly, the cost metric set is defined as:
ρ = { ρ r ( X | E , Ω ) } r r with
r = { r | r N 1 , r N r } .
where the element ρ r ( X | E , Ω ) is a cost metric and N r is the number of cost metrics. The cost objective set ρ is subjected to the cost requirement set as:
z ρ = { z ρ r } r r .
Each π p ( X | E , Ω ) and ρ r ( X | E , Ω ) maps a configuration X | E , Ω to the real space I R , i.e., X | E , Ω I R .
The overall optimisation process is formally described as follows. Given a design space X | E , Ω , the goal of DynDSE is to find the configuration X | E , Ω , which maximises benefits π and minimises costs ρ , while respecting the respective set of requirements. The problem can be interpreted as a constrained multi-objective optimisation:
max X | E , Ω X , E | Ω p π p ( X | E , Ω ) r ρ r ( X | E , Ω ) s . t . z ρ r 0 r r , z π p 0 p p .
The optimisation provides a set of mutually conflicting solutions, which reflects the trade-offs in the design. To define optimality, one can usually exploit the concept of Pareto-dominance, i.e., a decision maker prefers a configuration to another if it is equal or better in all objectives and strictly better in at least one. As Künzli et al. [23] pointed out, several approaches exists to solve the multi-objective optimisation, e.g., exploration by hand [24], exhaustive search [25], or reduction to a single objective [26], as done in this work.

4. Optimisation Metrics

Table 1 lists the metrics introduced in this Section and their respective requirements.

4.1. Retrieval Performance Metric

The retrieval performance of an event retrieval algorithm is expressed through Precision-Recall metric [27], as follows:
Precision P = π 1 ( X | E , Ω ) , Recall R = π 2 ( X | E , Ω ) .
From the application perspective, the algorithm must be able to keep an adequate level of retrieval performance. The retrieval performance requirements is usually defined by expert knowledge and we refer to it as z π 1 and z π 2 .

4.2. Execution Time Metric

A measure of computational complexity denotes the execution time of an algorithm, by pairing the algorithm module and the processing module. An algorithm’s abstraction is the decomposition of an algorithm in distinct stages, in which each stage is composed by one or more functions. Each function f is broken down by counting additions and subtractions (Add), multiplications (Mult), divisions (Div), square roots (Root), exponentials (Exp), and comparisons (Comp).
The number of machine cycles n f c y c to compute a function f on a μ C is defined as:
n f c y c = ( n f , Add o p × n Add c y c ) + ( n f , Mult o p × n Mult c y c ) + ( n f , Div o p × n Div c y c ) + ( n f , Root o p × n Root c y c ) + ( n f , Exp o p × n Exp c y c ) + ( n f , Comp o p × n Comp c y c ) ,
where n f , x o p is the number of executions related to an arithmetical operation x to compute a function f and n x c y c is the number of cycles to execute an arithmetical operation x on a μ C . To estimate the execution time ET f of a function f, the number of machine cycles n f c y c is divided by the clock frequency ν of the μ C , as follows:
ET f = n f c y c ν .
The definition of the execution time ET depends on the runtime mode. When the runtime mode is real time, ET is computed as:
ET = ρ 1 ( X | E , Ω ) = f ET f .
When the runtime mode is online, ET is computed as:
ET = f r f ET f ,
where f r is a data frame process. We refer to the system requirements for ET as z ρ 1 .

4.3. Energy Consumption Metric

μ C energy consumption: Most μ C s support an active state and a stand-by state. The average energy consumption in active state EC f μ C , related to the computation of a function f, is proportional to the ET f and defined as:
EC f μ C = ET f × P act μ C ,
where EC f μ C is expressed in Wh, P act μ C is the power consumption of the μ C in active mode expressed in W, and ET f is expressed in hours.
The average energy consumption in stand-by state EC stb μ C is modelled as:
EC stb μ C = T stb × P stb μ C ,
where T stb is the time period of inactivity expressed in hours, and P stb μ C is the power consumption in stand-by mode expressed in W.
The μ C energy consumption was calculated as:
EC μ C = f r f EC f μ C + EC stb μ C ,
where f r f EC f μ C denotes the active state energy.
Sensor energy consumption: The average instantaneous energy consumption EC t s for a single sensing component is computed by applying the following equations:
I t s = I act s × D t + I stb s × ( 1 D t ) , EC t s = I t s × V × t r ,
where I act s is the sensor’s average current in active state, I stb s is the sensor’s average current in stand-by state, D t is the instantaneous duty cycle rate, EC t s is expressed in Wh, V is the voltage level of the sensing component, and t r is the temporal resolution expressed in hours.
The sensor energy consumption was calculated as:
EC s = t EC t s .
fFlash/Non-Volatile Memory Energy Consumption: To estimate the flash and programmable memory, we formulated an energy model inspired by Konstantakos et al. [28]. Writing energy consumption was determined by:
EC w m = b I write m × V × t w ,
where b indicates a block, I write m is the average current consumption in writing mode, and write time t w is the time required to write a memory block. The energy required to read a memory block was neglected. A static memory energy consumption term was computed as:
EC s m = I stb m × V × ( T b t w ) ,
where I b m is the stand-by state current value, and T is the total simulation time.
The memory energy consumption was calculated as:
EC m = EC w m + EC s m .
Radio transmission energy consumption measure: To estimate the energy consumption of the wireless communication, we relied on the energy model described by Prayati et al. [29]. The model considered the following three stages for transmission: (1) initialisation of transmission and transferring of the frame data from memory to the radio chip FIFO buffer, (2) back-off timeout, and (3) packet transmission via the wireless channel.
In order to calculate the energy consumption to transmit a packet, the following formula was applied:
E C p r = I trans × V × t trans ,
where I trans is the transmission current, p indicating packets, and t trans is the time requested to prepare and send a packet. As E C p r is expressed in Wh, t trans must be converted in hours. In this work we considered I trans = 21.7 mA, when a transmission power threshold 0 dBm is chosen, and t trans = 16 ms is the time requested to prepare and send a packet size of 114 Bytes.
The radio transmission energy consumption was calculated as:
EC r = p E C p r .
Total energy consumption: The energy consumption metric EC is computed as follows:
EC = ρ 2 ( X | E , Ω ) = EC μ C + EC s + EC m + EC r .
The application context imposes an energy budget requirement to the behavioural monitoring. For example, while monitoring dietary behaviour, the wearable system should be able to work uninterruptedly for the entire day, in order to not miss relevant activities. The system requirement z ρ 2 for EC indicates the energy required to deploy the application for the entire runtime. We defined z ρ 2 as the quantity in mW calculated as:
z ρ 2 = BC RT · ϕ ,
where BC is the battery capacity in mWh, RT is the required runtime of the application expressed in hours, e.g., 16 h, and the factor 0 < ϕ 1 considers the effect of external factors, which can affect the battery life. In this work we considered ϕ = 0.9 .

4.4. Memory Demand Metric

The memory demand MD is an upper bound of the memory required by the system to execute an event retrieval. MD is computed by considering four terms, i.e., the code memory m c , the data memory m d , the processing memory m f , and the event memory m e .
The memory demand is defined as:
MD = ρ 3 ( X | E , Ω ) = m c + m d + f m f + m e , with m f = m f , Int + m f , Float , and m e = m e , Int + m e , Float ,
where m f , Int and m e , Int are the memory required to store integer values, and m f , Float and m e , Float are the memory required to store float values. We refer to the system requirement for MD as z ρ 3 , which represents the maximum amount of memory available to store information on a certain μ C .

4.5. Communication Latency Metric

The communication latency is the time span between the event-related raw sensor data measurements and the delivery moment at the receiver of the retrieved event information. The communication latency metric CL is computed as follows:
CL = ρ 4 ( X | E , Ω ) = f ET f + m e ν t r ,
with ν t r = MPS c o n n I n t e r v a l ,
where MPS is the transmitter’s maximum payload size, e.g., 216 bits for Bluetooth Low Energy (BLE), c o n n I n t e r v a l defines the time of connection events, i.e., ranges from 7.5 ms to 4.0 s with steps of 1.25 ms for BLE, and ν t r is the transmission data rate. We refer to the system requirement for CL as z ρ 4 , which represents the communication latency tolerance for the application.

5. IoT Application Evaluation

5.1. Smart Eyeglasses to Monitor Eating in Free-Living

We implemented our DynDSE for the design optimisation of 3D-printed regular-looking eyeglasses, which accommodate processing electronics, EMG electrodes, antenna, and power supply. Smart eyeglasses are particularly suited for automated dietary monitoring to unobtrusively detect intake and eating events from activities around the head throughout everyday life, thus replacing classic food journaling and supporting disease management [30,31]. As typical wearable IoT devices, smart eyeglasses could process data locally and provide estimates to other body-worn devices, e.g. smartphones. Furthermore, the monitoring task is a typical example of wearable IoT applications in remote health assistance.
Two pairs of electrodes were symmetrically integrated at the eyeglasses frame, located around the temple ear bends. Contraction of temporalis muscles was monitored bilaterally resulting in two EMG signal channels.
The EMG sensor data stream was segmented into eating and non-eating periods by pattern spotting algorithms. The spotting algorithms were designed to extract features in continuous EMG sensor data and perform one-class classification to identify eating events (i.e., time span between the start and the end of an eating activity), see Section 5.2.1.

5.2. Design Space Representation

We considered N ξ = 4 system functionalities: Ξ 1 , an algorithm for event retrieval, Ξ 2 , a data sampling strategy, Ξ 3 , a μ C and Ξ 4 , a runtime mode.
Table 2 presents the design space considered in this work. Our design space included two spotting algorithms, i.e., ϵ 1 , 1 and ϵ 1 , 2 , which were considered for execution on three μ Cs, i.e., ϵ 3 , 1 , ϵ 3 , 2 and ϵ 3 , 3 . Moreover, two data sampling strategies, i.e., ϵ 2 , 1 and ϵ 2 , 2 , were considered, while applying two runtime modes, i.e., ϵ 4 , 1 and ϵ 4 , 2 .
To deal with the requirements in this case study, we relaxed the optimisation problem of Equation (18) into one of maximisation as follows:
max X | E , Ω X | E , Ω p π p ( X | E , Ω ) s . t . z ρ r 1 r r , z π p 1 p p .
The above constrained optimisation problem was solved by a grid search-based approach, evaluating a grid of possible configurations with an exhaustive search. At each iteration, a system configuration was generated and the sensor data processed through the simulation. The metrics were estimated and compared with the respective requirements.

5.2.1. Algorithm ( Ξ 1 )

FFT-based spotting: The first pattern spotting method was introduced by Zhang and Amft [32] in order to identify eating moments. An online non-overlapping sliding window segmentation with length m expressed in seconds was used to extract features in continuous EMG data. A one-class classification was performed by a one-class SVM (oc-SVM). Details of the feature extraction and one-class classification can be found in [32]. The ocSVM was trained applying the leave-one-participant-out (LOPO) cross-validation strategy. Hyperparameter optimisation was performed using grid search approach.
WPD-based spotting: We designed the second pattern spotting method inspired by the classification task presented in [33]. An online non-overlapping sliding window segmentation with length m expressed in seconds was used. From each segmented frame, the maximum sample value was extracted and compared to a threshold experimentally found. When the sample value was lower than the threshold, the frame was not fed to the spotting pipeline. In the pre-processing module, the EMG signals were passed through a notch filter of 50 Hz to remove power line’s interferences, likely to occur in free-living, also de-trended by a digital high pass filter of 20 Hz and rectified. In the feature extraction module, the signal was passed through a Wavelet Packet Decomposition (WPD), to extract c features, i.e., the WPD coefficients, in the time-frequency domain. The depth level of the tree decomposition was kept constant, i.e., l = 2 . A principal component analysis (PCA) was subsequently used to reduce the number of features from c to d. After normalisation, the features were used as discriminant of the target class by using a ocSVM, with number of support vectors v = 1500 .
The ocSVM was trained applying the LOPO cross-validation strategy. Hyperparameter optimisation was performed using grid search approach.
Table 3 presents a breakdown of the spotting algorithms.

5.2.2. Data Sampling ( Ξ 2 )

A context-adaptive sampling algorithm needs two main components, i.e., a context measure and a response model, to adapt the sampling rate depending on an estimation of relevance of future samples. As a context measure, we employed a basic representation of EMG signal energy. A feedforward state-based model that alternates between attentive and sleep states was adopted as response model. Our sampling strategy was based on the n-shots measure paradigm: the sensor wakes up, takes n samples, and goes to sleep again. The energy content from the n samples was used to compute the context measure as:
e k = i = 1 n s i , k n , θ t = max e 1 , , e k , , e K ,
where e k is the signal energy for the k t h channel, s i , k is the i t h value sampled from the n-shots measurement, θ t is the context measure, t is the time-step, K is the number of channels that connect to the same system. A linear mapping function converted θ t to a candidate duty cycle rate D t + 1 * :
D t + 1 * = D l + D h D l θ h θ l · θ t θ l ,
where D l is the minimum duty rate set to θ l , which was estimated from the signals noise. A maximum duty rate D h was set to θ h . We adjusted the model’s sensitivity by tuning θ h .
The behaviour of the response model is described by Equation (42).
The computation of the duty cycle rate for the next period was based on a comparison between the candidate duty cycle rate D t + 1 * and the threshold value D T H .
As the D t + 1 * exceeds the threshold D T H , the response model switches from inattentive state to attentive state. The attentive state is characterised by a monotonically increasing duty cycle rate. As the D t + 1 * drops below the threshold D T H and the attention time τ expires, the response model switches back from attentive state to inattentive state. The duty cycle rate’s decision rules for the two states were computed as follows:
( 1 ) Inattentive state If ( D t + 1 * < D T H ) and τ elapsed ) : D t + 1 = D t + 1 * ( 2 ) Attentive state If ( D t + 1 * > D T H ) : D t + 1 = D t , D t + 1 * D t D t + 1 * , D t + 1 * > D t .
Table 4 presents a break down of the context-adaptive sampling algorithm. More details can be found in our previous work [34].

5.2.3. μ C ( Ξ 3 )

The processing module simulates the behaviour of an energy-efficient μ C while computing the algorithm’s functions at a certain clock frequency. We considered three commonly widely used μ C s, i.e., PSoC1 M8C, TI MSP430F1611, and ARM CortexM3. A Li-Ion polymer battery provided energy to the system. Each μ C was provided with memory for local data processing, i.e., Flash and non-volatile memory. Table 5 shows the number of machine cycles n x c y c related to the arithmetical operation x for different μ C s.

5.2.4. Runtime mode ( Ξ 4 )

Two runtime modes were considered in this work, i.e., online and real time. In our application, real time mode implies that as soon as a data frame has been recorded, the output of the data processing must be available. With online data processing, the temporal requirement is more relaxed, as the output of the data processing must be available by the end of the runtime.

5.3. Configuration Evaluation

5.3.1. Sensor Dataset

Ten healthy volunteers (4 females, 6 males) aged between 20 and 30 years wore the EMG-monitoring eyeglasses for one day. The application data used in the simulation were sensor data collected at uniform sampling rate, i.e., 256 Hz. The eyeglasses were attached after getting up in the morning and kept on till bed time. When a risk of contamination with water existed, the participants were allowed to remove the eyeglasses. Participants manually logged the occurrence of eating events in a diet journal with a one minute resolution.

5.3.2. Multi-Objective Computation

Our framework is based on a simulation which reproduces the functionalities of a wearable IoT system. The sensor’s and μ C ’s behaviour can be emulated with a finite-state machine approach, e.g., Buschhoff et al. [35], in order to reproduce dependencies between the system components and between hardware and software.
We evaluated the algorithm’s retrieval performance considering the total number of samples of all eating events according to ground truth labels, the total number of samples of all retrieved eating events, and the sum of the number of samples correctly retrieved belonging to eating events segments.
The number of machine cycles for an instance of a oc-SVM for the WPD-based spotting algorithm, with hyper-parameters ( m = 256 , d = 20 ) , applying Equation (20), is computed as:
  • Kernel SVM:
    [ v · 60 ] + [ 2 v · 50 ] + [ 1 · 12 ] 24 × 10 4 cycles, where v = 1500 , is the number of support vectors;
  • Radial basis function:
    [ v ( 2 d 1 ) · 60 ] + [ v ( d 1 ) · 50 ] + [ 1 · 12 ] + [ v · 210 ] 525 × 10 4 cycles.
For simplicity, we assumed that all operations were performed using float data type.
Accordingly to Equation (21), the ET f is computed from the number of machine cycles n f c y c , as inversely proportional to the clock frequency ν of a considered μ C . Table 6 lists the clock frequencies of the three candidate μ C s.
Time ET f to execute the oc-SVM on a ARM CortexM3 was 114.3 ms .
Accordingly to Equation (24), the EC f μ C is computed multiplying the ET f and the μ C energy consumption P act μ C . The μ C switching behaviour is regulated by the time constraints given by the ET and the sensor data frequency. Table 6 lists the current consumptions I act μ C in active state, I stb μ C in stand-by state, and the voltage level V, of the three candidate μ C s. For example, the energy consumption EC f μ C to execute an instance of the oc-SVM on a ARM CortexM3 was 0.732 μ Wh .
Figure 2a,b show the linear relation between f ET f and f EC f μ C , for the individual spotting stage κ . A log scale for the y axes was defined in order to make the plot more readable. A tuning effect of the spotting parameters on the execution time and on the energy consumption, is evident. The higher complexity of a parameter combination, the more machine cycles n f c y c , execution time ET f , and energy consumption EC f .
Table 5 and Table 6 list the memory specifications and the data resolution for the three candidate μ C s. Each μ C had a RAM memory and a larger flash support, and their capacity represented a system constraint.
By switching runtime mode, i.e., real-time mode or online mode, m d was defined as follows. In real-time mode, the m d was defined as the amount of data memory for a window size m. In online mode, the m d was estimated as the peak of memory footprint required to process the data stream continuously without data loss, using a ring buffer.
Depending on their characteristics, the considered μ C s had a certain latency that shaped the distribution of their memory footprint. For example, Figure 3 shows the distribution of the memory m d footprint related to a daylong processing. The BLE transmission’s specifications defined the maximum ν t r as 305 kbps and the MPS as 215 bits [36]. Equation (38) defines the actual ν t r by tuning the c o n n I n t e r v a l parameter, which ranged from 7.5 ms to 4.0 s with steps of 1.25 ms. For example, a retrieved eating event was represented by two time stamps, which represent the start and end of an eating event. A time stamp can be represented as an unsigned short variable type in 2 bytes (i.e., 5 bits for day, 5 bits for hour, and 6 bits for minute). The communication latency CL to deliver an event retrieved by the FFT-based spotting (m = 13) on a ARM CortexM3 was 886 ms , according to Equation (37).
Considering the typical event frequencies in human daily behaviour and the negligible memory footprint for event information, communication latency was omitted from the following analyses.

5.3.3. Multi-Objective Visualisation

To visualise whether the metrics lie within the system requirements’ boundary conditions or not, we exploited radar plots. Radar plots support the representation of the trade-off across the design space. Each y-axes is related to an objective, i.e., P, R, EC, ET, and MD, and normalised for the respective requirements, yielding a feasibility region within the unitary axes. Thus, a radar plot point beyond the unitary axes indicates unacceptable configurations. The unitary axes represents an upper bound regarding the requirements.

5.3.4. Multi-Objective Analysis

For FFT-based, by tuning the parameter m, the precision’s variation ranged from 48.8 % for m = 1 , to 95.7 % for m = 33 . The recall R variation ranged from 62.9 % for m = 29 , to 99.2 % for m = 1 . The F1-score variation ranged from 63.3 % for m = 1 , to 85.2 % for m = 9 . For WPD-based, by tuning the parameters m and d the precision P variation ranged from 38.7 % for m = 0.25 , d = 50 , to 95.7 % for m = 0.5 , d = 15 . The recall R variation ranged from 52.7 % for m = 0.25 , d = 28 , to 86.2 % for m = 1 , d = 40 . The F1-score variation ranged from 49.1 . 0 % for m = 0.25 , d = 50 , to 85.9 % for m = 1 , d = 40 . The system requirements z π 1 and z π 2 are indicated as horizontal lines. It is evident that only a subset of spotting parameters respects the requirements.
Figure 4a,b show the results of the cross-validated FFT-based and WPD-based spotting algorithms in uniform sampling mode, when tuning their spotting parameters. Specifically, precision P, recall R, and F1-score, are reported for all spotting parameters combinations. The degree of sampling reduction was changed by tuning θ h in order to find a balance between retrieval performance and resource consumption. Figure 5a,b show the trade-off between F1-score and sampling reduction for the FFT-based and WPD-based spotting algorithms. It is clear that we can keep the retrieval performance up over 80 % while performing a sampling reduction over 70 % , in both methods. Comparing the two methods, the WPD-based spotting appears to be more robust against the down-sampling effect, presenting a lower degradation of retrieval performance for a given sampling reduction degree.
From Figure 6, Figure 7, Figure 8, Figure 9, Figure 10 and Figure 11, the trade-off across the metrics are shown for different system configurations. Figure 6 and Figure 7 show results for the FFT-based spotting in real-time for uniform and context-adaptive sampling. In uniform sampling, i.e., Figure 6, the largest requirement breach on any μ C was due to the energy consumption EC. In context-adaptive sampling, i.e., Figure 7, the reduction of the energy consumption EC determined a set of feasible configurations on the ARM Cortex M3. In both sampling modalities, the execution time ET fulfilled the real-time requirements on any μ C , although the memory demand MD compromised the feasibility of the configurations on the PSoC1 M8C.
Figure 8 and Figure 9 show results for the WPD-based spotting in real-time for uniform and context-adaptive sampling. In uniform sampling, i.e., Figure 8, the largest requirement breaches on any μ C were due to the execution time ET and the energy consumption EC. In context-adaptive sampling, i.e., Figure 9, the reduction of the execution time ET determined a set of feasible configurations on the ARM Cortex M3. Overall, the memory demand MD was neglectable in all configurations, as only a data frame had to be stored.
Figure 10 and Figure 11 show results for the WPD-based spotting in online mode for uniform and context-adaptive sampling. The online mode required a more intensive memory use, due to the longer ring buffer, that in turn made the z ρ 3 a more stringent requirement. In uniform sampling, i.e., Figure 10, the largest requirement breaches on any μ C were due to the energy consumption EC and the memory demand MD. In context-adaptive sampling, i.e., Figure 11, the reduction of the energy consumption EC determined a set of feasible configurations on the ARM Cortex M3.
Figure 12 depicts the energy consumption estimated from the best system configuration, related to the individual participants. For three participants, the boundary conditions are not respected, implying a reduced application’s runtime with respect to the system requirements.

6. Discussion

The simulation-based DynDSE presented here targets wearable IoT device design, which run time-variable recognition algorithms on the device. Processing a large volume of data locally and enabling local inference is key to a scalable IoT network. Furthermore, manual tuning of hardware and algorithms in a physical implementation is tedious. The DynDSE simulation-based approach can cover a wide configuration space to identify a balance between resources and event retrieval performance. Our case study demonstrated interactions and dependencies among hardware and algorithm components, and justified the need for co-designing and developing of associated functionalities. We chose two example retrieval algorithms to illustrate different effects on the optimisation result (cf. Figure 9, Figure 10, Figure 11 and Figure 12). FFT-based oc-SVM spotting was published before [32]. The WPD-based spotting showed performance improvements P and R, but also implications for execution time ET, thus further illustrating the design trade-off features of our methodology. The processing functionality ( Ξ 3 ) affected the execution time ET, due to the μ C type and speed, and the memory demand MD, due to its memory capacity. The μ C ’s energy consumption EC heavily depended on the algorithmic complexity, see Figure 12. Executing the WPD-based spotting, the μ C ’s energy consumption EC was comparable with the sensor’s energy consumption EC. As the computational complexity was shrunk by employing the FFT-based spotting, the energy consumption EC became neglectable. The algorithm ( Ξ 1 ) and data sampling ( Ξ 2 ) functionality were the most influencing configuration elements on the system’s metrics. Tuning the algorithm parameters affected precision P and recall R, and the required memory demand MD. Data sampling had the highest impact on the energy consumption EC and the tuning of the algorithm parameters had the lowest.
We found that our context-adaptive sampling strategy kept the performance of the spotting pipeline at a average F1-score over 80 % while reaching almost 70 % reduction in resource consumption.
DynDSE requirements in the application evaluation were set according to Table 1. While in our analysis, retrieval performances (P, R) larger than 80% were reached for optimised parameter settings, our requirements z π 1 and z π 2 followed literature recommendations [37] suggesting that even 70% in retrieval performance has relevant application value. Energy consumption requirement z ρ 2 was set considering the capacity and size of standard lithium-ion batteries, and the application runtime, according to Equation (35). Execution time and memory demand requirements z ρ 1 and z ρ 3 were dictated by the algorithm and the μ C characteristics, respectively. While the retrieved system configurations and their performances appear relevant, a direct comparison to prior work is not feasible, due to the diversity in analysis goals, applications, and dataset characteristics. First, many investigations optimise for a fraction of the DynDSE metrics only, e.g., recognition performance. Second, sensor and algorithm choice span a wide value space for performance metrics. Our investigation aimed at defining a generalisable procedure, which provides trade-off indicators across a variety of design space options and could thus assist designers in taking decisions and investigate details depending on application relevance.
Figure 7 and Figure 8 show the analysis of the variance in the resource-perfomance trade-off. Under the same P and R, higher sampling reduction can be achieved, which corresponds to lower energy consumption EC. In context-adaptive sampling mode, the resource consumption is proportional to the event frequency and the duration of event patterns. Consequently, for one configuration, resource saving varies according to individual behaviour. Population-averaged models do not guarantee to fulfil the system requirements for every individual. In our case study, a homogeneous study group of university students was included, however the resource consumption estimation did not respect the boundary conditions for all participants, as shown in Figure 12.
Personalising models increases computational complexity and entails more complicated deployment. A reasonable approach is to take into account the heterogeneity of the population by defining subpopulations having similar behaviour and include a safety margin.
We derived approximate machine cycle numbers, which limit accuracy of execution time estimation. The exact number of cycles is highly dependent on the algorithm implementation and compiler. Thus, our analysis could be integrated with extended target-dependent hardware and machine instruction simulators. Another source of inaccuracy are the energy consumption measures, as we did not consider overhead of the electronic circuits. We considered for simplicity only floating point operations. Differentiating between integer and floating point operations would result in higher modelling accuracy. Also, differentiating the range of variables and datatypes may improve the modelling.
The metric set serves as mapping between the design space and the application specifications, whose definition largely depends on the application requirements. Therefore, a direct comparison of metric outcomes is limited. However, depending on the defined metric set, well-determined functional implications and system properties can be identified and compared.
For example, Bharatula et al. [14] defined four conflicting metrics and analysed the inherent trade-off on an activity recognition task: Flexibility, which included estimation of memory demand and μ C’s operating frequency, electronic packaging, relative recognition performance, and energy consumption measures. The conflicting nature of the four metrics was highlighted as orthogonal, meaning that optimising all the four metrics at the same time is not feasible. Similar to our work, the authors embedded recognition algorithm characteristics in the trade-off analysis, namely classification accuracy. However, we included execution time ET to highlight dynamic design aspects that appear during runtime. The ET metric linked the algorithmic computational complexity with the hardware μ C characteristics in time. Understanding of the system temporal constraints enables DynDSE to leverage dynamic system behaviour for context-adaptivity. Azariardi’s [38] DSE included ET and classification accuracy in the metric set but omitted energy consumption. The authors were able to estimate temporal constraints for SVM processing and investigated how the DSE solution matches with application requirements and free-living user. However, assumptions were needed to compensate for the missing energy consumption (EC) metric. The application of Beretta et al. [17] consisted of a wearable node transmitting sensor data using compressive sensing. Objectives were the node’s energy consumption, the percentage root-mean-square difference (PRD) to approximate the information loss due to compression, the communication delay and the packet error rate (PER) of the radio transmission. The solution space was compared with the one reported by Kumar et al. [39], which optimised only energy consumption and communication delay. Under the same energy consumption and communication delay solution, the PRD and PER were significantly higher. Moreover, Kumar et al. were able to discover only the 2.3% of the solution space with respect to Beretta’s work.
From the above comparison, it appears that the descriptive power of the trade-off analysis in DSE depends on a careful selection of the metrics. Neglecting metrics may result in misleading results. The same conclusion can be drawn with regard to our work. For example, consider Figure 9 and Figure 10: When omitting EC, it may seem that the choice of sampling mode does not affect the system behaviour. As the EC is included in our trade-off analysis, it becomes evident how the uniform sampling mode does not provide any feasible configuration. DSE frameworks that consider hardware-software co-design, in principle, achieve higher system performances as a consequence of the flexibility given by a finer model granularity. For example, Shoaib et al. [40] optimised the individual processing stages of a SVM pipeline by exploring hardware architectures based on custom instructions and coprocessor computations. The authors reported a reduction in energy consumption of almost three orders of magnitude compared to that of a low-power μ C, as targeted by our work. The energy consumption metric was computed as the sum of several real measurements related to hardware components involved in the SVM processing stage. The design space solutions included specific hardware to run kernel-based classification in varying contexts. The optimisation potential of hardware-software co-design comes at the cost of an expensive design, which includes custom-made platforms, and design space and metrics definition that rely on hardware-specific knowledge.
Overall, dynamic system configurations have been rarely considered in DSE for wearable systems. The inclusion of data sampling strategies into the design space enabled us to adapt system designs to context. Moreover, memory demand has been infrequently included into the DSE objective set, although memory limitations are common in μ Cs and represent a bottleneck for embedded recognition algorithm deployment, as evident from Figure 9 and Figure 10. We argue that memory demand should be considered in the design phase.
This work focuses on one typical wearable IoT application in order to derive a detailed analysis of the design space spanned by two retrieval algorithms, three μ C s, and two sampling procedures introducing dynamic variations. Nevertheless, we kept the DynDSE design space formalism general, such that a wide variety of other components, system architectures, metrics, and IoT applications could be explored, including other hardware, data, and recognition algorithms. Thus, the DynDSE approach does not depend on the particular application considered nor does the method require modifications for other applications. Rather, we deem it essential to match the DynDSE approach with appropriate sensor data to drive the simulation.
For larger design spaces than the one considered here, DynDSE may require approximate rules. Nevertheless, the exhaustive search deployed here remains a suitable option for coarse design selections before investigating further design variables in subsequent, local explorations.

7. Conclusions and Future Work

We introduced a general methodology for multi-objective DynDSE applied to context-adaptive wearable IoT edge devices, which retrieve events from streaming sensor data using pattern recognition algorithms. We provided a formal characterisation of the configuration space given a set of system functionalities, components and their parameters. A constrained optimisation problem was formulated to identify an optimal system configuration according to application-dependent system requirements. The simulation can provide crucial information about the compatibility of system components. The method is particularly suitable to analyse design options at an early stage of the development process, to approximate key system design aspects, e.g., size of wireless battery powered devices, to confirm software and hardware choices under given design constraints, and to review designs under varying data patterns.
Further investigations may consider automated, on-demand resource distribution between functions of an embedded system that incorporates the DynDSE methodology. Dynamic resource management may result in wearable IoT systems that reconfigure themselves at runtime according to dynamic conditions. Furthermore, the increasing ubiquity and interconnection among wearable IoT devices rise concerns about security and privacy, as malicious interactions are more likely to happen. System security objectives could be incorporated into the dynamic optimisation to represent varying privacy concerns. Nevertheless, further research is needed to effectively quantify security and privacy concerns in metrics.

Author Contributions

G.S. and O.A. devised the methodology. R.Z. performed data curation. G.S. and J.C.S. implemented the algorithms. O.A. provided feedback throughout the implementation phase. G.S. and O.A. prepared the manuscript. All authors have read and agreed to the published version of the manuscript.

Funding

This work was partially funded by the EU H2020 MSCA ITN ACROSSING project (GA no. 616757).

Acknowledgements

The present study was performed in (partial) fulfillment of the requirements for obtaining the degree “Dr. rer. biol. Hum”.

Conflicts of Interest

The authors declare no conflict of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript, or in the decision to publish the results’.

Abbreviations

The following abbreviations are used in this manuscript:
μ CMicrocontroller
BLEBluetooth Low Energy
CLCommunication latency
DSEDesign space exploration
ECEnergy consumption
ECGElectrocardiography
EEGElectroencephalography
EMGElectromyography
ETExecution time
FFTFast Fourier transform
FPGAField Programmable Gate Array
GPUGraphics Processing Unit
IoTInternet of things
IPIntellectual Property
LOPOLeave-one-participant-out
MPSMaximum payload size
ocSVMOne-class support vector machines
PPrecision
PCAPrincipal component analysis
RRecall
SVMSupport vector machines
WPDWavelet packet decomposition

References

  1. Amft, O. How wearable computing is shaping digital health. IEEE Pervasive Comput. 2018, 17, 92–98. [Google Scholar] [CrossRef]
  2. Verma, P.; Sood, S.K. Fog assisted-IoT enabled patient health monitoring in smart homes. IEEE Internet Things J. 2018, 5, 1789–1796. [Google Scholar] [CrossRef]
  3. Tokognon, C.A.; Gao, B.; Tian, G.Y.; Yan, Y. Structural health monitoring framework based on Internet of Things: A survey. IEEE Internet Things J. 2017, 4, 619–635. [Google Scholar] [CrossRef]
  4. Sittón-Candanedo, I.; Alonso, R.S.; Corchado, J.M.; Rodríguez-González, S.; Casado-Vara, R. A review of edge computing reference architectures and a new global edge proposal. Future Gener. Comput. Syst. 2019, 99, 278–294. [Google Scholar]
  5. Selvaraj, S.; Sundaravaradhan, S. Challenges and opportunities in IoT healthcare systems: A systematic review. SN Appl. Sci. 2020, 2, 139. [Google Scholar] [CrossRef]
  6. Jayakumar, H.; Raha, A.; Kim, Y.; Sutar, S.; Lee, W.S.; Raghunathan, V. Energy-efficient system design for IoT devices. In Proceedings of the 2016 21st Asia and South Pacific Design Automation Conference (ASP-DAC), Macau, China, 25–28 January 2016; pp. 298–301. [Google Scholar]
  7. Belwal, M.; Sudarshan, T. A survey on design space exploration for heterogeneous multi-core. In Proceedings of the 2014 International Conference on Embedded Systems (ICES), Coimbatore, India, 3–5 July 2014; pp. 80–85. [Google Scholar]
  8. Pimentel, A.D. Exploring exploration: A tutorial introduction to embedded systems design space exploration. IEEE Des. Test 2016, 34, 77–90. [Google Scholar] [CrossRef]
  9. Schiboni, G.; Amft, O. Saving energy on wrist-mounted inertial sensors by motion-adaptive duty-cycling in free-living. In Proceedings of the 2018 IEEE 15th International Conference on Wearable and Implantable Body Sensor Networks (BSN), Las Vegas, NV, USA, 4–7 March 2018; pp. 197–200. [Google Scholar]
  10. Brandolese, C.; Fornaciari, W.; Pomante, L.; Salice, F.; Sciuto, D. Affinity-driven system design exploration for heterogeneous multiprocessor SoC. IEEE Trans. Comput. 2006, 55, 508–519. [Google Scholar]
  11. Streichert, T.; Glaß, M.; Haubelt, C.; Teich, J. Design space exploration of reliable networked embedded systems. J. Syst. Archit. 2007, 53, 751–763. [Google Scholar] [CrossRef]
  12. Haubelt, C.; Schlichter, T.; Keinert, J.; Meredith, M. SystemCoDesigner: Automatic design space exploration and rapid prototyping from behavioral models. In Proceedings of the 45th Annual Design Automation Conference. ACM, Anaheim, CA, USA, 8–13 June 2008; pp. 580–585. [Google Scholar]
  13. Bharatula, N.B.; Stäger, M.; Lukowicz, P.; Tröster, G. Empirical study of design choices in multi-sensor context recognition systems. In Proceedings of the IFAWC 2nd International Forum on Applied Wearable Computing, Zurich, Switzerland, 17–18 March 2005; pp. 79–93. [Google Scholar]
  14. Bharatula, N.B.; Anliker, U.; Lukowicz, P.; Tröster, G. Architectural tradeoffs in wearable systems. In Proceedings of the International Conference on Architecture of Computing Systems, Anaheim, CA, USA, 8–13 June 2008; pp. 217–231. [Google Scholar]
  15. Anliker, U.; Beutel, J.; Dyer, M.; Enzler, R.; Lukowicz, P.; Thiele, L.; Troster, G. A systematic approach to the design of distributed wearable systems. IEEE Trans. Comput. 2004, 53, 1017–1033. [Google Scholar]
  16. Anliker, U.; Junker, H.; Lukowicz, P.; Tröster, G. Design methodology for context-aware wearable sensor systems. In Proceedings of the International Conference on Pervasive Computing, Berlin, Germany, 8 May 2005; pp. 220–236. [Google Scholar]
  17. Beretta, I.; Rincon, F.; Khaled, N.; Grassi, P.R.; Rana, V.; Atienza, D.; Sciuto, D. Model-based design for wireless body sensor network nodes. In Proceedings of the 2012 13th Latin American Test Workshop (LATW), Quito, Ecuador, 10–13 April 2012; pp. 1–6. [Google Scholar]
  18. Stäger, M.; Lukowicz, P.; Tröster, G. Power and accuracy trade-offs in sound-based context recognition systems. Pervasive Mob. Comput. 2007, 3, 300–327. [Google Scholar]
  19. Rault, T.; Bouabdallah, A.; Challal, Y.; Marin, F. A survey of energy-efficient context recognition systems using wearable sensors for healthcare applications. Pervasive Mob. Comput. 2017, 37, 23–44. [Google Scholar] [CrossRef]
  20. Mesin, L. A neural algorithm for the non-uniform and adaptive sampling of biomedical data. Comput. Biol. Med. 2016, 71, 223–230. [Google Scholar] [CrossRef] [PubMed]
  21. Scarabottolo, I.; Alippi, C.; Roveri, M. A spectrum-based adaptive sampling algorithm for smart sensing. In Proceedings of the 2017 IEEE SmartWorld, Ubiquitous Intelligence & Computing, Advanced & Trusted Computed, Scalable Computing & Communications, Cloud & Big Data Computing, Internet of People and Smart City Innovation (SmartWorld/SCALCOM/UIC/ATC/CBDCom/IOP/SCI), San Francisco, CA, USA, 4–8 August 2017; pp. 1–8. [Google Scholar]
  22. Rieger, R.; Taylor, J.T. An adaptive sampling system for sensor nodes in body area networks. IEEE Trans. Neural Syst. Rehabil. Eng. 2009, 17, 183–189. [Google Scholar] [CrossRef] [PubMed]
  23. Künzli, S.; Thiele, L.; Zitzler, E. Modular design space exploration framework for embedded systems. IEEE Proc.-Comput. Digit. Tech. 2005, 152, 183–192. [Google Scholar] [CrossRef]
  24. Gajski, D.D.; Vahid, F.; Narayan, S.; Gong, J. System-level exploration with SpecSyn. In Proceedings of the 35th Annual Design Automation Conference, San Francisco, CA, USA, 15–19 June 1998; pp. 812–817. [Google Scholar]
  25. Zhuge, Q.; Shao, Z.; Xiao, B.; Sha, E.H.M. Design space minimization with timing and code size optimization for embedded DSP. In Proceedings of the 1st IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis, Newport Beach, CA, USA, 1–3 October 2003; pp. 144–149. [Google Scholar]
  26. Rajagopal, S.; Cavallaro, J.R.; Rixner, S. Design space exploration for real-time embedded stream processors. IEEE Micro 2004, 24, 54–66. [Google Scholar] [CrossRef]
  27. Powers, D.M. Evaluation: From precision, recall and F-measure to ROC, informedness, markedness and correlation. Mach. Learn. Technol. 2011, 2, 37–63. [Google Scholar]
  28. Konstantakos, V.; Chatzigeorgiou, A.; Nikolaidis, S.; Laopoulos, T. Energy consumption estimation in embedded systems. IEEE Trans. Instrum. Meas. 2008, 57, 797–804. [Google Scholar] [CrossRef]
  29. Prayati, A.; Antonopoulos, C.; Stoyanova, T.; Koulamas, C.; Papadopoulos, G. A modeling approach on the TelosB WSN platform power consumption. J. Syst. Softw. 2010, 83, 1355–1363. [Google Scholar] [CrossRef]
  30. Zhang, R.; Amft, O. Monitoring chewing and eating in free-living using smart eyeglasses. IEEE J. Biomed. Health Inform. 2017, 22, 23–32. [Google Scholar] [CrossRef]
  31. Schiboni, G.; Amft, O. Automatic dietary monitoring using wearable accessories. In Seamless Healthcare Monitoring; Springer: Berlin/Heidelberg, Germany, 2018; pp. 369–412. [Google Scholar]
  32. Zhang, R.; Amft, O. Free-living eating event spotting using EMG-monitoring eyeglasses. In Proceedings of the 2018 IEEE EMBS International Conference on Biomedical & Health Informatics (BHI), Las Vegas, NV, USA, 4–7 March 2018; pp. 128–132. [Google Scholar]
  33. Chu, J.U.; Moon, I.; Lee, Y.J.; Kim, S.K.; Mun, M.S. A supervised feature-projection-based real-time EMG pattern recognition for multifunction myoelectric hand control. IEEE/ASME Trans. Mechatron. 2007, 12, 282–290. [Google Scholar] [CrossRef]
  34. Schiboni, G.; Suarez, J.C.; Zhang, R.; Amft, O. Attention-Based Adaptive Sampling for Continuous EMG Data Streams. In Proceedings of the 2019 IEEE SmartWorld, Ubiquitous Intelligence & Computing, Advanced & Trusted Computing, Scalable Computing & Communications, Cloud & Big Data Computing, Internet of People and Smart City Innovation (SmartWorld/SCALCOM/UIC/ATC/CBDCom/IOP/SCI), Leicester, UK, 19–23 August 2019; pp. 1178–1183. [Google Scholar]
  35. Buschhoff, M.; Günter, C.; Spinczyk, O. A unified approach for online and offline estimation of sensor platform energy consumption. In Proceedings of the 2012 8th International Wireless Communications and Mobile Computing Conference (IWCMC), Limassol, Cyprus, 27–31 August 2012; pp. 1154–1158. [Google Scholar]
  36. Mikhaylov, K. Simulation of network-level performance for Bluetooth Low Energy. In Proceedings of the 2014 IEEE 25th Annual International Symposium on Personal, Indoor, and Mobile Radio Communication (PIMRC), Washington, DC, USA, 2–5 September 2014; pp. 1259–1263. [Google Scholar]
  37. Zhang, R.; Bernhart, S.; Amft, O. Diet eyeglasses: Recognising food chewing using EMG and smart eyeglasses. In Proceedings of the 2016 IEEE 13th International Conference on Wearable and Implantable Body Sensor Networks (BSN), San Francisco, CA, USA, 14–17 June 2016; pp. 7–12. [Google Scholar]
  38. Azariadi, D.; Tsoutsouras, V.; Xydis, S.; Soudris, D. ECG signal analysis and arrhythmia detection on IoT wearable medical devices. In Proceedings of the 2016 5th International Conference on Modern Circuits and Systems Technologies (MOCAST), Thessaloniki, Greece, 12–14 May 2016; pp. 1–4. [Google Scholar]
  39. Kumar, G.S.A.; Manimaran, G.; Wang, Z. End-to-end energy management in networked real-time embedded systems. IEEE Trans. Parallel Distrib. Syst. 2008, 19, 1498–1510. [Google Scholar] [CrossRef]
  40. Shoaib, M.; Jha, N.K.; Verma, N. Algorithm-driven architectural design space exploration of domain-specific medical-sensor processors. IEEE Trans. Very Large Scale Integr. VLSI Syst. 2012, 21, 1849–1862. [Google Scholar] [CrossRef]
Figure 1. DynDSE procedure for wearable IoT edge devices. X | E , Ω : design space; X | E , Ω : system configuration; π benefit metrics set; ρ : cost metrics set; z π : benefit requirement set; z ρ : cost requirement set; s i , k : data sample i from channel k.
Figure 1. DynDSE procedure for wearable IoT edge devices. X | E , Ω : design space; X | E , Ω : system configuration; π benefit metrics set; ρ : cost metrics set; z π : benefit requirement set; z ρ : cost requirement set; s i , k : data sample i from channel k.
Sensors 20 06104 g001
Figure 2. (a) FFT-based spotting: Relation between execution time and energy consumption. Some of the spotting parameters were omitted for readability. The spotting parameter m represents the data frame size. (b) WPD-based spotting. Relation between execution time and energy consumption. The spotting parameter m represents the data frame’s size and d represent the reduced feature space’s dimension.
Figure 2. (a) FFT-based spotting: Relation between execution time and energy consumption. Some of the spotting parameters were omitted for readability. The spotting parameter m represents the data frame size. (b) WPD-based spotting. Relation between execution time and energy consumption. The spotting parameter m represents the data frame’s size and d represent the reduced feature space’s dimension.
Sensors 20 06104 g002
Figure 3. Memory m d foot-print for the online data buffer while executing the WPD-based spotting. Each colour is related to a specific μ C .
Figure 3. Memory m d foot-print for the online data buffer while executing the WPD-based spotting. Each colour is related to a specific μ C .
Sensors 20 06104 g003
Figure 4. (a) FFT-based spotting. Average retrieval performance when varying the spotting parameters in uniform sampling mode. Bars were sorted by increasing retrieval performance. The spotting parameter m represents the data frame size. (b) WPD-based spotting. Average retrieval performance when varying the spotting parameters in uniform sampling mode. Bars were sorted by increasing retrieval performance. The spotting parameter m represents the data frame’s size and d represent the reduced feature space’s dimension.
Figure 4. (a) FFT-based spotting. Average retrieval performance when varying the spotting parameters in uniform sampling mode. Bars were sorted by increasing retrieval performance. The spotting parameter m represents the data frame size. (b) WPD-based spotting. Average retrieval performance when varying the spotting parameters in uniform sampling mode. Bars were sorted by increasing retrieval performance. The spotting parameter m represents the data frame’s size and d represent the reduced feature space’s dimension.
Sensors 20 06104 g004
Figure 5. (a) FFT-based spotting. Average retrieval performance vs. sampling reduction when varying θ h . Individual lines correspond to the spotting parameters, which respect P and R requirements in Table 1. The F1-score requirement is derived by the same P and R requirements. The used parameters for the context-adaptive sampling were: D h = 1 , D l = 0.1 , D T H = 0.6 , n = 4 , τ = 3 s , θ l = 10 mV . (b) WPD-based spotting. Average retrieval performance vs. sampling reduction when varying θ h . Individual lines correspond to the spotting parameters that respect P and R requirements in Table 1. The F1-score requirement is derived from the same P and R requirements. The used parameters for the context-adaptive sampling were: D h = 1 , D l = 0.1 , D T H = 0.6 , n = 4 , τ = 3 s , θ l = 10 mV .
Figure 5. (a) FFT-based spotting. Average retrieval performance vs. sampling reduction when varying θ h . Individual lines correspond to the spotting parameters, which respect P and R requirements in Table 1. The F1-score requirement is derived by the same P and R requirements. The used parameters for the context-adaptive sampling were: D h = 1 , D l = 0.1 , D T H = 0.6 , n = 4 , τ = 3 s , θ l = 10 mV . (b) WPD-based spotting. Average retrieval performance vs. sampling reduction when varying θ h . Individual lines correspond to the spotting parameters that respect P and R requirements in Table 1. The F1-score requirement is derived from the same P and R requirements. The used parameters for the context-adaptive sampling were: D h = 1 , D l = 0.1 , D T H = 0.6 , n = 4 , τ = 3 s , θ l = 10 mV .
Sensors 20 06104 g005
Figure 6. FFT-based spotting and uniform sampling. Resource-performance trade-off for real-time mode, including different μ C s: ARM CortexM3 (left), TI MSP430F1611 (center), PSoC1 M8C (right). List of objectives: P = precision, R = recall, EC = energy consumption, ET = execution time, MD = memory demand.
Figure 6. FFT-based spotting and uniform sampling. Resource-performance trade-off for real-time mode, including different μ C s: ARM CortexM3 (left), TI MSP430F1611 (center), PSoC1 M8C (right). List of objectives: P = precision, R = recall, EC = energy consumption, ET = execution time, MD = memory demand.
Sensors 20 06104 g006
Figure 7. FFT-based spotting and context-adaptive sampling. Resource-performance trade-off for real-time mode, including different μ C s: ARM CortexM3 (left), TI MSP430F1611 (center), PSoC1 M8C (right). List of metrics: P = precision, R = recall, EC = energy consumption, ET = execution time, MD = memory demand. Context-adaptive sampling parameters are: D h = 1 , D l = 0.1 , D T H = 0.6 , n = 4 , τ = 3 s , θ l = 10 mV , θ h = 180 mV .
Figure 7. FFT-based spotting and context-adaptive sampling. Resource-performance trade-off for real-time mode, including different μ C s: ARM CortexM3 (left), TI MSP430F1611 (center), PSoC1 M8C (right). List of metrics: P = precision, R = recall, EC = energy consumption, ET = execution time, MD = memory demand. Context-adaptive sampling parameters are: D h = 1 , D l = 0.1 , D T H = 0.6 , n = 4 , τ = 3 s , θ l = 10 mV , θ h = 180 mV .
Sensors 20 06104 g007
Figure 8. WPD-based spotting and uniform sampling. Resource-performance trade-off for real-time mode, including different μ C s: ARM CortexM3 (left), TI MSP430F1611 (center), PSoC1 M8C (right). List of metrics: P = precision, R = recall, EC = energy consumption, ET = execution time, MD = memory demand.
Figure 8. WPD-based spotting and uniform sampling. Resource-performance trade-off for real-time mode, including different μ C s: ARM CortexM3 (left), TI MSP430F1611 (center), PSoC1 M8C (right). List of metrics: P = precision, R = recall, EC = energy consumption, ET = execution time, MD = memory demand.
Sensors 20 06104 g008
Figure 9. WPD-based spotting and adaptive sampling. Resource-performance trade-off for real-time mode, including different μ C s: ARM CortexM3 (left), TI MSP430F1611 (center), PSoC1 M8C (right). List of metrics: P = precision, R = recall, EC = energy consumption, ET = execution time, MD = memory demand. The used parameters are: D h = 1 , D l = 0.1 , D T H = 0.6 , n = 4 , τ = 3 s , θ l = 10 mV , θ h = 180 mV .
Figure 9. WPD-based spotting and adaptive sampling. Resource-performance trade-off for real-time mode, including different μ C s: ARM CortexM3 (left), TI MSP430F1611 (center), PSoC1 M8C (right). List of metrics: P = precision, R = recall, EC = energy consumption, ET = execution time, MD = memory demand. The used parameters are: D h = 1 , D l = 0.1 , D T H = 0.6 , n = 4 , τ = 3 s , θ l = 10 mV , θ h = 180 mV .
Sensors 20 06104 g009
Figure 10. WPD-based spotting and uniform sampling. Resource-performance trade-off for online mode, including different μ C s: ARM CortexM3 (left), TI MSP430F1611 (center), PSoC1 M8C (right). List of metrics: P = precision, R = recall, EC = energy consumption, ET = execution time, MD = memory demand.
Figure 10. WPD-based spotting and uniform sampling. Resource-performance trade-off for online mode, including different μ C s: ARM CortexM3 (left), TI MSP430F1611 (center), PSoC1 M8C (right). List of metrics: P = precision, R = recall, EC = energy consumption, ET = execution time, MD = memory demand.
Sensors 20 06104 g010
Figure 11. WPD-based spotting and context-adaptive sampling. Resource-performance trade-off for online mode, including different μ C s: ARM CortexM3 (left), TI MSP430F1611 (center), PSoC1 M8C (right). List of metrics: P = precision, R = recall, EC = energy consumption, ET = execution time, MD = memory demand. The used parameters are: D h = 1 , D l = 0.1 , D T H = 0.6 , n = 4 , τ = 3 s , θ l = 10 mV , θ h = 180 mV .
Figure 11. WPD-based spotting and context-adaptive sampling. Resource-performance trade-off for online mode, including different μ C s: ARM CortexM3 (left), TI MSP430F1611 (center), PSoC1 M8C (right). List of metrics: P = precision, R = recall, EC = energy consumption, ET = execution time, MD = memory demand. The used parameters are: D h = 1 , D l = 0.1 , D T H = 0.6 , n = 4 , τ = 3 s , θ l = 10 mV , θ h = 180 mV .
Sensors 20 06104 g011
Figure 12. Estimated energy consumption (EC) for the individual participants on the TI MSP430F1611. Left: FFT-based spotting with m = 13 . Right: WPD-based spotting with ( m = 256 , d = 20 ) .
Figure 12. Estimated energy consumption (EC) for the individual participants on the TI MSP430F1611. Left: FFT-based spotting with m = 13 . Right: WPD-based spotting with ( m = 256 , d = 20 ) .
Sensors 20 06104 g012
Table 1. Our metrics and their relative system requirements. The table also indicates the elements which affect the system requirements. T denotes the runtime duration and m the data frame length.
Table 1. Our metrics and their relative system requirements. The table also indicates the elements which affect the system requirements. T denotes the runtime duration and m the data frame length.
The Requirement Is Imposed by
ObjectiveAbbreviationDescription RequirementValueTaskBattery life μ C
π ( X | E , Ω ) π 1 ( X | E , Ω ) PPrecision z π 1 70 % ,X
π 2 ( X | E , Ω ) RRecall z π 2 80 % X
ρ ( X | E , Ω ) ρ 1 ( X | E , Ω ) ETEx. time in real-time z ρ 1 Real-time: < m X X
Ex. time online Online: < T X X
ρ 2 ( X | E , Ω ) ECEnergy Consumption z ρ 2 52.8 mWh XX
ρ 3 ( X | E , Ω ) MDMemory Demand z ρ 3 Variable (see Table 5) X
Table 2. Design space for the EMG-monitoring eyeglasses.
Table 2. Design space for the EMG-monitoring eyeglasses.
Functionality
( Ξ ξ )
Algorithm
( Ξ 1 )
Data Sampling
( Ξ 2 )
Microcontroller
( Ξ 3 )
Runtime Mode
( Ξ 4 )
Component
( ϵ ξ , q )
FFT-based
( ϵ 1 , 1 )
Uniform
( ϵ 2 , 1 )
PSoC1 M8C
( ϵ 3 , 1 )
Real time
( ϵ 4 , 1 )
WPD-based
( ϵ 1 , 2 )
Adaptive
( ϵ 2 , 2 )
TI MSP430F1611
( ϵ 3 , 2 )
Online
( ϵ 4 , 2 )
ARM CortexM3
( ϵ 3 , 3 )
Parameter
( ω ξ , q , w )
Data frame size m
( ω 1 , 1 , 1 )
Data frame size m
( ω 1 , 2 , 1 )
Context measure’s
upper bound θ h ( ω 2 , 2 , 1 )
Dim. feature space
d ( ω 1 , 2 , 2 )
Table 3. Analytical breakdown of the two spotting algorithms. Each function f belongs to an algorithm stage κ . The variable m denotes the length of the window size. For the WPD-based feature extraction, the variable c denotes the number of WPD coefficients, l denotes the depth level of the WPD decomposition tree, and d denotes the dimensionality of the feature space after applying PCA. For spotting, the variable v is the number of support vectors. The operations for pre-processing, feature extraction, and spotting are calculated on each sliding window’s instance.
Table 3. Analytical breakdown of the two spotting algorithms. Each function f belongs to an algorithm stage κ . The variable m denotes the length of the window size. For the WPD-based feature extraction, the variable c denotes the number of WPD coefficients, l denotes the depth level of the WPD decomposition tree, and d denotes the dimensionality of the feature space after applying PCA. For spotting, the variable v is the number of support vectors. The operations for pre-processing, feature extraction, and spotting are calculated on each sliding window’s instance.
AlgorithmStage ( κ ) Function ( f ) N. Arithmetical Operations Memory Demand
AddMultDivRootCompExp IntegersFloats
BothPre-processingLow-pass filteringm----- -1
FFT-based  Feature extraction  Standard deviation 3 m 1 m21-- 1-
Fast Fourier trasform 3 m · l o g 2 m 2 m · l o g 2 m ---- -k
Maximum---- m 1 - 1-
L2-norm d 1 d-1-- 1-
WPD-basedFeature extractionWPD i l ( m / 2 i ) 1 2 + 1 · 2 i i l ( m / 2 i ) + 1 4 · 2 i ---- - 4 + d
PCA d · ( c 1 ) d · c ---- - c · d
L2-norm d 1 d-1-- 1-
BothSpottingKernel SVM v + 1 2 v --1- v v · ( d + 1 )
+ Radial basis kernel v · ( 2 d 1 ) v · ( d + 1 ) --1v -1
Table 4. Analytical breakdown of the context-adaptive sampling algorithm. The variable n denotes the number of samples taken during the n-shots measure, and g denotes the number of channels. The function is executed at any n-shot measure.
Table 4. Analytical breakdown of the context-adaptive sampling algorithm. The variable n denotes the number of samples taken during the n-shots measure, and g denotes the number of channels. The function is executed at any n-shot measure.
Function ( f ) N. Arithmetical OperationsMemory Demand
AddMultDivRootCompExpIntegersFloats
Context measure 2 n · g -2- n 1 --1
Response output411----4
Attention time----2--2
Table 5. Number of machine cycles n x c y c for the arithmetical operation x and memory specifications for the considered μ C s.
Table 5. Number of machine cycles n x c y c for the arithmetical operation x and memory specifications for the considered μ C s.
Number of Machine Cycles per Operation Memory spec. [ kB ]
n Add c y c n Mult c y c n Div c y c n Root c y c n Comp c y c n Exp c y c ROM/ FlashRAM
μ C  PSoC1 M8C5445609121344802672 322
TI MSP430F161117715340566837334 48.2510
ARM CortexM360508038012210 51296
Table 6. Component electrical characteristics to estimate the EC and MD measures via simulation. All values were extracted from datasheets. The following symbology is used. I act : current consumption in active mode; I stb : current consumption in stand-by mode; V : voltage; ν : frequency; Res.: resolution; Cap.: capacity; M b : data block’s size; I write m : current consumption for memory writing; t write : time for writing a data block.
Table 6. Component electrical characteristics to estimate the EC and MD measures via simulation. All values were extracted from datasheets. The following symbology is used. I act : current consumption in active mode; I stb : current consumption in stand-by mode; V : voltage; ν : frequency; Res.: resolution; Cap.: capacity; M b : data block’s size; I write m : current consumption for memory writing; t write : time for writing a data block.
FunctionalityComponentElectric Characteristics
Memory Write Operation
I act [ mA ] I stb [ mA ] V ν [ MHz ] Res. [ bit ] Cap. [ mWh ] M b [Byte] I write m [ μ A ] t write [ ms ]
μ C ( Ξ 3 )PSoC1 M8C ( ϵ 3 , 1 )8.00.0253.3248-64619.51.5
TI MSP430F1611 ( ϵ 3 , 2 )0.570.053816-60230023.0
ARM CortexM3 ( ϵ 3 , 3 )7.00.553.34832-2565003.28
Data Sampling ( Ξ 2 )EMG sensing4.00.0083.3 256 × 10 6 --
Power supplyLi-Ion polymer battery--3.7--925
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Schiboni, G.; Suarez, J.C.; Zhang, R.; Amft, O. DynDSE: Automated Multi-Objective Design Space Exploration for Context-Adaptive Wearable IoT Edge Devices. Sensors 2020, 20, 6104. https://doi.org/10.3390/s20216104

AMA Style

Schiboni G, Suarez JC, Zhang R, Amft O. DynDSE: Automated Multi-Objective Design Space Exploration for Context-Adaptive Wearable IoT Edge Devices. Sensors. 2020; 20(21):6104. https://doi.org/10.3390/s20216104

Chicago/Turabian Style

Schiboni, Giovanni, Juan Carlos Suarez, Rui Zhang, and Oliver Amft. 2020. "DynDSE: Automated Multi-Objective Design Space Exploration for Context-Adaptive Wearable IoT Edge Devices" Sensors 20, no. 21: 6104. https://doi.org/10.3390/s20216104

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop