News media often captures crime scenes visually through videos or images, but matching these scenes to actual locations is challenging. Automating this process can enhance crime scene analysis by quickly identifying and verifying where events occurred. Scene matching provides law enforcement and researchers with a powerful tool for reconstructing incidents or verifying claims made in reports.
data-collection: Contains Google Street View Scraper (street_view_collector.py)scraper: Contains LLM + VLM scraper to download images/videos from articles (llm_scraper.py)model: Contains geolocation model (informed_random_walk) and CMC Curve evaluation (evaluate.py)data: Contains scraper images (/images), Cleaned ground truth images (/ground_truth_images), Street View Images (/streetview)DATASET_body_found_llm.csv: Article scraper outputgoogle_body_found_websites.csv: Additional article scraper outputTEST_DATASET.csv: Cleaned test datasetstreetview.csv: Streetview datasetFINAL_DATASET.csv: Final dataset with matched geolocations
results: Contains CMC Curve Plot filesutils: Contains useful helper functions (helper.py)environment.yml: Dependencies
- Create environment
conda env create -f environment.yml- Activate environment
conda activate smacs- Update environment
conda env update -f environment.yml- Add a
.envfile to every sub-directory within the project
.envfile contains the Google API Keys, please contact us to have access to these keys (cannot push API keys to GitHub)- Add
.envfile to the following folders:/data_collection,/model,/scraper,/utils
- Update
environment.ymlif new dependencies are introduced
- navigate to project root directory
conda env export --no-builds > environment.yml- If you want to scraper articles, please run ollama first (Only necessary for scraping)
ollama serve- In new terminal
python3 main.py
