23
UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA DA COMPUTAÇÃO Carlos Eduardo Zati de Jesus SISTEMA AUTÔNOMO DE OMR PARA PARTITURAS Trabalho de conclusão de curso apresentado ao curso de Engenharia da Computação, da Universidade Positivo. Orientador: Eduardo Juliano Alberti Curitiba, 2015

UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

  • Upload
    dangque

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

UNVERSIDADE POSITIVO

NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS

ENGENHARIA DA COMPUTAÇÃO

Carlos Eduardo Zati de Jesus

SISTEMA AUTÔNOMO DE OMR PARA PARTITURAS

Trabalho de conclusão de curso apresentado ao curso de Engenharia da Computação,

da Universidade Positivo.

Orientador: Eduardo Juliano Alberti

Curitiba, 2015

Page 2: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

RESUMO

O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe-

nômeno recente. Este teve início na década de 60 com estudos do Instituto Massachussets de tec-

nologia. O avanço destas pesquisas, culminou em alguns produtos disponíveis no mercado, como

por exemplo o Audiveris, o Capella-Scan, para citar alguns. Apesar destes softwares terem um

bom nível de reconhecimento, tais apresentam o seguinte problema em comum, eles são incapa-

zes de reconhecer partituras que não são digitalizadas por meio de um scanner ou geradas digi-

talmente.

Em vista destas limitações o trabalho proposto é de desenvolver um sistema autônomo de

OMR, o qual é responsável pela manipulação das páginas, ler, analisar e reproduzir as notas con-

tidas na página da partitura. Utilizando para esta leitura uma webcam e para a análise da imagem

foi desenvolvido um algoritmo no software MATLAB.

O sistema sugerido apresentou funcionamento adequado à proposta, e um nível de acerto médio total de aproximadamente 70%. Este acerto médio sendo do manipulador de páginas, e do reconhecedor de partituras.

Palavras-chave: MATLAB, OMR, Partitura, manipulador, páginas.

Page 3: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

ABSTRACT

The development of the optical music recognition (OMR) is not a recent field of research.

They began in the 60s with researches in the Massachusetts Institute of Technology. The further

development of these researches culminated in some products available in the market, for exam-

ple the Audiveris and the Capella-Scan, just to name a few. Although these software work well,

they have a common issue, which is that they only recognize scanned or digitally generated mu-

sic sheets.

Presented with this issue, the project consists of the development of an automated OMR

for music sheets that also turn the pages autonomously, which is responsible of recognizing Staff

lines, and notes, which are printed in a music sheet. Using morphological analysis in the image,

which is acquired by a webcam. The algorithm was developed using the MATLAB software

The presented system worked as proposed, with an overall rate of success near 70% in

the manipulation of the pages, and the recognition of the characters in the music sheet

Keywords: MATLAB, OMR, Music sheet, Page, Turner.

Page 4: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

SUMÁRIO

1 INTRODUÇÃO5

1.1 OBJETIVOGERAL5

1.2 OBJETIVOSESPECÍFICOS5

2 FUNDAMENTAÇÃOTEÓRICA6

3 ESPECIFICAÇÃOTÉCNICA7

3.1 ANÁLISEDEREQUISITOS9

3.2 RESTRIÇÕES10

3.3 DESCRIÇÃODASPARTESCOMPONENTESEINTERFACEAMENTOENTRESISTEMAS10

4 DESENVOLVIMENTO11

4.1 HARDWARE11

4.2 SOFTWARE14

5 TESTESERESULTADOS19

6 CONSIDERAÇÕESFINAISETRABALHOSFUTUROS21

7 BIBLIOGRAFIA22

8 ANEXOS23

9 APÊNDICES23

Page 5: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

5

1 INTRODUÇÃO

O reconhecimento ótico de partituras (OMR) é a técnica de visão que permite a extração

de dados, como notas, marcações de dinâmica e acidentes em partituras, partindo de uma ima-

gem digitalizada. O reconhecimento das notas, e demais marcações, “desenhados” na partitura é

realizado com base em uma imagem digitalizada.

O OMR tem sido um campo de crescente interesse desde o final da década de 60, devido

a um artigo de um aluno do Instituto de Tecnologia de Massachusetts (MIT) (Pruslin, 1966), so-

bre reconhecimento automático de música encontrando aplicações que variam desde a assistência

ao aprendizado até a leitura de músicas para profissionais solistas (Bainbridge, 2001). Após pes-

