NI&D inovatec

Ficha do projeto.               Sobre o NIDinovatec.         


 Relatórios técnicos

 maio 2021;  

janeiro 2022;

setembro 2022 

junho 2023


Relatórios finais (setembro 2023):

Relatório técnico cientifico (doc)

Ent #1: estado da arte (doc)

Ent #2: motor de transcrição de paginas (doc)

Ent #3: testes dos produtos obtidos (doc)





Plataforma online de demonstração / teste 

(janeiro 2023)

https://arquivo-dev.inovatec.pt/

Videos de demonstração:

Versão longa
(cerca de 5min)

Biblioteca do Ateneu Comercial do Porto

Sociedade de Geografia de Lisboa

Herbario do MHNC da UP (botanica)

Biblioteca da FCUP

Galeria da biodiversidade (MHNC UP)

Main screen and terminal window

Also with final txt window

GCV OCR

GCV OCR 

Protótipo de transcrição de documentos por OCR pelo serviço Google AI Vision

(Mac. desktop)

Processo (jornais, século XIX)


TESTBED: Diário Popular e Jornal do Comércio (1883-1893) - ver aqui

Desenvolvimento

Dados de acesso

username: inovatecocr
password: ProjetoOCR2021


Repositório código, versão web de pesquisa v1

https://github.com/inovatecpt/arquivo_project_v1 (Novembro 2022)


README v3 


Repositório Privado de Código v2 (Fevereiro 2022)

https://github.com/inovatecpt/ocr_v2


README_v2

 

Repositório Privado de Código v1 (Julho 2021)
https://github.com/inovatecpt/ocr_v1/ 



 README (código)

NI&D INOVATEC 

Reuniões de trabalho


(listagem e links para as gravações de todas reuniões (zoom) aqui)

Reuniões

Reunião #88 - 13 Set, 11h00 -  PJ4
Adelino, Eduardo, João


Reunião #87 - 30 Jun, 11h00 -  PJ4
Adelino, Eduardo, João


Reunião #86 - 16 Jun, 11h00 - PJ4
Adelino, Eduardo, João


Reunião #85 - 19 Mai, 11h00 -  PJ1, PJ2, PJ7
Adelino, Eduardo, João


Reunião #84 - 9 Mai, 15h00 - PJ6
Adelino, Eduardo, João


Reunião #83 - 18 Abr, 10h30
Adelino, Eduardo, João


Reunião #83 - 14 Abr, 10h30 - PJ2, PJ7
Adelino, Eduardo, João


Reunião #82 - 11 Abr, 10h30
Adelino, Eduardo, João A., João B., Nuno, Alfredo Azevedo.


Reunião #81 - 31 Mar, 10h30 -  PJ3, PJ7
Adelino, Eduardo, João


Reunião #80 - 24 Mar, 10h30 - PJ7
Adelino, Eduardo, João


Reunião #79 - 21 Mar, 10h30 -   PJ7, PJ5
Adelino, Eduardo, João


Reunião #78 - 17 Mar, 10h30 - PJ7, PJ5
Adelino, Eduardo, João


Reunião #77 - 13 Mar, 10h30 - PJ7, PJ5
Adelino, Eduardo, João


Reunião #76 - 9 Mar, 10h30 - PJ7, PJ5
Adelino, Eduardo, João


Reunião #75 - 3 Mar, 11h30 -  PJ3,  PJ5
Adelino, Eduardo, João


Reunião #74 - 3 Fev, 11h30 -  PJ5PJ7
Adelino, Eduardo, João


Reunião #73 - 27 Janeiro, 11h30 -  PJ3,  PJ7
Adelino, Eduardo, João


Reunião #72 - 18 Janeiro, 11h30 -   PJ2,  PJ3, PJ4,  PJ6
Adelino, Eduardo, João


Reunião #71 - 5 Janeiro, 11h30 -  PJ2PJ4
Adelino, Eduardo, João


Reunião #70 - 4 Janeiro, 10h  -  PJ2PJ3, PJ4
Adelino, João


Reunião #69- 30 Dezembro 11h30 - PJ2PJ3, PJ4
Adelino, Eduardo, João


Reunião #69- 22 Dezembro 15h30 - PJ1, PJ2PJ3, PJ4
Adelino, João


Reunião #68- 29 Novembro 15h30 - PJ1, PJ2PJ3, PJ4
Adelino, Eduardo, João


Reunião #67- 18 Novembro 15h30 - PJ1, PJ2PJ3, PJ4
Adelino, João, Eduardo

_________________________________________________________________________________________________________________

Reunião #66- 11 Novembro 15h00 - PJ1, PJ2PJ3, PJ4
Adelino, João, Eduardo

