# Introduction

This is supplementary material to our paper published at [AICS 2025](https://arxiv.org/abs/2512.09633)  with the data and R code used for creating some figures in the paper.

# R code

## DataFrame 

```{r  message=FALSE, warning=FALSE,echo=TRUE}
library(ggplot2)
library(knitr)


# Falling object : 6 sequences
datasetname0=rep(c("Falling_Object"),each=6*4)

trackername0=rep(c("SAM2","EfficientTAM","DAM4SAM","SAMURAI"),each=6)

sequence0=rep(c("v_box_GTgamma",
            "v_cell_GTgamma",
            "v_key_GTgamma",
            "v_marker_GTgamma",
            "v_pen_GTgamma",
            "v_rubber_GTgamma"),times=4)


mIoU0=c(0.727,0.531,0.501,0.534, 0.610,0.471,
        0.722,0.460,0.456,0.525,0.441,0.405,
        0.718,0.525, 0.536,0.525, 0.637, 0.484,
        0.664, 0.446, 0.479, 0.542, 0.519, 0.470)

mDice0=c(0.836,0.669,0.621,0.672,0.745,0.610,
         0.832, 0.590,0.570,0.655,0.525,0.506,
         0.829, 0.663, 0.664, 0.664,0.771, 0.622,
         0.775, 0.577, 0.600, 0.679, 0.642, 0.603)

mOverlap0=rep(c(0.436,0.257,0.245,0.308,0.401,0.317),times=4)
mObjSize0=rep(c(3.000,3.000,3.000,3.000,3.667,3.000),times=4)



# TbD-3D: 10 sequences
datasetname1=rep(c("TbD-3D"),each=10*4)
trackername1=rep(c("SAM2","EfficientTAM","DAM4SAM","SAMURAI"),each=10)

sequence1=rep(c("HighFPS_GT_depth2",
            "HighFPS_GT_depthb2",
            "HighFPS_GT_depthf1",
            "HighFPS_GT_depthf2",
            "HighFPS_GT_depthf3",
            "HighFPS_GT_out1",
            "HighFPS_GT_out2",
            "HighFPS_GT_outa1",
            "HighFPS_GT_outb1",
            "HighFPS_GT_outf1"),times=4)

mOverlap1=rep(c(0.627,0.699,0.541,0.651,0.646,0.405,0.373,0.464,0.318,0.396),times=4)

mObjSize1=rep(c(3.043,3.000,3.000,3.000,3.000,3.018,3.000,3.304,3.000,3.000),times=4)


mIoU1=c(0.726,0.598,0.668,0.635,0.646,0.747,0.737,0.724,0.608,0.685,
        0.693,0.568,0.618,0.616,0.602,0.737,0.722,0.703,0.554,0.673,
        0.712,0.593,0.666,0.640,0.640,0.734,0.722,0.692,0.596,0.678,
        0.701,0.587,0.632,0.615,0.656,0.734,0.722,0.702,0.623,0.658)

mDice1=c(0.833,0.747,0.795,0.774,0.781,0.853,0.847,0.838, 0.745,0.810,
         0.811,0.723,0.759,0.760,0.746,0.847,0.837,0.824,0.702,0.802,
         0.823,0.743,0.794,0.777,0.777,0.845,0.837,0.816,0.737,0.806,
         0.817,0.738,0.767,0.758,0.789,0.845,0.836,0.822,0.752,0.790)


# FMOv2 : 18 sequences
datasetname2=rep(c("FMOv2"),each=18*4)
trackername2=rep(c("SAM2","EfficientTAM","DAM4SAM","SAMURAI"),each=18)

sequence2=rep(c("atp_serves",
            "blue",
            "darts1",
            "darts_window1",
            "frisbee",
            "hockey",
            "ping_pong_paint",
            "ping_pong_side",
            "ping_pong_top",
            "softball",
            "squash",
            "tennis1",
            "tennis2",
            "tennis_serve_back",
            "tennis_serve_side",
            "volleyball1",
            "volleyball_passing",
            "william_tell"),times=4)

mOverlap2=rep(c(0.000,0.056,0.007,0.000,0.036,0.000,0.050,0.035,0.245,0.023,0.002,0.061,0.145,0.132,0.011,0.123,0.235,0.248),times=4)
  
mObjSize2=rep(c(1.169,3.000,3.086,3.000,3.842,0.339,2.905,2.248,1.985,2.444,0.046,0.019,0.339,0.655,1.824,3.917,3.046,3.000),times=4)

mIoU2=c(0.035,0.705,0.647,0.000,0.928,0.082,0.024,0.657,0.632,0.000,0.024,0.287,0.032,0.566,0.721,0.830,0.780,0.585,
        0.116,0.711,0.648,0.000,0.488,0.387,0.026,0.611,0.381,0.000,0.023,0.112,0.005,0.271,0.710,0.799,0.775,0.668,
        0.337,0.707,0.632,0.039,0.761,0.088,0.058,0.704,0.785,0.000,0.024,0.292,0.024,0.559,0.755,0.819,0.766,0.598,
        0.288,0.712,0.658,0.183,0.925,0.079,0.357,0.668,0.783,0.001,0.024,0.304,0.027,0.589,0.730,0.825,0.781,0.632)

mDice2=c(0.038,0.809,0.780,0.000,0.962,0.096,0.029,0.739,0.698,0.000,0.028,0.388,0.047,0.668,0.814,0.906,0.874,0.701,
         0.134,0.790,0.774,0.000,0.506,0.486,0.032,0.678,0.426,0.000,0.028,0.149,0.007,0.313, 0.805,0.885,0.870,0.762,
         0.380,0.811,0.766,0.068,0.812,0.108,0.067,0.791,0.865,0.000,0.029,0.396,0.034,0.664,0.855,0.899,0.865,0.712,
         0.327,0.814,0.785,0.211,0.961,0.093,0.405,0.748, 0.868,0.002, 0.029,0.410,0.039,0.699,0.838,0.903,0.874,0.733)



# TbD : 12 sequences
datasetname3=rep(c("TbD"),each=12*4)
trackername3=rep(c("SAM2","EfficientTAM","DAM4SAM","SAMURAI"),each=12)
sequence3=rep(c("VS_badminton_white_GX010058-8",
            "VS_badminton_yellow_GX010060-8",  
            "fall_cube",
            "hit_tennis",
            "hit_tennis2",
            "VS_pingpong_GX010051-8",
            "VS_roll_golf-gc-12",
            "VS_tennis_GX010073-8",
            "throw_floor",
            "throw_soft",
            "throw_tennis",
            "VS_volleyball_GX010068-12"),times=4)

mOverlap3=rep(c(0.094,0.084,0.376,0.401,0.311,0.091,0.321,0.123,0.330,0.373,0.232,0.262),times=4)

mObjSize3=rep(c(2.487,2.179,3.158,3.000,3.160,2.474,0.321,2.784,3.205,3.119,3.227,2.925),times=4)

mIoU3=c(0.002,0.456,0.552,0.617,0.064,0.572,0.620,0.001,0.001,0.001,0.001,0.636,
        0.001,0.226,0.542,0.618,0.064,0.610,0.614,0.589,0.000,0.001,0.000,0.641,
        0.625,0.474,0.549,0.617,0.422,0.550,0.612,0.010,0.011,0.001,0.670,0.634,
        0.002,0.287,0.546,0.613,0.168,0.622,0.603,0.005,0.040,0.513,0.068,0.649)

mDice3=c(0.004,0.571,0.698, 0.761,0.081,0.675,0.764,0.001,0.002,0.001, 0.002, 0.764,
         0.002,0.276,0.691,0.764,0.081,0.730,0.759,0.717,0.000,0.001, 0.000, 0.768,
         0.745,0.591,0.698,0.761,0.517,0.655,0.758,0.014,0.015,0.001,0.798,0.762,
         0.004,0.352,0.698,0.759,0.207,0.744,0.751,0.010,0.064,0.654,0.118,0.767)


# create a data frame
datasetname=c(datasetname0,datasetname1,datasetname2,datasetname3)
Tracker=c(trackername0,trackername1,trackername2,trackername3)
sequence=c(sequence0,sequence1,sequence2,sequence3)

mOverlap=c(mOverlap0,mOverlap1,mOverlap2,mOverlap3)
mObjSize=c(mObjSize0,mObjSize1,mObjSize2,mObjSize3)

mIoU=c(mIoU0,mIoU1,mIoU2,mIoU3)
mDice=c(mDice0,mDice1,mDice2,mDice3)  

data=data.frame(datasetname,sequence, Tracker,  mIoU,mDice,mOverlap,mObjSize)
```



## [Fig. 1](https://arxiv.org/pdf/2512.09633)

```{r  message=FALSE, warning=FALSE,echo=TRUE}
ggplot(data, aes(x=mObjSize, y=mOverlap,  color=datasetname)) +
  geom_point(size=3)+
  xlab("Object size category")+
  ylab("Relative BB overlaps")+
  labs(color="Datasets")+
  theme_bw()
```

## [Fig. 2 (left)](https://arxiv.org/pdf/2512.09633)

```{r  message=FALSE, warning=FALSE,echo=TRUE}

ggplot(data, aes(x=datasetname, y=mIoU, fill=Tracker)) + 
  geom_boxplot()+
  xlab("Dataset names")+
  theme_bw()
```


##  [Fig. 2 (right)](https://arxiv.org/pdf/2512.09633)

```{r  message=FALSE, warning=FALSE,echo=TRUE}
ggplot(data, aes(x=datasetname, y=mDice, fill=Tracker)) + 
  geom_boxplot()+
  xlab("Dataset names")+
  theme_bw()
```


## [Tab. 1](https://arxiv.org/pdf/2512.09633)

```{r  message=FALSE, warning=FALSE,echo=TRUE}

library(dplyr)

summary_mIoU <- data %>%
  group_by(Tracker) %>%
  summarise(
    MIN_mIoU= min(mIoU),
    MAX_mIoU= max(mIoU),
    MEDIAN_mIoU = median(mIoU),
    MEAN_mIoU = mean(mIoU)
  )


summary_mDice <- data %>%
  group_by(Tracker) %>%
  summarise(
    MIN_mDice= min(mDice),
    MAX_mDice= max(mDice),
    MEDIAN_mDice = median(mDice),
    MEAN_mDice = mean(mDice)
  )

kable(summary_mIoU) 
kable(summary_mDice)  
```


# Data 

Print out of the dataframe:

```{r  message=FALSE, warning=FALSE,echo=TRUE}
  kable(data)
```