quisas, várias empresas começaram a criar seus próprios softwares de OMR, como por exemplo

Capella-Scan, desenvolvido pela empresa Capella, sua primeira versão em 1992, também haven-

do algumas opções de Software Open Source, por exemplo o Audiveris. Estas soluções, porém,

só funcionam com partituras digitalizadas por meio de scanners, ou arquivos gerados digitalmen-

te, e devido a tal restrição, foi decidido pela utilização do MATLAB. Tal software foi utilizado

na análise morfológica de uma foto adquirida por uma WebCam. No manuseio da página é utili-

zado um PcDuino3, este utilizando-se de um servomotor e coolers variados para a sucção e im-

pulso da página.

1.1 OBJETIVO GERAL

Desenvolvimento de um sistema autônomo de manipulação, leitura, interpretação e re-produção em formato MIDI, de partituras para instrumentos de uma mão.

1.2 OBJETIVOS ESPECÍFICOS

1. Estudo sobre notação e leitura de partituras para instrumentos de uma mão;

2. Projeto e desenvolvimento de circuitos para o controle do servo motor e coolers;

Page 6: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

6

3. Desenvolvimento de uma interface para controle dos motores e comunicação sem fio com a central de processamento;

4. Desenvolvimento de um software de aquisição e processamento de imagens;

5. Testes de avaliação de desempenho do sistema.

2 FUNDAMENTAÇÃO TEÓRICA

O reconhecimento de partituras tem sido um campo de crescente interesse desde o final da década de 60, quando um aluno do Instituto de Tecnologia de Massachusetts (MIT), escreveu um artigo sobre reconhecimento automático de música (Pruslin, 1996), anos após sua pesquisa inicial, várias empresas começaram a criar seus próprios softwares de OMR, como por exemplo Capella-Scan, desenvolvido pela empresa Capella, que teve sua primeira versão em 1992, tam-bem havendo algumas opções de Software Open Source, sendo um exemplo o Audiveris, tais softwares são muito precisos com partituras digitalizadas por meio de scanners, ou desenvolvidas digitalmente.

Estes softwares utilizam procedimentos similares, sendo assim neste trabalho foi desen-volvido um sistema autônomo de OMR, que funciona com imagens não digitalizadas, mas sim imagem capturadas por meio de uma câmera ou webcam.

Com a utilização de uma webcam há um problema intrínseco a qualquer lente que é utili-zada na captura de imagens, a distorção de barril, que consiste em um zoom menor a medida que nos afastamos do centro da imagem, dando a impressão da imagem estar na superfície de uma esfera (Jenkins, 1976), sendo a Figura 1 um exemplo desta distorção. Sendo assim foi necessária a utilização de um algoritmo de correção de tal distorção. Neste trabalho foi utilizada a função nativa do MATLAB, barrel distortion, a qual possui como argumento o tipo de lente utilizada.

Figura1-Exemplodedistorçãodebarril

Fonte: Ojanen (1999)

Page 7: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

7

No processamento de imagem também foi utilizado o método de binarização, que nesse caso foi feito em duas etapas, sendo estas a conversão da imagem para escala de cinza, e a bina-rização propriamente dita. Este processo foi utilizado com o intuito de que o nível de erros, em áreas de sombra, seja mantido em um mínimo. Tal método foi baseado no artigo “Adaptive do-cument image binarization” (Sauvola, 1999).

Utilizou-se ainda a técnica de busca por centroides, que podem ser descritos como “cen-tro de gravidade” de um poligono (Bourke, 1988), como pode ser observado na Figura 2.

Figura2-Exemplodecentroide

Fonte:Gilbert(2013)

A função de conversão de OMR para som foi construída com base na geração de ondas senoidais. Esta tecnica teve como base o processo demonstrado no “MUSIC estimation of real-valued sine-wave frequencies” (Stoica, 1995). Também foi utilizado a equação apresentada no artigo “Music Score Reader Based on Morphological Image Processing” (Li, 2012), é possível determinar a duração de cada nota sendo, assim, possível a criação de uma onda senoidal.

3 ESPECIFICAÇÃO TÉCNICA

O objetivo principal deste trabalho foi o desenvolvimento de um sistema de reconhecimento de partituras autônomo, capaz de virar as páginas de um caderno de partitura, capturar uma foto da partitura, utilizando uma Webcam, analisa-la morfologicamente por meio de processamento de imagem e reproduzir as notas reconhecidas pelo processo de análise.

