Andreas Lanitis
email: andreas.lanitis@cut.ac.cy

Nicolas Tsapatsoulis
email: nicolas.tsapatsoulis@cut.ac.cy

On the Quantification of Aging Effects on Biometric Features

Keywords: Biometric Templates, Aging Variation, Intelligent Human Computer Interaction

Biometric templates are often used in intelligent human computer interaction systems that include automated access control and personalization of user interaction. The effectiveness of biometric systems is directly linked with aging that causes modifications on biometric features. For example the long term performance of person identification systems decreases as biometric templates derived from aged subjects may display substantial differences when compared to reference templates whereas in age estimation, aging variation allows the age of a subject to be estimated. In this paper we attempt to quantify the effects of aging for different biometric modalities facilitating in that way the design of systems that use biometric features. In this context the homogeneity of statistical distributions of biometric features belonging to certain age classes is quantified enabling in that way the definition of age sensitive and age invariant biometric features. Experimental results demonstrate the applicability of the method in quantifying aging effects.

Introduction

Intelligent Human Computer Interaction (HCI) systems with abilities to adapt to individual needs of different users have received increased attention in the research community [START_REF] Germanakos | Capturing essential intrinsic user behaviour values for the design of comprehensive web-based personalized environments[END_REF]. In most cases the adaptation of interaction mode is accomplished based on the preferences set by a user. As an alternative, automatic adaptation of the way that a user interacts with a machine can be achieved by analyzing biometrical features of a user. Among other possible scenarios biometric features can be used for identifying the user of a machine allowing in that way automatic access and selection of user preferences and estimating the age of a user enabling the implementation of age-adaptive interaction systems.

Adaptive HCI based on biometric templates is heavily depended on the suitability of features used for the intended application. For example in the case of user authentication discriminatory biometric features invariant to facial expression, face orientation, lighting and aging need to be used. In general intelligent methods are required for selecting the most appropriate biometric features according to the application.

A key issue related to the use of biometric templates is aging variation that causes modifications in biometric features [START_REF] Lanitis | A Survey of the Effects of Aging on Biometric Identity Verification[END_REF]. Despite the fact that aging effects need to be taken into account during the design of biometric systems, so far the topic of assessing the aging invariance of biometric templates did not receive much attention. In this paper we attempt to quantify the effect of aging on different biometric templates. In this context we formulate a metric; called the 'Aging Impact' that reflects the expected intensity of aging effects for different biometric templates. High values of the Aging Impact indicate that the corresponding biometric features are subjected to intense aging-related appearance. According to the application where a biometric feature is intended to be used it may be desirable to select biometric features that exhibit low Aging Impact (i.e. for person identification applications) or high Aging Impact (i.e. for age estimation applications). As part of our study we estimate the Aging Impact for biometric templates of different types and different modalities such as faces, fingerprints, palms, hand movements and face movements. To the best of our knowledge this is a first time that the issue of quantifying the impact of aging for multiple biometric modalities is treated using a unified approach. It is anticipated that the proposed work in the area will influence the design of future intelligent biometric-based HCI systems.

Literature Review

A number of surveys and books have been published on the general topic of person authentication using unimodal or multimodal biometric features [START_REF] Jain | An Introduction to Biometric Recognition[END_REF][START_REF]Handbook of Biometrics[END_REF][START_REF] Ross | Handbook of Multibiometrics[END_REF][START_REF] Woodward | Biometrics: Identity Assurance in the Information Age[END_REF]. However, in those cases only limited discussion related to the effects of aging on biometric templates is presented. Similarly in surveys dedicated to person identification based on specific modalities [START_REF] Bowyer | A survey of approaches and challenges in 3d and multi-modal 3d+2d face recognition[END_REF][START_REF] Yager | Fingerprint Classification: A Review[END_REF][START_REF] Yampolskiy | Behavioural biometrics: a survey and classification[END_REF][START_REF] Zhao | Face recognition: A literature survey[END_REF] the topic of aging is not considered in detail. An exception is a survey on iris recognition by Bowyer et al [START_REF] Bowyer | Image understanding for iris biometrics: A survey[END_REF] where the effects of aging on iris recognition are explicitly discussed.

Few studies that aim to assess the deterioration of performance of biometric authentication over time appeared in the literature. However, in such studies usually only short term aging effects are considered. Min et al [START_REF] Min | Assessment of time dependency in face recognition. 4th Int'l[END_REF] conclude that as the time period between template creation and recognition increases, the performance of a face recognition system decreases dramatically. Poh at al [START_REF] Poh | A Method for Estimating Authentication Performance over Time, with Applications to Face Biometrics[END_REF] also investigate short-term aging effects on 3D face recognition. Experimental results indicate that aging affects different users in different ways, thus a proper aging invariant biometric authentication system should be user-specific.

All approaches mentioned above aim to highlight the problem of aging rather than to quantify the effects of aging. As an alternative Baker et al [START_REF] Baker | Empirical Evidence for Correct Iris Match Score Degradation with Increased Time-Lapse between Gallery and Probe Matches[END_REF] attempt quantify the effect of aging on iris templates by comparing the hamming distance between pairs of iris images of the same subject captured with a time difference of four years. According to the results, the differences in the hamming distances recorded indicate that iris patterns may be deformed due to aging.

A limited number of studies try to investigate the use of biometric technology in Human Computer Interaction [START_REF] Coventry | Biometrics in Practice: What Does HCI Have to Say? In Human-Computer Interaction -INTERACT[END_REF]. The majority of them look into the problem from the biometric perspective; the aim is either to build appropriate interfaces to increase the adoption of biometrics for security reasons [START_REF] Briggs | Biometric daemons: authentication via electronic pets[END_REF][START_REF] Gaboa | A behavioral biometric system based on human-computer interaction[END_REF] or to create authentication systems based on users' interaction with computers in their everyday work [START_REF] Yampolskiy | Direct and Indirect Human Computer Interaction Based Biometrics[END_REF]. The use of biometrics for creating user-adapted human computer interfaces only recently gained some attention with the creation of special tracks in some conferences [START_REF]ICPR2010: 20th International Conference on Pattern Recognition, Track IV: Biometrics and Human Computer Interaction[END_REF]. Nevertheless, utilization of biometric based transactions with computers, like the fingerprint based access, for the purpose of age estimation and user profile adaptation has not been examined in other studies so far.

Quantification of Aging Effects

Let vector u j i be the j th biometric template of the i th user of a biometric based authentication system. Without loss of generality we assume that there are Ni different biometric templates for the i th user. We can form an extended vector u i representing user i by concatenating vectors u j i , j= 1,…, N i . The mean extended template (M) among all templates of all users in a pool is calculated and the similarity measure s i , between user i and the mean template is computed using the correlation coefficient of vectors u i and M. The homogeneity measure (H) among all templates can be obtained by taking the average value of similarities for all users i. Similarly, a measure of dispersion (D) can be obtained by taking the standard deviation of similarities for all users i. The homogeneity measure gives an indication of the similarity between members of the distribution and dispersion gives an indication of the spread of the correlation coefficients for different users. Although it is possible to calculate the homogeneity and dispersion of a multivariate distribution using other methods, the proposed method was selected because it is standardized, enabling in that way the comparative evaluation of aging effects for different biometric modalities.

Given a set of templates belonging to a number of users, the method outlined above was used for estimating the homogeneity and dispersion among all biometric templates in a dataset. The dataset is then divided into templates corresponding to the younger and older users using a predetermined age threshold and the homogeneity and dispersion measures for each age group are also estimated. The Aging Impact (AI) of a template is defined as the difference between the homogeneity and dispersion metrics of two different groups:

( )

all all i i all i n D n D H H AI 2 2 + - = (1)
where H i , D i are the homogeneity and dispersion measures for the i th age group while H all , D all are the corresponding values computed over all database members. Similarly, n i and n all are the number of samples in the i th group and all samples in the database respectively. In the case that multiple age groups are considered the overall Aging Impact is the average of the Aging Impact between each group and the distribution of all samples. The largest the value of the AI measure the biggest the difference between the distributions of template values in a certain age group when compared with the distribution of all samples, leading to an increased dependency of the template to aging variation. For example if a biometric feature exhibiting a high Aging Impact factor is used in an identity verification application, it is highly probable that the system will fail to verify the identity of the user as the user grows older. Similarly the use of features with low Aging Impact in an age estimation application will result in a poor performance as the features used will not provide adequate information for discriminating between different ages.

Experimental Investigation

