package association; import hypothesis_validation.HoG_Score; import java.awt.image.BufferedImage; import java.util.ArrayList; import tracking.TrackRegion; public class Probabilities { /* Probability that a detected sub-image {v2} in the current frame is the same text object as a sub-image {v0} in the previous frame. */ public double prob_a ( BufferedImage V0, /* Sub-image in previous frame. */ BufferedImage V2, /* Detected sub-image in current frame. */ double sigma, ArrayList HPAR ) { HoG_Score score = new HoG_Score(); double[] e0 = score.get_descriptor (false, V0, HPAR); double[] e2 = score.get_descriptor (false, V2, HPAR); double dist2 = 0; for (int i = 0; i < e0.length; i++) { double d = e0[i] - e2[i]; dist2 += d*d; } obs.normalize_histogram(histo2); return Math.exp (-0.5*dist2/(sigma*sigma)); } public double prob_p (TrackRegion A1, TrackRegion A2, double sigma) { double dx = A2.get_Cx() - A1.get_Cx(); double dy = A2.get_Cy() - A1.get_Cy(); double d2 = dx*dx + dy*dy; double prob = Math.exp (-d2/(2*sigma*sigma)); return prob; } public double prob_s (TrackRegion A1, TrackRegion A2, double sigma) { double dUx = A2.get_Ux() - A1.get_Ux(); double dUy = A2.get_Uy() - A1.get_Uy(); double dVx = A2.get_Vx() - A1.get_Vx(); double dVy = A2.get_Vy() - A1.get_Vy(); double d2 = dUx*dUx + dUy*dUy + dVx*dVx + dVy*dVy; double prob = Math.exp (-d2/(2*sigma*sigma)); return prob; } }