Oumar Ibrahim and Mohamad Khairy
Department of Computer Engineering, University of Sharjah, Sharjah, UAE
u22200741@sharjah.ac.ae | mishak@sharjah.ac.ae
Tip
Work in progress: The code will be updated as the research progresses.
filography/
├── analysis/ # Graph scripts for the benchmark report
├── config/ # Pipeline and recognition study settings
├── dataset/ # COCO val2017 images and labels (downloaded, not in git)
├── docs/ # Algorithm notes and findings
├── models/ # YOLO nano weights
├── native/ # threader C++ source and build script
├── recognition/ # Human recognition study: dataset builder, web app, scoring
├── reports/ # Benchmark reports and figures
├── src/ # Python benchmark pipeline
├── tests/ # Automated tests
├── build/ # Compiled threader (generated, not in git)
├── results/ # Experiment outputs (generated, not in git)
└── runs/ # YOLO training runs (generated, not in git)
Python 3.12 and Windows with the MSVC C++ build tools.
pip install -r requirements.txt
native\build.bat
python src/download_dataset.py -n 5000native\build.bat compiles build\threader.exe.
Run the threading benchmark. This trains one YOLO model per algorithm and thread count, and needs a CUDA GPU:
python src/run_threaded_experiment.pyAdd --daily-pause to stop GPU work between 15:00 and 23:00 each day. Results go
to results/. Copy threaded_benchmark_results.md and .csv to reports/
to publish them, then redraw the figures:
python analysis/make_graphs.py
python analysis/plot_normalised.pyThreader output is deterministic: the same seed gives byte-identical PNGs.
Dataset, model selection and evaluation menus:
python src/run_terminal.pypytest tests