Cómo funciona la búsqueda de imágenes de Dropbox

Si necesita encontrar una foto tomada en un picnic hace unos años, difícilmente puede recordar el nombre que la cámara asignó automáticamente al archivo en el momento del disparo, por ejemplo, 2017-07-04 12.37.54.jpg . Miras a través de todo - fotografías, sus bocetos, tratando de identificar objetos o signos de lo que estás buscando - y no importa si estás buscando una foto perdida o quieres encontrar una foto decente en los archivos para la presentación de un nuevo proyecto.





¡Sería genial si Dropbox pudiera ver de forma independiente todas las imágenes y seleccionar las que mejor coincidan con las palabras de la descripción! Esta es exactamente la tarea que nos propusimos al crear la función de búsqueda de imágenes .





, Dropbox , , , , Dropbox .






Resultados de búsqueda de imágenes por palabra clave "picnic"
""

, , , Dropbox.





: , () q j, s , , :





s = f(q, j).





- , , . : .





, . , . 





:





  • , , ;





  • , , ;





  • , , - .





— 2012 . Krizhevsky . ImageNet hallenge. , , , , Open Images ImageNet, , TensorFlow PyTorch, , . , :





Resultados de aplicar un clasificador de imágenes a una fotografía típica no escenificada

, , . , , , , , ? , ?





, , , .





. jc . C- , C — ( ). , , , .





— . — word2vec — Mikolov . 2013 . Word2vec , , , , . d- , d .





, word2vec. , , :





  1. q d- qw, . w, — c.





  2. ciw. m̂i = qw - ciwi- . -1 1 , . ( mi = max(0, i)), , .





  3. , qc = [m1 m2 ... mC], C- , , — , , .





3 — - , qc = qwC, Cciw.





qcs = qcjc.





. . - , s = qcJ, J jc , s — .





. , — : , , .





, . , [0,35–0,62 0,70], .





, .





Proyección del vector de palabras de consulta en el espacio de categorías.

  EfficientNet, OpenImages. 8 500 . , . , Dropbox.





TensorFlow   ConceptNet Numberbatch. , , , , . : dog chien , .





AND, . , , beach ball, . , OR , beach ball (beach AND ball) OR (beach ball). , .





, , J . , , , , . ().





J , Dropbox Nautilus.





, Nautilus (forward index), (, ) , (inverted index), (posting list) , . :





Contenido del índice de búsqueda para búsqueda de texto

, doc_1 doc_2 , . doc_3 , , . 





, , . doc_1 , doc_2, doc_1 .





. jc . .





Índice de búsqueda de contenido para buscar imágenes por contenido

, :





  1. qw C qc, . C — , , .





  2. , qc, . , , .





  3. jc qc, s. , .





- , . 10 000 10 000 , 40 . , 10 000 . , 40 80 . , , !





, , , , m̂i , 5 000 . , 10 .





, , , . s = qcjc, qc — 10 000 , jc — 10 000 , . , s





qc jc , . , 10 qc 50 jc . :





  • 10 000- 50 , 50 . ; 50 ( ) 50 ( ) 300 .





  • 10 000, 50 , 200 . , 500 80.





  • qc 10 , 10 — . , .





, . , , , — .





-. , OCR- , .





?

, , Dropbox. . , , . , , , , , " , " .





, , . , "Machine Learning Deep Learning", NVIDIA.





, :





  • Data Scientist





  • Data Analyst





  • Data Engineering









  • Fullstack- Python





  • Java-





  • QA- JAVA





  • Frontend-









  • C++





  • Unity





  • -





  • iOS-





  • Android-









  • Machine Learning





  • "Machine Learning Deep Learning"





  • " Data Science"





  • " Machine Learning Data Science"





  • "Python -"





  • " "









  • DevOps








All Articles