Browse Source

Cleanup

master
Apostolos Fanakis 6 years ago
parent
commit
bcdf7d718b
No known key found for this signature in database GPG Key ID: 56CE2DEDE9F1FB78
  1. 129
      ml algorithms/AlgorithmsInPython.py
  2. 85
      ml algorithms/AlgorithmsInR.r
  3. 108
      ml algorithms/DataPreprocessing.py
  4. 83
      ml algorithms/DataPreprocessing.r
  5. 20
      ml algorithms/LinearRegression.py
  6. 0
      presentation/Presentation_1.pdf
  7. 0
      presentation/Presentation_2.pdf
  8. BIN
      presentation/humanvoice.png
  9. 25
      presentation/main.bbl
  10. 82
      presentation/main.blg
  11. 60
      presentation/main.tex
  12. BIN
      presentation/musicinstr.png
  13. BIN
      presentation/output/figure_1.png
  14. BIN
      presentation/output/figure_10.png
  15. BIN
      presentation/output/figure_11.png
  16. BIN
      presentation/output/figure_12.png
  17. BIN
      presentation/output/figure_13.png
  18. BIN
      presentation/output/figure_14.png
  19. BIN
      presentation/output/figure_15.png
  20. BIN
      presentation/output/figure_2.png
  21. BIN
      presentation/output/figure_3.png
  22. BIN
      presentation/output/figure_4.png
  23. BIN
      presentation/output/figure_5.png
  24. BIN
      presentation/output/figure_6.png
  25. BIN
      presentation/output/figure_7.png
  26. BIN
      presentation/output/figure_8.png
  27. BIN
      presentation/output/figure_9.png
  28. 0
      presentation/private
  29. 154
      presentation/testbench/1_Intro.tex
  30. 12
      presentation/testbench/Makefile
  31. BIN
      presentation/testbench/main.pdf
  32. 105
      presentation/testbench/main.tex
  33. 0
      report/.gitignore
  34. 2
      report/1.intro.tex
  35. 0
      report/2.past_implementations.tex
  36. 4
      report/3.features_and_preprocessing.tex
  37. 0
      report/3.our_implementation.tex
  38. 0
      report/4.models.tex
  39. 0
      report/Makefile
  40. 0
      report/cites.bib
  41. BIN
      report/main.pdf
  42. 56
      report/main.tex
  43. 0
      report/res/figure_1.png
  44. 0
      report/res/figure_2.png

129
ml algorithms/AlgorithmsInPython.py

@ -1,129 +0,0 @@
#Linear Regression
#Import Library
#Import other necessary libraries like pandas, numpy...
from sklearn import linear_model
#Load Train and Test datasets
#Identify feature and response variable(s) and values must be numeric and numpy arrays
x_train=input_variables_values_training_datasets
y_train=target_variables_values_training_datasets
x_test=input_variables_values_test_datasets
# Create linear regression object
linear = linear_model.LinearRegression()
# Train the model using the training sets and check score
linear.fit(x_train, y_train)
linear.score(x_train, y_train)
#Equation coefficient and Intercept
print('Coefficient: \n', linear.coef_)
print('Intercept: \n', linear.intercept_)
#Predict Output
predicted= linear.predict(x_test)
#Logistic Regression
#Import Library
from sklearn.linear_model import LogisticRegression
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create logistic regression object
model = LogisticRegression()
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Equation coefficient and Intercept
print('Coefficient: \n', model.coef_)
print('Intercept: \n', model.intercept_)
#Predict Output
predicted= model.predict(x_test)
#Decision Tree
#Import Library
#Import other necessary libraries like pandas, numpy...
from sklearn import tree
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create tree object
model = tree.DecisionTreeClassifier(criterion='gini') # for classification, here you can change the algorithm as gini or entropy (information gain) by default it is gini
# model = tree.DecisionTreeRegressor() for regression
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Predict Output
predicted= model.predict(x_test)
#SVM
#Import Library
from sklearn import svm
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create SVM classification object
model = svm.svc() # there is various option associated with it, this is simple for classification. You can refer link, for mo# re detail.
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Predict Output
predicted= model.predict(x_test)
# Naive Bayes
#Import Library
from sklearn.naive_bayes import GaussianNB
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create SVM classification object model = GaussianNB() # there is other distribution for multinomial classes like Bernoulli Naive Bayes, Refer link
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)
#kNN (k- Nearest Neighbors)
#Import Library
from sklearn.neighbors import KNeighborsClassifier
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create KNeighbors classifier object model
KNeighborsClassifier(n_neighbors=6) # default value for n_neighbors is 5
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)
#K-Means
#Import Library
from sklearn.cluster import KMeans
#Assumed you have, X (attributes) for training data set and x_test(attributes) of test_dataset
# Create KNeighbors classifier object model
k_means = KMeans(n_clusters=3, random_state=0)
# Train the model using the training sets and check score
model.fit(X)
#Predict Output
predicted= model.predict(x_test)
#Random Forest
#Import Library
from sklearn.ensemble import RandomForestClassifier
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create Random Forest object
model= RandomForestClassifier()
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)
#Dimensionality Reduction Algorithms
#Import Library
from sklearn import decomposition
#Assumed you have training and test data set as train and test
# Create PCA obeject pca= decomposition.PCA(n_components=k) #default value of k =min(n_sample, n_features)
# For Factor analysis
#fa= decomposition.FactorAnalysis()
# Reduced the dimension of training dataset using PCA
train_reduced = pca.fit_transform(train)
#Reduced the dimension of test dataset
test_reduced = pca.transform(test)