The method for assessing the impact of aging presented in the previous section was tested on different modalities and different types of feature vectors, in an attempt to illustrate its applicability in quantifying the impact of aging effects.

Experiments with Face Templates

Experiments using face templates were carried out using samples from the FG-NET Aging Database [START_REF] Lanitis | Comparative Evaluation of Automatic Age Progression Methodologies[END_REF]. The FG-NET Aging Database is a publicly available image database containing face images showing a number of subjects at different ages. The database contains 1002 images from 82 different subjects with ages ranging between newborns to 69 years old subjects. On average there are 12 images per subject in the database.

In this experiment we consider the use of templates constructed based on an Active Appearance Model (AAM) [START_REF] Cootes | Active Appearance Models[END_REF] coding scheme. Since the FG-NET aging dataset contains multiple samples per subject, the calculation of the homogeneity and dispersion measures is done for each subject individually and the overall results are calculated by taking the average values of the two measures among the 82 subjects. For the needs of the experiment face images belonging to the same subject are divided into a set of young and old. Apart from using templates representing the overall facial region, the impact of aging on the upper face, lower face, eyes and nose regions is also investigated. In order to study the effects of aging for different genders, the analysis is performed in a gender-specific style.

According to the results (see Table 1) the impact of aging varies according to the facial region considered, the age group and the gender of the users. For example in old males the impact of aging on the lower face is 22 but the impact of aging on the same region for young males is 13. This is expected as the texture of the lower facial regions of old males undergoes dramatic changes due to the possible appearance of beards and moustaches. The results show that the most dramatically affected facial region is the eye region. Bearing in mind that the FG-NET aging dataset contains unconstrained face images, the results presented contain noisy responses that result from non-aging related variations appearing on faces. Ideally experiments using samples that mainly display aging variation need to be conducted in order to obtain definite conclusions regarding the invariance of different facial regions to aging.

Experiments with Palm and Fingerprint Templates

Experimentation for the palm and fingerprint modalities is based on biometric templates constructed with the aid of MPEG-7 visual features [START_REF]Information Technology -Multimedia Content Description Interface -Part 3: Visual[END_REF] computed using the MPEG-7 experimentation software [START_REF]MPEG-7 Visual Experimentation Model (XM)[END_REF]. We have used the POLYBIO database [START_REF] Kounoudes | POLYBIO: Multimodal Biometric Data Acquisition Platform and Security System[END_REF] for our experiments. In this database there are four hand images per subject taken using low cost cameras as well as four fingerprint images per finger per subject taken using a light-reflection based fingerprint sensor. Four different templates were created from every hand image, corresponding to the Color Layout (CL), the Region Shape (RS), the Edge Histogram (EH) and the Homogeneous Texture (HT) descriptors. The above descriptors were chosen to represent the three different types of visual descriptors (color, shape, texture); therefore, the palm images are not used only for computing hand geometry but the color and texture of the upper part of the palm. Each template is examined in isolation and the results are summarized in Table 2. According to the results the highest Aging Impact is recorded in Edge Histogram; that is edge information of the upper part of hand changes significantly with age. Increased aging effects on edge information are caused by reduced skin elasticity, spot appearance or enlargement and veins' pump up mainly encountered in older persons.

For the fingerprint experiments we used only the images of the left index. The templates used are the same as in the hand geometry case with the exception of Region Shape which was excluded due to the absence of any shape information in fingerprint images. According to the results, shown in Table 2, the highest Aging Impact is recorded for features based on Edge Histogram. This is something expected; fingerprint images contain a lot of edge information while aging reduces skin elasticity, and therefore proper finger fitting to the fingerprint sensor reducing in that way the amount of edge information captured by the sensor. In addition, as people get older edges on fingerprints wear out and the probability of finger injuries also increases.

However, we should take into account that both in the case of experiments with palms and fingerprints, the intra class variation (variation across subjects of the same group) is also high and may be higher than the inter class variation (variation across age) smoothing the overall Aging Impact values.

Experiments with Templates Based on Hand and Face Movements

In this experiment we consider the use of templates containing information that characterizes hand and head movements of users. In this context, volunteers who participated in this experiment were requested to use the mouse for tracing as accurately as possible the outline of a horizontal line, a rectangle and an ellipse presented on the screen. The ability of each user to trace accurately the shape was calculated by considering the mean Euclidean distance and the difference in the direction of pointer movement when compared with the target shape contour. The three measures for each volunteer and each shape (line, rectangle and ellipse) constitute a user-template. The same experimental set-up was used for assessing templates that contain features extracted from head movements. In this case a tracking algorithm suitable for locating the position of the eyes of a subject while he/she is tracing a shape on the screen was used [START_REF] Frangeskides | Multi-Modal Contact-less Human Computer Interaction[END_REF]. Thirty volunteers with ages ranging from 8 years old up to 43 years old participated in the experiment. These volunteers were divided into the group of young (ages 8 to 17) and group of old (ages of 18 to 43). All volunteers who participated in the experiment were regular computer users, familiar and experienced with the operation of the mouse. Because none of the volunteers used face tracking for human computer interaction purposes before, each volunteer was allowed a five-minute training session in order to get familiar with the face tracker operation before the actual data acquisition exercise. The results obtained (see Table 3) demonstrate that the highest Aging Impact is recorded for users tracing circles, either using hand or head movements. These results are consistent with results reported in the literature [START_REF] Lanitis | Age Estimation Based on Head Movements: A Feasibility Study[END_REF] that demonstrate the superiority of using discrepancy features derived through a circle tracing exercise as the basis for estimating the age of a person. However, the results presented on this experiment are only indicative, due to the small sample of samples considered in the experiment.

Conclusions

We have presented a method for quantifying aging effects on biometric templates, allowing in that way the selection of appropriate features for use in specific applications. The appropriate selection of features will result in the development of robust systems that can be used for developing biometric-based user adaptive HCI systems. A key aspect of our work is the formulation of a generic Aging Impact measure that can be used for different types of biometric modalities and templates, allowing in that way the derivation of accurate conclusions related to the aging invariance of biometric templates. It is anticipated that the proposed work in the area will influence both the design of future age-invariant biometric authentication systems and it will also provide a standardized framework for assessing the long term permanence of biometric features.

The results obtained prove the potential of the approach in assessing the age invariance of biometric templates using a standardized method. In the future we plan to perform extended experiments that will allow the derivation of concrete results related to the aging invariance of different modalities, different features, different genders and different age groups. In order to accomplice this task we are in the process of collecting suitable multimodal biometric data from subjects with diverse ages, so that the experimentation will cover all age ranges of interests.

Table 1 .

 1 Aging Impact for different groups of samples from the FG-NET Aging Database. AI y , AI o , AI are the Aging Impact factors for the group with young samples, old samples and the overall impact respectively.

	Facial region		Males			Females
		AI y	AI o	AI	AI y	AI o	AI
	Overall face	10	25	17	2	21	11
	Upper face	8	19	14	16	17	16
	Lower face	13	22	18	3	25	14
	Nose	12	30	21	7	17	12
	Eyes	16	21	18	19	27	23

Table 2 .

 2 Aging Impact for different groups of samples from the POLYBIO multimodal database. AI y , AI o , AI are the Aging Impact factors for the group with young samples, old samples and the overall impact respectively.

	Modality	Template Type	AI y	AI o	AI
	Palm	Scalable Color	0.19	0.51	0.35
		Region Shape	0.60	0.87	0.73
		Edge Histogram	0.21	1.56	0.89
		Homogeneous Texture	0.22	0.93	0.57
	Fingerprints	Scalable Color	0.60	0.03	0.32
		Edge Histogram	1.68	0.35	1.01
		Homogeneous Texture	0.68	0.55	0.61

Table 3 .

 3 Aging Impact for hand and face movement based templates. AI y , AI o , AI are the Aging Impact factors for the group with young samples, old samples and the overall impact respectively.

	Modality	Shape Drawn	AI y	AI o	AI
	Hand	Line	1.26	1.97	1.62
	Movements	Rectangle	0.10	0.21	0.15
		Ellipse	4.52	3.63	4.07
	Face	Line	2.52	0.17	1.35
	Movements	Rectangle	2.6	0.38	1.49
		Ellipse	4.47	3.41	3.94


J Balicki
email: j.balicki@mini.pw.edu.pl

P Dryja

W Korłub

Harmony Search for Data Mining with Big Data

In this paper, some harmony search algorithms have been proposed for data mining with big data. Three areas of big data processing have been studied to apply new metaheuristics. The first problem is related to MapReduce architecture that can be supported by a team of harmony search agents in grid infrastructure. The second dilemma involves development of harmony search in preprocessing of data series before data mining. Moreover, harmony search as a classification algorithm is studied as the third application. Finally, some outcomes for numerical experiments are submitted.

