kit de herramientas de uso GOT10K y el uso de la versión pitón de la caja de herramientas de seguimiento de contraste OTB

Este artículo está sobre el disco es cómo utilizar GOT10K conjunto de herramientas para evaluar el rastreador, y el uso de la versión pitón OTB conjunto de herramientas para dibujar los resultados finales de la Fig. Medio también se encontró con una gran cantidad de lugares no entienden el proceso de registro de tropiezo blanco.

GOT10K conjunto de herramientas evaluar el rastreador en diferentes conjuntos de datos

GOT-10k Python Toolkit es un kit de herramienta muy poderosa, el kit de herramientas para el seguimiento de puntos de referencia establecidos se utilizan principalmente para proporcionar interfaz de descarga de datos no oficiales, así como para el seguimiento de: OTB (2013/2015), VOT (2013 ~ 2018), DTB70, TColor128, NFS (30/240 fps), UAV (123 / 20L), LaSOT y TrackingNet puntos de referencia. (ILSVRC VID y YouTube-BoundingBox (proximamente!))

Aquí vamos a describir cómo utilizar:

1 Descargar e instalar

Se recomienda su uso

pip install --upgrade got10k

2 definiciones que necesitan rastreador de prueba

from got10k.trackers import Tracker

class IdentityTracker(Tracker):
    def __init__(self):
        super(IdentityTracker, self).__init__(
            name='IdentityTracker',  # tracker name
            is_deterministic=True    # stochastic (False) or deterministic (True)
        )
    
    def init(self, image, box):
        self.box = box

    def update(self, image):
        return self.box

Cuando necesitan paquete de prueba de definición de seguimiento con la herramienta, simplemente definida en el interior IdentityTracker clase de inicio y actualización de la función pueden ser.

  • función init: se recibe Bbox trama inicial y el marco inicial entre las secuencias de vídeo de prueba.
  • función de actualización: se recibe trama posterior, devuelve el Bbox actualizada.

3 carreras en GOT10K evaluar diferentes rastreador

from got10k.experiments import ExperimentGOT10k

# ... tracker definition ...

# instantiate a tracker
tracker = IdentityTracker()

# setup experiment (validation subset)
experiment = ExperimentGOT10k(
    root_dir='data/GOT-10k',    # GOT-10k's root directory
    subset='val',               # 'train' | 'val' | 'test'
    result_dir='results',       # where to store tracking results
    report_dir='reports'        # where to store evaluation reports
)
experiment.run(tracker, visualize=True)

# report tracking performance
experiment.report([tracker.name])

Si otros conjuntos de datos, sólo ligeramente modificado:

experiments = [
        # ExperimentVOT('data/VOT2019', version=2019)
        # ExperimentGOT10k('data/GOT-10k', subset='test'),
        ExperimentOTB('data/OTB', version=2013),
        # ExperimentOTB('data/OTB', version=2015),
        # ExperimentDTB70('data/DTB70'),
        # ExperimentTColor128('data/Temple-color-128'),
        # ExperimentUAV123('data/UAV123', version='UAV123'),
        # ExperimentUAV123('data/UAV123', version='UAV20L'),
        # ExperimentNfS('data/nfs', fps=30),
        # ExperimentNfS('data/nfs', fps=240)
    ]

    # run tracking experiments and report performance
    for e in experiments:
        e.run(tracker, visualize=False)
        e.report([tracker.name])

proceso de seguimiento se lleva a cabo en todos los conjuntos de datos en e.run

Los resultados obtenidos presente result_dir, default / resultados / e / trackername

Resultados No / reports / e / Informe trackername

4 Siguiente principalmente debido al uso OTB kit de succión de la comparación entre los seguidores, por lo que vamos a analizar los resultados después de ExperimentOTB.run y ExperimentOTB.report

En un ejemplo OTB2015
cuando e.run (rastreador, visualizar = FALSE) ( donde E puede ser cualquier base de datos de interfaz en el interior de paquete got10k)

ExperimentOTB.run entra primero la función,
de acuerdo con el
for s, (img_files, anno) in enumerate(self.dataset):
sacado, y determina si la secuencia de prueba actual ha habido buenos resultados en el conjunto de datos para cada secuencia, si no, entonces:

boxes, times = tracker.track( img_files, anno[0, :], visualize=visualize)

Entonces en
got10k.trackers.__init__.pyla función de seguimiento,
for f, img_file in enumerate(img_files):
a cada uno de una secuencia de iteraciones de cada trama se saca o actualización alimentado función init

