Toybrick RK3399Pro : Une carte de développement pour l’AI

La carte Toybrick RK3399Pro embarque un SoC Rockchip du même nom avec un NPU, un circuit dédié à l’Intelligence Artificielle. Clairement réservére aux professionnels avec un prix assez élevé, la solution est intéressante a détailler.

La Toybrick RK3399Pro se rapproche des cartes de développement par l’emploi d’un brochage classique pour connecter des extensions et une connectique relativement habituelle. Pour le reste, les composants sont assez inhabituels.

2019-01-29 10_29_07-minimachines.net

L’emploi du Rockchip RK3399Pro n’est pas courant même si la puce est sortie il y a plus d’un an maintenant. Ce n’est pas le SoC qui a retenu le plus l’attention des développeurs de cartes de développement. Et pourtant ses capacités sont étonnantes. Entre la prise en charge de l’Ethernet Gigabit, la gestion de mémoire vive sur deux canaux ainsi que la prise en charge de solutions audio jusqu’à 8 microphones ou celle d’un connecteur PCIe 4x… Le SoC est capable de piloter beaucoup de choses même si sa capacité à prendre en charge des opérations TensorFlow et Caffe avec son NPU capable d’effectuer 2.4 TOPS1.

2019-01-29 10_29_36-minimachines.net

Le Rochchip RK3399Pro est un hexa-coeur sous format big.LITTLE composé de deux Cortex A72 capable d’atteindre 2.0 GHz et quatre Cortex A53 cadencés à 1.4 GHz. Son chipset graphique est un Mali-T860 MP4. La Toybrick RK3399Pro offrira 3 ou 6 Go de mémoire vive et son stockage sera de 16 à 32 go de eMMC secondés par un lecteur de cartes MicroSDXC. Alimentée par un port USB Type-C ou un jack classique, elle dispose d’une connectique USB 3.0 et 2.0, d’un support RS232 et même d’un port PCIe. On pourra également noter la présence d’un port d’alimentation de ventilateur pour assurer un refroidissement efficace de ses composants.

La carte propose un port HDMI 2.12, un Displayport 1.2, un connecteur MIPI DSI et un eDP pour piloter un écran dans une solution embarquée plus facilement. La carte propose deux MIPI CSI et un double ISP pour prendre en charge des solutions jusqu’à 13 mégapixels. La partie audio propose une sortie jack stéréo classique en 3.5 mm, un brochage pour brancher une enceinte mono, un microphone interne mais également le support de 8 entrées micro numériques pour enregistrer du son sur 360° à la manière des assistants vocaux type Amazon Echo.

Associée au NPU, cette fonction peut laisser supposer des usages de développement assez vastes et débarrassés des tentacules d’un Google ou d’un Amazon. Il serait en théorie possible d’utiliser cette carte Toybrick RK3399Pro pour piloter une IA capable d’enregistrer et de prendre en charge vos ordres vocaux sans passer par un service externe. Avec une connexion Wifi optionnelle via un module mPCIe et un support Ethernet Gigabit, la solution pourrait ensuite adapter vos ordres à d’autres périphériques. Ses connecteurs d’extensions offrant également la possibilité de piloter des sous interfaces de contrôle. De quoi imaginer une solution domotique totalement indépendante et réagissant à des ordres vocaux ?

La carte est livrée avec Android et Linux pré-installés dans un configuration de double boot. Des outils de gestion du NPU semblent également être intégrés d’office, de quoi prendre en main les capacités de la carte et évaluer les performances du NPU de Rockchip.

2019-01-29 10_17_16-minimachines.net

La carte est livrée avec une alimentation jack et un câble USB Type-C ainsi qu’un “boitier”… 

Reste que la carte est proposée à 249$, un tarif assez élevé faute de concurrence. Le seul autre modèle de carte proposé avec un SoC RK3399Pro depuis un an est une Khadas Edge-1S, une évolution de la Khadas Edge de base,  en financement participatif et toujours pas livrée à l’heure actuelle…

Source : CNX-Software

Notes :

  1. Toybrick indique 3 TOP mais le SoC est donné comme capable de gérer 2.4 TOPS par Rockchip
  2. A confirmer