_________________________________________________________________________________________________________________

Reunião #65- 09 Novembro 15h00 - PJ1, PJ2PJ3, PJ4
Adelino, João

- Passos:
João:
- wireframes de design de fichas
- base de dados em django, com admin a funcionar, e colocar online
- documentação de fichas, e app jornais, no README.md
- rever github, deployment testes/produção
- rever importação da base de dados dos jornais e soluções

_________________________________________________________________________________________________________________

Reunião #64- 28 Outubro, 15h30 - ID16

Galeria da Biodiversidade (album): oportunidades para conteudos generativos 

__________________________________________________________________________________________________________________
Reunião #63 - 21 Outubro, 11h30 -  PJ2PJ3, PJ4
Adelino, Eduardo, João


# url final das imagens

_dominio_/records/_institution_/_collection_/_image_file_

https://ficheiros.inovatec.pt/records/1/1/Colecção_0001_f.jpg


# imagens associadas (para futuro)

Estrutura base de dados

# institution
id, name


# collection
id,  institution_id, name

# group (gaveta, pasta)

id, name, type, photo, name_clean

1_1_1_1_f.jpg
1_1_1_1_b.jpg

institution/collection/group/record_id_f.jpg

ABC_2345_f.jpg
Estrutura de URLs:

https://arquivo.inovatec.pt/fichas/_institution_/_collection_/_group_/_record_

https://arquivo.inovatec.pt/fichas/1/1/1/1


__________________________________________________________________________________________________________________

Reunião #62 - 19 Outubro, 14h30 -  PJ1, PJ2PJ3, PJ4
Adelino, João

__________________________________________________________________________________________________________________

Reunião #61 - 04 Outubro, 15h30 -  PJ1, PJ2PJ3, PJ4
Adelino, Eduardo, João

_____________________________________________________________________________________________________________

Reunião #60 - 21 Setembro, 12h -  PJ1, PJ2PJ3, PJ4
Adelino, Eduardo, João

1) Afinar arquivo.inovatec.pt 

Linha da ocorrência (joão)

Opção txt a partir do pdf no viewer (com highlight no txt) (joão)

Save do search (tabela xls) - jornal/pagina/coluna/data, link par apágina, termo pesquisado, excerto (joão)

Estatisticas por jornal e ano dos termos (button e não directo na pesquisa) (joão -já feito)

corrigir colunas vazias (adelino e joão)

autenticação  e autorização (geral, não por jornal ou outro item) (joão)

colocar e documentar no GitHub (adelino e joão)

2) incluir os jornais transmontanos (adelino)


1) online

2) offline


https://box.wolan.net/plenario-portugal-old.mp4 

https://box.wolan.net/assembleia_municipal_taxa.mp4 

__________________________________________________________________________________________________________________

Reunião #59 - 09 Agosto, 11h30 -   PJ2, PJ4
Adelino, Eduardo, João

__________________________________________________________________________________________________________________

Reunião #58 - 02 Agosto, 11h -  PJ1, PJ2PJ3, PJ4
Adelino, Eduardo, João

__________________________________________________________________________________________________________________

Reunião #57  - 19 Julho, 15h30 - PJ2, PJ4
Adelino, Eduardo, João



Dados de fichas




ficheiros.inovatec.pt/fichas/Colecção de fichas de ateneu de africa/01_01.jpg


01_01.jpg

pasta: coleccao_de_fichas
sub_pasta: sub_coleccao
nome ficheiro: gaveta_numeracao.jpg


estrutura de ficheiro:
instituicao / coleccao / gaveta_numeracao.jpg


exemplos:
- sociedade_de_geografia/zoologia/leoes/01.jpg
- ateneu/biblioteca/a/01.jpg

Modelo de tabela de instituição
id (int)
nome_instituicao (nome)
path_ficheiros (nome)


Modelo de tabela de coleccaotw
id (int)
nome_coleccao (nome)
instituicao_pai (id)
path_ficheiros (nome)


Modelo para aplicação de fichas
id (int)
instituição (id)
colecção (id)
gaveta (nome)
frente (link imagem/jpg)
frente_ocr (texto)
frente_tipo (texto, foto, desenho)
verso (link imagem/jpg)
verso_ocr  (texto)
verso_tipo (texto, foto, desenho)
metadados (notas, suporte para documentos associados, json)
tipo_escrita (dactilografado, manuscrito)


tabela 'texto_historico_editado'

id ficha_id texto

__________________________________________________________________________________________________________________

Reunião #56 - 12 Julho, 11h30 -  PJ2, PJ4, PJ3