A continuación, nuestro rastreador (rastreador de su definición, heredando de rastreadores abajo) ya se han definido la función init y la función de actualización, para cada secuencia, el valor del cuadro de límite a cabo sólo el primer cuadro, el primer fotograma y el primer cuadro el valor del cuadro de límite en función init. El siguiente cuadro será enviado a la función de actualización.

E.report mirada se centró en los resultados, seguido de la versión Python del paquete utilizará principalmente esta OTB
Aquí Insertar imagen Descripción
solía comparar mi principal rastreador de prueba SiamFC, se puede ver el directorio de generar directamente tres archivos
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

Puede ver directamente se genera la trama éxito y la trama de precisión, si no en comparación con otros seguidores, a los que pueden terminar.

Lo más importante, el archivo de datos JSON:
Aquí Insertar imagen Descripción

Usted puede leer puntuación de éxito y la puntuación de la precisión y la velocidad de cuadros por segundo.

versión pitón del contraste toolkit rastreador OTB

1 Instalación y configuración del Medio Ambiente

En primer lugar Quguan red descarga versión del paquete pitón de OTB
web oficial OTB
Aquí Insertar imagen Descripción
también puede ir directamente a la descarga en github

En segundo lugar, se puede ver los requisitos de configuración relevantes en GitHub:
Aquí Insertar imagen Descripción
donde el primer paquete que entender que si es necesario evaluar rastreador de código de MATLAB está escrito, es necesario utilizar para utilizar este paquete de llamada en Python. Pero yo uso pitón para revisar principalmente porque mi código está escrito en Python, Matlab empacar un problema para mí, no quiero convertir archivos colchoneta. Así que este paquete hay un siguiente. Los otros tres paquetes son simplemente genial para escapar. Hay poca atención: la necesidad de utilización versión python2.7! ! !

Figura 2 Comparación!

Avance Descripción: . Porque ya he completado la evaluación de seguimiento del paquete del seguidor en la OTB (2013 o 2015) (Nota única got10k generar resultados de OPE) mediante herramientas got10k en este paso es sólo para poner nuestro gestor y 2013 o 2015 de la gente OTB tienen buenos resultados de la prueba se compararon con los de seguimiento de la línea de base (línea de base de seguimiento 34). Por lo que sólo nos interesa la forma de una tabla de comparación.