A fim de manipular as páginas do caderno, foram utilizados um servomotor e dois coolers controlados por um PcDuino3, um micro controlador ARM, que utiliza como sistema operacio-nal uma distribuição do software livre Linux. A estrutura do manipulador de páginas é feita de madeira, sendo uma base para o apoio do caderno, um servomotor preso a base e um “braço” de madeira preso ao seu eixo. O “braço” possui um cooler na ponta com a função de sugar a página

Page 8: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

8

utilizando uma pressão negativa devido ao fluxo de ar contrário a página. Também preso a base, encontra-se um par de cooler menores, que tem como função “empurrar” a página, por meio de uma pressão positiva, devido ao fluxo de ar no sentido da página. Também se encontra junto a base, uma estrutura em arco que é responsável pelo posicionamento da webcam no centro da pá-gina, e com altura o suficiente para que seja possível a captura da página inteira utilizando a re-solução máxima da webcam. A Figura 4 representa a imagem do protótipo construído.

O PcDuino foi utilizado no controle dos coolers e servo motor, este também é conectado a um módulo Bluetooth, este possibilita a conexão com o software que fará o processamento da imagem.

O processamento de imagem utiliza-se de um computador. O sistema de análise foi desen-volvido nas plataformas Visual Studio 2015 e MATLAB R2015a.

O diagrama de blocos do trabalho pode ser observado na Figura 3, que representa as cone-xões entre o computador e a camera, a comunicação entre o computador de o PcDuino que por sua vez controla o servo motor e os coolers

Figura3-Diagramadeblocosdoprojeto

O Sistema Autônomo de OMR apresenta as seguintes funcionalidades:

• Manipulação das páginas;

• Captura das imagens;

• Analise morfológica da imagem adquirida;

• Processamento da imagem e reprodução das notas reconhecidas.

Page 9: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

9

Figura4-FotodoProtótipo

3.1 ANÁLISE DE REQUISITOS

O manipulador de páginas, utilizou-se de três coolers, sendo eles um par de coolers de 40mm de diâmetro, e um terceiro de 80mm de diâmetro. A alimentação do conjunto é de 12V DC. Na movimentação do “braço” utilizou-se um servomotor MG996R, da marca TowerPro com torque máximo de 11kgf.cm a uma tensão de 6V (Volts) DC.

No controle do manipulador de páginas utilizou-se um PcDuino versão 3, que roda utiliza como sistema operacional uma versão do software de distribuição livre Linux Ubuntu versão 14. Além de uma webcam Logitech c270, com resolução de vídeo 720p (1280x720 pixels) utilizada na captura de imagens, também um modulo Bluetooth, HC-06, que é alimentado por uma tensão de 5V DC.

A alimentação de todo o circuito utilizou-se uma fonte especifica para o PcDuino, de 5V 2A (Amperes), tal fonte é necessária somente na alimentação do PcDuino, na alimentação do servomotor, foi utilizada uma fonte 5V 2A. No controle dos coolers, e de uma faixa de LEDs uti-lizada na a iluminação da partitura, é utilizada uma fonte de 12V 2A.

Page 10: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

10

Controlando a câmera e se conectando por meio de Bluetooth ao PcDuino, encontra-se um computador, que tem como sistema operacional o Windows 8.1, sendo a versão do Windows se fazendo necessária devida a API utilizada na comunicação com a câmera.

3.2 RESTRIÇÕES

1. O caderno de partituras usado deve ser impresso em um formato de 28,4 x 21,5 cm e ser de um papel do tipo cartão, com gramatura de 180g, sendo esse caderno preso por um espiral.

2. A estrutura deve ser posicionada em um ângulo que a iluminação externa não faça o arco da estrutura ou qualquer outro objeto projetar uma sombra sobre a página que será lida. A iluminação necessária deve ser no mínimo de 240lx (lux).

3. A resolução da webcam utilizada deve ser no mínimo 1280x720 pixels, pois abai-xo disto a imagem não tem detalhe o suficiente para uma análise satisfatória. Seu posicionamento deve ser feito de tal modo que a webcam consiga capturar a pági-na inteira, com o mínimo possível de inclinação, assim minimizando a distorção na imagem.

3.3 DESCRIÇÃO DAS PARTES COMPONENTES E INTERFACEAMENTO ENTRE SIS-TEMAS

