Dissertação de Mestrado Integrado em Engenharia Electrotécnica e de Computadores apresentada à Faculdade de Ciências e Tecnologia da Universidade de Coimbra. As atividades humanas são caracterizadas como sendo complexas, não só pelos seus padrões espaço-temporais, mas também devido ao facto de que cada ser humano é fisicamente diferente. A mesma atividade é efetuada diferentemente por várias pessoa e até o mesmo ser humano pode executar a mesma atividade com movimentos distintos. Neste sentido, existe a necessidade de incorporar métodos de aprendizagem máquina capazes de lidar com esta variabilidade. No entanto, mesmo com o aumento de atenção que esta área de investigação está a ter, a maior parte destas técnicas de aprendizagem, embora precisas/exatas, são bastante lentas para treinar e classificar. Esta característica torna tais ferramentas inviáveis para aplicações em tempo-real, onde um robô tem de identificar correta e rapidamente uma dada atividade, por forma a responder adequadamente.Neste contexto, é proposta uma metodologia de reconhecimento de atividades humanas que é treinada rapidamente e requer poucos exemplos de treino, consistindo em duas componentes base: uma componente de extração de características (isto é, extração de informação relevante que descreve uma certa actividade) e uma componente de aprendizagem, baseada no classificador de florestas aleatórias (random forests). Inicialmente, é explorado o conceito baseado na segmentação de cada atividade numa sequência de janelas de tamanho fixo (isto é, a classificação não é feita quadro a quadro), extraindo apenas valores máximos e mínimos de cada característica obtida baseada no esqueleto humano. Após a sua validação experimental, foi apresentada e testada uma segunda abordagem, considerando a divisão de cada atividade em janelas de tamanho variável, baseadas em poses chave. Cada janela de ação é delimitada por duas poses chave consecutivas que são identificadas automaticamente, sendo extraídas características estáticas (isto é, geométricas) e dinâmicas (isto é, temporais). Primeiro, estas abordagens foram testadas usando o Cornell Activity Dataset e o classificador de florestas aleatórias disponibilizado pelo programa Weka, obtendo-se resultados médios globais relevantes. Em seguida, foi desenvolvido de raíz um classificador de florestas aleatórias, usando o algoritmo de evolução diferencial como parte do seu núcleo. O classificador de florestas aleatórias desenvolvido foi testado e os seus resultados comparados com os previamente obtidos com o programa Weka, observando-se uma ligeira melhoria em termos dos indicadores de desempenho considerados. Foi construído um dataset, usando um sensor RGB-D, com base no qual foram testados ambos os classificadores de florestas aleatórias. Toda a estrutura foi implementada numa plataforma robótica real (em C++), após a sua validação em ambiente Matlab. Após algumas observações finais, destacam-se novas direcções de pesquisa, por forma a melhorar as características da metodologia propostade reconhecimento proposta e colmatar as suas limitações. Human activities are characterized as being complex, not only for their temporal and spacial patterns, but also because of the fact humans are physically different. When the same activity is performed by different persons, or even by the same one, they can execute the same activity with distinct motion properties. In this sense, there is the need to incorporate machine learning approaches able to integrate all this variability. However, even with the increasingly attention this field of research is getting, current learning approaches, although accurate, are very slow to train and classify. These limitations turn infeasible their use in real-time applications, where a robot must rapidly and correctly identify a performed activity, in order to respond accordingly. A human activity recognition framework, featuring fast training and requiring few training examples, is therefore proposed, consisting of two main components: a features extraction approach component (i.e. extraction of relevant information describing a certain activity) and a machine learning component, based on the random forest classifier. An initial concept of segmenting each activity into a sequence of fixed-size actions is employed (i.e. no frame-by-frame classification), extracting just maximum and minimum values of each extracted skeleton-based feature. After some experimental validation, a second approach was developed and tested, considering the division of each activity into variable-size windows, based on key poses. Each action window is delimited by two consecutive and automatically identified key poses, where static (i.e. geometrical) and maximum and minimum dynamic (i.e. temporal) features are extracted. First, these approaches were tested using the Cornell Activity Dataset and the random forest classifier provided by Weka Software,obtaining relevant overall average results. Then a custom random forest classifier was developed from scratch, using a differential evolution algorithm, as part of its core. The developed random forest was tested and its results compared to the ones obtained with Weka's random forest,suggesting a slight increase in terms of the considered performance indicators. A custom dataset was built, using data from a RGB-D sensor, and both random forest classifiers were tested. The proposed framework, after being validated using Matlab, was implemented in a real robotic platform (in C++). After some concluding remarks, new open research directions are highlighted, in order to improve the framework's characteristics and to bridge its drawbacks.