Adelino, Eduardo, João

análise do progresso do protótipo local de análise de fichas

análise das estatísticas de resultados no arquivo.inovatec.pt


Notas sobre o layout das fichas da Botânica (mhnc):

https://docs.google.com/document/d/1APlXXlII7Y0GdJTQYMgTZvbjYgMw-5mzewjgEh0ZrxA/edit?usp=sharing

Tabelas com as características das imagens das 3 gavetas digitalizadas da Botânica (mhnc):

https://docs.google.com/spreadsheets/d/1CGDhFjJW2kmkgxrHg51OBOZLCsk8qfzr6zegazJa6y4/edit?usp=sharing

__________________________________________________________________________________________________________________

Reunião #55 - 05 Julho, 15h30 -  PJ2, PJ4, PJ3

Adelino, Eduardo, João

Revisão do estado da arte de 2022, dos vários serviços cloud, para extração de informação de fichas: https://docs.google.com/document/d/1VKDVBsi9v4TLHGSPqLE_KX0DvW5mqZl0CP9PGiZ8nrc/edit?usp=sharing 

Outra pesquisa para análise:

https://nanonets.com/blog/handwritten-character-recognition/

https://towardsdatascience.com/build-a-handwritten-text-recognition-system-using-tensorflow-2326a3487cd5


 Avaliação da correcção de erros pelo corrector ortográfico do google docs:

https://docs.google.com/document/d/1Ewg1_aIKwXWGAkZoWlIguqjsW-B3wkSURUF3nKSoSZA/edit?usp=sharing


Análise  de performance dos vários serviços de ocr nas fichas do Ateneu:

https://docs.google.com/document/d/1h_2PRf6UpgW6RGBOEOJTRls3YKbFKgEt4yFsgni1Cf0/edit?usp=sharing

https://docs.google.com/document/d/1VKDVBsi9v4TLHGSPqLE_KX0DvW5mqZl0CP9PGiZ8nrc/edit?usp=sharing

https://docs.google.com/spreadsheets/d/1R5w3nAGFfNIgoGkWGzhmLMCfFr89ELYTPoe9bPVhjfk/edit?usp=sharing


========================================================================================

Plano


A. fichas: ateneu, botânica, antropologia e zoologia

(0) carregar fichas (amostras) da botânica e antropologia para gphotos (accounts diferentes para poder fazer search) (para demonstração)

(1) Prototipos locais

  (i) Aplicação local (independente das fichas) para search a partir do txt do ocr pelo google AÍ. 

Layout tipo gphotos (layout). 

Opção ver txt associado á visualização da ficha digitalizada

Filtro de gavetas no search

Filtro de datas

  (ii) Editor local de fichas por operador humano: guardar ocr original e corrigido para calcular erros 

(2) Melhorar ocr de caligrafias específicas por ML machine learning

  (i) Criar dataset de erros que permita melhorar o ocr por técnicas de machine learning (ensinar caligrafias menos ortodoxas)

(3)  (i) colocar a consulta on-line


B. Jornais online

(i) Afinar arquivo.inovatec.pt 

Linha da ocorrência 

Opção txt a partir do pdf no viewer (com highlight no txt)

Save do search (tabela xls) - 2ª prioridade

Estatisticas por jornal e ano dos termos (button e não directo na pesquisa)

corrigir colunas vazias

autenticação  e autorização (geral, não por jornal ou outro item)

(ii) incluir os jornais transmontanos

_______________________________________________________________________________________________________________

Reunião #54- 04 Julho, 16h00 - PJ2, PJ4

Adelino, Eduardo, João

análise de fichas em vários serviços de OCR

interface ideal para pesquisa de fichas seria uma search box e resultados em imagens, como o Google Photos

========================================================================================

__________________________________________________________________________________________________________________

Reunião #53 - 29 Junho, 15h30 - PJ2, PJ4, PJ3

Adelino, Eduardo, João

revisão de papers e estado da arte

avaliação de estratégias, com e sem ML, para melhorar a detecção de texto manuscrito:

Plano:

(1) fichas ATENEU:

(i) Aplicação local para search a partir de ocr pelo google AÍ

(ii) Editor de fichas por operador humano: guardar ocr original e corrigido para calcular erros 

(iii) Criar datset de erros que permita melhorar o ocr por técnicas de machine learning (ensinar caligrafias específicas menos ortodoxas)

(2) fichas MUSEU: amostras de fichas de zoologia, botânica e antropologia. Identificar oportunidades de search.

(3) Afinar arquivo.inovatec.pt e incluir os jornais transmontanos

__________________________________________________________________________________________________________________