O sistema é baseado em dois módulos, sendo eles o modulo de manipulação e o módulo de processamento. O módulo de manipulação é baseado em um PcDuino versão 3, o qual está co-nectado aos coolers e servomotor por meio de alguns Transistores Darlington (TIP122). Tais es-tão sendo usados como chaves para as saídas digitais do PcDuino. Também no módulo de mani-pulação, foi utilizado um circuito integrado (CI) na comunicação Bluetooth entre o PcDuino e o computador que está processando a imagem, sendo este CI um HC-06.

O módulo de processamento, é composto por dois softwares, sendo eles o software de captu-ra e manipulação de páginas, e o software de processamento. Utilizou-se no interfaceamento do software de manipulação com a webcam, a API CameraCapture, desenvolvida pela Microsoft. Este software foi desenvolvido em C#.

O software de processamento, foi desenvolvido em VB.net, tal software utiliza funções nati-vas do Windows para instanciar e chamar programas instalados no sistema operacional, neste caso a função foi utilizada na chamada do software MATLAB, fazendo com que tal processe a imagem adquirida pelo software de aquisição.

Page 11: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

11

4 DESENVOLVIMENTO Neste capítulo serão apresentados os métodos utilizados no desenvolvimento deste trabalho, os circuitos desenvolvidos e também o software desenvolvido.

4.1 HARDWARE

No desenvolvimento deste trabalho, foi utilizado um servo motor, alguns transistores Dar-lington TIP122, um modulo Bluetooth HC-06 e, dois tipos de coolers diferentes, tendo eles 80mm e 40mm de diâmetro. Eles são utilizados na manipulação das páginas, sendo o maior para “sugar” a página, e o par de coolers menores para “empurrar”. Ambos os coolers são conectados a transistores Darlington, seguindo o desenho de uma chave digital, como pode ser observado na Figura 5.

Figura5-Circuitodecontroledoscoolers

A comunicação Bluetooth utiliza-se um HC-06, que se comunica serialmente com o PcDuino, sua conexão e a conexão do servo motor pode ser observada na Figura 6.

Page 12: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

12

Figura6-circuitodeconexãocomservomotoremóduloBluetooth

A movimentação do braço em que o cooler maior está fixado utiliza um servomotor MG996R, que possui 11kgf.cm de torque com 6V de alimentação, como informado em seu da-tasheet. Neste caso foi utilizada uma alimentação de 5V, assim tendo um torque aproximado de 10kgf.cm (avaliado por relação matemática). No controle de tal servomotor, foi utilizado PWM (Pulse Width Modulation), ou modulação de largura de pulso. O controle deste servo motor ne-cessita de um período de PWM de 50Hz ou 20 milissegundos.

O PcDuino proporciona, em sua distribuição do Ubuntu, a Arduino IDE,o qual utiliza uma variação da linguagem C , possibilitando assim o desenvolvimento do firmware de controle. Este firmware tem como função receber comandos enviados pelo computador via Bluetooth e controlar o servo motor e os coolers.

Page 13: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

13

Inicio

Setupdepinos

EsperapordadosdoBluetooth

Algorecebido?

Setaaposiçãodomotorparaainicial

Ligaoscoolers

Esperaalgunssegundosparaapagina“grudar”

Incrementaaposiçãodomotor

atéchegaráposiçãomáxima

Decrementaaposiçãodomotoratéaposição

mínima

“virarpágina”

“voltar”

Nadarecebido

Desligaoscoolers

Figura7-Fluxogramadofirmware

Como pode ser observado na Figura 7, ao iniciar o sistema ocorre uma configuração inicial dos pinos que estão conectados, após isso o sistema fica esperando por mensagens contendo coman-dos chegarem por Bluetooth, se nenhuma mensagem é recebida ele continua esperando. Então se ele recebe uma mensagem para virar a página ele vai enviar o comando para o servo motor ir à sua posição inicial, ligar os coolers, esperar por alguns segundos para que a página tenha tempo de “grudar” no cooler maior, e então o sistema envia comandos consecutivos com a posição in-crementada, para que o motor chegue a sua posição final enquanto a folha ainda é carregada. Se uma mensagem de voltar o braço é recebida, ele decrementa a posição do servo motor até que ele chegue a sua posição inicial.

Page 14: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

14

4.2 SOFTWARE