Introduction

A goal of this paper is to describe an approach based on harmony search (an acronym HS) for data mining with Big Data (BD). Although, there are several data mining algorithms, including back-propagation neural networks or locally weighted linear regression, we can extend these set to better support of parallelism in Big Data processing and to avoid some limitations of well-known machine learning procedures like k-Means, or support vector machines [START_REF] Balicki | Big data paradigm developed in volunteer grid system with genetic programming scheduler[END_REF].

We assume that data is usually gathered from multiple sources, which may be heterogeneous and spread geographically across the world. Also, the collected data may be stored in distributed facilities. Data mining algorithms can be applied for largescale multimedia applications, in massive parallel way, to ensure higher capacity of training. In fact, both logistic regression and Gaussian discriminant analysis can be used concurrently for different parts of images to make decision for the whole pattern. Similarly, naive Bayes or the independent variable analysis can be developed, simultaneously [START_REF] Cao | Agent mining: the synergy of agents and data mining[END_REF].

A motivation for this paper is fact that a quality of BD processing mainly depends on services provided by some public cloud computing platforms. Especially, BigQuery service that is delivered by Google Cloud can be applied to analyze data in the cloud by SQL-like queries. A query for BD is usually performed for multiterabyte datasets in 1-2 seconds. This service is easy to use and it is scalable. In consequence, BD services provided by some public cloud computing platforms can offer real-time insights about large-scale multimedia data [START_REF] Bughin | Clouds, big data, and smart assets: ten tech-enabled business trends to watch[END_REF].

MapReduce is a batch-oriented parallel cloud computing model and it can be applied to some machine learning algorithms because they regularly prerequisite to probe through the training data. It needs exhaustive computing to entrance the largescale data recurrently. It is important that MapReduce has still got a certain advantage in performance over some relational databases [START_REF] Dean | MapReduce: Simplified Data Processing on Large Clusters[END_REF].

In this paper, related work is described in Section II. Then, MapReduce architecture is characterized in Section III. Next, Section IV presents some studies under intelligent agents in data mining. Genetic programming in data mining is discussed in Section V. Moreover, some harmony search algorithms for data series are studied in Section VI. We focus on time series during experiments. A description of parallelism in big data is included in Section VII. Furthermore, harmony search for big data preprocessing and some outcomes for numerical experiments with harmony agents are submitted in Section VIII.

2

Related work

Main characteristics of dynamic data streams are continuity and unpredictability. What is more, some crucial features are quickness and infinity, too. It is worth to underline that above features of dynamic data streams can loss some valuable information. Data streams are extensively applied in medical testing, online trading, and financial analysis. Chang, Bai, and Zhu proposed some parallel algorithms for mining large-scale rich-media data that can be treated as the massive, multisource, and dynamic Big Data [START_REF] Chang | Parallel algorithms for mining large-scale rich-media data[END_REF]. Some data mining methods have been extended from the singlesource knowledge discovery methods. Moreover, Chen, Sivakumar and Kargupta studied collective mining of Bayesian networks from distributed heterogeneous data [START_REF] Chen | Collective mining of Bayesian networks from distributed heterogeneous data[END_REF]. Especially, they analyzed stream data that are dynamic and the other approach for data mining should be applied. Similarly, Domingos and Hulten extended a mining method on high-speed data streams that can be applied to visual information processing on large-scale [START_REF] Domingos | Mining high-speed data streams[END_REF].

Big Data are gathered from different sources. Due to some computer hardware improvements, some new knowledge discovery algorithms can be developed for massive data. That is why, there has been constructed a logical framework for identifying quality knowledge from different data sources. Besides, some data mining algorithms have been studied for a multisource massive data. Some crucial differences between multisource data withdrawal and single-source knowledge mining are related to massive characteristics of multisource data. So, we can distinguish some characteristics for heterogeneous and real-time data. Some characteristics of flow and a data stream require some knowledge mining algorithms. Recently, the theory of local pattern analysis has been introduced to avoid centralized computing.

Banerjee and Agarwal studied collective behavior from blogs using swarm intelligence [START_REF] Banerjee | Analyzing collective behavior from blogs using swarm intelligence[END_REF]. On the other hand, it has been proposed a paralleled big data algorithm with MapReduce framework for mining data from Twitter [START_REF] Bollen | Twitter mood predicts the stock market[END_REF]. MapReduce is adopted to parallelize the mining algorithm as well as to ensure scalability of knowledge discovery system. A performance can rise despite growths in data set size. A performance ratio raises as the size of the dataset growths, and as the number of data nodes rises. Several millions of active users of Twitter post over 140 million messages every day and a big data set may contains billions of records. So, a new architecture to process the data mining algorithm is required [START_REF] Gillick | MapReduce: distributed computing for machine learning[END_REF].

On this background, harmony search can be applied for big data mining in different areas [START_REF] Balicki | Genetic programming with negative selection for volunteer computing system optimization[END_REF]. In this evolutionary-based metaheuristic, an optimization problem is imitated as a melody performance procedure with searching for a good harmony. HS models how an orchestra conductor or a music composer optimizes a melody performance to achieve good harmony music. Similarly to jazz improvisation when musicians seek a best harmony by artistic intelligence, some outcomes from an optimization algorithm tend to a global optimum regarding objective function.

Hadoop and MapReduce Architecture

MapReduce has recently gained in popularity as one of the key concepts related to BD. It was introduced by Dean and Ghemawat as a distributed and scalable solution for parallel processing and large data sets on clusters [START_REF] Dean | MapReduce: Simplified Data Processing on Large Clusters[END_REF]. Many different commercial and non-commercial products offer a variety of different implementations of MapReduce making the everyday use relatively easy. The most popular open-source implementation is Apache Hadoop, embraced by companies such as Adobe or Amazon [START_REF]Apache Hadoop[END_REF].

MapReduce can be perceived as a universal model which can be used in a variety of scenarios. This is due to the fact that the model requires two custom functions to be provided by a user. These functions, known as map and reduce, are responsible for domain-specific computation not covered by the model. The map function takes the pair (key, value) as an input, then it performs computation and returns a set of other intermediate pairs (key, value). The key is not unique and it is even usually expected to be many pairs with the same key. The reduce function is executed after the map function in the logical. Usually, the role of the reduce function is to merge the input values to a smaller set. It is therefore possible to define the map and reduce functions, as follows [START_REF] Mardani | Fraud detection in process aware information systems using MapReduce[END_REF]: map (k1,v1) → list(k2,v2) reduce (k2,list(v2)) → list(v2) An execution flow in MapReduce model consists of four major phases (Fig. 1). The first phase is dedicated to splitting the input required to be processed. Let the text with random words be considered. Each of the splits can then be processed by the map function in parallel. The particular word is the key and the '1' is the value. Some intermediate pairs (key, value) must be then sorted and grouped by a key. This is because the particular key and its values are passed to the reduce function in the next phase. The reduce function can be also run in parallel and after computation results are being sent to output. In this case the reduce function's responsibility is to sum the each key's values (Fig. 1) [START_REF] Ostrowski | MapReduce design patterns for social networking analysis[END_REF].

Fig. 1. MapReduce execution flow illustrated with the case of counting the number of occurrences of each word

Apache Hadoop is a widely known open-source project that offers the set of libraries with the MapReduce implementation and own implementation of the distributed file system -Hadoop Distributed File System (HDFS). These two modules can be perceived as one core. However, Hadoop with other related projects offer much more additional functionality nowadays. Some the Hadoop ecosystem solutions are worth mentioning such as Apache Pig, which offers custom scripting language and Apache HBasea non-relational distributed database which can serve as a data input for MapReduce.

MapReduce is applied to solve several problems like large-scale machine learning or clustering problems for the Google News. Moreover, an extraction of data is used to produce reports of popular queries and extraction of geographical locations from a large corpus of web pages for localized search. In 2004, Google changed an indexing system that produces data used for web search service to system that used MapReduce. The new indexing system takes input documents that have been retrieved from a crawling system store as a set of files, and then they are processed by from five to ten MapReduce operations. That system gives them many benefits like simpler, smaller, easier to understand code, simplicity to change entire indexing process. Moreover, it is easier to operate because of automatic resolving problems like machine failures, slow machines and networking hiccups [START_REF]Apache Hadoop[END_REF].