Reunião #52 - 28 Junho, 15h30 - PJ3

Adelino, Eduardo, João

demonstração da pesquisa aplicação Django/PostgreSQL

notas sobre colocação em produção em arquivo.inovatec.pt

definição de tarefas e detalhes a acertar

trabalho futuro aplicado a fichas e livros digitalizados

_______________________________________________________________________________________________________________

Reunião #51 - 27 Junho, 16h30 - PJ3

Adelino, João

demonstração e revisão de nova estrutura da aplicação Django e pesquisa em PostgreSQL

__________________________________________________________________________________________________________________

Reunião #50 - 20 Junho, 11h30 - PJ2, PJ4, PJ3

Adelino, Eduardo, João

resolvida questão relativa a PDF.js

demonstração da pesquisa com highlight a funcionar, após abrir o PDF

demonstração de pesquisa de terceiros, em que falhava o highlight devido a whitespace entre palavras no OCR

próximos passos: colocar na cloud em jornais.inovatec.pt

Links:

Virtual card processing, US Copyright office: https://copyright.gov/vcc/

Digitized card catalogue, Univ, Gent: https://lib.ugent.be/en/info/cards 

A framework dor focument processing solutions: https://ljvmiranda921.github.io/notebook/2022/06/19/document-processing-framework/ 

__________________________________________________________________________________________________________________

Reunião #50 - 09 Junho, 15h30 - PJ3

Adelino, Eduardo, João

discussão sobre qual base de dados a utilizar. Sqlite3 ou PostgreSQL

__________________________________________________________________________________________________________________

Reunião #49 - 08 Junho, às 15h - PJ3

Adelino, João

reunião de desenvolvimento

__________________________________________________________________________________________________________________

Reunião #48 - 03 Junho às 11h30 - PJ3

Adelino, Eduardo, João

demonstração de filtros

discussão sobre privacidade de ficheiros PDF offline vs online

definição de próximos passos (apontados no README.md) do github

__________________________________________________________________________________________________________________

Reunião #47 - 27 Maio às 15h30 - PJ3

Adelino, Eduardo, João

demonstração de pesquisa online e discussão tipos de pesquisa a suportar com SQLite

discussão de optimização de PDFs e configuração de Storage online para alojamento

João:

configurar storage VPS online com PDFs, e endereço arquivo.inovatec.pt

colocar a aplicação django a correr e documentar, com comandos no Makefile

__________________________________________________________________________________________________________________

Reunião #46 - 13 Maio às 17h30 - PJ3

Adelino, Eduardo, João

demonstração da pesquisa e ler o PDF em browsers:

search a funcionar e abre o documento, falta ir para a página especifica e fazer o higlight

discussão de como colocar em produção

__________________________________________________________________________________________________________________

Reunião #45 - 12 Maio às 17h00 - PJ3

Adelino, João

Integração com PDF.js e Django

__________________________________________________________________________________________________________________

Reunião #44 - 06 Maio às 15h00 - PJ3

Adelino, João

reunião rápida para discutir próximos passos de desenvolvimento web: filtragem, colocar em produção, colocar assets online, leitura de PDF no PDF.js

__________________________________________________________________________________________________________________

Reunião #43 - 05 Maio às 17h - PJ3

Adelino, João

resolução de bug de paginação de resultados de pesquisa em desenvolvimento web em Django

__________________________________________________________________________________________________________________

Reunião #42 - 28 Abril às 18h - PJ3

Adelino, João

estrutura de desenvolvimento em Django

__________________________________________________________________________________________________________________

Reunião #41 - 13 Abril às 15h30 - PJ3

Adelino, Eduardo; joão

exploração de um primeiro esquema de base de dados para pesquisa, em SQLite

indexação utilizando full text search

demonstração do GUI com full text search, com resultados a surgir em < 0.2ms, optimizado mais de 100x em relação à solução anterior

base de dados

Próximos passos:

pesquisa local está boa, apenas normalizar agora a base de dados protótipo

jornais online

instalação protótipo local no computador do Eduardo

investigar utilização de ML para reconhecimento de caligrafia

__________________________________________________________________________________________________________________

Reunião #40 - 1 Abril às 15h30 - PJ3

demonstração das optimizações ao motor de busca

demonstração do interface de pesquisa e visualização de resultados

discussão das vantagens/desvantagens de migração para uma estrutura de base de dados relacional, que suporte multiplos projectos (ex: jornais, fichas)

discussão de próximos passos

__________________________________________________________________________________________________________________

Reunião #39 - 25 Março às 11h30 - PJ3

analise dos desenvolvimentos da pesquisa

nextsteps:

estruturar em base de dados

