• Nenhum resultado encontrado

2. Estado da Arte

3.3. Aprendizagem máquina (Machine Learning) – Treino da SVM

Neste subcapítulo é descrito o processo de classificação dos resultados obtidos pela função do subcapítulo 3.2. A classificação destes resultados e a sua identificação como conjuntos de treino e conjuntos de teste, garantem os exemplos de treino

Algoritmo de Reconhecimento e Previsão de Carga de Frutos

necessários para treinar a SVM de modo a obter os melhores resultados possíveis referentes à identificação de pêssegos.

3.3.1.

Classificação de exemplos de treino

Como referido no subcapítulo 2.3.6, dado um conjunto de exemplos de treino, pertencentes a uma de duas categorias, também denominadas classes, a SVM constrói um modelo que atribui novos exemplos a uma das duas categorias. As variáveis contempladas para o treino da SVM foram a área e métrica, como se pode ver na Tabela 5. Cada linha da Tabela 5 corresponde a um exemplo de treino que pode ser classificado como zero, não pêssego, ou um, pêssego. No exemplo mostrado ao longo do subcapítulo 3.2, aquando da comparação da Figura 11 com a Tabela 5, pode-se constatar que todos os exemplos de treino correspondem a pêssegos.

A Tabela 5 mostra a classificação dos resultados para a Figura 11. Tabela 5 – Classificação dos exemplos de treino.

Imgref Área Métrica Classificação Img1 28968 0,2365 1 Img1 20767 0,5294 1 Img1 15385 0,5655 1 Img1 21062 0,5189 1 Img1 16822 0,5843 1 Img1 14250 0,3878 1

A coluna da classificação é preenchida manualmente, sendo que esta será a coluna que indicará à SVM quais os exemplos de treino que correspondem a pêssegos ou a não pêssegos. É apresentado de seguida o excerto de código que corre a função apresentada no subcapítulo 3.2, criando assim a tabela que permite classificar os exemplos de treino. De forma muito resumida, este excerto de código aplica a função a todas as imagens presentes na sua diretoria.

Algoritmo de Reconhecimento e Previsão de Carga de Frutos 42 D = dir('*.jpg'); n=length(D); Imagestruct(n).Img_name=[]; for i = 1:n Imagestruct(i).Img_name=D(i).name; end temp=1; svm_data(293).Imgref=[]; for i=1:n RGB = imread(Imagestruct(i).Img_name); [A,C,M,F] = SVM_DATA(RGB); temp1=0; for j=temp:temp-1+length(A) svm_data(j).Area=A(1+temp1); svm_data(j).Metric=M(1+temp1);

svm_data(j).Imgref=strcat('img',int2str(i)); temp1=temp1+1;

end

print(F, '-dpdf',

strcat('img',int2str(i),'_contornos.pdf')); temp=length(A)+temp;

end

3.3.2.

Modelo SVM e a sua aplicação

3.3.2.1.

Normalização dos dados

Posteriormente à classificação de todos os exemplos de treino das várias imagens e antes de selecionar os conjuntos de treino e teste, é feita uma normalização dos dados. Como podemos constatar na Tabela 5, os dados da coluna Métrica e os dados da coluna Classificação variam entre zero e um. Assim, para que os valores da coluna Área variem também apenas entre zero e um, foi feita uma normalização dos dados da Área. A normalização é feita por dois motivos: o primeiro é evitar que características em gamas de valores numéricos elevados dominem características em gamas de valores numéricos mais pequenos. Segundo, evitar dificuldades numéricas durante o cálculo. Estas dificuldades podem verifica-se com a utilização de certas funções kernel, como por exemplo as funções lineares e as funções polinomiais, em que os seus valores dependem dos produtos internos dos vetores característica, fazendo com que características com valores elevados possam causar problemas numéricos. (Hsu et al., 2016). Na Tabela 6 é apresentada a Tabela 5 com os dados normalizados.

Algoritmo de Reconhecimento e Previsão de Carga de Frutos

Tabela 6 – Normalização dos dados.

Imgref Área Métrica Classificação Img1 0,1123 0,2365 1 Img1 0,0755 0,5294 1 Img1 0,0513 0,5655 1 Img1 0,0768 0,51896 1 Img1 0,0577 0,5843 1 Img1 0,0462 0,3878 1

Os dados de normalização apresentados na Tabela 6 foram obtidos através da equação (17), aplicada de igual forma a todos os valores da coluna Área.

𝑁𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎çã𝑜 = Á𝑟𝑒𝑎−min (Á𝑟𝑒𝑎)

max(Á𝑟𝑒𝑎)− min (Á𝑟𝑒𝑎) (17)

Em que:

max – corresponde ao maior valor da coluna; min – corresponde ao menor valor da coluna;

3.3.2.2.

Criação do modelo SVM

Após a normalização dos dados e selecionados os conjuntos de treino e teste, é criado o modelo da SVM e feita a previsão para posterior comparação de resultados. A SVM escolhida foi de classificação binária, devido às características dos conjuntos de treino e o que cada um pode representar. De todas as funções disponibilizadas pelo sofware, a função escolhida para treinar a SVM foi uma função quadrática, ou polinomial de segundo grau, sendo esta a que apresentou melhores resultados para o caso em estudo. Após criado o modelo da SVM, é executada a função de classificação sobre o conjunto de teste, que mais tarde é comparado com os valores inseridos manualmente. Todo este processo está representado no pequeno excerto de código que se pode observar de seguida.

Algoritmo de Reconhecimento e Previsão de Carga de Frutos

44

SVMModel = svmtrain(X,Y,'kernel_function','q4uadratic','options', ...

statset('Display','final','MaxIter',500000),'tolkkt',1e-12); Previsao=svmclassify(SVMModel,W);

p = Previsao';

Criado o modelo SVM e feita a previsão dos resultados, resta apenas proceder ao cálculo estatístico da assertividade do modelo em questão. Esta assertividade é calculada comparando os resultados gerados pelo modelo SVM com a classificação inserida manualmente. Esta comparação é feita através de coeficientes de correlação, mais especificamente os coeficientes de correlação de Kendall, Pearson e Spearman. O pequeno excerto de código apresentado abaixo mostra a utilização dos mesmos.

[dados_kendal,~] = corr(cmos',res','Type','Kendall'); [dados_pearson,~] = corr(cmos',res','Type','Pearson'); [dados_spearman,~] = corr(cmos',res','Type','Spearman');

3.3.3.

Nota Conclusiva

A Figura 13 mostra um diagrama de blocos, que representa as operações feitas pelo algoritmo para obter os resultados finais, após feita toda a análise e classificação dos dados extraídos das imagens. De referir que o exemplo trabalhado ao longo do capítulo 3, mais especificamente a Figura 9, não faz parte das imagens analisadas para o modelo SVM criado neste trabalho. A figura em questão foi escolhida pela sua simplicidade para facilitar a apresentação de todos os processos efetuados ao longo do algoritmo. Durante o próximo capítulo, capítulo 4, serão apresentados exemplos reais tal como toda a informação relevante sobre as características que influenciaram a escolha dos conjuntos de treino e de teste.

Análise e Discussão de Resultados

4. Análise e Discussão de Resultados

Documentos relacionados