PhotoScan: comment prendre des photos sans reflets

Le 19 avril 2017, nous avons publié une mise à jour de PhotoScan , notre application mobile pour iOS et Android, qui vous permet de numériser des photos papier avec un simple smartphone. L'une des principales caractéristiques de PhotoScan est la possibilité d'éliminer les reflets des photos (elles sont souvent imprimées sur du papier brillant et hautement réfléchissant), ainsi que des pages d'albums en plastique ou de photos sous verre. Pour ce faire, nous avons développé une combinaison unique de vision par ordinateur et de technologie de traitement d'image qui peut combiner et combiner avec précision plusieurs images légèrement différentes de la photo et séparer le reflet de l'image elle-même sur la photo.

image

À partir d'une image, il est très difficile de déterminer automatiquement les parties de l'image qui sont la photo d'origine et celles qui sont le point culminant. De plus, l'éblouissement peut éclairer des zones de la photo, à cause desquelles il sera impossible de restaurer la partie de celle-ci qui est cachée sous l'éblouissement. Mais si vous prenez plusieurs photos de la photo en déplaçant l'appareil photo, la lumière parasite change - elle se déplace à travers différentes parties de la photo. Dans la plupart des cas, chaque pixel individuel ne sera pas flare au moins dans l'une des images. Bien qu'aucune des images ne soit exempte d'éblouissement, nous pouvons combiner plusieurs images de la photo imprimée prises sous différents angles, et ainsi supprimer l'éblouissement. La difficulté est que les images doivent être alignées très précisément pour qu'elles soient correctement combinées, et ce traitement doit être effectué sur le smartphone assez rapidement pour obtenir l'effet d'un résultat quasi instantané.

Texte masqué


Notre technologie a été inspirée par nos travaux précédents publiés au SIGGRAPH 2015 , que nous avons appelés « photographie sans obstruction ». Il utilise des principes similaires pour supprimer diverses interférences du champ de vision. Mais l'algorithme original était basé sur un modèle génératif dans lequel le mouvement et l'apparence de la scène principale et l'interférence ont été évalués. Les capacités de ce modèle sont excellentes et il est capable de supprimer une variété d'interférences - mais il est trop coûteux en calcul pour être utilisé sur les smartphones. Par conséquent, nous avons développé un modèle simplifié qui fait référence à la fusée éclairante comme une sorte d'anomalie et essaie de reconnaître l'image en dessous. Bien que le modèle soit simplifié, c'est toujours une tâche très difficile - la reconnaissance doit être précise et fiable.

Comment ça marche


Nous commençons par un ensemble de clichés de la photo prise par l'utilisateur qui a déplacé la caméra. Le premier instantané - «cadre de référence» - détermine l'aspect final souhaité de l'instantané. Il est ensuite recommandé à l'utilisateur de prendre quatre photos supplémentaires. Dans chaque image, nous déterminons les points clés (nous calculons les propriétés ORB aux angles déterminés à l' aide de l'algorithme de Harris ) et les utilisons pour déterminer les homographes qui mappent chaque image suivante à l'image de référence.

Texte masqué


La technologie semble simple, mais elle a un hic - les homographes ne peuvent comparer que des images plates. Mais les photographies sur papier ne sont souvent pas plates (comme dans l'exemple ci-dessus). Nous utilisons le flux optique - une représentation fondamentale du mouvement en vision par ordinateur, établissant une correspondance pixel par pixel entre deux images, corrigeant les écarts par rapport au plan. Nous commençons avec des cadres alignés en utilisant l'homographie et comptons les «champs de flux» pour redresser les images et les ajuster davantage. Veuillez noter que dans l'exemple ci-dessous, les coins de la photo de gauche «bougent» un peu après avoir défini des cadres en utilisant uniquement l'homographie. Sur la droite, vous pouvez voir comment la photo est mieux alignée après l'application du flux optique.

Texte masqué


La différence n'est pas très frappante, mais affecte de manière significative le résultat final. Faites attention à la façon dont les petites divergences se manifestent sous la forme de fragments d'image en double et à la façon dont ces défauts sont éliminés par un raffinement supplémentaire à l'aide de flux.



Et dans ce cas, la difficulté était de faire fonctionner plus rapidement l'algorithme de flux optique initialement lent sur un smartphone. Au lieu du calcul traditionnel du flux pour chaque pixel (le nombre de vecteurs est égal au nombre de pixels), nous construisons le champ de flux en utilisant un plus petit nombre de points de contrôle, et enregistrons le mouvement de chaque pixel dans l'image en fonction du mouvement des points de contrôle. À savoir, nous divisons chaque image en cellules disjointes qui forment un réseau à grains grossiers et représentons le flux de pixels dans une cellule distincte sous la forme d' une combinaison bilinéaire du flux et des quatre coins de la cellule qui le contient.





Reste alors à résoudre un problème plus simple, puisque le nombre de vecteurs de flux est désormais égal au nombre de points de réseau, qui sont généralement beaucoup plus petits que les pixels. Ce processus est similaire au traitement d'images de splining . Avec cet algorithme, nous avons pu réduire le temps de calcul du flux optique sur le téléphone Pixel d'environ 40 fois!

Texte masqué


Enfin, pour créer l'image finale sans éblouissement, pour chaque partie du cadre, nous prenons les valeurs en pixels et calculons le «minimum doux» pour trouver la plus sombre des options. Plus précisément, nous calculons la luminosité minimale attendue à partir des images disponibles et attribuons des poids plus petits aux pixels qui sont plus proches des bords incurvés des images. Nous utilisons cette méthode au lieu de calculer directement le minimum car les mêmes pixels dans des images différentes peuvent avoir une luminosité différente. Le minimum pixel par pixel peut entraîner l'apparition de joints visibles en raison de changements brusques d'intensité aux limites des images qui se chevauchent.



L'algorithme est capable de fonctionner dans diverses conditions de numérisation - photos mates et brillantes, photos dans des albums et sans elles, couvertures de magazines.

Texte masqué







Pour calculer le résultat final, notre équipe a développé une méthode qui détermine automatiquement les limites de l'image et la conduit à une vue rectangulaire. En raison de la distorsion de la perspective, une photo rectangulaire numérisée se transforme généralement en un quadrilatère non rectangulaire. La méthode analyse les signaux d'image, la couleur, les bords pour découvrir où vont les bordures exactes de la photo d'origine, puis applique des transformations géométriques pour redresser l'image. Le résultat est une version numérique de haute qualité de la photographie sur papier sans reflets.



En général, beaucoup de choses se passent sous le capot, et tout cela fonctionne presque instantanément sur votre téléphone! Vous pouvez essayer PhotoScan en téléchargeant la version de l'application pour Android ou iOS .

Source: https://habr.com/ru/post/fr403389/


All Articles