In 2008, New Your Times released service web-based archive of scanned issues from 1851 till 1980. To create that archive company had to convert 405,000 large TIFF images, 3.3 million SGML files, and 405,000 XML files. Output consisted on 810,000 PNG images and 405,000 JavaScript files. To speed up this process they applied Amazon Elastic Compute Cloud and Hadoop. Regarding to hundreds of machines, the process took less than 36 hours [START_REF] Dean | MapReduce: Simplified Data Processing on Large Clusters[END_REF].

Intelligent Agents and Genetic Programming in Data Mining

We consider agents that are based on harmony search, generally. There are several traits of multiagent systems that make them suitable for BD acquisition and pro-cessing. One of them is mobility of agents, which translates into an ability to move between different data facilities and processing nodes constituting the system that deals with BD. Software agent is not bound to any particular machine or execution container [START_REF] Leyton-Brown | Multiagent systems: algorithmic, game-theoretic, and logical foundations[END_REF]. By migrating to different machines, agents can get closer to the source of an online data stream or closer to the data storage they are about to process. Instead of having to provide the data to the system, data administrators can rely on agents that acquire it on their own. It reduces bandwidth requirements and communication delays [START_REF] Jennings | Applications of intelligent agents[END_REF]. Another important factor is the ability of agents to react upon sudden changes of the environment in which they reside. It provides means for handling changes in the availability of data sources. An agent can make decision about moving to another set of data.

Agents are designed with heterogeneous environments in mind [START_REF] Li | Application of multilayered multi-agent data mining architecture to bank domain[END_REF]. It translates to capability of integrating with different data sources. Agents can integrate with multiple different data stores and handle online streams of information. Acquired data can be later delivered to the processing algorithm in a unified form without the need to use internal storage mechanisms of any particular software framework, e.g. distributed file system of the aforementioned Hadoop platform. One trait of agents that aids the integration with online data streams is their reactive nature. Each new information fragment delivered in the stream becomes an event that agent should react upon.

However, agents can not only react upon external events but also take actions on their own, which is an effect of their pro-activeness. Knowledge extraction from BD is one of the fields, where this trait is particularly important. As there are often no clues in advance about possible interrelationships in BD, the final result is heavily influenced by the decisions made during the actual analysis. Pro-active architectures provide foundation for agents that need to work under uncertainty and act without complete knowledge about their environment.

As was previously mentioned, agents can easily handle acquisition of data from both offline datasets and online streams. Agents can be also deployed inside the lambda architecture to aid actual analysis of data coming from those two distinctive types of sources. The lambda architecture itself is built of three layers: the batch layer, the serving layer and the speed layer. The batch layer is responsible for offline data processing and uses solutions like the MapReduce architecture. Batch view produces by this layer are exposed to external clients by the serving layer. The speed layer is responsible for real-time processing of data streams. It analyses data that was not yet processed by the batch layer. Speed layer produces real-time views that can be merged with batch views to create complete representation of the extracted knowledge.

The main motivation for employing agents is the fact that implementation of a system based on lambda architecture requires integration of several heterogeneous components: one for batch processing, another one for serving views, a different solution for real-time stream analysis, and a component that merges real-time views with batch views. The use of multiagent environment provides a common ground for information exchange between different component and a common execution model.

Agents can improve efficiency of data mining compared to centralized approaches. Multiagent systems have been applied in different domains showing promising results for further research, e.g. banking and finance domain or resource allocation in distributed environments [START_REF] Balicki | Multicriteria evolutionary algorithm with tabu search for task assignment[END_REF][START_REF] Jennings | Applications of intelligent agents[END_REF]. Some special sort of intelligent agents are based on genetic algorithms that have several advantages in data mining. One of them is its feature of automated searching for optimized solutions without a need for prior knowledge of data. Evolutionary computing also constantly evaluates created models as a whole, which is not a case with most traditional machine learning algorithms. It should be mentioned that this approach is easily adapted to suit researcher needs by changing it evaluation method or tree representation [32]. Genetic programming is being used in wide range of data mining techniques like classification [START_REF] Koza | Genetic programming IV. Routine human-competitive machine intelligence[END_REF].

Although traditional solutions like C4.5 are usually faster than genetic programming, its execution time can be improved by removing parts of decision tree that do not contribute to overall result of evaluation. These parts are named introns [START_REF] Raymer | Genetic programming for improved data mining: application to the biochemistry of protein interactions[END_REF].

Genetic programming performance can be improved by using some optimization techniques. One of them is search space refinement by dividing existing search space into smaller groups. Researchers may also extend tree representation by using fuzzy logic to improve created models [START_REF] Eggermont | Data mining using genetic programming: classification and symbolic regression[END_REF]. When compared genetic programming solutions are often better than traditional data mining tools including simple genetic algorithm.

Harmony Search for Data Series

Big data requires some database capacities from terabytes to even zetabytes. Capacity of big data depends on the sort of application, e.g. capacity of five terabytes is a great enough for a banking transaction system, but too small to test a web search engine. BG are uncooperative with using some relational database management systems RDBMS, too [START_REF] Birney | The making of ENCODE: Lessons for Big-Data projects[END_REF].

Parallelism for big data can be supported by using open grids instead of clouds. In the grids like BOINC, Comcute@home, or SETI@Home data sets are transformed into several millions of subsets that are executed parallel by thousands of computers. In grid, we can use a massively parallel system with lots of CPUs, GPUs, RAM and disks to obtain a high performance by data-based parallelism. So, maximal performance can be estimated at PFLOPS [9].

That is why, we suggest using grid as virtual supercomputer to data mining of big data. In an experimental grid called Comcute, a dilemma with capacity of BD appears if we study some simulations of fire spread to find some strategies. So, we design some intelligent agents for support parallelism in BD queries [START_REF]Comcute[END_REF].

Two kinds of intelligent agents act in a middleware layer. Managing agents send data series from distributed sources to distribution agents that cooperate with web computers to calculate outcomes and return them to managing agents, and then to users. Both types of agents can autonomously move from one host to another to improve quality of grid resource using [START_REF] Balicki | Negative selection with ranking procedure in tabu-based multi-criterion evolutionary algorithm for task assignment[END_REF].

Moreover, two groups of the other agents based on harmony search as well as genetic programming, optimize a resource usage. A set of agents designed for local optimization consists of some harmony search schedulers. They cooperate with dis-tributors and managers to give them information about optimal workload in some parts of grid. Finally, genetic programming has been applied for finding the compromise configurations of the whole grid. These agents cooperate with harmony search schedulers to correct some local timetables.

Crucial difficulties in parallelism of Comcute are data capture, regarding different sources: sensors, smartphones, cameras, tablets, microphones, computer simulations, satellites, and social networks via some wireless sensor networks. Moreover, data storage, their visualization, analysis and search are still some open problems.

BD is not convenient to the most RDBMS. Advantage of grid development for data basis is related to a fact that an intensive progress in data communication capacity is observed. For instance, the dilemma of finding the optimal strategy against a fire spread can be identified as the 4Vs model descripted by: high volume, extraordinary velocity, great data variety, and veracity.

In data mining for BD, harmony search can be used to find predictions for data series. Most of methods in data mining for time series consider some discrete time series. On the other hand, some analog time series are discretized with floating-point values. Moreover, time series discretization for knowledge discovery method like artificial neural network can be optimized [START_REF] Marz | Big data -Principles and best practices of scalable realtime data systems[END_REF].

Time series values can be represented by a multi connected graph. Under this representation, similar time series can be grouped into a graphical model. However, this approach works with one time series at a time, only. In result, it is inconvenient for parallel processing.

A symbolic representation of time series called SAX allows on dimensionality reduction, and it also allows distance measures to be defined on the symbolic approach where the lower bound corresponding distance measures is defined on the original series. Moreover, Genetic Entropy Based Linear Approximation GENEBLA can be used for time series discretization. For this approach, the EBLA3 algorithm is based on the simulated annealing and it permits on finding an alphabet size and word size to maximize accuracy in classification [START_REF] Gunarathne | Cloud computing paradigms for pleasingly parallel biomedical applications[END_REF].

Some data mining algorithms for discrete time series require a word size to separate the length of time series, and also an alphabet size to reduce the series. Therefore, a harmony search algorithm can be used to find an optimal word size and alphabet size. Then, they can be used by SAX process to discrete time series for big data sets. So, the question is how to maximize both word size and alphabet size for given data sets. It permits to compress data sets and improve classification accuracy. In this approach, we protect some essential data and hidden patterns.

Parallelism in Big Data