Así que sólo tenemos que concentrarnos en los resultados de los archivos / OPE en esta carpeta (OTB trata de la primera línea de base ASLA rastreador por ejemplo):
Aquí Insertar imagen Descripción

  • Hay tres carpetas para almacenar los resultados de la pista de pruebas de resultados / OPE / ASLA / bajo: scores_tb50 y socres_cvpr2013 se almacenan OTB2013 resultado de, scores_tb100 almacenan los resultados de OTB2015.
  • En el ejemplo scores_tb50, el siguiente 14, respectivamente, se almacenan en diferentes archivos JSON desafío (por ejemplo, la oclusión, el movimiento rápido) del resultado de seguimiento. Diferentes secuencias de prueba correspondientes a diferentes retos, solamente ALL.json secuencia de toda la secuencia (50) correspondiente.
  • De hecho, nos fijamos en el resultado ALL.json interior cuando dibujo.
  • Así que sólo tenemos que realizar un seguimiento de los resultados de nuestro gestor de hecho ALL.json, colocado en la carpeta correspondiente, por ejemplo, mi rastreador es SiamFC, para poner los resultados / OPE / SiamFC / (resultados OTB2013 scores_tb50 colocado , el resultado se pone debajo OTB2015 scores_tb100) puede estar mostrando directamente!
  • Acerca de cómo cambiar ALL.json es simple: para scores_tb50 como ejemplo o
    copiarlo en otros rastreadores ALL.json, y luego nos gustaría mejorar sus parámetros
{"name": "ALL", "desc": "All attributes", "tracker": "SiamFC", "evalType": "OPE", "seqs": ["BasketBall", "Biker", "Bird1", "BlurBody", "BlurCar2", "BlurFace", "BlurOwl", "Bolt", "Box", "Car1", "Car4", "CarDark", "CarScale", "ClifBar", "Couple", "Crowds", "David", "Deer", "Diving", "DragonBaby", "Dudek", "Football", "Freeman4", "Girl", "Human3", "Human4-2", "Human6", "Human9", "Ironman", "Jump", "Jumping", "Liquor", "Matrix", "MotorRolling", "Panda", "RedTeam", "Shaking", "Singer2", "Skating1", "Skating2-1", "Skating2-2", "Skiing", "Soccer", "Surfer", "Sylvester", "Tiger2", "Trellis", "Walking", "Walking2", "Woman"],
    "overlap": 58.7795880263541,
    "error": 7.794622900737891,
    "overlapScores": [0.38392220858021286, 0.3883923043332954, 0.04390543001550806, 0.194683655138013, 0.15915973959142307, 0.0894964239129424, 0.22384329718365356, 0.011058817570470185, 0.34823984258950896, 0.6508906923934548, 0.7535802226025262, 0.8491585239311483, 0.6070066757641235, 0.15502168012198222, 0.07585873833995199, 0.67882906764084, 0.7484439296263788, 0.03283713375317789, 0.17190439303587005, 0.18311095262425905, 0.7365616854638956, 0.5309180662873945, 0.12747598289090473, 0.7111340918940541, 0.007423368132814519, 0.4085822187597404, 0.3808077356687787, 0.20574960140747073, 0.11846672425697576, 0.09741395465333871, 0.2264789895501827, 0.247066828890485, 0.12122690433373202, 0.10554569108891122, 0.5015786486577571, 0.6174378729799935, 0.46219086168452955, 0.04375909192824903, 0.49555436149055704, 0.08219681780947928, 0.28238781793584533, 0.09248756804048978, 0.11262941193015051, 0.40300662549663674, 0.5912677351263589, 0.14533729914861213, 0.8026553889859993, 0.7717167796943779, 0.3712854356456783, 0.1479269294507216],
    "errorNum": [4.441379310344828, 5.563380281690141, 9.632352941176471, 8.203592814371257, 8.76923076923077, 9.24949290060852, 8.240887480190175, 9.857142857142858, 5.693367786391042, 0.029411764705882353, 0.0, 0.0, 3.0952380952380953, 7.598784194528876, 9.142857142857142, 1.0951008645533142, 0.4246284501061571, 9.71830985915493, 8.232558139534884, 8.495575221238937, 1.0305676855895196, 3.4806629834254146, 8.303886925795053, 0.9199999999999999, 9.935217903415783, 4.002998500749625, 5.416666666666666, 8.327868852459016, 8.734939759036145, 9.180327868852459, 8.338658146964855, 7.610568638713383, 9.8, 9.02439024390244, 5.8999999999999995, 2.226277372262774, 6.219178082191781, 9.6448087431694, 3.1, 9.365750528541225, 7.991543340380549, 8.88888888888889, 8.75, 4.867021276595745, 2.505576208178439, 8.575342465753424, 1.4235500878734622, 0.02427184466019417, 6.02, 8.056951423785595],
    "successRateList": [],
    "precisionList": []}

Como podemos ver, se mide OTB2013, por lo SEQs es el nombre de 50 secuencias; corresponde "solapamiento" success_score nos ponemos en got10k, es decir, AUC, pero aquí son * 100, la última pista está de acuerdo con el ranking de; "error" corresponde precision_score, aquí no entiendo por qué todo × 10, pero no afecta, ya que la última vez que un mapa es inútil; "" "overlapScores inútil errorNum", no cambie; el más importante llegó! ! ! Success_curve got10k pasta obtenida con el valor en el "successRateList", el valor en el precision_curve pegar para "precisionList" en.

  • El paso final:
Success rate plotting command: `python draw_graph.py`
  Precision plotting commaind: `python draw_graph.py precision`

En el draw_graph.py

def main():
    evalTypes = ['OPE'] # 使用哪种评估方式
    testname = 'tb50'  # 是测OTB2013还是2015
    graph = 'overlap'   # 默认画的是successplot
    if len(sys.argv) >= 2:
        graph = sys.argv[1]
  • El resultado final (la pantalla predeterminada sólo el primero 10)

Aquí Insertar imagen Descripción

Aquí Insertar imagen Descripción

Es de color blanco puro, sólo comenzó a rastrear el campo un poco, puede haber algunas personas locales para resolver, de repente, todavía tengo que conseguir mucho lloriqueo. En algunos lugares no aceptan la corrección de los peces gordos.

Liberadas dos artículos originales · ganado elogios 9 · visitas 161

Supongo que te gusta

Origin blog.csdn.net/qq_45171138/article/details/104846847
Recomendado
Clasificación