Visualizziamoci annotati in 2D

Utilizziamo Pytorch con le suite Scikit e Pandas per manipolare un dataset e visualizzare dei punti definiti sui volti. Tkinter e ‘ la gui che ci permettera di tenere a schermo il nostro lavoro.
Il codice funziona in questo modo, importiamo un dataset con i landmark del viso gia ‘ pronti e poi li visualizziamo con la funzione Plotter.

Vediamo del codice esempio con riferimenti al codice esempio sul sito pytorch:

from __future__ import print_function, division
import os
import torch
import pandas as pd
from skimage import io, transform
import numpy as np
import matplotlib.pyplot as plt
import tkinter as tk
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms, utils

window = tk.Tk()

import warnings
warnings.filterwarnings(“ignore”)

plt.ion() # interactive mode

landmarks_frame = pd.read_csv(‘data/faces/face_landmarks.csv’)

n = 65
img_name = landmarks_frame.iloc[n, 0]landmarks = landmarks_frame.iloc[n, 1:]landmarks = np.asarray(landmarks)
landmarks = landmarks.astype(‘float’).reshape(-1, 2)

print(‘Image name: {}’.format(img_name))
print(‘Landmarks shape: {}’.format(landmarks.shape))
print(‘First 4 Landmarks: {}’.format(landmarks[:4]))

def show_landmarks(image, landmarks):
“””Show image with landmarks”””
plt.imshow(image)
plt.scatter(landmarks[:, 0], landmarks[:, 1], s=10, marker=’.’, c=’r’)
plt.pause(0.001) # pause a bit so that plots are updated

plt.figure()
show_landmarks(io.imread(os.path.join(‘data/faces/’, img_name)),
landmarks)
plt.show()
window.mainloop()

Links
https://pytorch.org/tutorials/beginner/data_loading_tutorial.html