Big data applications can develop Hadoop or NoSQL cluster like MongoDB with different nodes to deal with online transaction processing OLTP. Additionally, low response time for decision-support queries is related to online analytical processing OLAP to answering multi-dimensional analytical queries. A required reliability can be obtained through data replication [START_REF] Guojun | Large-scale social network analysis based on MapReduce[END_REF].

Figure 2a shows a case for concurrent and different queries that operate on the same data. The second case (Fig. 2b) is related to complex query that is divided on some parallel operations acting on diverse data. Architecture with shared-disk cluster is much more prepared for big data processing than NUMA Non-Uniform Memory Access architecture [31]. A crucial feature of BD is related to intensive reading from hard disks and then processing, instead of processing and then intensive writing. If we consider no sharing of memory or disks across nodes (Fig. 3), this system requires data partitioning of database like in server DB2.

Big data is spread over some partitions that run on some separate servers with own table spaces, logs, and configurations. A query is performed in parallel on all partitions. Such architecture can support Google search engine.

HS for BD Preprocessing and Task Optimization

To avoid the predefinition of alphabet size and word size the entropy measure can be used. Entropy minimization heuristic EMH divides continuous value and minimum description length criteria to control the number of interval produced on continuous space. The stopping criterion for this technique is minimum description length principle MDLP.

We have M time series of data. If the length of time series is equal to N, then a word size α m is a decision variable that cannot exceed N. We can vary a word size from 1 to N. So, we can introduce the inequality constraint, as below:

. , 1 , M m N m    (1)
The maximum entropy is based on information gain and the objective function can be defined, as follows:

M x g x f M m m    1 ) ( ) ( , (2)
where Mthe time series length; g m (x)the gain between time series value TSV and the mth class value CV m ; x = (α 1 ,β 1 ,…,α m ,β m ,…, α M ,β M ); α ma word size for the mth series; β man alphabet size for the mth series. The characteristics of time series value TSV is given:

m m v S p v S p TSV Ent ) | ( log ) | ( ) ( 2  . (3)
The time series value TSV can be characterized by tsv -the number of time series with value in S. The characteristics of time series class TSC is given, as follows:

j J j j p p TSC Ent 2 1 log ) (     , (4)
where J -the number of classes; p j -the probability of class j in TSC.

It is important to remark that the entry time series is considered as one attribute and that the discretization scheme is considered for the whole dataset. It allows harmony search to find a good global solution that maximizes the entropy on data.

For the mth time series HS algorithm is applied to obtain the word size α m . This the mth time series is formulated regarding new word size αm. Next, against harmony search is used to obtain the alphabet size β m . Afterwards, the SAX procedure is developed to convert the values of time series to symbolic representation using new alphabets size β m . Finally, any classification algorithm is applied to evaluate the performance of new data representation.

Figure 4 shows architecture of the grid Comcute with two agents AHS1 and AHS2 that are based on harmony search. One AHS can find suboptimal configuration for at most 15 nodes, 50 tasks and 15 alternatives of resource sets ARS. It represents a volunteer computer. Figure 5 shows an example of finding the compromise configuration by AHS1. The first criterion is the CPU workload of the bottleneck computer (𝑍 ̂𝑚𝑎𝑥 ), and the second one is the communication workload of the bottleneck server (𝑍 ̃𝑚𝑎𝑥 ) [2]. This prob- lem is the constrained bi-criteria optimization dilemma with integer decision variables [START_REF] Balicki | Negative selection with ranking procedure in tabu-based multi-criterion evolutionary algorithm for task assignment[END_REF]. There are presented Pareto-optimal evaluations obtained by harmony search during 10 6 iterations (Fig. 5). Moreover, there are satisfied constraints on RAM and HDD. An encoded configuration is as follows: X α = [START_REF] Bollen | Twitter mood predicts the stock market[END_REF][START_REF] Banerjee | Analyzing collective behavior from blogs using swarm intelligence[END_REF][START_REF] Cao | Agent mining: the synergy of agents and data mining[END_REF][START_REF] Balicki | Multicriteria evolutionary algorithm with tabu search for task assignment[END_REF][START_REF]Apache Hadoop[END_REF][START_REF] Bughin | Clouds, big data, and smart assets: ten tech-enabled business trends to watch[END_REF][START_REF] Cao | Agent mining: the synergy of agents and data mining[END_REF][START_REF] Bollen | Twitter mood predicts the stock market[END_REF][START_REF] Balicki | Big data paradigm developed in volunteer grid system with genetic programming scheduler[END_REF][START_REF] Birney | The making of ENCODE: Lessons for Big-Data projects[END_REF][START_REF] Balicki | An adaptive quantum-based multiobjective evolutionary algorithm for efficient task assignment in distributed systems[END_REF][START_REF] Chen | Collective mining of Bayesian networks from distributed heterogeneous data[END_REF][START_REF] Banerjee | Analyzing collective behavior from blogs using swarm intelligence[END_REF][START_REF] Chang | Parallel algorithms for mining large-scale rich-media data[END_REF][START_REF] Bughin | Clouds, big data, and smart assets: ten tech-enabled business trends to watch[END_REF]9,[START_REF] Birney | The making of ENCODE: Lessons for Big-Data projects[END_REF][START_REF] Balicki | Big data paradigm developed in volunteer grid system with genetic programming scheduler[END_REF][START_REF] Balicki | Genetic programming with negative selection for volunteer computing system optimization[END_REF][START_REF] Balicki | Genetic programming with negative selection for volunteer computing system optimization[END_REF][START_REF]Apache Hadoop[END_REF][START_REF] Balicki | An adaptive quantum-based multiobjective evolutionary algorithm for efficient task assignment in distributed systems[END_REF][START_REF] Chen | Collective mining of Bayesian networks from distributed heterogeneous data[END_REF][START_REF] Bollen | Twitter mood predicts the stock market[END_REF][START_REF] Bughin | Clouds, big data, and smart assets: ten tech-enabled business trends to watch[END_REF][START_REF] Balicki | Genetic programming with negative selection for volunteer computing system optimization[END_REF][START_REF] Chang | Parallel algorithms for mining large-scale rich-media data[END_REF],2,4,5,9,13,9,7,9, 4,6,2,2,5,3,1,4,12,2,] T , X β =[3,8,3,9,8,9,8,3,9,3,3,3,3,3,0] T . If X α [1]=10, the module with the index 1 is assigned to the node number 10. So, some clusters of software modules in nodes can be obtained from X α . If X β [START_REF]Apache Hadoop[END_REF]=3, the computer number 3 is assigned to the node number 1. In a compromise solution, there are considered three from twelve possible computers that are assigned to fourteen nodes. The new grid consists on 8 servers BizServer E5-2660v2, 3 servers HP ProLiant E5-2695, and 3 servers HP ProLiant E5-2697.

Concluding Remarks and Future Work

Intelligent agents based on harmony search in the middleware of grid can significantly support efficiency of the proposed approach. Multi-objective harmony search can be used for the self-reconfiguration of the grid. Agents based on harmony search can optimize a problem of grid resource using.

Our future work will focus on testing the harmony search to find the compromise configurations for different criteria and constraints. Moreover, quantum-inspired algorithm can be analyzed due to supporting big data, too [START_REF] Balicki | An adaptive quantum-based multiobjective evolutionary algorithm for efficient task assignment in distributed systems[END_REF].

Fig. 2 .

 2 Fig. 2. Two cases of data-based parallelism

Fig. 3 .

 3 Fig.3. Shared-nothing cluster architecture for big data[START_REF]Apache Hadoop[END_REF]

Fig. 4 .

 4 Fig. 4. Harmony search agents HAS in the grid for big data processing


Pavel Moravec
email: pavel.moravec@vsb.cz

Michal Krumnikl
email: michal.krumnikl@vsb.cz

Petr Olivka
email: petr.olivka@vsb.cz

David Seidl
email: david.seidl@vsb.cz

Connecting Household Weather Sensors to IoT World

Keywords: Wireless sensor, modulation, OOK, On-Off Keying, Internet of things, IoT

ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Introduction

Wireless weather stations with external sensors have become a part of many households, after their prices dropped to reasonable levels. Whilst the base weather station is placed inside, the sensors are battery-powered and have to withstand the outside environment. They are able to work unattended for several months or years without user interaction and forward data to the base station. Unfortunately, there is no common standard for the communication protocol and due to the limited storage of the base station only some of the measured values are kept (e.g. the maximum and minimum of measured values). Only the more expensive weather stations offer a way to connect the station to a computer, often by a serial connection and with a custom application and communication protocol. This means that a computer must be running all the time. Whilst it is possible to connect several wireless sensors to the base station (typically up to 3), they do not build a traditional sensor network by themselves, because the sensors are just simple transmitters, unlike in [START_REF] Mainetti | Evolution of wireless sensor networks towards the internet of things: A survey[END_REF].