elaborar um interface de drag and drop, que faça o OCR via Google Cloud Vision, mostrando o texto

discussão sobre se iniciar já uma convergência entre jornais e fichas, para haver uma aplicação all-in-one que suporte diversos tipos de projectos de digitalização

__________________________________________________________________________________________________________________

Reunião #38 - 18 Março às 11h30 - PJ3

10 anos de jornal analisados

ocupa cerca de 350GB externos, 2.6MB em TXT

pesquisa demorada:

exemplo: 'companhia nacional de caminhos' demora 139s (2.5min) a ser executada)

ideias de filtros:

filtros dentro de filtros

opção de poder gravar o search

nº de resultados por janela

poder seleccionar a publicação e o intervalo de anos

seleccionar a página dos resultados

exportar dos resultados

análise da ferramenta https://voyant-tools.org/ 

__________________________________________________________________________________________________________________

Reunião #37 - 11 Março às 11h30 - PJ3

Adelino, Eduardo, João

comparação de sincrono com asyncrono. local está rápido

revisão da aplicação desktop de pesquisa, que abre directamente no Chrome os PDFs com a palavra pesquisada em destaque

discussão da melhor forma de ter uma versão online da pesquisa.

__________________________________________________________________________________________________________________


Reunião #36 - 04 Março às 11h30 - PJ3

Adelino, Eduardo

análise de pedidos síncronos vs assíncronos à api da google

discussão de melhorias na aplicação local de pesquisa

análise de outras plataformas de tratamento documental digital:

__________________________________________________________________________________________________________________

Reunião #35 - 18 Fevereiro às 11h30 - PJ3 - (gravação zoom)

Adelino, Eduardo, João 

análise da optimização de pedidos de OCR ao Google Cloud Vision

alteração de processos de OCR

Processo Antigo:criar PDF de páginas de cada issue -> segmentar colunas para imagens -> criar PDF de imagens -> efectuar pedido para Google Cloud Vision do OCR -> fazer download do JSON

Processo Novo:criar PDF de páginas de cada issue -> segmentar colunas para imagens -> criar PDF de imagens -> upload para Google Cloud Storage -> efectuar pedido do Google Cloud Vision OCR a partir dos ficheiros já alojados no Google Cloud Storage  -> fazer download do JSON


JSON retornado por OCR efectuado no Google Cloud Storage tem estrutura diferente do feito localmente- revisão da estrutura de JSON do OCR efectuado localmente vs Google Cloud Storage.- o retornado via Google Cloud Storage é 1/3 do tamanho da resposta do que é feito localmente

prioridade é colocar a pesquisa de vários anos operacional, depois optimiza-se

__________________________________________________________________________________________________________________

Reunião #34 - 11 Fevereiro às 11h30 - PJ3 - (gravação zoom1) (gravação zoom2

Adelino, Eduardo, João 

Discutiu-se a pesquisa efectuada do estado da arte reconhecimento de caracteres manuscritosRevisão dos testes desenvolvidos, com ferramentas cloud da Google e Microsoft Azure.Abordou-se como melhorar o copy/paste de documentos PDF gerados com texto em hOCR.

https://docs.google.com/document/d/1nttjhsdPdkJZWfIXx1Oxd39883tgG7PBcp9VC1ayF6w/edit?usp=sharing


__________________________________________________________________________________________________________________

Reunião #33 - 22 Novembro às 11h30 -  PJ3 -  (gravação zoom1) (gravação zoom2)

Adelino, Eduardo, João

Adelino esteve na Biblioteca do Ateneu Comercial do Porto a digitalizar algumas fichas

revisão das funcionalidades da Google Cloud Vision API via Document AI

definição de abordagem de recorte em 3 das fichas, para separar o conteúdo e melhor processamento

abordagem alternativa: utilizar o GCV OCR normal e depois analisar o JSON

__________________________________________________________________________________________________________________


Reunião #32 - 12 Novembro às 15h00   PJ2 , PJ3 - (gravação zoom)

Adelino, Eduardo, João

discutir o foco entre pedidos asycronos e software sequencial que temos

foco em converter edições ou multiplas edições

investigação a ser efectuado sobre fichas manuscritas

ainda falta resolver o copy/paste do Preview e Safari (problema de colunas)

__________________________________________________________________________________________________________________


Reunião #31 - 11 Novembro às 15h00 -  PJ3 

Adelino, João

processo asyncrono de converter vários jornais ao mesmo tempo

se podia ser: fila de espera, threads, asincrono

__________________________________________________________________________________________________________________


Reunião #30 - 5 Novembro às 11h30 -  PJ3 - (gravação zoom)

