Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Descripción de SURF más rápido con la detección de FAST?

Para mi tesis de maestro, estoy realizando una prueba en los algoritmos SIFT SURF en FAST para la detección de logotipos en teléfonos inteligentes.

Cuando simplemente el tiempo de la detección, descripción y coincidencia para algunos métodos obtengo los siguientes resultados.

  • EditText: Sugerencia del centro pero ha entrado el texto desde arriba
  • Reaccionar vista personalizada nativa, sin propType para prop nativo
  • Puedo cambiar mi ubicación en los mapas de Android
  • Cambiar plantilla de autor en Android Studio
  • WebChromeClient abre el enlace en el navegador
  • SHA-1 huella dactilar del certificado keystore
  • Para un detector SURF y un descriptor SURF:

    180 puntos clave encontrados

    • 1,994 segundos de tiempo de cálculo del punto clave (SURF)

    • Tiempo de descripción de 4.516 segundos (SURF)

    • 0.282 segundos de tiempo de coincidencia (SURF)

    Cuando uso un detector FAST en lugar del detector SURF

    319 puntos clave encontrados

    • 0.023 segundos tiempo de cálculo del punto clave (FAST)

    • Tiempo de descripción de 1.295 segundos (SURF)

    • 0.397 segundos de tiempo de coincidencia (SURF)

    El detector FAST es mucho más rápido que el detector SURF, e incluso detecta casi el doble de puntos clave 100 veces más rápido. Estos resultados son predecibles.

    Sin embargo, el siguiente paso no es un resultado previsto. ¿Cómo es posible que el descriptor de SURF sea más rápido con los 319 puntos FAST y luego con los 180 puntos de SURF?

    Por lo que sé, la descripción no tiene relación con el algoritmo de detección … pero estos resultados no son como se predice.

    ¿Alguien sabe cómo esto es posible?

    Aquí está el código:

    FeatureDetector detector = FeatureDetector.create(FeatureDetector.SURF); //FeatureDetector detector = FeatureDetector.create(FeatureDetector.FAST); Imgproc.cvtColor(image1, image1, Imgproc.COLOR_RGBA2RGB); Imgproc.cvtColor(image2, image2, Imgproc.COLOR_RGBA2RGB); DescriptorExtractor SurfExtractor = DescriptorExtractor .create(DescriptorExtractor.SURF); //extract keypoints long time= System.currentTimeMillis(); detector.detect(image1, keypoints); Log.d("LOG!", "number of query Keypoints= " + keypoints.size()); detector.detect(image2, logoKeypoints); Log.d("LOG!", "number of logo Keypoints= " + logoKeypoints.size()); Log.d("LOG!", "keypoint calculation time elapsed" + (System.currentTimeMillis() -time)); //Descript keypoints long time2 = System.currentTimeMillis(); Mat descriptors = new Mat(); Mat logoDescriptors = new Mat(); Log.d("LOG!", "logo type" + image2.type() + " intype" + image1.type()); SurfExtractor.compute(image1, keypoints, descriptors); SurfExtractor.compute(image2, logoKeypoints, logoDescriptors); Log.d("LOG!", "Description time elapsed" + (System.currentTimeMillis()- time2)); 

  • Cómo detener un servicio
  • Manejo de eventos táctiles en SurfaceView sobre Maps API v2
  • Obtenga la imagen y el resumen relevantes de la URL
  • GetFilesDir () devolver null
  • Utilizar Chrome como motor de renderizado para la vista web de Android
  • Captura cuando la aplicación de Android pasó al fondo
  • One Solution collect form web for “Descripción de SURF más rápido con la detección de FAST?”

    AFAIK la parte más lenta de la extracción de descriptor de SURF es la extracción de subpíxel del parche que tiene (2.8 * keypoint.size x 2.8 * keypoint.size) tamaño alrededor de cada punto clave.

    Así que aquí está mi conjetura: los puntos clave encontrados por el detector FAST siempre tienen su size igual a 7, pero el detector SURF puede encontrar puntos clave de mucho mayor tamaño. Así que 180 puntos "grandes" se procesan más de 319 "pequeños".

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.