85
ml algorithms/AlgorithmsInR.r

@ -1,85 +0,0 @@
#Linear Regression
#Load Train and Test datasets
#Identify feature and response variable(s) and values must be numeric and numpy arrays
x_train <- input_variables_values_training_datasets
y_train <- target_variables_values_training_datasets
x_test <- input_variables_values_test_datasets
x <- cbind(x_train,y_train)
# Train the model using the training sets and check score
linear <- lm(y_train ~ ., data = x)
summary(linear)
#Predict Output
predicted= predict(linear,x_test)
#Logistic Regression
x <- cbind(x_train,y_train)
# Train the model using the training sets and check score
logistic <- glm(y_train ~ ., data = x,family='binomial')
summary(logistic)
#Predict Output
predicted= predict(logistic,x_test)
#Decision tree
library(rpart)
x <- cbind(x_train,y_train)
# grow tree
fit <- rpart(y_train ~ ., data = x,method="class")
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
#SVM
library(e1071)
x <- cbind(x_train,y_train)
# Fitting model
fit <-svm(y_train ~ ., data = x)
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
# Naive Bayes
library(e1071)
x <- cbind(x_train,y_train)
# Fitting model
fit <-naiveBayes(y_train ~ ., data = x)
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
#kNN (k- Nearest Neighbors)
library(knn)
x <- cbind(x_train,y_train)
# Fitting model
fit <-knn(y_train ~ ., data = x,k=5)
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
#K-Means
library(cluster)
fit <- kmeans(X, 3) # 5 cluster solution
#Random Forest
library(randomForest)
x <- cbind(x_train,y_train)
# Fitting model
fit <- randomForest(Species ~ ., x,ntree=500)
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
#Dimensionality Reduction Algorithms
library(stats)
pca <- princomp(train, cor = TRUE)
train_reduced <- predict(pca,train)
test_reduced <- predict(pca,test)

108
ml algorithms/DataPreprocessing.py

@ -1,108 +0,0 @@
'''
Created on Apr 25, 2016
test code
@author: Wenqiang Feng
'''
import pandas as pd
#import numpy as np
import matplotlib.pyplot as plt
from pandas.tools.plotting import scatter_matrix
from docutils.parsers.rst.directives import path
if __name__ == '__main__':
path ='~/Dropbox/MachineLearningAlgorithms/python_code/data/Heart.csv'
rawdata = pd.read_csv(path)
print "data summary"
print rawdata.describe()
# summary plot of the data
scatter_matrix(rawdata,figsize=[15,15])
plt.show()
# Histogram
rawdata.hist()
plt.show()
# boxplot
pd.DataFrame.boxplot(rawdata)
plt.show()
print "Raw data size"
nrow, ncol = rawdata.shape
print nrow, ncol
path = ('/home/feng/Dropbox/MachineLearningAlgorithms/python_code/data/'
'energy_efficiency.xlsx')
path
rawdataEnergy= pd.read_excel(path,sheetname=0)
nrow=rawdata.shape[0] #gives number of row count
ncol=rawdata.shape[1] #gives number of col count
print nrow, ncol
col_names = rawdata.columns.tolist()
print "Column names:"
print col_names
print "Data Format:"
print rawdata.dtypes
print "\nSample data:"
print(rawdata.head(6))
print "\n correlation Matrix"
print rawdata.corr()
# cocorrelation Matrix plot
pd.DataFrame.corr(rawdata)
plt.show()
print "\n covariance Matrix"
print rawdata.cov()
print rawdata[['Age','Ca']].corr()
pd.DataFrame.corr(rawdata)
plt.show()
# define colors list, to be used to plot survived either red (=0) or green (=1)
colors=['red','green']
# make a scatter plot
# rawdata.info()
from scipy import stats
import seaborn as sns # just a conventional alias, don't know why
sns.corrplot(rawdata) # compute and plot the pair-wise correlations
# save to file, remove the big white borders
#plt.savefig('attribute_correlations.png', tight_layout=True)
plt.show()
attr = rawdata['Age']
sns.distplot(attr)
plt.show()
sns.distplot(attr, kde=False, fit=stats.gamma);
plt.show()
# Two subplots, the axes array is 1-d
plt.figure(1)
plt.title('Histogram of Age')
plt.subplot(211) # 21,1 means first one of 2 rows, 1 col
sns.distplot(attr)
plt.subplot(212) # 21,2 means second one of 2 rows, 1 col
sns.distplot(attr, kde=False, fit=stats.gamma);
plt.show()

