|
@@ -16,13 +16,6 @@ namespace bbiwarg.Recognition.Tracking
|
|
Lost,
|
|
Lost,
|
|
}
|
|
}
|
|
|
|
|
|
- struct SimilarityContainer<T> where T : TrackableObject
|
|
|
|
- {
|
|
|
|
- public float similarity;
|
|
|
|
- public TrackableObjectHistory<T> history;
|
|
|
|
- public T detectedObject;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
class Tracker<T> where T : TrackableObject
|
|
class Tracker<T> where T : TrackableObject
|
|
{
|
|
{
|
|
public List<TrackableObjectHistory<T>> Histories { get; private set; }
|
|
public List<TrackableObjectHistory<T>> Histories { get; private set; }
|
|
@@ -87,8 +80,8 @@ namespace bbiwarg.Recognition.Tracking
|
|
while (similarities.Count > 0)
|
|
while (similarities.Count > 0)
|
|
{
|
|
{
|
|
SimilarityContainer<T> maxSimilarity = similarities[0];
|
|
SimilarityContainer<T> maxSimilarity = similarities[0];
|
|
- TrackableObjectHistory<T> history = maxSimilarity.history;
|
|
|
|
- T detectedObject = maxSimilarity.detectedObject;
|
|
|
|
|
|
+ TrackableObjectHistory<T> history = maxSimilarity.History;
|
|
|
|
+ T detectedObject = maxSimilarity.DetectedObject;
|
|
history.addObjectToHistory(detectedObject);
|
|
history.addObjectToHistory(detectedObject);
|
|
|
|
|
|
TrackedObjects.Add(detectedObject);
|
|
TrackedObjects.Add(detectedObject);
|
|
@@ -125,17 +118,14 @@ namespace bbiwarg.Recognition.Tracking
|
|
float similarity = detectedObject.getSimilarity(history.LastObject);
|
|
float similarity = detectedObject.getSimilarity(history.LastObject);
|
|
if (similarity > minSimilarityForTracking)
|
|
if (similarity > minSimilarityForTracking)
|
|
{
|
|
{
|
|
- SimilarityContainer<T> similarityContainer = new SimilarityContainer<T>();
|
|
|
|
- similarityContainer.similarity = similarity;
|
|
|
|
- similarityContainer.history = history;
|
|
|
|
- similarityContainer.detectedObject = detectedObject;
|
|
|
|
|
|
+ SimilarityContainer<T> similarityContainer = new SimilarityContainer<T>(history, detectedObject);
|
|
similarities.Add(similarityContainer);
|
|
similarities.Add(similarityContainer);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// sort depending on similarity-value
|
|
// sort depending on similarity-value
|
|
- similarities.Sort((fs1, fs2) => fs2.similarity.CompareTo(fs1.similarity));
|
|
|
|
|
|
+ similarities.Sort((fs1, fs2) => fs2.Similarity.CompareTo(fs1.Similarity));
|
|
}
|
|
}
|
|
|
|
|
|
private void removeConcurringSimilarities(SimilarityContainer<T> removeSimilarity)
|
|
private void removeConcurringSimilarities(SimilarityContainer<T> removeSimilarity)
|
|
@@ -143,7 +133,7 @@ namespace bbiwarg.Recognition.Tracking
|
|
for (int i = similarities.Count - 1; i >= 0; i--)
|
|
for (int i = similarities.Count - 1; i >= 0; i--)
|
|
{
|
|
{
|
|
SimilarityContainer<T> similarity = similarities[i];
|
|
SimilarityContainer<T> similarity = similarities[i];
|
|
- if (similarity.history == removeSimilarity.history || similarity.detectedObject == removeSimilarity.detectedObject)
|
|
|
|
|
|
+ if (similarity.History == removeSimilarity.History || similarity.DetectedObject == removeSimilarity.DetectedObject)
|
|
similarities.RemoveAt(i);
|
|
similarities.RemoveAt(i);
|
|
}
|
|
}
|
|
}
|
|
}
|