In recent years, there were several papers and projects trying to receive data from wireless sensors by a PC using software-defined radio, e.g. [START_REF] Ferrari | New architecture for a wireless smart sensor based on a software-defined radio[END_REF], the RTL 433 project 3 , reverse-engineering the serial line protocol of common weather stations with a USB or serial port and recording data on a PC or Raspberry Pi (e.g. [START_REF]WMR918 PCLINK Protocol[END_REF], Weather Station Data Logger4 , wview 5 or fowsr 6 ). There were also a few projects building a custom weather station (with wired and optional wireless sensors) e.g. the WeatherDuino Pro2 project 7 , WxShield 8 , or the SparkFun Weather Shield 9 . Some resources describing the serial protocols of more expensive weather stations may be found, e.g. [START_REF] Instruments | Vantage Pro TM , Vantage Pro2 TM and Vantage Vue TM Serial Communication Reference Manual[END_REF].

In this paper, we will concentrate on the preliminaries of building a wireless weather sensor receiver, which would pre-process the data and send them to a one of the Internet of Things [START_REF] Atzori | The internet of things: A survey[END_REF] (IoT) enabled platforms. We will discuss several weather stations which use 434 MHz band and analyze the modulation, encoding and data frame structure. It should be mentioned that some wireless sensors use a different frequency range, typically 868 MHz or in case of the US 915 MHz, which would require a drop-in replacement or secondary receiver.

The rest of the paper is organized as follows: In next section, we will discuss the basics of communication with wireless sensors in 434 MHz range and their specifics. In section 3 we will discuss the modulation techniques and encoding schemes. In section 4 we will address some of the common protocol features. In section 5 we will disseminate actual protocols we have managed to capture and provide a description of common frame formats. In section 6, we will mention our prototype solution, concentrating on cheap and available components, designing the device so that its cost does not exceed e 10 (not considering the router to which it may be connected).

Wireless Weather Stations

The weather stations have been used for several tens or hundreds of years. With the advent of electronic measurement, personal weather stations operated by private individuals became cheaper and more widespread. They typically measure at least temperature, atmospheric pressure and humidity, more advanced ones also contain an anemometer to measure the wind speed and direction (also the wind gust measurement may not record really short wind gusts) and rain gauge. Some personal weather stations may also measure solar radiation, UV index or soil moisture. However, most of the cheaper models cannot be connected to personal computers or Internet.

Most of the current wireless personal weather station systems presently consist of a base station placed indoors, which measures internal temperature and humidity as well as the atmospheric pressure, the changes of which are being recorded and used for the prediction of the weather in following 24-48 hours. The base stations may also provide additional functions -local time (sometimes radio-controlled clock adjustment is possible), alarm(s), moon phase and sunrise/sunset times. Since the cheaper base stations do not offer a possibility to access data stored on them from a computer, our solution will have to replace the base station as well.

The wireless sensors are placed outside, they have to withstand harsher environmental conditions and they must co-exist together with other systems which are using the same frequency band. Typically, the base stations support up to 3 wireless temperature (or based on the type of the weather station either the temperature and humidity or temperature and soil moisture) sensors, one rain gauge and one anemometer.

As we have already stated in the Introduction, there are many incompatible protocols for data transmission from the wireless sensor to the weather station. We can compare this situation to the issues some of the Bluetooth Smart accessory is currently facing with incompatible protocols for devices which do not have a common standardized profile.

On one hand, this leads to compatibility issues, on the other hand, it should be possible to operate several sets of wireless sensors and wireless weather stations from different vendors independently in the same area. The wireless sensors use one of the free ISM (Industrial, Science, Medicine) bands for the data transmissions. In central Europe, they mainly operate in the 433,92 MHz band, which they share with some remote control devices such as car keys, garage door openers, wireless doorbells and remotelycontrolled electric sockets. Alternatively, some manufacturers use the 868 MHz band, which however starts to be extensively used by home monitoring devices and Internet of Things technologies (e.g. SIGFOX). In some countries, especially in North America, the 915 MHz band is also used (but it is not possible to use it in Europe due to the collision with GSM-900 frequency range).

Modulation Techniques

There are many modulation techniques used in wireless transfers for binary data, which are being used nowadays. Ranging from the On-off keying to complex modulation schemes using 256-QAM (Quadrature Amplitude Modulation), OFDM (Orthogonal Frequency Division Multiplexing) and guard intervals. However, in the case of wireless external sensors, we typically encounter simple modulation techniques, which require a less complex hardware, cheaper circuity and less power consumption.

The circuity of the wireless meteorological sensors typically uses the On-Off Keying (OOK) -a simple variant of Amplitude Shift Keying (ASK) -which represents the transmitted binary data as a presence of the carrier wave. This modulation technique is similar to the old Morse code transfers, in the basic case representing binary 1 as the presence of the carrier wave and binary 0 as the absence of the carrier wave. Whilst this technique is very easy to implement, it is typically not used just by itself, because the noise and collisions of multiple transmissions would be hard to filter out.

A smaller number of devices (e.g. Fine Offset WH1080 Weather Station sensors) use Frequency Shift Keying (FSK) or Gaussian GFSK by using two frequencies for representing binary 0 and 1. There is also a possibility of future sensors using the Fre-quency Hopping Spread Spectrum (FHSS). Decoding data from such sensors would require the knowledge of the hopping patterns and is out of scope of this paper.

So far, we have identified following modulation techniques used in combination with the OOK variant of amplitude modulation:

1. Pulse Width Modulation (PWM) -the logical zeros and ones are defined by the actual width of the pulse generated by the transmitter 2. Pulse Distance Modulation (PSM) -the short pulses have a constant duration and the delay (or distance, space) between them defines logical zeros and ones. Sometimes, the tertiary duration is also being used as a special symbol for signaling (Start of frame, spacer, etc.) or synchronization pulses are sent, to signal the start of the frame. 3. Return to Zero Encoding (RZ) -a specific variant of return to zero is being used by some transmitters (since standard RZ would require three signal levels). In the middle of the bit interval, the signal is always turned off [2]. 4. Manchester Encoding -the demodulated signal level is shifted in the middle of the bit interval based on the transmitted symbol -binary 0 is encoded as a shift from high to low and binary 1 as a shift from low to high or vice versa in some implementations. If the level in the beginning of the bit interval is already in the level to which it would be shifted, additional shift in the beginning of the bit interval occurs. 5. Modified Differential Manchester Encodinguses level shift in the beginning of each bit interval for each bit and the presence or absence of level shift in the middle of the bit interval to encode binary 0 and 1.

In the rest of the paper, we will be concentrating on the devices which use the On-Off Keying, because they require a cheaper receiver module and there are many readymade receivers available. Automatic detection of used modulation is also possible, see [START_REF] Ahn | Automatic modulation classification of digital modulation signals based on gaussian mixture model[END_REF][START_REF] Azzouz | Automatic modulation recognition of communication signals[END_REF][START_REF] Thakur | Trends in automatic modulation classification for advanced data communication networks[END_REF].

Weather Station Data Transmission

In this section, we will describe some common frame formats used to transmit data from a wireless sensor to the weather station.

The wireless sensor circuity is generally as simple and as cheap as possible. To save money, the sensor contains only a transmitter (unlike the wireless sensor network nodes, which provide both transmitter and receiver). As a result, the measured data transmissions are unacknowledged, and it is not possible to sense multiple access on medium, i.e. methods such as CSMA (carrier sense multiple access) are out of question. To improve a chance of successful data delivery, the frame -which is quite short, consisting of only a few nibbles 10 or bytes -is usually repeated several times during the transmission.

