by D. Bilardello, F. Melis, E. Prato for the course project “Computer vision and Cognitive Systems”
A novel way to explore art galleries, leveraging on various computer vision and AI-based techniques. We show how a structured elaboration pipeline combined with a well-integrated mixed reality scene can achieve very good results and provide a new way of exploring museums. We employed plenty different techniques and strategies, exploring their advantages and their drawback. Our Visual Museum Augmented Reality Tour, VMART, uses YOLO object detection to localize paintings and adjust perceptive distortion with classical computer vision methods. We then use DINOv2 to create embeddings used to help the painting construction and consent the retrieval. Finally, we use a modified EfficientNet finetuned for style and genre classification. We designed a new way of exploring a museum, by consenting a direct interaction between the user and the paintings, with information and similar artwork displayed on-demand.
Paper link: https://escanortargaryen.dev/vmart/paper.pdf
Presentation slides: https://escanortargaryen.dev/vmart/VMART-presentation.pdf
- Download Wikiart dataset.
- Clone this repository
- Create a virtual environment and install the requirements
- Download the weigths for the classification and the index file for retrieval.
- Run all the servers
/server/server.py/detection/model/inference.py/transformation/transform.py/features/DINOv2fex.py/features/DINOv2ret.py/classification/server.py
- Install the Unity App on your Meta quest 3/3s headset.
- Run the app.
- In order to perform correctly the retrieval, you need to have the Wikiart dataset and retrival index in the same device.
- There are some config files that contains some paths that you need to change according to your local setup.
detection/config/config.yamlclassification/config/config.yaml
- Edit the
all_paintings.jsonwith your absolute path of the dataset. - For easy connection between headset and server, we recommend using the same network on both devices.
- Depending on the environment, you may have to change the communication IP addresses of the services and within the Unity app.
Long video as we test it in the Galleria Estense: https://youtu.be/lxSlbR4vHUM
Special thanks to:
- our professors R. Cucchiara and L. Baraldi.
- E. Turri Phd. @ UNIMORE
- Galleria Estense