Adelino, Eduardo, João 

demonstração da resolução da layer de texto dos PDFs não estar selecionável (mudou-se de tipo de letra embeded, para Courier)

Próximos objectivos:

text search sobre jornais completos

fichas de catálogos:

e estratégias:

processar JSON

treinar AI Azure ou Google para identificar (investigar para testar diferenças entre as duas plataformas)

__________________________________________________________________________________________________________________


Reunião #29 - 19 Outubro às 15h00 - PJ3

Adelino, João

identificar erros de PDF entre software de leitura

__________________________________________________________________________________________________________________


Reunião #28 - 15 Outubro às 11h3 - PJ3 (gravação zoom1) (gravação zoom2)

Adelino, Eduardo, João

flowcharts (1 e 2) do Adelino de processo

análise dos tamanhos de ficheiros (artefactos)

análise de diferenças entre shell pipe e save directo, do hocr-pdf

estratégia de como encontrar um método para um PDF final suportar Chrome, Acrobat e Preview

tabela comparativa

versão web: fazer upload de um PDF de jornal, receber uma versão pesquisável

Adelino e João reunem na próxima 3ª, dia 19/Outubro

__________________________________________________________________________________________________________________


Reunião #27 - 24 Setembro às 11h30  - PJ3 - (gravação zoom1) (gravação zoom2)

Adelino, Eduardo, João

actualização de progressos na geração de PDF

análise de como juntar os hOCR das várias colunas de uma página, de modo a ter uma página completa passível de ser pesquisável

Prioridade de motores de rendering:

Chrome

Acrobat

Preview


hocr-pdf --savefile output.pdf .


Fazer:

identificar o porquê de haver discrepâncias no render entre Acrobat, Preview e Chrome. Deixar documentado em tabela

hocr merge de várias colunas (testar manualmente e depois fazer código para merge dos HTML)

pdf merge de várias páginas

__________________________________________________________________________________________________________________


Reunião #26 - 23 Setembro às 11h30 - PJ3

Adelino, João

desevolvimento de questões relativas a gerar PDF a partir do hOCR

__________________________________________________________________________________________________________________


Reunião #25 - 16 Setembro às 11h30 - PJ3 (gravação zoom1) (gravação zoom2)

Adelino, Eduardo, João

agendada reunião com Adelino para próxima 3ª trabalhar na geração de PDF e organizar no GitHub

Ordem prioridades:

ter os primeiros 10 anos dos dois jornais

pesquisa a funcionar

revisão do PageViewer:

tesseract detecta melhor as alturas das letras individualmente. hOCR feito através do GCV parece que dá uma altura maxima e minima constante baseada na linha em si e não nas palavras individualmente

Rever:

rever código que gera hOCR (featurebreaks e underscores)

rever porque é que o hocr-to-pdf.py está a gerar um desfazamento da layer de hOCR com a imagem, quando o PageViewer dá um overlay correcto

ter 10 anos de cada jornal pesquisáveis

__________________________________________________________________________________________________________________


Reunião #24 - 9 Setembro às 11h30 - PJ3 (gravação zoom1) (gravação zoom2)

Adelino, Eduardo, João

revisão do hOCR

problema poderá estar na conversão para hOCR ou hOCR/imagem para PDF

testar Page Viewer e hOCR.js para identificar se o problema está no ficheiro hOCR gerado

abertura no Page Viewer (32bit em Windows) indicou que a conversão de coordenadas do Google Cloud Vision para hOCR está correcta

__________________________________________________________________________________________________________________


Reunião #23 - 7 Setembro às 15h00  - PJ3

Adelino, João

discussão sobre abordagens para avançar com a questão de produzir um melhor hOCR

GCV2hocr > úlitma linha é feito copy/paste como última

__________________________________________________________________________________________________________________


Reunião #22 - 2 Setembro às 11h30 - PJ3(gravação zoom1) (gravação zoom2)

Adelino, Eduardo, João

revisão dos avanços do merge do hOCR com imagem para gerar o PDF:

merge já se faz com sucesso, contudo o copy/paste não vem ordenado, devido a overlays de bounding boxes.

também porque o PDF assume no copy/paste que elementos em overlay, que estejam mais à esquerda, tem prioridade

Eduardo: testar com outras páginas de livros mais recentes:

testar código no livro do nascimento

testar código num livro recente


Adelino demonstra a ferramenta de pesquisa de texto que desenvolveu em Python:

Melhorias: possibilidade de ser um search por combined search AND, OR, NOT


A fazer:

testes de hOCR

melhor pesquisa

__________________________________________________________________________________________________________________


