Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
bestpractices:welcome [2019/05/16 17:55]
pdufour [Image dataset]
bestpractices:welcome [2019/07/29 18:19] (current)
pdufour [4. Create contents]
Line 1: Line 1:
-====== Best Practices ====== + ====== Best Practices ​for images recognition scenario====== 
-Create a coherente dataset+ 
 +===== - Create a coherente dataset ​===== 
 +First step to have the better experience is to compose a coherent dataset. ​
 \\ \\
-Send a quality query 
 \\ \\
-Indicate to the user what and how flash+To create ​the database, let's remind ​how our Image recognition works:
 \\ \\
-Communicate+The visual search solutions allow to find, from a query image, identical or similar visuals in images databases. The search is based on object recognition,​ shape or color and depends on upon the content of an image, rather than on textual information. ​
 \\ \\
-Inspire you +\\ 
-===== Image dataset ===== +In this part, you will be explained how to choose your reference images. 
-First step to have the better experience is to compose a coherent dataset. To create the databaseLet's use explain how work our Image recognition. +\\ 
-==== Images transformation robustess ====+\\ 
 +<WRAP center round tip 100%> 
 +**To be sure your images are searchableit is important that they are validated by LTU with some recognition ​tests.** 
 +</​WRAP>​
  
-LTU Engine’s image matching technology is robust against several types of image transformations,​ detecting not only the exact same image, but also modified versions of the original image and object matches (photographs of same object). 
  
-This part illustrates ​the types of image transformations that LTU Engine ​can handle ​in order to identify a match. Image transformations can be broadly divided into several groups:+==== How to choose your images ? ==== 
 +To be recognized, images must be of good quality and ensure a minimun level of graphism. That means: 
 +  * close to realism and referencing ​the final product 
 +  * not be over-exposed or under-exposed 
 +  * be well centered 
 +  * with no reflection or artifact 
 +  * not blured 
 +  * be composed ​of various shape, with line and crossing points 
 +  * not be only textual 
 +  * have marked contrasts 
 +  * not be symetric 
 + 
 +<WRAP center round important 100%> 
 +**For a same image, it is not necessary to multiply references in different conditions. That does not improve the recognition. ** 
 +</​WRAP>​ 
 +  
 + 
 +__Examples of a good quality images:__ 
 +|{{ :​bestpractices:​bonne_pratique_manuel.png?​nolink&​400 |}}|{{ :​bestpractices:​bonne_pratique_packaging.png?​nolink&​550 |Danone usecase example}}| 
 + 
 +__Examples of a bad quality images:__ 
 +|{{ :​bestpractices:​mauvaise_pratique_livre.png?​nolink&​300 |}}|{{ :​bestpractices:​mauvaise_pratique_pack.png?​nolink&​700 |}}| 
 + 
 +==== What kind of images ? ==== 
 +\\ 
 +**__Formats__**:​ 
 +Any image sent to LTU engine must be in of the following formats: PNG, GIF, JPEG, JPG, BMP.  
 +You will need to convert your images to one of these formats before sending them to LTU Engine
 +\\ 
 +\\ 
 +**__Image dimension__**:​ 
 +We recommend using images of 512 x 512 pixels when adding images. Images data/file size should not be smaller than 50kb 
 +\\ 
 +\\ 
 +===== - Send a good quality query ===== 
 +Once the dataset is created and your application is set, it is also important to send queries with the highest quality as possible for the recognition. ​ \\ 
 +The quality recommendations you have seen in the last paragraph is also valid for the query. 
 +But in the majority of the usecases, you don't have the control of the query because queries are sent by the end-users. 
 +To understand what is a good query in order to guide your users, let's explain strengths and limitations of our solution. 
 + 
 +{{ :​imagealgorithms:​matching1.png?​nolink&​600 |}} 
 + 
 + 
 +==== What are we able to find ? ==== 
 + 
 +LTU Engine’s image matching technology is able to match despite several types of image transformations,​ detecting not only the exact same image, but also modified versions of the original image and object matches (photographs of same object). 
 + 
 +Image transformations can be broadly divided into several groups:
   * __**Geometric transformations:​**__ Includes scale changes, rotations, translations,​ flips and projective transformations.   * __**Geometric transformations:​**__ Includes scale changes, rotations, translations,​ flips and projective transformations.
   * __**Photometric transformations:​**__ Includes color space conversions,​ gray level transformations,​ changes in hue, brightness and contrast.   * __**Photometric transformations:​**__ Includes color space conversions,​ gray level transformations,​ changes in hue, brightness and contrast.