O software presente no projeto é separado em dois módulos independentes, sendo eles o módulo de manipulação e o módulo de interface. O módulo de manipulação foi desenvolvido em C#, este é encarregado de manipular e adquirir a foto da página. O módulo de interface, é res-ponsável pela interface com as funções do MATLAB, este foi desenvolvido em VB.net. O algo-ritmo de processamento de imagem, foi desenvolvido no MATLAB, que é responsável pelo pro-cessamento da imagem e a reprodução das notas reconhecidas. Foi utilizado o Visual Studio 2015 para desenvolver os softwares em .net, e o próprio MATLAB no desenvolvimento do algo-ritmo de processamento de imagens.

O software de comunicação com o PcDuino, deve ser executado em um computador uti-lizando Windows 8 no mínimo, devido a uma API da Microsoft, que foi utilizada no controle da câmera, a CameraCaptureUI API, somente funciona com aplicativos desenvolvidos para Win-dows Metro, logo isso impede que ela rode no ambiente desktop do Windows. Neste software também foi utilizado uma biblioteca de comunicação Bluetooth, que é utilizado no envio dos comandos para o PcDuino. Tal software consiste de uma interface simples, como pode ser obser-vado na Figura 8.

Figura8-Programadeaquisiçãoemanuseiodepáginas

O controle mais básico do software é executado pelo sistema de botões de controle, con-forme demonstrado na Figura 9, por ele é possível controlar manualmente o “braço” manipulador de páginas, ou escolher a opção de virar a página e tirar a foto automaticamente, ou simplesmen-te tirar a foto da folha atual. Os botões de conexão são somente utilizados no início do processo, quando se deseja conectar o computador com o PcDuino, se clica no botão Conectar, assim um menu pop-up aparecerá para selecionar o dispositivo com o qual deseja se conectar. Os botões Cancelar e Desconectar, são responsáveis pelo cancelamento da conexão que está sendo estabe-lecida, e para se desconectar do dispositivo atualmente conectado.

Page 15: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

15

O software que se conecta com o MATLAB, utiliza-se de uma interface simples também. Como é possível observar na Figura 9

Figura9-SoftwaredeconexãocomoMATLAB

Tal software, utiliza-se a API nativa do Windows que possibilita instanciar aplicações instaladas no Windows como objetos.

Os botões que compõe a interface deste software têm como função chamar funções no MATLAB, como o de ler partitura, ele pega o caminho da imagem que foi informado na text box, e chama a função de processamento da imagem com o caminho da imagem como parâme-tro, os botões de parar música e fechar as imagens, executam códigos que apagam todas as variá-veis de diferentes tipos utilizadas no MATLAB.

O algoritmo desenvolvido no MATLAB segue o seguinte fluxograma presente na Figura 10. Parte dele foi adaptado do artigo “Music Score Reader Based on Morphological Image Pro-cessing” por Dingyi Li, Bing Han and Jia Ji.

Page 16: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

16

Inicio

Recebeimagempassadacomoargumento

Formataçãodaimagem

Correçãodadistorçãode

barril

Binarização

Histogramadaslinhashorizontais

Retiradadapauta

Reconhecimentodasnotas

Cabeçasdasnotas

Colcheias

Aumentodasnotas

Cabeçasvazias

Calculodeduraçãodanota

Reconhecimentodetom

Criaçãodeumaondasenoidalparaaquela

pauta

Ultimapauta?

Sim

Reproduçãodetodasasondassenoidaisem

ordem

Não

Retiradadeartefatos

Figura10-Fluxogramadoalgoritmodereconhecimento

Page 17: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

17

A formatação da imagem é composta por uma função de corte já disponível no MA-TLAB, seguindo nós temos a função de desfazer a distorção de Barril, nesta função que também está disponível, temos uma opção de várias distorções para diversos tipos diferentes de câmeras e lentes, neste caso foi utilizada a opção de Webcam. Após isso, temos a binarização, que é com-posta por duas funções especificas, primeiramente a imagem é convertida em escala de cinza após isso a imagem é binarizada, este processo é utilizado para diminuir o número de artefatos que aparecem na imagem devido a conversão. Após isso é feito um histograma e uma análise dele, que pode ser observado na figura 11, com tal histograma é possível ver a localização das “linhas” ou pautas, que são representados por picos no histograma. Em posse das posições das pautas, é feita a retirada delas, fazendo com que o reconhecimento das cabeças fique mais sim-ples.

