- Created `requirements.txt` to specify necessary packages for the project, including PyTorch, torchvision, Pillow, matplotlib, tqdm, numpy, python-dotenv, and ImageHash.
- Introduced `dino_image_matching.py` for generating image embeddings and calculating cosine similarity.
- Added `download_images.py` to download images from URLs specified in an Excel file, with support for parallel downloads and retries.
- Created `generate_pairs_csv.py` to generate a CSV file of image pairs for training, including positive and negative pairs based on image hashes.
- Implemented dataset and augmentation pipeline in `dataset.py` for handling image pairs and heavy augmentations.
- Created a Siamese Network architecture in `model.py` with shared weights and contrastive loss functions.
- Developed training script in `train.py` to facilitate model training with validation and early stopping.
- Added inference capabilities in `inference.py` for comparing images and finding matches.
- Included a perceptual hashing utility in `p_hash.py` for quick image similarity checks.