14 commentaires sur ce sujet.
  • 29 janvier 2019 - 11 h 22 min

    “prendre en charge vos ordres vocaux sans passer par un service externe.”
    de ce que j’ai compris le soucis c’est la taille de stockage nécessaire aux données de référence, j’ai rien trouvé d’autonome, même les solutions libres s’appuient sur les API d’un des assistants vocaux

    et la synthèse vocale est dégueu sous linux x) j’ai comparé avec celui d’Apple qui lui est parfait :/

    Répondre
  • 29 janvier 2019 - 15 h 42 min
  • 29 janvier 2019 - 16 h 11 min

    @H2L29:

    Si tu es intéressé par un assistant vocal autonome, va voir la startup SNIPS (https://snips.ai/). Snips propose un SDK/Kit pour faire du traitement local des commandes vocales. Tu peux tester avec un Raspi. Leur crédo c’est “security by design” pour garder la main sur tes données vocales contrairement à Siri/Alexa/Cortana/Google Now

    Répondre
  • 29 janvier 2019 - 16 h 56 min

    @calvin: j’ai été voir, pas lu le code mais ce que j’ai vu porte à croire qu’ils se basent sur l’API de google :D (comme Gladys soit dit en passant)

    à ce jour le seul projet libre que je connaisse est CMUSphinx et j’ai pas encore test parce qu’il ne semble pas du tout pret à être utilisé par le commun des mortels

    Répondre
  • 29 janvier 2019 - 17 h 08 min

    @H2L29:

    Snips utilise une API propriétaire indépendante de celles proposés par les GAFA. A l’heure actuelle, elle serait capable de traiter -> English, French, German and Japanese

    C’est pour les autres langues que tu aurais besoin de t’appuyer sur les services Google Cloud (https://docs.snips.ai/articles/advanced/asr)

    J’essaye d’en bricoler un chez moi pour me faire une idée

    Répondre
  • 29 janvier 2019 - 17 h 17 min

    “une API propriétaire indépendante” c’est bien là tout le problème, pourquoi je ferai plus confiance en leur API proprio plutôt qu’à celle des GAFAM?

    Répondre
  • 29 janvier 2019 - 17 h 34 min

    @H2L29: Mozilla nne travaillait-ils pas sur un truc du genre ? Il me semblais avoir lu quelque chose de ce type il y a 2 ans environ, mais je peux me tromper.

    Répondre
  • 29 janvier 2019 - 17 h 56 min

    oui ils sont sûrement sur un truc, mais je ne doute pas qu’ils se baseront sur une API existante genre Alexa, puis si c’est seulement InApp en sachant qu’ils ont aussi abandonné firefoxOS ça se limiterai à de la recherche ouaib? bref ça semble pas super attirant non plus

    Répondre
  • 29 janvier 2019 - 19 h 07 min

    Sinon avec un simple Raspberry PI et les Neural Compute Stick d’Intel, on fait déjà des choses formidables et autonomes en IA. J’ai beaucoup joué avec pour construire des prototypes d’un système robotique. On peut aller très loin, et c’est modulable. En ajoutant des Neural Stick sur le bus USB, avec un Raspberry PI embarqué, on arrive à faire des choses même pas imaginables sur un PC fixe de compétition (seul).

    Répondre
  • 29 janvier 2019 - 20 h 08 min

    @H2L29: CMUSphinx à, commencé récemment à regarder pour mettre une petite dose d’IA mais reste basé sur d’anciennes technos pour la reconnaissance vocale. Aujourd’hui, avec l’IA il n’y a plus nécessairement besoin d’une grosse base de données de référence au runtime. Il en faut en revanche pas mal lors de la phase d’apprentissage, mais sous forme brute (juste des samplings).

    Les outils comme CMUSphinx sont lourds car ils sont généralistes et construits “à l’ancienne”. Pour un vocabulaire restreint (sinon il faut y passer beaucoup de temps), avec juste un peu de deep learning, sans framework, on fait déjà des choses qui fonctionnent très bien. Perso je l’avais fait juste par curiosité pour évaluer le potentiel du deep learning au niveau du traitement de la voix. En deux jours j’avais déjà un système qui savait reconnaître les quelques mots d’un petit vocabulaire et les transcrire en texte. C’était très limité, mais je l’ai fait, sans aucun framework spécifique (juste Tensorflow lite, et rien d’autre), des connaissances vraiment limitées côté audio, et le deep learning était encore quelque chose de frais pour moi.

    En gros (je simplifie un peu), il suffit de transformer chaque mot d’un vocabulaire en phonèmes, et d’apprendre à l’IA deux choses:
    * reconnaître les phonèmes (il y en a assez peu en fait) : ça permet d’identifier les mots candidats à partir d’un dictionnaire (restreint au domaine ciblé, donc très petit).
    * reconnaître les assemblages de mots plausibles, au travers d’un ensemble de phrases apprises au départ, sous forme texte. Mais là, on peut générer la base de connaissance en automatique : sujet, verbe, complément, …).
    À partir d’une phrase entendue (juste une suite de phonèmes), ça permet au système de ressortir la phrase la plus plausible pour un vocabulaire donné en deux étapes simple (identifier les mots possibles, puis identifier les phrase possibles à partir de ces mots ainsi séquencés). Le tout avec une probabilité de pertinence connue, c’est à dire qu’en cas de mots inconnus, ou de phrases mal construites et incompréhensibles (du genre des verbes sans sujet), le système s’en aperçoit et est capable de réagir en conséquence.

    C’était juste un exercice que je m’étais fixé pour creuser les possibilité du deep learning. Je suis resté sur un scope très réduit et ne me suis pas intéressé spécialement au sujet ensuite, mais il est clair qu’en l’état CMUSphinx, que j’avais aussi eut l’occasions d’essayer il y a une dizaine d’années (mais il n’a pas tellement évolué depuis), va très vite être dépassé, ou est même sans doute déjà complètement dépassé. Pour moi, le deep learning a complètement changé la donne et rebattu les cartes sur ce domaine, comme beaucoup d’autres…

    Répondre
  • 29 janvier 2019 - 20 h 24 min

    @Laurent Simon: intéressant tout ça, bien sûr que ça n’est pas pret de rivaliser avec les outils proprios, ça ne le sera probablement jamais, mais tu me donne des pistes que je vais tester bientôt ;)

    pour moi le plus important c’est que ça reste KISS pour comprendre et expliquer le fonctionnement et le faire évoluer en maîtrisant le process de bout en bout

    Répondre
  • 29 janvier 2019 - 20 h 55 min

    @Laurent Simon: Je serais curieux de voir un résultat sous Movidius et Pi !

    Répondre
  • 29 janvier 2019 - 22 h 55 min
  • 30 janvier 2019 - 3 h 03 min

    @exxos: ben… par curiosité ?

    Répondre
  • LAISSER UN COMMENTAIRE

    *

    *