Line 24: Line 74:
  
 Often images may be modified with a combination of the above transformations. However, the LTU image matching technology is robust even in those instances. The matching technology easily matched the above combination which includes Gray scale, blur, re-encoding,​ projective transformation and overlay composite transformations. ​ Often images may be modified with a combination of the above transformations. However, the LTU image matching technology is robust even in those instances. The matching technology easily matched the above combination which includes Gray scale, blur, re-encoding,​ projective transformation and overlay composite transformations. ​
-===== Enrichissement ===== 
  
-===== Communication ​=====+\\ 
 +For more information,​ consult [[http://​docs.ltutech.com/​imagealgorithms/​functionalities#​geometric_transformations |the white paper]].  
 + 
 +\\ 
 +==== What are the search limitations? ​==== 
 +To avoid generating frustration because the image is not recognized, it is important to know the limitation of our images recognition solution. It could help to improve the quality of the query when it is possible. 
 + 
 +  * __Structure modification too important__:​ If the query image is too distant from the reference, it could happen that there is not enough details to recognize the original image. 
 +{{ :​imagealgorithms:​algo-022-sansfond.jpeg?​nolink&​600 |}} 
 +  * __Repetitive patern__: Because repetitive patterns are really similar, pictures parts could be confused or badly identified. 
 +{{ :​imagealgorithms:​hausmann3.png?​nolink&​600 |}} 
 +  * __False positives__:​ Sometimes image matching signature will detect the same object or scene, but not the same image.  
 +{{ :​imagealgorithms:​algo-025.jpg?​nolink&​600 |}} 
 +Since image matching is very prone to detect small common parts in images (such as logos), it can sometimes result in false positives because parts of the images indeed did match.  
 +{{ :​imagealgorithms:​algo-024.jpg?​nolink&​600 |}} 
 +  * __Indexing Limitations__:​ Sometimes an image may not be indexed. This is due either to an unknown image format or due to missing image information:​ 
 +    * i.e. uniform coloured images are rejected. 
 +    * i.e. having no distinct image features may be rejected too such as this image below.  
 +{{ :​imagealgorithms:​cafe.png?​nolink&​400 |}} 
 + 
 + 
 +For more information,​ consult [[http://​docs.ltutech.com/​imagealgorithms/​functionalities#​limitations |the white paper]]. 
 +\\ 
 +\\ 
 +==== What kind of images ? ==== 
 + 
 + 
 +**__Formats__**:​ Any image sent to LTU engine must be in of the following formats: PNG, GIF, JPEG, JPG, BMP You will need to convert your images to one of these formats before sending them to LTU Engine. 
 + 
 +**__Image dimension__**:​ We recommend using images of 512 x 512 pixels when searching images Images data/file size should not be smaller than 50kb 
 + 
 +**__Reducing image size for mobile matching applications:​__** Images can be converted to gray  
 + 
 +===== - Training ===== 
 +In some usecases, query images will be sent by end-users. You could not control the quality of the images but you can guide the user by indicating what and how to flash.\\ 
 + 
 +==== Communicate on the experience ==== 
 + 
 +You must be sure that the user is aware that an experience is available and that he knows what to do.\\ 
 +To have a good communication,​ here some recommendations:​ 
 + 
 +  * Clearly indicate on the support that it is connected 
 + 
 +| {{ :​bestpractices:​skintonic.png?​nolink&​200 |}}|{{ :​bestpractices:​support_additionel_-_caprte_de_voeux_2019_plan_de_travail_1.jpg?​nolink&​600 |Example of Anaik s greeting card}}| 
 +| {{ :​bestpractices:​img_0492.jpg?​nolink&​400 |Example of Belin schoolar book}} | {{ :​bestpractices:​img_0491.jpg?​nolink&​400 |Example of Hachette Routard guide}} | 
 +  * Give instructions to let users discover the experience and to know how to flash. Use pictures, text and easily identifiable icon: phone, camera, symbol as '​+'​ ... 
 + 
 +|{{ :​bestpractices:​icone-tel.png?​nolink&​120 |}}|{{ :​bestpractices:​30_onprint_rappel2.png?​nolink&​60 |}}|{{ :​bestpractices:​61183.png?​nolink&​100 |}}|{{ :​bestpractices:​icone-num-300x3001.png?​nolink&​100 |}}|{{ :​bestpractices:​41_onprint_sticker_rond.png?​nolink&​100 |}}| {{ :​bestpractices:​facebook_messenger-512.png?​nolink&​100 |}}| 
 + 
 +|{{ :​bestpractices:​journal_couverture_proposition-1.jpg?​nolink&​500 |}}|{{ :​bestpractices:​img_0484.jpg?​nolink&​270 | Example of Hachette Routard guide}}| 
 +  * In a print usecases, remind the information on each connected page 
 +{{ :​bestpractices:​img_0483.jpg?​nolink&​400 |}} 
 +{{ :​bestpractices:​img_0486.jpg?​nolink&​400 |}} 
 +{{ :​bestpractices:​img_0494.jpg?​nolink&​400 |}} 
 + 
 +\\ 
 +\\ 
 +<WRAP center round info 100%> 
 +For a long-term experience, do not hesitate to repeat the communication on several media (on both print media and social media) 
 +</​WRAP>​ 
 +  
 + 
 +==== Educate the user to scan gestures ==== 
 + 
 +For a better and recurrent experience, explain to your users how to scan and describe them the steps to correctly do it. For that: 
 + 
 +  * In your applications,​ add some pages of tutorial - in the case of customizable applications. Tutorial can be loaded at the launch of your application. 
 + 
 +|{{ :​bestpractices:​tuto_applicationmobile_01.jpg?​nolink&​200 |}}|{{ :​bestpractices:​tuto_applicationmobile_02.jpg?​nolink&​200 |}}|{{ :​bestpractices:​tuto_applicationmobile_03.jpg?​nolink&​200 |}}| 
 + 
 +  * Use easily identifiable icons and text. Don't hesitate to add your logo or the logo of your applications. 
 +  * Use explicit words as "​scan",​ "​flash"​ or "take picture"​. 
 +  * In the print use-cases, indicate what to scan and add a legend under each image to flash. 
 +{{ :​bestpractices:​journal_pageinterieure_01-1.png?​nolink&​400 | Example of a VLAN newspaper}} 
 + 
 +<WRAP center round tip 100%> 
 +Always use the same icons and words to accustom your users to the gesture and to make them identify there is something to scan. 
 +</​WRAP>​ 
 + 
 +  * Add a target zone in your application to help the user to take a good enough picture for the recognition 
 + 
 +|{{ :​bestpractices:​img_0496.jpg?​nolink&​220 |mire example of MyPack application}}|{{ :​bestpractices:​mire_vlan_versionvertical02b.jpg?​nolink&​200 |}}| 
 + 
 + 
 + 
 + 
 +===== - Create contents ===== 
 + 
 +For the success of your experience, choose pertinent contents to attract and retain custumers. Let's give you some advices: 
 + 
 +  * Create graphic contents by using colours and background images 
 + 
 +  * Use GIF to create dynamic contents.  
 + 
 +  * Vary media: GIF, videos, web link, audio playlist... 
 + 
 +  * Do not add too heavy media. Too long loading time could discourage some users 
 + 
 +__Example of graphic content for 20 minutes newspaper:​__ 
 +|{{ :​bestpractices:​03_vlan_auberge.jpg?​nolink&​200 |}}|{{ :​bestpractices:​03_exemple_resto_02.jpg?​nolink&​210 |}}|{{ :​bestpractices:​02_exemple_immobilier_03.jpg?​nolink&​220 |}}|{{ :​bestpractices:​01_exemple_couverture_02.jpg?​nolink&​208 |}}| 
 + 
  
-===== Sucess story =====