Vision : Le framework de reconnaissance de CoreML

Qu’est-ce que Vision?

Vision est le nouveau framework d’iOS 11 et des autres plateformes Apple. Vision fait partie du framework Core ML. CoreML permet de confronter facilement des modèles machines learning  avec des données afin d’obtenir les prédictions.  Le framework Vision framework aide à alimenter les modèles machine learning qui traitent les images. Vision peut traiter en live le flux de la caméra et extraire les informations de chaque image en utilisant à la fois les modèles de machine learning embarqués et externes.

Ce que permet Vision

Vision offre un grand nombre de fonctionnalités :

  • Reconnaissance de visage
  • Reconnaissance partielle comme le nez, la bouche, l’oeil gauche, etc
  • Détection de l’horizon
  • Détection de rectangle
  • Tracking d’objets
  • Reconnaissance d’objets via des modèles machine learning externes

Tutoriel en Swift sur Vision

 

Un exemple de projet en Swift utilisant Vision :

https://github.com/jeffreybergier/Blog-Getting-Started-with-Vision

Présentation sécurité Cocoaheads à Lyon

Le 9 mars 2017 , j’ai eu le privilège de présenter « La sécurité sur iOS » aux Cocoaheads de Lyon dans l’amphithéâtre du site Orange Gambetta à Lyon.

Durant cette présentation j’ai abordé les points les plus récurrents dans le domaine de la sécurité sur mobile comme contre quoi se défendre ou où trouver les informations fiables sur la sécurité.

Pour télécharger la présentation : Cocoaheads – 2017-03-09

Mon Guide Rennes

Mon Guide Rennes, disponible sur iPhone et iPad, vous permet d’avoir accès à toutes les informations nécessaires pour vivre à Rennes ou encore pour découvrir Rennes.

Informations de proximité et autres renseignements vous sont fournis via les actualités de Rennes Métropole ou encore l’annuaire TIC-TAC de Rennes.

Tenez-vous au courant des concerts et festivals sur Rennes et aux alentours.

Partagez facilement les articles, actualités ou fiches qui vous intéressent.

Venez jouer aux divers quiz afin d’améliorer votre connaissance de Rennes ou simplement vous amuser.

Que vous soyez à pieds ou à vélo, découvrez Rennes et sa région avec les circuits touristiques. Balade nature, historique ou musée, il y en a forcément une pour vous.

L’application vous intéresse? N’hésitez pas à laisser une note positive sur l’AppStore.

Basé sur l’API Open Data de Rennes Métropole. (Données du 30/06/2014) http://www.data.rennes-metropole.fr/
Flux RSS issus du site de Rennes Métropole. http://www.rennes-metropole.fr/
Flux RSS pour les concerts et festivals. http://35.agendaculturel.fr/

Vous pouvez la découvrir ou la télécharger à l’adresse suivante :   Mon Guide Rennes sur iTunes
Pour toute question ou renseignement me contacter à l’adresse support@phoenixdesign.fr

Gestion des image sur Android

Quel format d’image?

Le format PNG sur 24 bits (8 bits pour le rouge, 8 bits pour le vert, 8 bits pour le bleu, 8 bits pour la transparence) est bien adapté pour réalisé un design complexe.

Les principales différences avec le format JPG, très répandu, sont :
– une qualité sans perte
– la gestion de la transparence
– un affichage plus propre pour les rendus typographiques

Quel taille d’image?

De part la nature d’Android d’être disponible sur plusieurs type de résolution, il est très difficile de s’y retrouver. Cependant, le système de chargement d’image permet de vous simplifier la vie. En effet, suivant la résolution de l’appareil il prendra l’image dans un répertoire dédié.

Nous allons prendre le cas d’une image de 100px x 100px en ldpi et voir les différents formats d’image à utiliser.

DensitéFormatRépertoire
ldpi (120dpi)100px x 100px/res/drawable-ldpi
mdpi (160dpi)135px x 135px/res/drawable-mdpi
hdpi (240dpi)200px x 200px/res/drawable-hdpi
xhdpi (320dpi)  270px x 270px/res/drawable-xhdpi
xxhdpi (480dpi)  400px x 400px/res/drawable-xxhdpi
xxxhdpi (640dpi) 540px x 540px/res/drawable-xxxhdpi

 

On peut aussi mettre une image par défaut dans le répertoire /res/drawable qui sera pris en compte si aucune image ne correspond. Si une résolution xxxhdpi est utilisé mais que l’image n’existe, le loader d’image sur Android privilégiera toujours celle de la densité précédente et la redimensionnera.

Il existe encore d’autres densité d’images sur Android,  notamment la tvdpi. Mais elles ne sont pas considérés comme des densités primaires, cependant si des besoins spécifiques se font sentir (comme pour des applications TV) alors on pourra y recourir.

Simplifier la conversion, le travail des batchs

Si vous voulez gagner du temps pour traiter vos images, il existe de multiples outils permettant la conversion par lot d’images.
Le plus connu, Adobe Photoshop, mais l’outil étant payant on peut lui préférer GIMP ou ImageMagick.

 

Gestion des image sur iOS

Quel format d’image?

Apple recommande le format PNG sur 24 bits (8 bits pour le rouge, 8 bits pour le vert, 8 bits pour le bleu, 8 bits pour la transparence).

Les principales différences avec le format JPG, très répandu, sont :
– une qualité sans perte
– la gestion de la transparence
– un affichage plus propre pour les rendus typographiques
– une meilleure gestion par iOS

Pourquoi la gestion des images?

La gestion des sur iOS peut-être quelque chose de très complexe du fait de la diversification des résolution introduite par l’arrivée de l’iPad puis du Retina Display (qui double l’affichage) comme nouvelle technologie d’écran.
Sur des application complexes, on peut facilement multiplier les lignes de codes ou le nombre d’images. Ceci peut donc être très couteux en temps de développement à proprement dit puis en maintenance.

Comment rationnaliser?

Un système de notation par suffixe permet de vous simplifier la vie. En effet, nul besoin de tester le type d’appareil ou le type d’affichage, laissons iOS gérer cela comme un grand.

Lorsque l’on crée une image via UIImage, l’OS peut détecter à la fois :
– l’extension si png, j’ai rencontré quelques problèmes avec le format jpg qui de plus n’est pas recommander par Apple.
– le type de résolution en fonction de l’écran et du périphérique

Nous allons prendre le cas d’une image de 100px x 100px sur iPhone pour faire face aux 4 cas d’affichage d’une image :

Type d’affichageiPhoneiPhone avec Retina DisplayiPadiPad avec Retina Display
Exemple de résolution d’une image
(largeur x hauteur)
100px x 100px200px x 200px150px x 150px300px x 300px
Modèle de nom de fichier à utilisermon_image.pngmon_image@2x.pngmon_image~ipad.pngmon_image@2x~ipad.png

Exemple de code :

UIImage *image = [UIImage imageNamed:@"mon_image"];
UIImageView *vueImage = [[UIImageView alloc] initWithImage:image];

Simplifier la conversion, le travail des batchs

Si vous voulez gagner du temps pour traiter vos images, il existe de multiples outils permettant la conversion par lot d’images.
Le plus connu, Adobe Photoshop, mais l’outil étant payant on peut lui préférer GIMP ou ImageMagick.