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