Resumo: Este trabalho se propôs a construir um sistema computacional de criação e análise de formulários de presença de alunos em aulas. O produto final é um programa que permite a automação do processo de coleta e facilita a autenticação de assinaturas quando há uma base de comparação. As principais ferramentas utilizadas envolveram as tecnicas tradicionais de Processamento de Imagens em todas as partes do processo, envolvendo secundariamente algoritmos de reconhecimento e validação de texto por redes neurais. Em seu estado final, o sistema realizou com sucesso a extração das células dos formulários e dos dados contidos nelas, obtendo uma acurácia de aproximadamente 99% na contabilização da frequência dos alunos em formulários de teste, quando utilizado com imagens de qualidade como entrada. Assim, foi possível tornar mais eficiente o processo de contagem e registro das presenças em sala de aula.
Resumo: Utilizando um sistema que conta com a integração de componentes de softwares como Kafka e Kubernetes, MySql, Python e Java, iremos realizar testes de estresse buscando entender o comportamento da aplicação composta por essas ferramentas em determinadas situações de estresse. Para realizar tais testes, iremos utilizar um toolkit chamado Chaos Toolkit. Através desta ferramenta, iremos analisar o estado saudável do sistema e durante os cenários de estresse para poder identificar possíveis falhas. Entendemos que mesmo utilizando componentes resilientes e bastante utilizados por toda a comunidade, o sistema em si ainda é passível de falhas e assim observamos através dos testes, que podem ocorrer problemas em um sistema que serão somente detectados em situações de falhas e que irão comprometer a experiência do usuário.
Resumo: Este trabalho implementa uma nova forma de inlining no compilador LLVM que permite que esta otimização seja feita entre funções de arquivos distintos, descrevendo como tal otimização pode ser feita apesar das restrições impostas pelo compilador.
Resumo: A apresentação de uma percepção social no âmbito da segurança pode ser muito útil na tentativa de se amenizar os efeitos da criminalidade e violência sobre a população. Além disso, relatos de vítimas de algum tipo de ocorrência policial, quando levados com rapidez para a população, podem vir a salvar vidas por meio de avisos para mais atenção em algumas localizações passíveis de problemas do tipo. Os Boletins de Ocorrência, junto ao contato com as autoridades por meio de informações oficiais sobre situações de delitos na cidade, também se mostram fatores de interesse ao se pensar no enriquecimento de informações fornecidas a um usuário. Dito isto, a aplicação Reporte Aqui foi desenvolvida para centralizar dados oficiais e reportados pela própria comunidade, para a produção de visualizações que podem ser acessadas por qualquer usuário cadastrado na aplicação, que no momento funciona para smartphones com o sistema operacional Android.
Resumo: Com o avanço da robótica, as interações dos robôs com o mundo real e outros robôs se tornam cada vez mais complexas, sendo assim necessário haver formas estruturadas de desenvolvimento que possam facilitar a organização e modularização de componentes. Pensando nisso, foi desenvolvido o framework RoCS (Robotics and Cognitive Systems - Robótica e Sistemas Cognitivos), que busca, além de facilitar a organização e modularização, formar uma estrutura que facilite e naturalmente conduza o desenvolvimento à reutilização dos módulos. Neste trabalho o RoCS foi utilizado como base para a implementação do controle de um quadricóptero simulado no simulador V-REP, com o fim de que fosse feita uma análise do RoCS, pelo seu uso, para então serem tecidas críticas, sugestões e também elencadas suas qualidades. Como resultado, o framework se mostrou adequado para o que se propõe, e praticamente não houveram críticas ao seu modelo proposto, se limitando, estas, a algumas características de implementação, e sugestões que facilitariam o seu uso, pela economia de código que podem ocasionar.
Resumo: Nos últimos anos, conforme fora evoluindo as bibliotecas de suporte para redes neurais, tivemos um aumento do uso das mesmas para dispositivos móveis e computadores embarcados. Porem mesmo com essa evolução pouco tem se estudado sobre o custo energético dessa técnica quando classificando imagens dentro desses dispositivos. Com isso tivemos como objetivo prever a dissipação média de potência de determinada rede neural quando executando em um computador embarcado Raspberry Pi 3. Para isso medimos a potência do dispositivo na execução de cada rede e suas camadas, construímos uma base de dados com as medições, e executamos diversos testes de regressão linear para energia e tempo de processamento das camadas convolucionais. Usando a rede Squeezenet como base, conseguimos uma acurácia de 80energia, levando a uma estimativa de potência média próxima da observada nas medições (resultado de 3,2W estimados contra 3 W medidos). Esperamos que esse trabalho possa ser usado de base para mais estudos quanto ao consumo energético e assim ajudar a gerar uma forma mais genérica para a predição.
Resumo: Computação Aproximada é um paradigma que busca reduzir o custo de energia do processamento ao comprometer a precisão dos resultados. A técnica abordada nesse trabalho é o uso de multiplicadores inexatos inteiros, que executam operações mais rapidamente porém geram produtos imprecisos. Nosso estudo utiliza a arquitetura ArchC em conjunto com a linguagem de descrição ADeLe para avaliar a eficiência de diversas aplicações, quando submetidas a 6 tipos multiplicadores inexatos inteiros diferentes. Enquanto algumas aplicações de uso geral não se beneficiam da aproximação, outras geram erros fatais e não produzem nenhuma saída, devido aos produtos inexatos. Aplicações de processamento de imagens foram as únicas que apresentaram a queda em qualidade e energia esperada, porém a queda de qualidade é grande demais para justificar seu uso em atividades práticas. Espera-se que futuros pesquisas possam gerar multiplicadores inexatos com uma queda de qualidade aceitável para uso geral, além de serem mais resilientes que os utilizados para a pesquisa.
Resumo: A construção de bons quadros de horário é de extrema importância para o uso adequado de recursos e satisfação dos integrantes de uma organização. Esse tipo de tabelamento é utilizado em diversos ambientes, como escolas, universidades, empresas, organização de eventos ou linhas de transporte público. Dada essa diversidade, mesmo dentro de um único campo prático, cada modelagem precisa considerar características específicas da instituição onde é aplicada. Adicionalmente, diversas restrições tem aspectos complicados de se expressar matematicamente, fazendo com que resolvedores automatizados se beneficiem de interfaces interativas para ajustes posteriores e facilidade de re-execução. Este trabalho apresenta uma solução automatizada e interativa para a alocação de professores em disciplinas para o Instituto de Computação da Unicamp. Essa solução permite que o usuário altere o quadro com facilidade, utiliza os dados originais de forma direta e é solucionado, com o resolvedor Gurobi, em menos de meio segundo. Neste projeto é levado em conta restrições de horários dos docentes, preferência de cada docente em lecionar cada disciplina e horário no qual cada curso é ministrado.
Resumo: Este documento contém a descrição do trabalho sobre o problema do escalonamento de n tarefas com prazos de término em m máquinas utilizando-se diferentes algoritmos sendo eles, meta-heurística Busca Tabu, BRKGA (Bias Random-Key Genetic Algorithm) e variações de ambos. A escolha de diferentes algoritmos para a resolução do problema tem como objetivo determinar quais estratégias provém melhores soluções e discutir a relação entre a qualidade da solução e as ideias principais exploradas por cada algoritmo. Os resultados serão avaliados utilizando o mesmo conjunto de problemas para todas as implementações, com diferentes número de tarefas, número de máquinas e valores de prazo. Os dados serão coletados e analisados conjuntamente para se fazer um comparação uniforme com a mesma métrica entre todas as variações e métodos utilizados para a resolução do problema.
Abstract: The pressure of “publish or perish" in the competitive research environment of science leads many scientists to misconduct. Aiming to foster scientific integrity, this work proposes a framework for detecting suspicious images of scientific articles. Its workflow begins with a PDF file of a scientific publication and ends with highlighting of suspected fraud regions. This workflow is divided into four operation steps: image extraction, image segmentation, clustering, and copy-move forgery detection. Each module of the framework was validated individually. As a result, the framework has outperformed existing methods for accomplishing each task. The image extraction achieves better results on efficiency and effectiveness than famous extraction images tools (e.g pdfimages); the segmentation achieves 98% accuracy on detecting relevant images regions and a proposed fusion of copy-move forgery detection achieves the best result of 19% average IoU on a dataset with 100 images proposed by this work. In addition, a real case of fraud was used to validate the framework as a whole. The images highlighted by the framework were the same as described in the case's retraction note.
Resumo: Este trabalho destinou-se analisar os efeitos de fatores climáticos no consumo de energia elétrica do prédio da Prefeitura da UNICAMP utilizando técnicas de aprendizado de máquina de modo a gerar um melhor conhecimento sobre o consumo energético e posterior gerenciamento mais eficiente desse recurso da universidade. O melhor modelo analisado obteve erro quadrático de 20.54 para os dados de teste comparando o valor real com o previsto.
Abstract: This work proposes a low-cost Internet of Things solution to estimate the size of queues and flow of people at the entrance of university restaurants, especially the administrative restaurant at UNICAMP. For this purpose, sensors were installed at the entrance of the restaurant to determine the flow and images captured by a camera were analyzed to determine the queue size. The entire solution has been integrated into the Internet allowing easy access for the academic community. This work is within the scope of the Smart Campus UNICAMP project.
Resumo Este trabalho tem como intuito o dimensionamento de filas e fluxo de pessoas nos restaurantes universitários, em especial o restaurante administrativo da UNICAMP, utilizando uma solução de baixo custo baseada em Internet das Coisas. Para isso, foi realizado sensoriamento em catracas para determinação do fluxo e análise de imagens capturadas por uma câmera para determinar o tamanho da fila. Toda a solução foi integrada a Internet possibilitando o fácil acesso para a comunidade acadêmica. Este trabalho está dentro do escopo do projeto do Smart Campus UNICAMP.
Resumo: A identificação de espécies de árvores por imagens de tronco é uma tarefa desafiadora e de grande interesse no reconhecimento florestal. Neste trabalho, técnicas de aprendizado de máquina profundo foram exploradas para a resolução deste problema utilizando as bases de dados públicas BarkNet, Trunk12 e Bark-101, cujas taxas de acurácia obtidas foram 94,05%, 96,43% e 51,04%, respectivamente, utilizando o protocolo de validação cruzada com 5 partições nas duas primeiras bases e seu próprio conjunto de teste na última base.
Resumo: Este projeto descreve a implementação de uma aplicação para análise, visualização, gerenciamento e seleção de modelos de aprendizado de máquina para séries temporais univariadas. A sua utilização visa facilitar a criação de modelos a partir de diferentes algoritmos, cada um com um conjunto de parâmetros específicos. A partir dos modelos gerados por meio de heurísticas baseadas em funções de erro e testes estatísticos, o melhor modelo é apresentado ao usuário, juntamente com os outros modelos criados, de modo que seja possível uma melhor interpretação do impacto que os parâmetros exercem sobre cada modelo.
Resumo: Por diversos interesses tanto empresariais quanto acadêmicos, o compilador LLVM é hoje um dos compiladores mais relevantes que existe. Modificar e adaptar o código do LLVM, seja qual for o motivo, é uma tarefa que vem se tornando cada vez mais comum para pesquisadores e desenvolvedores da área.
Infelizmente, tal tarefa não é tão convidativa quanto poderia ser. O LLVM é um projeto muito grande e rebuscado e por mais que exista a documentação oficial, ela se preocupa muito mais em enumerar e descrever os compontentes do compilador do que em propriamente explicar os funcionamentos se suas partes. Materiais de apoio (que explicam tais funcionamentos) existem e inclusive vários deles são oficiais do LLVM, mas eles são focados ou nas partes mais gerais do compilador ou nos primeiros passos de um iniciante na plataforma. Existe uma carência de explicação mais detalhada para algumas partes mais específicas do LLVM.
O projeto "LLVM - Implementando um Pragma OpenMP" foi a confecção de um material didático explicativo. A ideia do material é facilitar o trabalho de qualquer um que queira se aventurar na exploração de uma parte específica do compilador LLVM, que são as partes do Clang que dizem respeito às anotações "Pragma" da interface de programação "OpenMP".
Resumo: Devido ao alto número de equipamentos se conectando à rede, e aos diferentes números de QoS - Quality of Service que cada usuário necessita, tornando a rede heterogênea, nasceu a rede 5G. Essa nova geração pretende integrar a ela os chamados "Network Slices", que consiste em fatiar a rede em diferentes redes virtuais sob um único substrato físico afim de se garantir diferentes QoS para cada tipo de usuário, garantindo elasticidade, flexibilidade, programabilidade e modularização para a rede. Esses slices são criados via um orquestrador, que conhecendo o estado atual da rede, redimensiona os slices existentes para garantir uma melhor experiência aos usuários. Este projeto visa estudar a alocação dinâmica de dados a serem enviados na rede, que é uma melhora extra além da existência de slices, em um cenário de uma quadra de futsal.
Resumo: Este trabalho tem por objetivo realizar estudos na área de computação Fog, que é caracterizada pela distribuição de processamentos em bordas da rede. Isso foi feito de forma prática, isto é, desenvolveu-se uma aplicação que envolve processamento de vídeo e de arquivos de áudio e distribuiu-se em uma máquina próxima (localizada na UNICAMP) e em outra situada no estado da Carolina do Sul nos Estados Unidos.
Dessa forma, foi possível observar como o Hardware das máquinas, que define sua capacidade de processamento, e o delay de comunicação entre as máquinas envolvidas afetam o tempo total para que o processamento desejado seja realizado.
Com isso foram definidos diferentes cenários de estudo variando máquinas alocadas em diferentes serviços de Cloud, utilizando diferentes arquivos de vídeo como objeto de processamento variando em tamanho e duração dos clipes, e variando os serviços envolvidos utilizando sistemas externos para armazenamento dos conteúdos de vídeo, como o YouTube.
Ao final das análises, foi possível notar as vantagens e desvantagens de cada cenário estabelecido, bem como compreender melhor qual alocação de máquinas e serviços pode ser mais vantajosa dadas diferentes situações de uso.
Abstract: The following paper aims to learn from studies in the Fog Computation Field, defined by its processing distribution at edge of the network. Said studies were conducted in a practical manner, which consisted of developing a video and audio processing application located in a phisically close Machine (at UNICAMP) and another situated in the United States (South Carolina Server)
By approaching in such a way, measuring the transaction's Total Time - made up of the application processing, determined by the machine hardware, and its communication delay - was possible.
Henceforth, the study was conducted with study cases defined by different scenarios: by using different types of machines belonging to Third Party Cloud Providers (Google and AWS), different file sizes and duration in the input videos and different Storage System Services that provided the contents of the video, such as Youtube.
At the end of the analyses, the current advantages and disadvantages from each scenario were established, helping to determine a better strategy of machines and services allocations best suited for different use cases.
Resumo: Esse projeto tem como intuito a análise e estudo dos desafios de previsão para o mercado financeiro. Para isso, foi pensada uma abordagem computacional que pudesse modelar e aproximar uma solução para este problema. Foi proposta uma série de diferentes configurações, técnicas e métricas para tal análise, sendo que a abordagem escolhida foi a modelagem do sistema como um problema de classificação sobre o aumento ou diminuição diário do valor da ação. Foram estudadas então duas propostas de solução baseadas em redes neurais: uma abordagem utilizando-se de uma rede tradicional multicamadas (MLP) e outra utilizando-se da rede recorrente de tipo LSTM. A partir dos resultados obtidos, foi possível concluir que a complexidade da modelagem do problema impacta diretamente em como cada algoritmo é capaz de se adequar e apresentar uma boa acurácia na predição. Por fim, nossos resultados nos levam a crer que, por mais caótico que o mercado financeiro possa parecer, ele ainda apresenta certa previsibilidade matemática e técnicas computacionais preditivas se demonstram dessa forma relevantes nesse cenário.
Resumo: Esse projeto tem como propósito comparar algumas das principais abordagens utilizadas atualmente em sistemas de recomendação, e suas respectivas virtudes e pontos fracos. Para isso foram feito alguns códigos em Python utilizando o Numpy,o SciPy e o Surprise, bibliotecas muito consagradas para sistemas de recomendação no segmento de ciencia de dados muitas presentes no SciKit-Learn e no Pandas para testar as principais abordages: Content-Based, Colaborative Based e Fatoração Matricial. Foi possível concluir que as técnicas de fatoração matricial são mais robustas por oferecer um resultado mais acurado em avaliações mais extremas como 5 e 1 estrela. No entanto, foi possível notar que variações de algoritmos como K-Nearest Neighbors foi capaz de obter bons resultados com uma implementação mais simples, especialmente se os dados são pré-analisados, com uma clusterização, com uma redução de dimensionalidade entre outras técnicas. O mais importante é concluir que algoritmo algum é um solução definitiva para o problema e que existe grande dependência no dataset, no contexto da plataforma que a utiliza, em como os dados foram preparados e se as interações implícitas são levadas em conta e quais devem ser levadas em conta.
Resumo: Concept Inventory (CI), é um repositório de questões de múltipla escolha que pode ser usado para avaliar a compreensão dos estudantes em determinado tópico, bem como ser aplicado no início e final de um curso para medir a curva de aprendizagem dos estudantes. Este é um relatório final de graduação de um projeto de aprimoramento do sistema online do Computer Science Concept Inventory (CSCI), um conjunto de CIs voltado para cursos introdutórios de programação (CS1, cuja equivalência seria MC102 no contexto do IC/Unicamp) nas linguagens C, Python e Java. Em trabalhos anteriores foi implementado um sistema de geração de relatórios de desempenho dos alunos no CSCI para linguagem C. Neste trabalho realizou-se um refactoring da parte visual desse sistema e de parte de seu código, tornando-o mais próximo à expectativa dos usuários. Foram adicionadas ao sistema informações sobre as misconceptions identificadas por trabalhos prévios de documentação de erros frequentes de alunos. O relatório de desempenho nos questionários, chamado Misconception Report, detalha em diversas granularidades os setores do conhecimento básico de programação em C onde os alunos mais tiveram dificuldades, auxiliando o docente a ministrar suas aulas de acordo com as necessidades da turma.
Resumo: O processo de construção de guias de velocidade representa uma parte significativa no ciclo de processamento de um dado sísmico. Com o objetivo de diminuir esse ciclo, algumas técnicas na literatura propõem o uso de técnicas de Aprendizado de Máquina para automatizar o processo de seleção de velocidades. Um dos algoritmos propostos foi o algoritmo de clusterização DBSCAN (Density-based spatial clustering of applications with noise), que se mostrou eficiente na seleção automática de velocidades para dados sísmicos sintéticos, porém ainda dependente da configuração de parâmetros para cada dado, remove a automaticidade do processo de construção. Esse trabalho utiliza do algoritmo de clusterização DBSCAN para seleção automática de velocidades, aliando os parâmetros comuns ao processo de estimação de velocidades aos parâmetros do algoritmo de clusterização. As guias construídas através do método proposto se mostraram consistentes em dados sintéticos e reais e a validação através da técnica de correção Normal Moveout (NMO) demonstraram bons resultados.
Resumo: Conjuntos de dados de imagens médicas são pequenos em relação aos tipicamente utilizados para a aprendizagem profunda, ainda assim as arquiteturas de aprendizado profundo apresentam os melhores resultados em múltiplos conjuntos de dados. Contudo, os resultados de classificadores para tal problema são possivelmente otimistas, em razão da presença de vieses (correlações espúrias) nos dados utilizados para treinamento dos modelos. Neste trabalho, utilizamos uma metodologia de destruição de informação, proposta inicialmente para imagens de lesões de pele, para avaliar a possível presença de vieses em conjunto de dados de detecção de pneumonia. Para isso, criamos seis variações diferentes do conjunto de dados RSNA Pneumonia Detection Challenge. Nossos resultados mostraram que as redes neurais profundas foram capazes de aprender correlações espúrias em todos as variações, inclusive no conjunto onde as informações foram quase -- totalmente -- ocultadas.
Abstract: DBpedia is a huge RDF dataset built upon the extraction of information from Wikipedia pages. It provides data converted to RDF linked to several other datasets by fully implementing the concepts of Linked Data. DBpedia needs to be constantly updated overtime to keep its usability. However, this process is not without its flaws. Much of the extraction performed generates inconsistencies in the RDF triples. Despite many studies in the field of ontology and linked data, there is a lack of studies to improve the DBpedia Live Extraction, specifically as an updating tool for DBpedia. In this work, we propose the definition of certain types of inconsistencies that are not usually approached in literature. We offer methods for their detection and correction implemented in the core of the DBpedia Live extraction process. Our study shows the relevance of our proposal as a progress obtained for both the definition of RDF triple inconsistencies as well as an improved software tool to turn DBpedia further reliable.
Resumo: A crescente popularização do trabalho remoto em empresas ao redor do mundo traz consigo a necessidade de criação de ferramentas online que adaptam processos anteriormente realizados de forma presencial. O conceito de design participativo, em que partes interessadas em um produto participam de seu processo criativo, pode desenvolver um papel chave na inovação de produtos. A sua definição implica a reunião de pessoas de diversas áreas de atuação para a realização de algum procedimento presencial, como o Braindraw. Este trabalho objetiva a criação de uma ferramenta de Braindraw online, que visa oferecer uma alternativa para a necessidade de reunião presencial, de modo a acompanhar o crescimento do trabalho remoto. A ferramenta está inserida no contexto da plataforma OpenDesign para o design aberto de sistemas de software que envolvam partes interessadas com uma perspectiva sociotécnica. Uma avaliação preliminar da ferramenta desenvolvida foi conduzida na disciplina de Construção de Interfaces Homem-Computador, oferecida no segundo semestre de 2019 pelo IC/UNICAMP.
Abstract: Scholarly data platforms have been extensively established internationally. However, although in the Brazilian academic community there is large academic research platforms, e.g., Lattes, containing incredible amounts of information, it does not offer a structured way to query and analyze this data. Such informa- tion remains in an isolated way without connections with other sources, which prevents interesting data analyses. In this work, we design and develop the Knowlattes Graph framework for generating Knowledge graphs from scholarly data sources. We explore the current Lattes platform by extracting information from it to create a RDF triple store. In addition, we provide techniques to cre- ate links to external triple datasets, building a knowledge graph for scholarly data containing Brazilians researchers and publications.
Abstract: The amount of information available in the web of data using the semantic web standards increased tremendously in the last decade. The Linked Open Data Cloud, for example, has over 1,200 datasets and 16,000 links. Despite that, the access to this data is still difficult because users must have specialised knowledge to query knowledge graphs. Question answering systems have been proposed as an alternative to address this problem in order to provide the benefits of interconnected data further accessible to people. In this approach, systems translate natural language (NL) questions into structured queries. In this work, we study, construct and evaluate a query builder component called MSQG to learn how to build SPARQL queries from NL questions. Our solution explores the combination of distinct sentence encoder to provide better latent sentence representations in the query construction. We evaluate the solution based on Lc-Quad dataset. Obtained results indicate the benefits of our approach in handling several types of questions as input.
Resumo: As cooperativas de reciclagem de lixo desenvolvem um papel chave no reuso de matéria prima e contribuem para um impacto ecológico positivo. Nesse contexto se vê muitas dificuldades para a informatização dos processos administrativos devido à complexidade da organização trabalhista e comercial das cooperativas. Isso é agravado pela falta de acesso e conhecimento sobre dispositivos e ferramentas tecnológicas digitais. Esse contexto demanda ferramentas de software com design acessível e focada no fluxo natural de trabalho dos cooperados. Este trabalho investiga técnicas de Design Participativo como metodologia para se idealizar um sistema de software que informatize as práticas no trabalho de gestão das cooperativas de reciclagem. A proposta visa considerar a voz de membros participantes no processo de criação desse sistema de forma a entregá-lo com o valor e linguagem aplicadas às necessidades das cooperativas. Como resultado, um protótipo de alta fidelidade de um sistema digital online foi desenvolvido para gerenciar despesas, faturamentos e estoque de materiais recicláveis.
Resumo: Esse projeto teve como objetivo desenvolver o CDMAP, uma ferramenta usada para caracterizar projetos disponibilizados em repositórios GitHub enquanto à adoção de práticas de integração e entrega contínua, por meio da coleta de dados públicos desses repositórios de software livre. Para isso, uma análise foi realizada para levantar as informações que poderiam ser extraídas do GitHub, e que fossem relevantes para a aplicação dessas práticas, fazendo uso de sua API REST e da clonagem direta do repositório. Concluído o desenvolvimento, foi feita uma análise de dois repositórios com o objetivo de verificar a capacidade da ferramenta de realizar a comparação entre o dados obtidos de cada um deles.
Resumo: Neste projeto partimos de uma necessidade da comunidade da Unicamp e desenvolvemos uma visualização gráfica para os catálogos de cursos. O projeto partiu de alguns conceitos visuais introduzidos pelo GDE e conta com grande interatividade, trazendo uma experiência rica para quem utiliza o sistema para planejar o curso. Foi apresentado para futuros possíveis usuários e teve feedback positivo. O sistema desenvolvido pode ainda ser expandido para atender a outras tarefas cotidianas da comunidade.
Resumo: Este trabalho implementa o algoritmo de Chudak e Shmoys para resolver o Problema da Localização de Instalações. Neste problema, dado um conjunto de clientes e um conjunto de instalações o objetivo é encontrar um conjunto de facilidades para abrir de forma a minimizar o custo de abertura das instalações e o custo de conexão entre clientes às facilidades abertas mais próximas.
Abstract: The Traveling Salesman Problem (TSP) is a widely studied problem in the literature since its formulation, specially because of its wide number of applications in Computer Science, mainly in routing and scheduling problems. But the Stochastic Traveling Salesman problem, the Stochastic version of the TSP, which takes into consideration future uncertainties, is less mentioned. The goal of this study is to increase the studies and implementations of the Stochastic TSP using a new framework, the Evolutionary Framework (EvFW), which obtained great results with other stochastic problems and has great applicability for large instances since it is the first of its kind to have a fully heuristic decomposition approach, not depending on Integer Linear Programming solvers. We hope to have brought new data to the literature regarding the problem and shown the usefulness of the EvFW.
Resumo: Este trabalho destinou-se a propor e analisar algoritmos que inferem em tempo real trajetos do veículo circular interno da Unicamp de modo a minimizar a possibilidade de falha humana ao se indicar manualmente qual itinerário está sendo realizado pelo motorista. O melhor algoritmo investigado alcançou 96% de acerto entre os dados de caminhos completos e com ele foi possível propor uma melhoria para o sistema.
Resumo: Este relatório descreve as atividades desenvolvidas durante o Projeto Final de Graduação do curso de Engenharia de Computação (MC030). Elas foram desenvolvidas no Instituto da Computação da Universidade Estadual de Campinas (UNICAMP) ao longo do primeiro semestre de 2019. Nesse projeto foram estudadas implementações e soluções existentes de detecção de texto com o intuito de executá-las em uma aplicação móvel, aonde, com o auxílio de sua câmera, seriam obtidas as imagens utilizadas para a detecção. Os algoritmos e ferramentas estudados foram o Vision (framework da Apple) e o SnooperText [1], ao passo que as bibliotecas utilizadas para processamento de imagens e reconhecimento de texto foram o OpenCV [2] e o Tesseract [3], respectivamente. Os resultados obtidos com o SnooperText foram bons em termos de tempo de processamento, porém deixaram a desejar um pouco com relação à precisão das caixas retangulares que indicam regiões de texto, quando comparado ao algoritmo utilizado pelo framework da Apple.
Resumo: O objetivo principal deste projeto foi explorar técnicas de classificação de vídeos para avaliar e qualificar dados sintéticos criados a partir de Modelos Generativos. Para isso, explora-se quatro modelos para classificação: MobileNet, Resnet50 e um modelo de CNN proposta, com o intuito de validar dois cenários de dados. Um cenário com os dados originais e o segundo cenário com o acréscimo de dados sintéticos necessários para balancear os datasets. Assim, pode-se notar a influência dos dados sintéticos na classificação obtendo ganhos de até 6 % em acurácia.
Abstract: To test Deepmind's Graph Nets framework against invariance with respect to permutations in graphs representation, we used three different problems in at least four different contexts: with permuted and non-permuted training sets; and permuted and non-permuted testing sets. In all these contexts, the common behavior was that permuting testing sets reduced the accuracy of the networks and permuting training sets produced better results. This supports the argument that the algorithms might not be learning from the graph structure itself, but from the graph's computational representation.
Resumo: Com avanços em temas relacionados à experimentação contínua como abordagem para desenvolvimento de softwares, conseguimos oferecer entrega de valor baseando-se em dados colhidos das experiências dos usuários. É com base nisso que este projeto tem como objetivo apresentar uma proposta de arquitetura completa capaz de conduzir múltiplos experimentos em paralelo. Para isso, foi feito um levantamento dos componentes que deveriam estar presentes na arquitetura, exploramos os principais meios utilizados atualmente para a implementação de experimentos e apresentamos um guia de como o Istio pode ser utilizado para direcionar os usuários para o experimento que eles devem participar. Concluindo, podemos reforçar a capacidade que arquiteturas baseadas em microsserviços têm para a condução dos experimentos e que um controle bem estabelecido sobre a rede desses serviços facilita a execução de experimentos em paralelo ao usarmos o paradigma de um Service Mesh, porém desafios estatísticos ainda devem ser aprofundados para tratar todo o desafio envolvendo esse paralelismo. Além disso, mostramos que aplicar uma estrutura como a proposta estabelece custos adicionais tanto financeiros como de performance e que devem ser temas abordados em pesquisas futuras.
Abstract: With advances in topics related to continuous experimentation as an approach to software development, we have been able to offer value delivery based on data collected from users' experiences. It is based on this that this project aims to present a complete architecture proposal capable of conducting multiple experiments in parallel. For this, we gathered the components that should be present in the architecture, explored the main methods currently used for implementing experiments and presented a guide of how Istio can be used for directing users to the experiment that they should participate in. In conclusion, we can reinforce the ability of microservices-based architectures to conduct experiments and that a well-established control over the network of these services contributes to the execution of experiments in parallel when using the Service Mesh paradigm, but statistical challenges still need to be deepened with the intention of addressing the whole challenge involving this parallelism. In addition, we show that applying a structure as the one proposed establishes additional costs, both financial and performance, that should be addressed in future research.
Resumo: Com o surgimento da arquitetura de microsserviços, a avaliação da manutenção e evolução de sistemas baseados nessa arquitetura tornou-se um aspecto importante para tomada de decisões. Para a avaliação quantitativa da evolução, toma-se como base um conjunto de métricas que permitem determinar qualidades arquiteturais e de projeto, tal como o acoplamento entre os componentes. Dentre as métricas, dada a natureza distribuída de sistemas baseados em microsserviços, métricas de acoplamento são importantes por representar qualidades essenciais da arquitetura como a dependência entre microsserviços. Assim, o desenvolvimento de uma ferramenta para análise automatizada dessa propriedade se torna necessário, uma vez que realizar essa análise manualmente pode ser dificultada em função da escala do sistema e da complexidade envolvida no código. A abordagem proposta neste trabalho se baseia na inspeção da troca de pacotes de rede (TCP/IP) entre microsserviços, implantados em um ambiente de orquestramento e estruturado, para a criação de um grafo de dependência que acompanha a interação entre os objetos principais da arquitetura. A partir da aplicação desta ferramenta em um ambiente de desenvolvimento e/ou homologação, obtivemos resultados consistentes e que mostram a viabilidade sua aplicação.
Resumo: Muitas empresas na indústria tiveram que se adaptar para oferecer produtos e serviços através de software. De forma geral, mesmo um software já lançado pode ser constantemente melhorado através da Experimentação Online, também conhecido como testes A/B, amplamente aplicado no mundo. Porém, para que uma empresa toma decisões data-driven para a melhoria do software é importante que exista uma abordagem sistemática para a Experimentação. Temos como objetivo propor uma arquitetura com componentes essenciais que consigam suportar o desenvolvimento, implementação e avaliação dos experimentos, além de ser capaz de coletar e analisar dados. Para isso, este trabalho analisa quatro arquiteturas diferentes da academia, identificando pontos em comum, além de explorar as três ferramentas mais utilizadas hoje na indústria para testes A/B. A contribuição deste relatório é uma proposta de uma arquitetura com componentes essenciais para Experimentos Online. Vemos, também, que a indústria e a academia se relacionam bastante neste tema.
Resumo: Este trabalho tem como objetivo realizar estudos em sistemas distribuídos, mais especificamente, computação fog, caracterizada pela alocação de fontes de processamento descentralizadas perto da borda da rede. Para isso, foram realizadas simulações utilizando o iFogSim, ferramenta criada para modelar e simular o uso de recursos em computação nas nuvens e fog, que no decorrer do projeto teve sua implementação modificada e estendida para suportar simulações mais genéricas e complexas, listadas pelo criador da ferramenta como trabalhos a serem desenvolvidos no futuro. As simulações realizadas contemplaram diversas políticas de alocação de aplicações em cloudlets (dispositivos fog) e nuvem, incluindo as suportadas por padrão no simulador e outras implementadas no decorrer do projeto. Essas últimas consideravam o tempo de comunicação entre os módulos da aplicação ou realizavam a alocação de cada módulo individualmente no iFogSim. Além disso, as diferentes políticas de alocação foram combinadas com arquiteturas distintas de disposição de cloudlets. Ao final das simulações foi possível analisar as vantagens e desvantagens de cada configuração, levando em consideração o delay na execução de aplicações e o uso da rede, provendo uma melhor visão sobre o custo benefício da computação fog e quais as melhores políticas para determinado cenário de uso.
Abstract: Question Answering techniques are part of an ongoing effort to allow more seamless human-computer interactions. These techniques promote accessibility and deliver a potentially better user experience overall, which are desired assets of todays technology. In this context, several challenges remain open such as how to handle complex natural language questions concerning spatial and temporal attributes. Further investigations are required to process these questions and to fully explore existing structured knowledge bases to obtain answers.
In this work, we study a spatio-temporal question answering system based on the use of RDF knowledge graphs. Our proposal develops an extension to the Temporal Question Answering system TEQUILA consisting of a template-based solution for Spatial Question Answering. Our results effectively create a hybrid Question Answering system that retrieves answers from multiple RDF datasets.
Abstract: In this work, we explore different architectures of deep convolutional neural networks applied to the problem of document image classification, without the need of using OCR techniques or others to extract information about the document, letting the CNN to learn how to interpret and extract information about the images by itself. The popular document image dataset called RVL-CDIP is used to train this model to compare results to other approaches in this field and also to compare results to different architectures than the ones used on them. We export weights from the VGG16 ImageNet network with inter-domain transfer learning and apply region based training with intra-domain transfer learning to train a model to classify documents by looking only at headers, footers and other sections of a document. We also use a real use case company document dataset to train VGG16. Since RVL-CDIP is a fairly complex dataset, the goal was to train a model that would be used in a real world situation with a useful dataset for their context. With this dataset, a 99
Resumo: As principais atividades realizadas durante o Projeto Final de Graduação do curso de Engenharia de Computação do Instituto de Computação da Universidade Estadual de Campinas (UNICAMP) são apresentadas e discutidas neste relatório. O trabalho teve como principal objetivo estudar e desenvolver um detector de minúcias em imagens de impressões digitais e uma ferramenta de correspondência dessas imagens baseada nas minúcias. O método utilizado na detecção é composto de três etapas: (i) etapa de pré-processamento, em que as imagens de entrada passam por algumas técnicas de forma a melhorar sua qualidade; (ii) etapas de afinamento e detecção, em que todas as bifurcações e terminações são encontradas e marcadas; (iii) etapa de pós-processamento, que visa remover falsas minúcias encontradas na fase anterior. O processo de correspondência também foi realizado em três fases: (i) obtenção de uma imagem do banco de dados para comparação de suas minúcias com as da imagem de entrada; (ii) alinhamento da segunda em relação à primeira por meio de seus conjuntos de minúcias; (iii) verificação da correspondência entre as minúcias de cada imagem a fim de encontrar digitais que possam ser do mesmo dedo da mesma pessoa.
Resumo: Este relatório descreve um projeto no qual foi realizada uma implementação de indicadores descritos na literatura de processamento de imagens digitais, os quais quantificam a resolução e o grau de borramento de imagens digitais. Estes indicadores foram utilizados em um banco de imagens para validar se eles podem ser utilizados para classificar se uma imagem está ou não borrada. Com base nestes indicadores e aplicando técnicas de aprendizado de máquina, conclui-se que é possível criar um classificador de imagens borradas e não borradas, utilizando tanto o algoritmo de SVC quanto o AdaBoost. Além disso, avaliou-se a necessidade de redimensionalidade das imagens originais para ganho de precisão do sistema ou de velocidade de processamento.
Resumo: Este trabalho tem como principal objetivo analisar os resultados do CSPI (Computer Science Peer Instruction), uma adaptação do Peer Instruction (PI) para disciplinas introdutórias de programação (CS1). O estudo, com duração de um semestre, foi realizado na disciplina MC102, ministrada de forma coordenada para cursos de STEM na Unicamp, abrangendo 8 turmas e 766 alunos. Utilizou-se como base de análise um conjunto de questões de múltipla-escolha (N = 10), denominadas de Atividades Conceituais (ACs) a respeito do tópico de ordenação. Os alunos foram divididos em dois grupos: grupo 1 (N = 127 alunos), participantes de uma turma onde o CSPI foi aplicado e; grupo 2 (N = 639), participantes das 7 turmas onde a aula tradicional foi mantida. Resultados indicam que o desempenho dos alunos nas ACs foi similar em ambos os grupos. Posteriormente, um conjunto de 15 questões de múltipla-escolha, baseadas na Taxonomia de Bloom, foi criado também para o tópico de ordenação, sendo aplicado de forma online para ambos os grupos. Resultados indicam que os alunos que tiveram aula suportadas com CSPI tiveram um desempenho 27% superior ao demais.
Abstract: This paper has as main objective to analyze the results of CSPI (Computer Science Peer Instruction), an adaptation of Peer Instruction (PI) to introductory programming disciplines (CS1). The study is based on the discipline MC102, a one-semester discipline, coordinate for STEM courses at Unicamp, covering 8 classes and 766 students. A set of multiple choice questions (N = 10), named Conceptual Activities (CAs), was used as the basis for analysis regarding the topic of sorting. The students were divided into two groups: group 1 (N = 127 students), participants of a group where the CSPI was applied and; group 2 (N = 639), participants of the 7 classes where the traditional class was maintained. Results indicate that the students' performance in the CAs was similar in both groups. Subsequently, a set of 15 multiple-choice questions, based on the Bloom Taxonomy, was also created for the sorting topic, being applied online for both groups. Results indicate that students who had classes supported with CSPI performed 27% higher than the others
Resumen El objetivo principal de este trabajo es analizar los resultados de CSPI (Computer Science Peer Instruction), una adaptación de Peer Instruction (PI) para disciplinas de programación introductoria (CS1). El estudio de un semestre se realizó en la asignatura MC102, ofrecida en los grados STEM en la Unicamp, que abarca 8 clases y 766 estudiantes. Se utilizó un conjunto de preguntas de múltiple opción (N = 10), denominadas Actividades conceptuales (AC), como base para el análisis con respecto al tema del pedido. Los estudiantes se dividieron en dos grupos: grupo 1 (N = 127 estudiantes), participantes de un grupo donde se aplicó el CSPI y; Grupo 2 (N = 639), participantes de las 7 clases en las que se mantuvo la clase tradicional. Los resultados indican que el rendimiento de los estudiantes en los ACs fue similar en ambos grupos. Posteriormente, también se creó un conjunto de 15 preguntas de opción múltiple, basadas en la Taxonomía Bloom, para el tema de pedido, que se aplicó online para ambos grupos. Los resultados indican que los estudiantes que tuvieron clases apoyadas con CSPI obtuvieron un 27% más que los demás.
Resumo: Este relatório técnico descreve um projeto final de graduação, com o objetivo de detalhar o projeto e implementação de um sistema de questionários para o aplicativo para dispositivos móveis WebLectures. O foco deste projeto foi aprimorar o aplicativo ao aplicar a metodologia de ensino Peer Instruction (FAGEN et al, 2000), de forma a introduzir a possibilidade a um professor usuário de fazer perguntas de múltipla escolha a serem respondidas por seus alunos em uma página WEB, durante ou após a aula. Os resultados são, então, adicionados ao whiteboard do aplicativo, permitindo sua análise de forma fluida durante o decorrer da aula.
As principais ferramentas utilizadas neste projeto foram o Android Studio para criação do código e testes (Debug com simulador), a plataforma Angular 6 para a criação da página WEB de acesso para respostas e o sistema Firebase, na qual o Banco de Dados foi implementado.
Este projeto contemplou a criação da página web em que os questionários serão respondidos (design de front-end e back-end, incluindo envio e recuperação de dados ao servidor, controle de concorrência, etc.) e atualização do sistema de reprodução (adição dos questionários, interatividade, etc.) do aplicativo WebLectures.
Abstract: This technical report describes a final graduation project, with the goal of detailing the design and implementation of a questionnaire system for the WebLectures mobile application. The focus of this project was to improve the application by applying the Peer Instruction teaching methodology (FAGEN et al, 2000), in order to introduce the possibility to a user teacher to ask multiple choice questions to be answered by their students in a WEB page, during or after class. The results are then added to the whiteboard of the application, allowing its analysis in a fluid way throughout the class.
The main tools used in this project were Android Studio for code creation and testing (Debug with simulator), the platform Angular 6 for the creation of the webpage for access to answers and the Firebase system, in which the Database was implemented.
This project includes the creation of the web page where the questionnaires will be answered (front-end and back-end design, including sending and retrieving data to the server, controlling concurrency, etc.) and updating the reproduction system (adition of questionnaires, interactivity, etc.) of the WebLectures application.
Resumen Este informe técnico describe un proyecto final de graduación, con el objetivo de detallar el proyecto e implementación de un sistema de cuestionarios para la aplicación para dispositivos móviles WebLectures. El enfoque de este proyecto fue mejorar la aplicación al aplicar la metodología de enseñanza Peer Instruction (FAGEN et al, 2000), para introducir la posibilidad a un profesor usuario de hacer preguntas de múltiple elección a ser respondidas por sus alumnos en una página WEB, durante o después de la clase. Los resultados se añaden al whiteboard de la aplicación, permitiendo su análisis de forma fluida durante el curso de la clase.
Las principales herramientas utilizadas en este proyecto fueron Android Studio para la creación del código y pruebas (Debug con simulador), la plataforma Angular 6 para la creación de la página WEB de acceso para respuestas y el sistema Firebase, en la que se implementó la base de datos.
Este proyecto contempló la creación de la página web en la que se respondieron los cuestionarios (diseño de front-end y back-end, incluyendo envío y recuperación de datos al servidor, control de competencia, etc.) y actualización del sistema de reproducción cuestionarios, interactividad, etc.) de la aplicación WebLectures.
Resumo: Este trabalho é um relatório técnico de um projeto final de graduação, visando o detalhamento da construção de um sistema de quizzes para o aplicativo WebLectures. O objetivo deste projeto foi integrar a metodologia Peer Instruction (FAGEN et al, 2000) de ensino ao aplicativo, possibilitando ao professor usuário criar questões de múltipla escolha a serem respondidas por seus alunos em uma página WEB, tanto durante a aula quanto posteriormente. O aplicativo, então, integraria os resultados dessas questões a aula do professor através do whiteboard.
As principais ferramentas utilizadas neste projeto foram: Android Studio para criação do código e testes (Debug com simulador), MPAndroidChart para criação dos gráficos de barras para o resultado das questões e Firebase, plataforma na qual o Banco de Dados foi implementado.
Este projeto contemplou a criação (reserva de identificador único, criação da estrutura, interações com o banco de dados, controle de concorrência, etc.) e finalização (busca no banco de dados, geração dos resultados em gráfico de barras) de quizzes criados pelo aplicativo WebLectures.
Instituto de Computação ::
Universidade Estadual de Campinas
Av. Albert Einstein, 1251 - Cidade Universitária Zeferino Vaz • 13083-852 Campinas, SP - Brasil • Fone: [19] 3521-5838 |