Two good sources of this information are available on-line [2,[START_REF] Tfd | RF transmission protocol of Auriol H13726 Ventus WS155[END_REF]. Whilst [START_REF] Tfd | RF transmission protocol of Auriol H13726 Ventus WS155[END_REF] contains incomplete information, it is a good starting point for further analysis. In fact, we have encountered a clone of such station when analyzing the data. We independently deciphered the data frame structure finding some extra information which was not part of the original document, as shown in following section.

For all weather stations mentioned in the following text, we were able to identify a set of parameters which play an important role for correct decoding of transmitted data besides the modulation scheme used, which was mentioned in previous section:

1. General transmission speed based on the pulse width and distance. Since some of the line codes do not use same length of time intervals for binary 0 and binary 1, we will rather speak about the on and off pulse lengths for individual symbols in the rest of the paper and not the bit speed. 2. Bit ordering of the transmitted data, both for the whole frame and for the bits in individual nibbles (4-bit sequences). There are two ways how to transmit datathe first one sends the least significant bit of a nibble (LSB) first, whilst the second sends the most significant bit first (MSB). From the global point of view, we may also send either the most or the least significant nibble first. 3. Preamble format differs for different implementations. The preamble is placed before the frame to synchronize the transmitter and the receiver. It is often followed by one or more synchronization bits. 4. Number of synchronization bits (sync bits) which are often placed between the preamble and the first frame and between individual frame repetitions. 5. Frame check sequence (FCS) is generally transmitted after the data frame and it is checked before the frame is processed further. However, some transmitters do not use FCS at all, other include a simple FCS inside of data portion of the frame and other combine both variants. In case of simple implementations, it is possible to determine the checksumming algorithm and verify that the data in the frame appears intact. However, if the formula is not possible to determine, we may have to use other ways how to check for data validity. 6. Number of bits in a single frame is the last but not least indicator which helps us to detect if the whole frame has been received. Some sensors may even stop the transmission in the middle of the last frame repetition.

The data encoded in the data frame will usually include the random sensor IDs, the channel ID for temperature and humidity measurements, battery state information, a simple abovementioned checksum and sometimes an indication that a measurement was forced manually (e.g. by pressing a button). The temperature and humidity sensors -which will be mostly discussed in this paper -will also provide the temperature (3-4 nibbles) and humidity (typically 2 nibbles) measurements, and sometimes the temperature trend as well.

The measured values stored in the data frame may also use different representations of measured data, sometimes even in the same frame. The values may be stored by individual digits (binary-coded decimal -BCD) or a signed or unsigned binary value. The signed values may encode the numbers with a sign bit (typically the most significant bit), or use either one's complement or two's complement representation.

In case of values with decimal places, the value is multiplied by some coefficient (e.g. 10, 4, 2) and sent as an integer. So far, we have not identified a sensor, which would use floating-point number representation, possibly due to the measured ranges

Decoding Captured Sensor Data

In this section, we will discuss data captured from several different weather station wireless sensors, which use individual protocols. We will also describe how to decode them.

Three weather stations were available, the data from the fourth were decoded its sensor transmissions have been captured "in the wild".

The first sensor has been manufactured in 2008, contains an LCD display showing temperature and humidity values and has a type number H13716A-TX placed inside on the PCB. After decoding its data, we found document [START_REF] Tfd | RF transmission protocol of Auriol H13726 Ventus WS155[END_REF], which describes the same protocol (but is missing some fields). It provides both temperature and humidity data.

The second sensor has been manufactured in early 2013, it does not have an LCD display. The sensor has a type number Z31130-TX on a sticker outside and HQ-TX001 (MB) R-1 printed inside on the PCB. It also provides both temperature and humidity data.

The third sensor has been manufactured in late 2013 or early 2014. It does not have an LCD display, either. The sensor has a type number Z31915-TX on a sticker outside and TX06K-THC V2 printed inside on the PCB. It also provides both temperature and humidity data.

The last sensor has not been physically available to us, but it provides only the temperature data. We will label it UWTT (unknow wireless temperature transmitter) in the following text.

The weather stations using the second and third sensor look almost the same, they were sold under the same brand and use the same set of functions and graphics on LCD screen. One would expect that the sensors use same or similar protocols, but as we will show later, this is not the case. In Fig. 2, we can see the I component of the analog signal, normalized to -1, 1 range. The samples for individual sensors were taken over a longer period of time, so the actual measured values will differ from each other. In the following text, we will address the individual steps needed for decoding of the signal.

Decoding the Demodulated Signal

The samples provided in Fig. 2 show, that all sensors in our evaluation use Pulse Distance Modulation and tri-state encoding (0, 1, space between the frames -S). The receiver circuity will demodulate the signal and provide either an analog signal, based on the input voltage, which would correspond to the non-negative part of examples shown in Fig. 2, or digital TTL levels represented by 0 or 1 values.

When processing such signal, we have to determine the pulse lengths and distances first. This may be tried semi-automatically, which will work for many receivers, but the auto-detection process may be thrown off e.g. by the synchronization bits, which can be seen in some of the measured data samples see Fig. 2(c),(d).

After successful detection of pulses, we may decode the individual bits and detect the frame length, which should be the same for all frames in the single transmission, creating the super-frame. We should, however, note, that the timings are far from being exact. The actual timing will depend on outside temperature and the oscillator used in the wireless sensor circuity. As a result we may define thresholds, ignoring pulses and delays shorter than the initial delay and sampling 0, 1 and S symbols based on additional thresholds. On one hand, it is a problem, since we will not be able to demonstrate decoding of other signals, on the other hand it shows that this type of modulation is quite common for this type of sensors. The result of this step will be a bit vector with the data to be processed together with meta-information which may be used for correct selection of the decoder (there may be several candidates based on the timing, e.g. Z31130-TX and UWTT use the same timing and the only difference is the presence of sync bit before S bit in UWTT).

Detecting Parts of Decoded Frame

The results of the previous step are processed and the measured data and additional information is obtained. To do so, we must first determine which sensor is being used to obtain correct frame format and interpretation. This may be done directly on the device which captures data, or the frame may be submitted to the server for further processing.

The decoded data is shown in Table 2, which provides both basic variants of data organization: LSB and MSB for the whole frame. We have marked the identifiable temperature data in bold, channel IDs in italics and humidity data in bold italics. We could also provide data reordered by individual bytes/nibbles, or bit-inverted data (in the case when a manufacturer would decide to use longer delay for 0 and shorter for 1), but it was not necessary in this case.

To find which parts of the frame/bits represent the measured values, it is best if we have access to the base station which should display the transmitted value (or a value close to it) on screen. The temperature is typically multiplied by 10 and stored as an 12-bit integer, so we may use its value to find the position in the frame, if available. The same way, we may look for humidity, which will be typically a 8-bit value (unless decimal places are used), channel number, or some other type of measured value which can be displayed on screen of the base station (wind speed and gust, total rainfall, etc.). The transmitted data may be further analyzed for low battery data, button pushed indication, etc.

In our case, we were directly able to identify the temperature and humidity positions for H13716A-TX, which uses LSB ordering, 12-bit temperature value and BCDencoded humidity value. The Z31130-TX also provides both the temperature and humidity values, but in MSB order -both are hexadecimal values.

We may also expect, that UWTT temperature was 11.8 • C and the transmitter uses MSB ordering, however more measurements had to be be gathered to make sure of our calculation.

Interpreting the Data Fields

Even if we were successful in identifying the data fields, at least one measurement with a negative temperature should be also made in most cases to detect the signed value representation used for temperature measurement. Example of such data is shown in Table 3. Other samples with different channel ID settings should provide the place of the channel number and battery low/high indication.

However, we have encountered a problem -the Z31915-TX did not provide any meaningful values for the temperature measurement. On the other hand, we were able to identify that data uses the MSB first order and find the positions of channel number and humidity value.

After gathering tens of samples and recording the displayed temperature, the trend started to appear. We were able to find the position of temperature measurement and determine, that the values follow a formula similar to Fahrenheit to Celsius conversion (y = (x -32) • 5 9 , where x is the temperature in Fahrenheit and y in Celsius). There were however two problems -the value had still to be divided by 10 and the basic value did not match. Finally, we were able to find the correct formula for

-TX 0xD20FF35A0 -1.3 • C (0xFF3) 2-complement 1 0xA0 Low Z31130-TX 0x7A9FE5F14 -2.7 • C (0xFE5) 2-complement 2 0x7A OK Z31915-TX 0x8B624A8383 -1.5 • C N/A 3 0x8B N/A
temperature calculation, which was (due to integer-based calculations prior the final step defined as follows):

y = (z -1220) • 5 9 10 [ • C]. (1)
The z stands for the measured value obtained from received frame and y for the temperature in Celsius.

All four evaluated sensors had a floating ID, which has been changed each time the batteries have been replaced (it means that a new scan for sensors has to be executed after battery change). The random ID allows the coexistence of different sensors with the same protocol and same channel number (or without a support for channel numbers) and ensures that the stored base values have to be reset after sensor reinitialization (e.g. for rainfall gauge). For all four sensors, the random ID has been recorded in the first two transmitted nibbles (first byte).

The frame check sequence (FCS) is often present, but unless a simple calculation has been used (like in the case of Z31130-TX), we may not be able to verify it. The channel number may appear in data directly, as a bit flag on given position, or as a value decreased by 1 (e.g. Z31130-TX uses 0 for channel 1).

There are a few additional observations to make. When using sensors other than temperature/humidity with the base station, the basic frame format (timing, repetitions, bit ordering, etc.) stays generally the same, but the sync bits and checksum calculation may change, as seen in [START_REF] Tfd | RF transmission protocol of Auriol H13726 Ventus WS155[END_REF]. In the following text, we will describe the final decoded frame formats. The following notation will be used: CH is the channel number, V is a bit flag indicating low voltage, V is a bit flag indicating that voltage is OK, TR indicates the temperature trend calculated from last measurements (00 -stable, 01 -increasing, 10 -decreasing), B indicates that a button on the sensor has been pushed or the batteries were changed, FCS is the frame check sequence. Fig. 3 depicts the frame format for H13716A-TX. Detailed examination has shown, that only data from fourth nibble onward are ordered in LSB order, i.e. the channel number and trend are encoded in MSB order. The FCS is calculated (in LSB order) as

Determined Frame Formats

FCS H = 0xf -( 7 i=0 nibble i ) & 0xf
(2) Fig. 4 depicts the frame format for Z31130-TX. We were not able to find the FCS field, moreover the sensor is not equipped with a button, but there is a possibility that bit 9 is reserved for button press indication, but we were not able to verify this. The channel numbers start with 0 (for channel 1).

ID

FCS (+?) 00 TR Temperature (Formula 1) Humidity (BCD) 00 CH Fig. 5. Frame sent by Z31915-TX Fig. 5 depicts the frame format for Z31130-TX. The sensor is not equipped with a button (there is a possibility that one of the bits 8-13 is reserved for button press indication, but we were not able to verify this). Also, we were not able to figure out the FCS calculation formula even with a lot of captured samples. Although it is not needed for temperature decoding, it would help us to check for erroneous frames. When we simulated the transmissions, the FCS was checked and frames with invalid FCS were dropped by the base station. However, in some cases the base station emitted a beep, so we suppose that the "button push" event may also be encoded in the, FCS but we were not able to pin it to any specific bit.

Lastly, we will describe the last weather sensor, which we were able to capture "in the wild". Fig. 6 shows the sensor data we were able to obtain from several samples. Some captures done later indicated the battery bit, they were obtained several days before the sensor stopped transmitting. We were also able to capture a frame with bits 10-11 set to 01, so we are pretty sure that they record channel ID, its values starting with 0 for channel 1. Further, the last 3 nibbles of the frame always read 0xf00, so there is a possibility, that this is a preset reserved value for transmitter without a humidity sensor and two of these three last nibbles in the frame may be used for humidity value in other sensors.

Providing the Captured Data to Internet of Things Applications

In this section, we will describe the prototype solution, which has been used to send data to the home server and to the ThingsSpeak IoT API.

The prototype implementation uses an OOK/ASK 433 MHz receiver (two possible receiver modules (the smaller one using Synoxo SYN470R [START_REF]SYN470R Datasheet[END_REF] ASK receiver) are shown in Fig. 7 in top left corner), which are connected to the orange marked connector on the prototype board which uses a widespread cheap 8-bit microcontroller ATMEGA 328P [4].

To simulate fully the base station, we have also included humidity, barometric pressure and temperature sensors. The prototype has been connected to a router running OpenWRT firmware, which reads data from the serial port emulated by the USB-toserial converter (top right corner). In our case we have used TP-LINK TL-WR703N. We could connect the TTL levels to on-board serial port, but decided against it. It would be also possible to use a PC or Raspberry Pi instead of the router, but then we would have to solve the connectivity anyway.

The prototype has preset hard-coded parameters for individual sensors, with the possibility to replace the parameters for the first three sensors with a new custom code. There are separate configurations for both the general frame format and individual wireless sensor to make it possible to define other data types. The DIP switches in the bottom part of the prototype PCB allow us to enable/disable individual decoders (red DIP switch) and channel IDs (blue DIP switch). We have also added a LED indicating that the frame has been received, which can be disconnected (bottom right corner).

We were able to extract individual frames from the receiver and send the signal with meta-information for the processing to the router for all abovementioned wireless sensors. We are currently working on the second prototype, which uses ESP8266 SoC [START_REF]ESP8266EX Datasheet[END_REF] solution with a built-in WiFi functionality, which would make the selection of wireless sensors and general configuration much easier. The device would be able to operate in a true IoT fashion, not needing the router for data preprocessing. However, the disadvantage is the increased power consumption. We are also considering the hybrid approach, with the basic decoding still done by the ATMEGA 328P processor which would pro- vide the last captured codes on-demand when the ESP8266 module wakes from sleep, reducing the overall power consumption.

Conclusion

In this paper, we have provided a groundwork for the solution which would allow us to connect existing cheap home wireless weather sensors to the IoT world. We have discussed the ways how to extract data from their transmission, concentrating on the possible modulations, frame formats and data organization specifics. The paper discussed mainly the temperature and humidity sensors, but we can easily add other types of sensors as well. We have also provided examples of the frames both for the transmitters with known measured data and for a captured transmission with unknown values.

In future, we plan to build a custom solution, which would allow users to select the decoder from one of the pre-defined formats or auto-detect the possible modulation and encoding schemes and data formats. Some features, for example the used modulation, the pulse lengths and delays and used scheme, may be auto-detected when using software-defined radio to capture the sensor data. Also, we should be able to use the proposed solution together with the sensor placed in the same area to auto-detect the parameters of wireless temperature (and humidity) sensors by obtaining the data from built-in sensors and trying to match them to the received transmissions.

Fig. 1 .

 1 Fig. 1. The wireless sensors used for the evaluation (left-to right): H13716A-TX, Z31130-TX and Z31915-TX

Fig. 2 .

 2 Fig. 2. Captured analog signal (I component) -first two complete frame repetitions: (a) H13716A-TX, (b) Z31130-TX (c) Z31915-TX (d) UWTT

Fig. 3 .

 3 Fig. 3. Frame sent by H13716A-TX

Fig. 6 .Fig. 7 .

 67 Fig. 6. Frame sent by unknown wireless temperature transmitter (UWTT)

Table 1 .

 1 Approximate timing of sensor transmissions (changes with temperature and sensor)

	Sensor	Pulse 0 delay 1 delay S delay Sync bit On/Off	Synchronization pattern
	H13716A-TX 0.4 ms 2 ms 4 ms 9 ms	-	S bit
	Z31130-TX 0.5 ms 1 ms 2 ms 4 ms	-	S bit
	Z31915-TX 0.75 ms 1.75 ms 4 ms 7.75 ms	1/1 ms	(2×S delay) + 4 sync bits + S bit
	UWTT	0.5 ms 1 ms 2 ms 3.75 ms 0.5/0.5 ms	1 sync bit + S bit/S bit 11

Table 2 .

 2 Basic frame information and decoded data (MSB and LSB first)

	Sensor	Frame MSB first data LSB first data	Temperature	Humidity Channel
	H13716A-TX 36 bits 0x7DAFB004C 0x3200DF5BE 22.3 • C (0x0DF) 20 (0x14)	3
	Z31130-TX 36 bits 0x64810FF29 0x94FF08126 27.1 • C (0x10F) 41 (0x29)	1
	Z31915-TX 40 bits 0xD262552692 0x4964AA464B 7.8 • C (0x04E) 69 (0x45)	2
	UWTT	36 bits 0x4A8076F00 0x00F6E0152	11-13 • C	N/A	N/A

Table 3 .

 3 Decoded data -subzero temperatures

	Sensor	Data (in MSB format) Temperature	Signed value Channel ID Battery
	H13716A

https://github.com/merbanan/rtl_433

http://wmrx00.sourceforge.net/

http://www.wviewweather.com/

https://github.com/ajauberg/fowsr

http://goo.gl/3InBIq

http://www.osengr.org/WxShield/Web/WxShield.shtml

https://www.sparkfun.com/products/12081

First frame in sequence has the delay after sync bit (2 × S delay), the repetitions do not have a sync bit.

This work has been supported by The Ministry of Education, Youth and Sports from the National Programme of Sustainability (NPU II) project "IT4Innovations excellence in science -LQ1602" and from the Large Infrastructures for Research, Experimental Development and Innovations project "IT4Innovations National Supercomputing Center ? LM2015070".