Skip to content

Totalização de Votos por Visão Computacional.

Notifications You must be signed in to change notification settings

juliorodrigues07/cv-voting

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python 3.8.10

Totalizador de VVPATs por Visão Computacional

Construção de uma ferramenta para totalização de registros impressos de voto de forma auditável, utilizando visão computacional e primitivas da criptografia (Projeto de Iniciação Científica - DCOMP - UFSJ).

Requisitos

  • Python 3.6 ou superior e gerenciador de pacotes pip:

    sudo apt install python3 python3-pip build-essential python3-dev
    
  • Biblioteca OpenCV:

    pip install opencv-python
    
  • Biblioteca PyCryptodome:

    pip install pycryptodomex
    
  • Biblioteca python-barcode:

    pip install python-barcode
    
  • Biblioteca qrcode:

    pip install qrcode[pil]
    
  • Biblioteca numpy:

    pip install numpy
    
  • Para instalar todas as dependências:

    ./install_dependencies.sh
    

Software

Módulos Funcionais

  • digitalSignature.py
  • electionConfiguration.py
  • ellipticCurve.py
  • geradorBoletas.py
  • geradorVotos.py
  • imprimeResultado.py
  • readVote.py
  • voteMarking.py
  • voteTotalizationAndVideoRecording.py
  • voteTotalizationByCamera.py
  • voteTotalizationByVideo.py

Execução

Módulo electionConfiguration.py:

python3 electionConfiguration.py
  • Exemplo de entrada (*):

    Teste
    DCOMP
    3
    01/01/3022
    12:00
    03/01/3022
    12:00
    Cargo 1
    1
    2
    Cargo 2
    2
    1
    Cargo 3
    3
    3
    dcomp
    sjdr
    
  • (*) Devem existir arquivos JSON contendo informações sobre os candidatos e eleitores, assim como as informações dos cargos devem ser compatíveis com os mesmos para que a eleição seja configurada de forma correta.

Módulo geradorVotos.py (*):

python3 geradorVotos.py
  • (*) Deve existir uma eleição já cadastrada (por consequência um layout de boleta configurado) para que se possa simular uma escolha de voto isolada.

Módulo readVote.py (*):

python3 readVote.py
  • (*) Deve existir previamente uma boleta configurada (e possivelmente com votos marcados) para que esta possa ser lida de forma independente.

Módulo voteTotalizationAndVideoRecording.py (*):

python3 voteTotalizationAndVideoRecording.py
  • (*) Deve existir uma eleição já configurada e também escolhas de voto no diretório de urna, para que se possa aplicar os processos de totalização por diretório ou geração do vídeo de auditoria.

Módulo voteTotalizationAndVideoRecording.py (*):

python3 voteTotalizationByVideo.py
  • (*) Deve existir uma eleição já configurada e um vídeo de auditoria previamente gerado contendo as escolhas de voto para realizar a totalização por vídeo.

Outros

  • Artigo curto sobre o projeto, publicado nos Anais Estendidos do Simpósio Brasileiro de Segurança da Informação e de Sistemas Computacionais (SBSeg 2022)