Beispiel #1
0
def procesa_objetivos():
    "Genera un grafico con las imagenes y las distancias de prediccion"
    # Parametros de plot (graficos)
    plt.rcParams["axes.grid"] = False
    plot_num = 8
    fig, ax = plt.subplots(2, plot_num)
    axi = np.ravel(ax)
    for i in range(plot_num):
        # Seleccionamos dos imagen aleatorias
        directorio = random.choice(os.listdir(path))
        # Imagen A
        archivo_a = path + directorio + '/' + random.choice(
            os.listdir(path + directorio))
        img_a, img_a_proces = prepara_imagen(archivo_a)
        # Imagen B
        directorio = random.choice(os.listdir(path))
        archivo_b = path + directorio + '/' + random.choice(
            os.listdir(path + directorio))
        img_b, img_b_proces = prepara_imagen(archivo_b)

        # Prediccion sobre las imagenes usando la red entrenada
        predicciones = modelo.predict(np.array([img_a_proces, img_b_proces]))
        # Mide la distancia entre ambos vectores
        distancia = Utiles.distancia(predicciones[0], predicciones[1])

        # Dibuja los graficos
        # A
        etiqueta = etiquetas[predicciones[0].argmax()]
        muestra_imagen(axi, i, img_a, etiqueta, distancia)
        # B
        etiqueta = etiquetas[predicciones[1].argmax()]
        muestra_imagen(axi, i + plot_num, img_b, etiqueta)
    plt.show()
Beispiel #2
0
def organiza_objetivos(p_actual, lista_p):
    """Devuelve una lista de objetivos en ordenados segun su distancia mutua
	desde un punto"""
    orden_objetivos = []
    objetivo_anterior = p_actual
    for i in range(len(lista_p)):
        distancias = [Utiles.distancia(x, objetivo_anterior) for x in lista_p]
        menor = np.argmin(distancias)
        objetivo_anterior = lista_p[menor]
        orden_objetivos.append(lista_p[menor])
        lista_p = np.delete(lista_p, menor, axis=0)
    return np.array(orden_objetivos)
Beispiel #3
0
def objetivo_prioritario(punto, objetivos, distancia_max=0):
    """Devuelve el objetivo prioritario segun la distancia a la posicion actual
	de la torreta"""
    if (len(objetivos) < 1):
        return None
    puntos_centro = Utiles.centros_rectangulos(objetivos)
    objetivo_anterior = punto
    distancias = [
        Utiles.distancia(x, objetivo_anterior) for x in puntos_centro
    ]
    menor = np.argmin(distancias)
    # Si el punto mas cercano esta lo suficientemente cerca no se devuelve nada
    if distancia_max and np.min(distancias) > distancia_max:
        return np.array([])
    return objetivos[menor]
Beispiel #4
0
    axi = np.ravel(ax)
    # Directorio raiz de imagenes extraidas
    path = "Entrada/Objetivos/"
    # Seleccionamos imagenes aleatorias y comparamos su distancia
    for i in range(plot_num):
        # Seleccionamos dos imagen aleatorias
        directorio = random.choice(os.listdir(path))
        # Imagen A
        archivo_a = path + directorio + '/' + random.choice(
            os.listdir(path + directorio))
        img_a, img_a_proces = prepara_imagen(archivo_a)
        # Imagen B
        directorio = random.choice(os.listdir(path))
        archivo_b = path + directorio + '/' + random.choice(
            os.listdir(path + directorio))
        img_b, img_b_proces = prepara_imagen(archivo_b)

        # Prediccion sobre las imagenes usando la red entrenada
        predicciones = modelo.predict(np.array([img_a_proces, img_b_proces]))
        # Mide la distancia entre ambos vectores
        distancia = Utiles.distancia(predicciones[0], predicciones[1])

        # Dibuja los graficos
        # A
        etiqueta = etiquetas[predicciones[0].argmax()]
        muestra_imagen(axi, i, img_a, etiqueta, distancia)
        # B
        etiqueta = etiquetas[predicciones[1].argmax()]
        muestra_imagen(axi, i + plot_num, img_b, etiqueta)
    plt.show()