Figura11-Exemplodehistogramadapartitura

Após a retirada das pautas, e retirada de artefatos da imagem, temos uma imagem binari-zada contendo somente a cabeça das notas.

Na análise das notas, é feita uma separação da imagem em seções, tais que cada conjunto de 5 “linhas” é uma seção especifica. Dentro de cada seção, é localizada as cabeças das notas, utilizando funções como “open” e funções que retornam parâmetros morfológicos da imagem, como por exemplo a localização dos centroides da imagem, que nesse caso representariam as cabeças das notas, em posse da localização das cabeças é possível fazer uma verificação de qual nota aquela cabeça representa, fazendo uma relação entre sua posição e a posição da pauta. Utili-zando essa relação e uma tabela contendo uma relação entre notas e frequências, é possível des-cobrir a frequência daquela nota encontrada. Esta tabela pode ser observada na tabela 1.

Page 18: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

18

Tabela1-relaçãoentrenotasefrequência

Durante a verificação da posição da cabeça, também se verifica a área envolta dela, em procura de colcheias, ponto de aumento ou cabeças vazias.

Após todo o processo de verificação, é necessário fazer um cálculo para se descobrir qual a duração da nota, sendo este:

𝐷 = 8 ∗ 0,5!!!"#$ç!"!#$! ∗ 0,5!"#$%&'$(&)(!!"#$ ∗ 1,5!"#$"%&'()&#$"

Equação1–Equaçãodeduraçãodenota

Utilizando as informações adquiridas anteriormente, sendo elas se a nota tem uma cabeça vazia, qual o número de colcheias dela e se ela tem um ponto de aumento, e aplicando estas in-formações na Equação 1, é possível ter a duração que aquela nota em específico tem. Em posse disto e da frequência, é gerada uma onda senoidal que representa esta nota. Todo este processo é repetido até que a última pauta seja processada.

Após o termino de todo o processo, as ondas senoidais são reproduzidas em sequência, e uma imagem é mostrada contendo as notas reconhecidas pelo algoritmo. Tal imagem pode ser observada na Figura 12.

Figura12-Exemplodenotasreconhecidaspeloalgoritmo

Nota Frequencia(Hz) Nota Frequencia(Hz)A3 220 D5 587B3 247 E5 659C4 262 F5 698D4 294 G5 784E4 330 A5 880F4 349 B5 988G4 392 C6 1047A4 440 D6 1175B4 494 E6 1319C5 523 F6 1397

Page 19: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

19

5 TESTES E RESULTADOS

Foi possível no decorrer deste trabalho, desenvolver um sistema de manipulação de pági-nas e um software de análise e interpretação de partituras.

Para os testes físicos foi utilizado o caderno de partituras apresentado na Figura 13. Sen-do este primeiramente impresso em papel A4 do tipo sulfite, com gramatura de 75g, porém este tipo de papel não se provou ideal, pelo fato dele ser muito maleável e dobrar facilmente, logo quando o cooler maior suga a página e tenta vira-la, ela escapa com facilidade. Devido a tais problemas, foi escolhido um papel do tipo cartão com gramatura de 180g, devido a uma densida-de maior, este tipo de papel se dobra menos facilmente do que o papel do tipo sulfite utilizado anteriormente. Com isso foi possível que a manipulação da página fosse feita eficientemente, tendo apenas problemas quando uma página fica “grudada” na página de baixo, assim fazendo com que o conjunto de páginas fique muito pesado para ser carregada para o outro lado da espi-ral. O papel também não pode estar amassado, pois isso impedirá que a página fique aderida ao cooler que está fazendo a sucção. Os testes foram feitos em ambientes fechados, logo sem vento, que pode atrapalhar nos testes.

Para os testes do software, foram utilizadas fotos tiradas pela própria webcam, do cader-no de partitura demonstrado na Figura 13. Tal caderno, é um método de aprendizado de violino, que estava de acordo com os requisitos do projeto, sendo ele um instrumento de uma mão e com uma partitura relativamente simples, com notas bem espaçadas e sem figuras que aumentam a complexidade da partitura, como por exemplo sustenidos, entre outros.

Page 20: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

20

Figura13-exemplodepartitura

O resultado obtido com os testes, foi um nível de reconhecimento de mais da metade das notas, como pode ser observado na Figura 12, gerando em torno de 68% de notas reconhecidas, tendo esse número atingido 82% de reconhecimento no máximo, e 54% no mínimo.