Reunião #21 - 13 Agosto às 11h30 - PJ3 (gravação zoom1) (gravação zoom2)

Adelino, Eduardo, João

análise do progresso efectuado com a conversão hOCR e merge imagem/OCR para PDF

progresso do João não foi com muito sucesso

versão anterior do Adelino gerava, embora com algumas questões: coordenadas erradas, sem espaços entre palavras no copy/paste, 

Processo de tratamento:imagem  =>  escalar + optimização => Google OCR  =>  hOCR => (hOCR + imagem)   =>  PDF pesquisável


Adelino demonstra:

 a possibilidade de utilizar um corpus para correcção de texto.

ferramenta de search em Python, com GUI


Eduardo demonstra:

análises que fez aos resultados do OCR, para encontrar padrões e erros

https://docs.google.com/document/d/1AO4r24bMtDmAjyXRdcJ6Md-wRdTpRfhrp5_RDjJQl7g/edit?usp=sharing

https://docs.google.com/spreadsheets/d/17qI3xfAOaOx743c_hUJm5XvxmfQxs1chTfJucB5ogZ0/edit#gid=113881254 


Próximos passos:

escalar as ferramentas para processar não só uma única página digitalizada, mas mais issues

melhor visualizações de erros (análises do Eduardo + visualizações Adelino)

__________________________________________________________________________________________________________________


Reunião #20 - 06 Agosto às 11h30 - PJ3 (gravação zoom1) (gravação zoom2)

Adelino, Eduardo, João

João partilhou o progresso na conversão de hOCR. Conseguiu já gerar o ficheiro hOCR, actualizar o código de merge para PDF, contudo ainda tem de:

realizar o escape de caracteres como &, pois o merge lê o ficheiro hOCR/HTML, como XML

linhas duplicadas no hOCR que é exportado

merge não está operacional


Adelino:

Inserção dos valores de confiança de cada caracter, devolvidos na resposta JSON da google, na tabela de comparação entre texto original (ocr da google) e texto corrigido manualmente.

demonstração de ferramenta para visualização e localização de caracteres na imagem original através de tabela de comparação.


Próximos passos:

Criação de tabela de comparação sem inclusão de espaços/quebras de linhas, quebras de parágrafos e hífens

aplicação de um motor de busca sobre o texto devolvido pelo OCR da google e identificação do local da expressão na imagem original.

Testar a submissão de imagens de texto editadas de modo a corrigir as "patologias" identificadas, e criar tabelas comparativas com texto corrigido manualmente.

__________________________________________________________________________________________________________________


Reunião #19 - 29 Julho, às 16h  - PJ3(gravação zoom1) (gravação zoom2

Adelino, Eduardo, João

João partilhou o progresso na conversão de hOCR

Revisão da análise que o Eduardo fez aos erros de OCR (patologias: doc)

categorização do tipo de erros

discussão de estratégias para corrigir erros

Adelino partilhou papers de estratégias de correção de erros de jornais finlandesas

https://drive.google.com/file/d/1dP_ZiM8ae716V2E_8wZO_Y5OHkv1hnZ2/view 

https://drive.google.com/file/d/111UTI6ELaU2Wca-Yn_IpJoECGtFx6Ozs/view 

Passos seguintes:

Adelino: vai experimentar imagens corrigidas e efectuar testes/avaliações

João: vai completar o hOCR

__________________________________________________________________________________________________________________


Reunião #18 - 23 Julho, às 11h30 - PJ3 (gravação zoom1

Adelino, Eduardo, João

João apresentou os desenvolvimentos que tem efectuado no conversor Google Cloud Vision para hOCR: https://docs.google.com/document/d/16vLaVtQJeRNFzcjj2cTjUy2OhO4jVBbddjG45yV5BZM/edit 

Esteve-se a analisar a estrutura do que retorna o Google Cloud Vision, e as diferenças entre as mesmas: Exemplo: algumas estruturas retornam texto e palavras completos, outros não.

Utilização das ferramentas de análise de resultados do JSON da Google, para analisar alguns testes

Analisou-se um vídeo da equipa de Arquivos do NYTimes

__________________________________________________________________________________________________________________


Reunião #17 - 15 Julho, às 11h30  - PJ3(gravação zoom1)

Adelino, Eduardo, João

Junção das respostas JSON isoladas de cada coluna de texto numa só 

de modo a constituirem a resposta da página completa.

Comparação dos resultados de páginas enviadas com e sem segmentação.

Os resultados são melhores na confiança das respostas tanto dos simbolos (ver) como das palavras (ver).

As quebras de linha, hifens e parágrafos, são detectados com muito maior eficácia (ver).

__________________________________________________________________________________________________________________


