busting-the-ballot

Corresponding repo for "Busting the Ballot with Commodity Printers: Voting Meets Adversarial Machine Learning"

https://github.com/calebmanicke/busting-the-ballot

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.1%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Corresponding repo for "Busting the Ballot with Commodity Printers: Voting Meets Adversarial Machine Learning"

Basic Info
  • Host: GitHub
  • Owner: CalebManicke
  • Language: Python
  • Default Branch: main
  • Size: 196 KB
Statistics
  • Stars: 2
  • Watchers: 4
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed 9 months ago
Metadata Files
Readme Citation

README.md

Busting-the-Ballot

Corresponding repo for "Busting the Ballot with Commodity Printers: Voting Meets Adversarial Machine Learning"

Repo Overview

  • Models: Architecture code for SVM, SimpleCNN, ResNet and Twins transformer presented in paper. Denoising Autoencoder architecture is also present here.
  • Train: Training pipeline with hyperparameters for each model across each dataset.
  • Utilities: Helper functions compiled for modifying dataloaders, evaluating model accuracy, converting dataloaders to images, etc.
  • ImageProcessing: Pipeline for creating pages then extracting bubbles from said pages post-print. Broken down into three parts:
    1. ExtraSpacePNG.py takes a directory of bubbles and creates .png pages for printing.
    2. ImageRegistration.py registers a page post-print and scan and aligns it with the pages pre-print.
    3. ExtractBubblesFromWhitespacePNG.py takes registered pages and extracts bubbles.
  • Twins: Dependent files for training and running Twins model, taken from: https://github.com/Meituan-AutoML/Twins

Getting Started

Before training, the voter dataset needs to be downloaded. 1. Run '''python3 LoadVoterData.py''' in Utilities. This should create a folder titled '''data''' in your Utilities folder. 2. Run '''python3 VoterLabClassifierFunctions.py''' in Utilities. This should create two folders 'TrainedRGBVoterLabModels' and 'TrainedGrayscaleVoterLabModels' in your Train folder. Inside these folders are 'TrainLoaders.th' and 'TrainGrayscaleLoaders.th' which contain the training and validation loaders for your RGB and Grayscale models respectively.

Requirements

.yml with necessary libraries are provided. It is worth noting that most dependent libraries are for the Twins model.

System Overview

Training, validation, and image processing (as shown in the paper) were done using a NVIDIA TITAN RTX and NVIDIA GeForce RTX 4090.

Owner

  • Login: CalebManicke
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.0.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Manicke"
  given-names: "Caleb"
  orcid: "https://orcid.org/0009-0007-6409-5343"
- family-names: "Rathburn"
  given-names: "Ethan"
  orcid: "https://orcid.org/0000-0002-5437-2489"
- family-names: "Ahmad"
  given-names: "Sohaib"
  orcid: "https://orcid.org/0000-0001-6720-0507"
- family-names: "Stamatakis"
  given-names: "Nicholas"
  orcid: "https://orcid.org/0009-0000-1440-7192"
- family-names: "Verma"
  given-names: "Aayushi"
  orcid: "https://orcid.org/0000-0003-2396-4569"
- family-names: "Fuller"
  given-names: "Benjamin, W."
  orcid: "https://orcid.org/0000-0001-6450-0088"
- family-names: "Michel"
  given-names: "Laurent, D."
  orcid: "https://orcid.org/0000-0001-7230-7130"
- family-names: "Mahmood"
  given-names: "Kaleel"
  orcid: "https://orcid.org/0000-0002-7672-4449"
title: "Busting the Ballot"
version: 1.0.0
doi: 10.5281/zenodo.15458710
date-released: 2025-05-28
url: "https://github.com/CalebManicke/Busting-the-Ballot"

GitHub Events

Total
  • Watch event: 1
  • Delete event: 2
  • Push event: 2
  • Public event: 1
  • Fork event: 1
Last Year
  • Watch event: 1
  • Delete event: 2
  • Push event: 2
  • Public event: 1
  • Fork event: 1