83
ml algorithms/DataPreprocessing.r

@ -1,83 +0,0 @@
rm(list = ls())
# set the enverionment
path ='~/Dropbox/MachineLearningAlgorithms/python_code/data/Heart.csv'
rawdata = read.csv(path)
# summary of the data
summary(rawdata)
# plot of the summary
plot(rawdata)
dim(rawdata)
head(rawdata)
tail(rawdata)
colnames(rawdata)
attach(rawdata)
# get numerical data and remove NAN
numdata=na.omit(rawdata[,c(1:2,4:12)])
cor(numdata)
cov(numdata)
dev.off()
# laod cocorrelation Matrix plot lib
library(corrplot)
M <- cor(numdata)
#par(mfrow =c (1,2))
#corrplot(M, method = "square")
corrplot.mixed(M)
nrow=nrow(rawdata)
ncol=ncol(rawdata)
c(nrow, ncol)
Nvars=ncol(numdata)
# checking data format
typeof(rawdata)
install.packages("mlbench")
library(mlbench)
sapply(rawdata, class)
dev.off()
name=colnames(numdata)
Nvars=ncol(numdata)
# boxplot
par(mfrow =c (4,3))
for (i in 1:Nvars)
{
#boxplot(numdata[,i]~numdata[,Nvars],data=data,main=name[i])
boxplot(numdata[,i],data=numdata,main=name[i])
}
# Histogram with normal curve plot
dev.off()
Nvars=ncol(numdata)
name=colnames(numdata)
par(mfrow =c (3,5))
for (i in 1:Nvars)
{
x<- numdata[,i]
h<-hist(x, breaks=10, freq=TRUE, col="blue", xlab=name[i],main=" ",
font.lab=1)
axis(1, tck=1, col.ticks="light gray")
axis(1, tck=-0.015, col.ticks="black")
axis(2, tck=1, col.ticks="light gray", lwd.ticks="1")
axis(2, tck=-0.015)
xfit<-seq(min(x),max(x),length=40)
yfit<-dnorm(xfit,mean=mean(x),sd=sd(x))
yfit <- yfit*diff(h$mids[1:2])*length(x)
lines(xfit, yfit, col="blue", lwd=2)
}
library(reshape2)
library(ggplot2)
d <- melt(diamonds[,-c(2:4)])
ggplot(d,aes(x = value)) +
facet_wrap(~variable,scales = "free_x") +
geom_histogram()

20
ml algorithms/LinearRegression.py

@ -1,20 +0,0 @@
#LinearRegression]
#Import Library
#Import other necessary libraries like pandas, numpy...
from sklearn import linear_model
#Load Train and Test datasets
#Identify feature and response variable(s) and values must be numeric and numpy arrays
x_train=input_variables_values_training_datasets
y_train=target_variables_values_training_datasets
x_test=input_variables_values_test_datasets
# Create linear regression object
linear = linear_model.LinearRegression()
# Train the model using the training sets and check score
linear.fit(x_train, y_train)
linear.score(x_train, y_train)
#Equation coefficient and Intercept
print('Coefficient: \n', linear.coef_)
print('Intercept: \n', linear.intercept_)
#Predict Output
predicted= linear.predict(x_test)

0
presentation/Presentation-6698_8055_8261.pdf → presentation/Presentation_1.pdf

0
presentation/Presentation-2-6698_8055_8261.pdf → presentation/Presentation_2.pdf

BIN
presentation/humanvoice.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

25
presentation/main.bbl

@ -1,25 +0,0 @@
\begin{thebibliography}{1}
\bibitem{robust}
\bibitem{mirex}
\bibitem{hybrid}
\bibitem{cuckoo}
Wenlei Shi and Xinhai Fan.
\newblock Speech classification based on cuckoo algorithm and support vector
machines.
\newblock {\em 2nd IEEE International Conference on Computational Intelligence
and Applications}, 2017.
\bibitem{radio}
Błażej~Chwiećko Stanisław~Kacprzak and Bartosz Ziółko.
\newblock Speech/music discrimination for analysis of radio stations.
\newblock {\em 2017 International Conference on Systems, Signals and Image
Processing (IWSSIP)}, 2017.
\end{thebibliography}

82
presentation/main.blg