Reunião #16 - 2 Julho, às 16h30 - PJ3 (gravação zoom1) (gravação zoom2)

Adelino, Eduardo, João

__________________________________________________________________________________________________________________


Reunião #15 - 28 Junho, às 16h30

Adelino, Eduardo, João

Discussão sobre outros métodos de segmentação das colunas de texto

Identificação e ordenamento de colunas de texto

_________________________________________________________________________________________________________________


Reunião #14 - 2 Junho

Adelino, João

rever código

__________________________________________________________________________________________________________________


Reunião #13 - 28 Maio, às 17h30 - PJ3 (gravação zoom 1) (gravação zoom 2)

Adelino, Eduardo, João

João mostrou a estrutura de código que fez no GitHub

https://github.com/inovatecpt/ocr

Adelino e João reúnem na próxima semana para organizar o código no GitHub

 Tarefas João:

hocr e requests Google

__________________________________________________________________________________________________________________


Reunião #12 - 21 Maio, às 17h30 - PJ3 (gravação zoom)

Adelino, Eduardo, João

João fez:

Código Python de juntar de imagens em PDFs, a partir de pastas

PDF merge de PDFs únicos que estejam numa pasta

Continua a investigar como processar melhor o JSON que a google retorna e converter para hOCR. Tem de acabar de escrever o código para fazer os pedidos à Google sem usar bibliotecas

A fazer na próxima semana (João terá mais tempo)

Organização do repositório

Documentação

Integrar o código que fez com o que o Adelino tem feito


Pedido João: partilhar as imagens de trabalho

João vai fazer: um diagrama do processo

__________________________________________________________________________________________________________________


Reunião #11 -  13 Maio, às 17h30 - PJ3 (gravação zoom)

Adelino, Eduardo, João


João fez:

criar estrutura inovatec no GitHub

estrutura de código em estrutura modular independente:

PDF merge (juntar imagens originais num único PDF, como ZIP)

Settings gerais (ex: token de acesso ao Google, nível de aumento de imagem, etc )

*Melhorar Imagem (melhorar a resolução da imagem)

*Segmentar Imagem (cortar colunas)

*Google OCR (efetuar o OCR via Google Cloud, juntar colunas)

*Estatísticas (calcular estatísticas de OCR)

Conversor hOCR (para o texto ser depois possível de juntar com PDF final)

PDF convert (juntar imagens + hOCR, para haver um PDF final pesquisável)


    Azul: por desenvolver (João)

   Laranja: experiências já efectuadas (João)

Verde: Adelino



Por completar:


Adelino:


A fazer:


__________________________________________________________________________________________________________________


Reunião #10, 12 Maio, às 11h30 - PJ3

Adelino, João


__________________________________________________________________________________________________________________


Reunião #9, 28 Abril, às 17h - PJ3(gravação zoom)

Adelino, Eduardo, João






__________________________________________________________________________________________________________________


Reunião #8, 21 Abril, às 17h - PJ3 (gravação zoom 1) (gravação zoom 2)


__________________________________________________________________________________________________________________


Reunião #7, 19 Abril, às 10h-11h30- PJ3



hOCR tools: https://github.com/ocropus/hocr-tools 


- acertar estrutura do código, assente na ordem de tarefas que temos para desenvolver:

    - 1 pasta para ficheiros/imagens

    - 1 pasta para código, separada por tarefas e funções

    - 1 pasta para outputs

    - 1 ficheiro de settings na raiz do diretório

    - 1 README

__________________________________________________________________________________________________________________


Reunião #6 - 12/04/2021 - PJ3 (gravação zoom 1) (gravação zoom 2)


__________________________________________________________________________________________________________________



Reunião #5 - 05/04/2021 - PJ3 (gravação zoom 1) (gravação zoom 2)


__________________________________________________________________________________________________________________



Reunião #4 - 29/03/2021 - PJ3


__________________________________________________________________________________________________________________


Reunião #3 - 22/03/2021 - PJ3 (gravação zoom)


__________________________________________________________________________________________________________________


Reunião #2 - 15/03/2021 - PJ3 


__________________________________________________________________________________________________________________



Reunião #1 - 11/03/2021 - PJ3


https://azure.microsoft.com/pt-pt/services/cognitive-services/computer-vision/ 

https://cloud.google.com/automl 

https://towardsdatascience.com/ocr-for-scanned-numbers-using-googles-automl-vision-29d193070c64 

https://towardsdatascience.com/document-classification-with-custom-vision-handwriting-typed-text-and-signatures-d1f75dee21d3 

https://github.com/microsoft/VoTT 


__________________________________________________________________________________________________________________