Para os resultados do manipulador de páginas, quando a folha é nova, ou seja, não está amassada, o nível de “acertos” gerou em torno 70%, podendo este número aumentar quando as páginas abaixo da atual são presas de alguma forma, como por exemplo o usuário as segurando, assim o número de sucessos no processo de virar a página aumenta para 90%.

Page 21: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

21

6 CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS

O projeto propôs um sistema autônomo de OMR. Tal sistema deve manipular as páginas de um caderno de partitura automaticamente, adquirir uma foto da partitura, e com isso fazer a análise da página, e reproduzir tal partitura em formato MIDI. De acordo com os dados obtidos nos testes, foi possível chegar a um número de acertos totais de 70%, logo pode-se dizer que é um sistema eficiente para partituras simples.

Entretanto durante o desenvolvimento do trabalho, foram encontrados alguns problemas, como por exemplo a distorção durante a aquisição da imagem, que é intrínseca a qualquer câme-ra, tendo esse problema levado a utilização do método de correção para distorção de barril. Tal método possibilitou a análise da imagem pelo MATLAB. Outro problema foi gerado pelo mode-lo da webcam utilizado, pois o fabricante desta limita a resolução máxima utilizada por softwares não desenvolvidos por terceiros autorizados. Este foi resolvido utilizando a API que a Microsoft desenvolveu para que se pudesse acessar o feed da webcam, assim possibilitando o uso da reso-lução máxima de tal, porem este problema pode ser contornado utilizando uma webcam que não tenha esta restrição.

Um dos pontos que pode ser melhorado para aumentar a eficiência do trabalho desenvol-vido, é o sistema de troca de páginas, que por si só apresenta uma variação de 20% de “erros”, sendo que essa melhora pode ser algum método de impedir que as páginas subsequentes à atual sejam puxadas juntamente a ela.

Para o algoritmo de análise, seria possível melhorar a correção da distorção de barril, fa-zendo uma correção especifica para a curvatura da lente da webcam utilizada. Com isso o nível de acertos para o reconhecimento das notas seria maior, já que isso corrigiria as distorções da pauta.

Page 22: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

22

7 BIBLIOGRAFIA

[1]D.HowardPruslin,“AUTOMATICRECOFNITIONOFSHEETMUSIC”,Sc.D.Dissertation,MassachusettsInstituteofTechnology,1966.

[2]PeterShirley,SteveMarschner,“FundamentalsofComputerGraphics”,ThirdEdition,2009.

[3]DavidBainbridge,TimBell,“TheChallengeofOpticalMusicRecognition”,UniversityofCanterbury,2001.

[4]LuisAlvarez,LuisGomez,RafaelSendra,“AlgebraicLensDistortionModelEstimation”,UniversidaddeLasPalmasdeGranCanarina,2010.

[5]DingyiLi,BingHan,JiaJi,“MusicScoreReaderBasedonMorphologicalImageProcessing”,Depart-mentofElectricalEngineering,StanfordUniversity,2012.

[6]HarriOjanen,“Automaticcorrectionoflensdistortionbyusingdigitalimageprocessing.”,RutgersUniversity,Dept.ofMathematicstechnicalreport,1999.

[7]FrancisA.JenkinsandHarveyE.White,Fundamentalsofoptics,4thed.,1976

[8]JaakkoSauvola,MattiPietikaKine,“Adaptivedocumentimagebinarization”,MachineVisionandMe-diaProcessingGroup,UniversityofOulu,1999.

[9]PaulBourke,“Calculatingtheareaandcentroidofapolygon.”,URL.http://local.wasp.uwa.edu.au/-pbourke/geometry/polyarea,1988.

[10]DavidGilbert,“CentroidsandCenterofMass”,URL.http://calculus.seas.upenn.edu/?n=Main.CentroidsAndCentersOfMass,2013.

[11]PetreStoica,AndersEriksson,"MUSICestimationofreal-valuedsine-wavefrequencies.",Signalprocessing42.2,1995.

Page 23: UNVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · O desenvolvimento de sistemas de reconhecimento ótico de música (OMR) não é um fe- ... o arco da estrutura ou qualquer

23

8 ANEXOS

Figura14-esquemáticodepinosdoPcDuino3

9 APÊNDICES

Figura156-CircuitoPCIdesenvolvidonosoftwareProteus