@ -1,82 +0,0 @@
This is BibTeX, Version 0.99d (TeX Live 2017/Debian)
Capacity: max_strings=100000, hash_size=100000, hash_prime=85009
The top-level auxiliary file: main.aux
The style file: plain.bst
Database file #1: cites.bib
I was expecting a `,' or a `}'---line 22 of file cites.bib
:
: )
(Error may have been on previous line)
I'm skipping whatever remains of this entry
I was expecting a `,' or a `}'---line 25 of file cites.bib
:
: title = "ROBUST SPEECH / MUSIC CLASSIFICATION IN AUDIO DOCUMENTS"
(Error may have been on previous line)
I'm skipping whatever remains of this entry
I was expecting a `,' or a `}'---line 32 of file cites.bib
:
: title = "METHODS FOR SPEECH / MUSIC DETECTION AND CLASSIFICATION"
(Error may have been on previous line)
I'm skipping whatever remains of this entry
I was expecting a `,' or a `}'---line 39 of file cites.bib
:
: title = "Speech/Music Discrimination using Hybrid-Based Feature Extraction for Audio Data Indexing"
(Error may have been on previous line)
I'm skipping whatever remains of this entry
Warning--to sort, need author or key in robust
Warning--to sort, need author or key in mirex
Warning--to sort, need author or key in hybrid
Warning--empty author in robust
Warning--empty title in robust
Warning--empty journal in robust
Warning--empty year in robust
Warning--empty author in mirex
Warning--empty title in mirex
Warning--empty journal in mirex
Warning--empty year in mirex
Warning--empty author in hybrid
Warning--empty title in hybrid
Warning--empty journal in hybrid
Warning--empty year in hybrid
You've used 5 entries,
2118 wiz_defined-function locations,
509 strings with 4398 characters,
and the built_in function-call counts, 965 in all, are:
= -- 76
> -- 29
< -- 0
+ -- 13
- -- 8
* -- 77
:= -- 144
add.period$ -- 9
call.type$ -- 5
change.case$ -- 16
chr.to.int$ -- 0
cite$ -- 20
duplicate$ -- 50
empty$ -- 89
format.name$ -- 8
if$ -- 187
int.to.chr$ -- 0
int.to.str$ -- 5
missing$ -- 5
newline$ -- 22
num.names$ -- 4
pop$ -- 40
preamble$ -- 1
purify$ -- 14
quote$ -- 0
skip$ -- 37
stack$ -- 0
substring$ -- 25
swap$ -- 2
text.length$ -- 0
text.prefix$ -- 0
top$ -- 0
type$ -- 20
warning$ -- 15
while$ -- 4
width$ -- 6
write$ -- 34
(There were 4 error messages)

60
presentation/main.tex

