שבוע 5 — מרחב הצורות
שני מטבעות — אחד גדול פי שניים ומסובב ב-45°.
פתרון: יישור פרוקרוסטס (GPA — Generalized Procrustes Analysis)
הסרת גודל + מיקום + סיבוב — ונשארת רק הצורה.
הערה
התהליך איטרטיבי: מחשבים ממוצע → מיישרים → מחשבים שוב, עד להתכנסות.
\[CS = \sqrt{\sum_{i=1}^{k} \left[(x_i - \bar{x})^2 + (y_i - \bar{y})^2\right]}\]
גודל-צנטרואיד — אותה צורה, גדלים שונים
import numpy as np
from morphops import gpa
# landmarks.shape = (35, 16, 2) — 35 מטבעות, 16 ציוני דרך
landmarks = np.load("coins_landmarks.npy")
# יישור GPA — מחזיר מילון
result = gpa(landmarks)
aligned = result['aligned'] # ציוני דרך מיושרים
mean_shape = result['mean'] # צורה ממוצעת
print(f"מספר מטבעות: {len(aligned)}")
print(f"ציוני דרך: {aligned.shape[1]}")
print(f"טווח x לאחר GPA: {aligned[:,:,0].min():.3f} עד {aligned[:,:,0].max():.3f}")יישור פרוקרוסטס — 35 מטבעות רומיים
שמאל: כל מטבע במיקום ובגודל שלו. ימין: כולם מיושרים — רק הצורה נשארת.
ציוני דרך מיושרים — 35 מטבעות
כל נקודה = ציון דרך אחד על מטבע אחד. הצבע = קיסר. הנקודה הלבנה = ממוצע.
נשמר: - הצורה היחסית - יחסים בין ציוני דרך - שונות הצורה בין פרטים
מוסר: - גודל מוחלט - מיקום בחלל - סיבוב
עצה
גודל-צנטרואיד נשמר בצד לניתוח אלומטריה (קשר צורה-גודל) בנפרד.
לאחר GPA: נתוני צורה מיושרים ב-32 ממדים (16 נקודות × x,y).
השלב הבא: הפחתת ממדים → 2 צירים עיקריים.
צורה בזמן — שי גורדין, אוניברסיטת אריאל