@ -1,60 +0,0 @@
% !TeX spellcheck = el_GR-en_US
\documentclass[11pt]{article}
\usepackage{geometry}
\geometry{a4paper, top=2.5cm, bottom=2.5cm, left=2.2cm,
right=2.2cm}
\usepackage{fontspec}
\usepackage{titlesec}
\usepackage{titling}
\usepackage{float}
\usepackage{subcaption}
\usepackage[nonumeralsign]{xgreek}
\usepackage{fancyhdr}
\usepackage{hyperref}
\usepackage{enumitem}
\usepackage{cite}
\usepackage{multirow}
\usepackage{graphicx}
\usepackage[normalem]{ulem}
\usepackage{float}
\restylefloat{table}
\useunder{\uline}{\ul}{}
\usepackage{amsmath}
\setmainfont{Lato}
\setmonofont{Consolas}
\title{Τεχνολογία Ήχου και Εικόνας 2018\\
Εργασία 2018-2019}
\author{Χριστίνα Θεοδωρίδου - 8055\\
Φρανκ Μπλάννινγκ - 6698\\
Αποστόλης Φανάκης - 8261}
\date{\today}
\pagestyle{fancy}
\lhead{Τεχνολογία Ήχου και Εικόνας 2018}
\rhead{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
\setlength{\headheight}{14pt}
\hypersetup{colorlinks=true, linkcolor=black, urlcolor=blue, citecolor=blue}
\urlstyle{same}
\begin{document}
\maketitle
\tableofcontents
\newpage
\input{intro.tex}
\input{2.past_implementations.tex}
% \input{3.our_implementation.tex}
\input{features_and_preprocessing.tex}
\input{models.tex}
\bibliographystyle{ieeetr}
\bibliography{cites}{}
\end{document}

BIN
presentation/musicinstr.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

BIN
presentation/output/figure_1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 KiB

BIN
presentation/output/figure_10.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 423 KiB

BIN
presentation/output/figure_11.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 356 KiB

BIN
presentation/output/figure_12.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 380 KiB

BIN
presentation/output/figure_13.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 KiB

BIN
presentation/output/figure_14.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 KiB

BIN
presentation/output/figure_15.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 487 KiB

BIN
presentation/output/figure_2.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 320 KiB

BIN
presentation/output/figure_3.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 339 KiB

BIN
presentation/output/figure_4.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 KiB

BIN
presentation/output/figure_5.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 KiB

BIN
presentation/output/figure_6.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 KiB

BIN
presentation/output/figure_7.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 KiB

BIN
presentation/output/figure_8.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 KiB

BIN
presentation/output/figure_9.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 KiB

0
presentation/private

154
presentation/testbench/1_Intro.tex

@ -1,154 +0,0 @@
\subsection{Στόχος του εγγράφου}
Ακολουθώντας τα στάδια ανάπτυξης λογισμικού, στα προηγούμενα έγγραφα,
το “Έγγραφο Απαιτήσεων Χρηστών” και το “Έγγραφο Απαιτήσεων
Λογισμικού”, καθορίστηκαν όσο το δυνατόν πιο εύστοχα οι απαιτήσεις
χρηστών και λογισμικού, αντίστοιχα. Στο παρόν έγγραφο σειρά έχει ο
αρχιτεκτονικός σχεδιασμός του συστήματος.
Αρχικά σημαντική προϋπόθεση για την σχεδίαση του συστήματος είναι η
δυναμική μοντελοποίηση του συστήματος Robobar με τον πλέον λεπτομερή
τρόπο. Αυτός είναι η παρουσίαση των ροών που περιγράφουν το πώς οι
κλάσεις που αναπτυχτήκαν κατά τη στατική μοντελοποίηση των κλάσεων
ικανοποιούν τα σενάρια χρήσης που δημιουργήθηκαν στο έγγραφο
απαιτήσεων χρηστών. Η δημιουργία δηλαδή των διαγραμμάτων ροών για την
εκτενή περιγραφή της συμπεριφοράς του συστήματος κατά την εκτέλεση των
λειτουργιών του αλλά και κατά την αλληλεπίδραση με τους χρήστες και τα
εξωτερικά συστήματα.
Επιπλέον η αποδόμηση του συστήματος σε υποσυστήματα αποτελεί πάγια
τακτική για την ανάπτυξη ενός λογισμικού και επιτυγχάνεται με την εξής
διαδικασία: το υπάρχον σύστημα διαιρείται σε υποσυστήματα, τα οποία
αλληλεπιδρούν. Στη συνέχεια επιλέγεται η κατάλληλη αρχιτεκτονική ώστε
να έχουμε το καλύτερο δυνατό αποτέλεσμα ως προς την επικοινωνία μεταξύ
των υποσυστημάτων αλλά και τη λειτουργικότητα συστήματος.
Τέλος στο παρόν έγγραφο γίνεται μία λεπτομερής ανάλυση της
αρχιτεκτονικής του συστήματος Robobar, με γνώμονα τις απαιτήσεις
χρηστών και λογισμικού που περιγράφτηκαν στα δύο προηγούμενα
έγγραφα. Τα δομικά στοιχεία του συστήματος, ο τρόπος που επικοινωνούν
μεταξύ τους και τυχόν περιορισμοί που πρέπει να ληφθούν υπόψιν,
αποτελούν μέρη της ανάλυσης αυτής.
\subsection{Αντικείμενο του Λογισμικού}
Το λογισμικό Robobar έχει ως αντικείμενο το σύνολο των δραστηριοτήτων
που χρειάζονται ώστε να λειτουργήσει ένα μπαρ. Αναλυτικότερα, το
λογισμικό RoboBar έχει ως στόχο την γρήγορη και εύκολη εξυπηρέτηση των
πελατών ενός μπαρ.
Το σύστημα αλληλεπιδρά με δυο είδη χρηστών τους απλούς
χρήστες-εργαζόμενους του μπαρ και των διαχειριστών. Ο χρήστης μπορεί
να δεχτεί μια παραγγελία από τους πελάτες του μπαρ από το υπάρχον
μενού ,όπως επίσης έχει την δυνατότητα να ενημερωθεί ή να επιλέξει την
ακύρωση μιας εκκρεμής παραγγελίας ανάλογα με το τι θα ζητηθεί από τους
πελάτες. Ο διαχειριστής του συστήματος έχει όλες τις παραπάνω
δυνατότητες και επιπλέον μπορεί να επεξεργαστεί το μενού του
καταστήματος δηλαδή να προσθέσει η να αναιρέσει συνταγές και υλικά.
Οι παραπάνω λειτουργίες του συστήματος RoboBar εξυπηρετούνται με χρήση
μια βάσης δεδομένων που περιέχει όλα τα απαραίτητα δεδομένα, καθώς και
ενός ρομπότ ΝΑΟ το οποίο εκτελεί τις παραγγελίες των πελατών.
\subsection{Ορισμοί, Ακρωνύμια, Συντομεύσεις}
\begin{itemize}[noitemsep,nolistsep]
\item ΟΑ: Ομάδα Ανάπτυξης
\item GUI: Graphical User Interface (Γραφική Διεπαφή Χρήστη)
\item SQL: Structured Query Language
\item MySQL: Σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων
\item Client: Πελάτης
\item Server: Εξυπηρετητής
\item Client-­‐Server: Πελάτης-­‐Εξυπηρετητής
\item DB: Βάση Δεδομένων
\item UI: User Interface
\item UML: Unified Modeling Language
\item API: Application Programming Interface
\end{itemize}
\subsection{Τυπογραφικές παραδοχές του εγγράφου}
Το κείμενο του παρόντος εγγράφου είναι γραμμένο με γραμματοσειρά
Baskerville, μεγέθους 11pt και διάστιχο 1.15. Οι επικεφαλίδες του
εγγράφου έχουν μέγεθος 14pt και o τίτλος κάθε κεφαλαίο 13pt σε
γραμματοσειρά Naxos. Οι απαιτήσεις στο κεφάλαιο 2 ονομάζονται και
αριθμούνται κατάλληλα και, επίσης, συντάσσονται με την αρμόζουσα
μορφή.
\subsection{Στόχοι Σχεδίασης}
Στόχος της σχεδίασης του συστήματος είναι η ικανοποίηση των τριών
διαφορετικών ομάδων φυσικών προσώπων που σχετίζονται με αυτό: του
πελάτη, του τελικού χρήστη και του προγραμματιστή
Πελάτης του συστήματος μπορεί να θεωρηθεί ο ιδιοκτήτης μιας εταιρείας
ανάπτυξης, διαχείρισης και πώλησης εφαρμογών ή και κάποιο γραφείο
ευρέσεως εργασίας. Όπως είναι λογικό, ο πελάτης, επιθυμεί το προϊόν να
έχει χαμηλό κόστος, συμβατότητα, , να παρακολουθεί τις λειτουργικές
και μη απαιτήσεις που έχουν τεθεί και η ανάπτυξη του να είναι όσο το
δυνατόν πιο γρήγορη.
Ο τελικός χρήστης επιθυμεί το σύστημα να είναι χρηστικό, φιλικό προς
αυτόν και η διαδικασία εκμάθησής του να είναι απλή, εύκολη και
γρήγορη. Ακόμα, θέλει η λειτουργία του συστήματος να είναι ευσταθής,
να ανέχεται σφάλματα και συνεπώς να είναι αποδοτική.
Επίσης, ο προγραμματιστής του συστήματος, (ή ο συντηρητής) έχει την
απαίτηση, να μην παρουσιάζονται σφάλματα στο σύστημα, να προσαρμόζεται
εύκολα και γρήγορα σε μεταβολές, τροποποιήσεις και αναβαθμίσεις
λογισμικού και ακόμα ο διαχωρισμός των υποσυστημάτων να είναι σωστός
και ορισμένος με σαφήνεια.
\subsection{Αναγνωστικό κοινό και τρόπος ανάγνωσης}
Το έγγραφο αυτό γράφτηκε για συγκεκριμένες ομάδες ανθρώπων προκειμένου
να μελετηθούν και να σχεδιαστούν τα χαρακτηριστικά του συστήματος και
στη συνέχεια να γίνει ο προγραμματισμός και η υλοποίηση της
εφαρμογής. Οι βασικοί αναγνώστες του συγκεκριμένου εγγράφου θα είναι:
\begin{itemize}
\item Προϊστάμενοι καθώς και ορισμένοι αρμόδιοι μηχανικοί
λογισμικού των εταιριών ανάπτυξης ανάλογων εφαρμογών
\item Προγραμματιστές που θα αναλάβουν τη συγγραφή του κώδικα
ο οποίος θα υλοποιεί το σύστημα
\item Μηχανικοί λογισμικού που θα αναλάβουν τη συντήρηση του
συστήματος.
\item Μηχανικοί υλικού που θα αναλάβουν το σχεδιασμό και την
εγκατάσταση των συστημάτων που ικανοποιούν τις τεχνολογικές απαιτήσεις
του έργου
\end{itemize}
Αρχικά, είναι σημαντικό να αναφερθεί ότι για την ευκολότερη κατανόηση
και αποτελεσματική ανάγνωση του έγγραφου αποτελεί σημαντική προϋπόθεση
να έχει προηγηθεί η ανάγνωση των δύο προηγουμένων εγγράφων, αυτού των
απαιτήσεων χρηστών και αυτού των απαιτήσεων λογισμικού.
Επιπροσθέτως, η ανάγνωση των κεφαλαίων θα πρέπει να γίνει με τη σειρά
που υπάρχουν στο έγγραφο για να μη δημιουργηθούν προβλήματα στην
κατανόηση του.
\subsection{Επισκόπηση Εγγράφου}
\begin{itemize}[noitemsep,nolistsep]
\item \textbf{ΚΕΦΑΛΑΙΟ 1}: Το κεφάλαιο αυτό αποτελεί μια
εισαγωγή που περιλαμβάνει γενικές πληροφορίες για το περιεχόμενο του
εγγράφου καθώς και για τα κεφάλαια που ακολουθούν.
\item \textbf{ΚΕΦΑΛΑΙΟ 2}:Στο κεφάλαιο αυτό παρουσιάζεται η
δυναμική μοντελοποίηση του συστήματος Robobar
\item \textbf{ΚΕΦΑΛΑΙΟ 3}: Στο κεφάλαιο αυτό γίνεται αναλυτική
περιγραφή και παρουσίαση της αρχιτεκτονικής του συστήματος .
\item \textbf{ΚΕΦΑΛΑΙΟ 4}:Στο τέταρτο κεφάλαιο γίνεται η
αποδόμηση του συστήματος σε υποσυστήματα, σύμφωνα με την αρχιτεκτονική
που επιλέχθηκε και περιγράφηκε στο τρίτο κεφάλαιο. Επιπλέον
περιλαμβάνει λεπτομερή διαγράμματα της διασύνδεσης μεταξύ των
υποσυστημάτων, ώστε να δοθεί στον αναγνώστη μια πλήρη και παραστατική
εικόνα για την αρχιτεκτονική του συστήματος. Τέλος αναλύονται θέματα
γενικού ελέγχου, ασφάλειας, πρόσβασης και οριακών συνθηκών στα οποία
πρέπει να δοθεί ιδιαίτερη προσοχή.
\end{itemize}

12
presentation/testbench/Makefile

@ -1,12 +0,0 @@
.PHONY: main.pdf all clean
all: main.pdf
FLAGS = -pdf -pdflatex="xelatex" -use-make \
-quiet -synctex=1
main.pdf: main.tex
latexmk $(FLAGS) main.tex #; skimview $@
clean:
latexmk -CA

BIN
presentation/testbench/main.pdf

Binary file not shown.

105
presentation/testbench/main.tex

@ -1,105 +0,0 @@
{% !TeX spellcheck = el_GR-en_US
\documentclass[11pt]{article}
\usepackage{geometry}
\geometry{a4paper, top=2.5cm, bottom=2.5cm, left=2.2cm,
right=2.2cm}
\usepackage{fontspec}
\usepackage{graphicx}
\usepackage{titlesec}
\usepackage{titling}
\usepackage{float}
\usepackage{caption}
\usepackage{subcaption}
\usepackage[nonumeralsign]{xgreek}
\usepackage{siunitx}
\usepackage{fancyhdr}
\usepackage{hhline}
\usepackage{hyperref}
\usepackage[export]{adjustbox}
\usepackage{enumitem}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{array}
\setmainfont{Baskerville}
\setmonofont{Consolas}
\newfontfamily\titlefont{Helvetica}
\newfontfamily\headingfont{Helvetica Bold}
\titleformat*{\section}{\large\headingfont}
\titleformat*{\subsection}{\small\headingfont}
\graphicspath{ {./Images/} }
\date{\today}
\pagestyle{fancy}
\lhead{Robobar}
\rhead{Team 13}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
\setlength{\headheight}{14pt}
\fancypagestyle{firstpage}{%
\lhead{
\titlefont \scriptsize
% \includegraphics[width=.14\linewidth, valign=c ]{LogoAUTH.ai}
\begin{tabular}{l}
\textbf{Τεχνολογία Λογισμικού}\\Τομέας Ηλεκτρονικής και
Υπολογιστών\\Τμήμα Ηλεκτρολόγων Μηχανικών και\\Μηχανικών
Υπολογιστών Α.Π.Θ
\end{tabular}
}
\rhead{\titlefont \scriptsize 8ο Εξάμηνο - Άνοιξη 2018}
\setlength{\headheight}{100pt}
}
\hypersetup{colorlinks=true, linkcolor=black ,urlcolor=blue}
\urlstyle{same}
\begin{document}
\thispagestyle{firstpage}
% \begin{figure}[H]
% \centering
% \includegraphics[]{logo.png}
% \end{figure}
\begin{center}
\Large Robot Bartender for the human customer
\vspace{1cm}
{\titlefont \Huge Σχεδίαση Συστήματος}
\end{center}
\vspace{5cm}
\vfill
\begin{flushright}
\titlefont \footnotesize
\begin{tabular}{r l}
Θεοδωρίδου Χριστίνα&christtk@auth.gr\\
Μπλάννινγκ Φρανκ&frankgou@ece.auth.gr\\
Παρασκευαΐδης Κωνσταντίνος&konstapf@ece.auth.gr\\
Πάρναλης-Παλαντζίδης Γιώργος&parnalis@ece.auth.gr\\
\end{tabular}
\large
\vspace{1.5cm}
\textbf{\today}
\vspace{.5cm}
\end{flushright}
\hrulefill
\vspace{2.5cm}
\newpage
\tableofcontents
% \listoffigures
\newpage
\section{Εισαγωγή}
\input{1_Intro}
\end{document}

0
presentation/.gitignore → report/.gitignore

2
presentation/intro.tex → report/1.intro.tex

@ -5,7 +5,7 @@
ανάμεσα στα κομμάτια του χρόνου που περιέχουν ομιλία (speech) και
μουσική (music), όπως παρουσιάζεται στον διαγωνισμό MIREX 2018:Music and/or Speech Detection
\footnote{https://www.music-ir.org/mirex/wiki/2018:Music\_and/or\_Speech\_Detection} .
Η εργασία επικεντρώνεται στην εύρεση των δειγμάτων που περιέχουν είτε φωνή είτε μουσική
Η εργασία επικεντρώνεται στην εύρεση των δειγμάτων που περιέχουν είτε ομιλία είτε μουσική
και στην ταξινόμησή τους.
Πρόκειται για ένα δυαδικό πρόβλημα ταξινόμησης που είναι σημαντικό καθώς έχει

0
presentation/2.past_implementations.tex → report/2.past_implementations.tex

4
presentation/features_and_preprocessing.tex → report/3.features_and_preprocessing.tex

@ -106,11 +106,11 @@ To flatness ή αλλιώς επιπεδότητα του ήχου, είναι
\begin{figure}[H]
\centering
\includegraphics[width=0.7\textwidth]{figure_1.png}
\includegraphics[width=0.7\textwidth]{res/figure_1.png}
\end{figure}
\begin{figure}[h]
\centering
\includegraphics[width=0.7\textwidth]{figure_2.png}
\includegraphics[width=0.7\textwidth]{res/figure_2.png}
\caption{Αποτελεσματικότητα χαρακτηριστικών στον διαχωρισμό των κλάσεων}
\end{figure}

0
presentation/3.our_implementation.tex → report/3.our_implementation.tex

0
presentation/models.tex → report/4.models.tex

0
presentation/Makefile → report/Makefile

0
presentation/cites.bib → report/cites.bib

BIN
presentation/main.pdf → report/main.pdf

Binary file not shown.

56
report/main.tex

@ -0,0 +1,56 @@
% !TeX spellcheck = el_GR-en_US
\documentclass[11pt]{article}
\usepackage{geometry}
\geometry{a4paper, top=2cm, bottom=2cm, left=2cm, right=2cm}
\usepackage{fontspec}
\usepackage{titlesec}
\usepackage{titling}
\usepackage{float}
\usepackage{subcaption}
\usepackage[nonumeralsign]{xgreek}
\usepackage{fancyhdr}
\usepackage{hyperref}
\usepackage{enumitem}
\usepackage{cite}
\usepackage{multirow}
\usepackage{graphicx}
\usepackage[normalem]{ulem}
\usepackage{float}
\restylefloat{table}
\useunder{\uline}{\ul}{}
\usepackage{amsmath}
\setmainfont{Lato}
\setmonofont{Consolas}
\title{Τεχνολογία Ήχου και Εικόνας 2018\\
Εργασία 2018-2019}
\author{Χριστίνα Θεοδωρίδου - 8055\\
Φρανκ Μπλάννινγκ - 6698\\
Αποστόλης Φανάκης - 8261}
\date{\today}
\pagestyle{fancy}
\lhead{Τεχνολογία Ήχου και Εικόνας 2018}
\rhead{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
\setlength{\headheight}{14pt}
\hypersetup{colorlinks=true, linkcolor=black, urlcolor=blue, citecolor=blue}
\urlstyle{same}
\begin{document}
\maketitle
\tableofcontents
\newpage
\input{1.intro.tex}
\input{2.past_implementations.tex}
% \input{3.our_implementation.tex}
\input{3.features_and_preprocessing.tex}
\input{4.models.tex}
\bibliographystyle{ieeetr}
\bibliography{cites}{}
\end{document}

0
presentation/figure_1.png → report/res/figure_1.png

Before

Width:  |  Height:  |  Size: 326 KiB

After

Width:  |  Height:  |  Size: 326 KiB

0
presentation/figure_2.png → report/res/figure_2.png

Before

Width:  |  Height:  |  Size: 320 KiB

After

Width:  |  Height:  |  Size: 320 KiB

Loading…
Cancel
Save