Sony SmartWatch 2

Last update : May 28, 2014

Sony SmartWatch 2

Sony SmartWatch 2

The Sony SmartWatch 2, also known as SW2, is a wearable device launched in late September 2013. The SW2 connects to an Android 4.0 (and higher) smartphone using Bluetooth, and supports NFC for easy pairing. The display is a transflective LCD screen with a 220×176 resolution.

Sony SmartWatch 2 Usage

Sony SmartWatch 2 Homescreen

Sony SmartWatch 2 Homescreen

To set up your SmartWatch 2 device, you need first to install the Smart Connect (formerly Liveware Manager) app (last update May 8, 2014) on your phone and to pair it with your phone using a Bluetooth connection. The next step is to install the official Sony SmartWatch app (last update May 6, 2014). This app is not visible in the phone’s home screen, but integrated in the Smart Connect app and in the phone’s status bar. The app allows to edit settings, select a watch interface and to find/enable/disable SmartWatch app extensions.

Sony SmartWatch 2 Extensions

Some useful free extensions for the watch are listed below :

Some useful paid extensions are listed hereafter :

Sony SmartWatch 2 Developement

The Sony Developer World website provides SDK’s, tutorials, tips, tools and documentation how to create  SmartWatch 2 app extensions. A comprehensive Knowledge Base is available to provide more informations about these topics.

Sony SmartWatch 2 on Blackberry Z10

To run the SmartWatch 2 application in the Blackberry Android 4.3 Runtime Player, you need to do a small modification in the MANIFEST.xml file of the SmartWatch 2 app and its extensions and to resign the Smart Connect app with the same key. See my separate post about this subject for additional informations.

Face Recognition Tests

Referring to my recent post about Face Recognition Systems, I did some trials with my “About” photo. Here are the results of my Face Recognition Tests :

Animetrics

Face Detection Tests : Animetrics

Face Detection Tests : Animetrics

{"images": [
{"time": 4.328,
"status": "Complete",
"url": "http://www.web3.lu/download/Marco_Barnig_529x529.jpg",
"width": 529,
"height": 529,
"setpose_image": "http://api.animetrics.com/img/setpose/d89864cc3aaab341d4211113a8310f9a.jpg",
"faces": [
{"topLeftX": 206,
"topLeftY": 112,
"width": 82,
"height": 82,
"leftEyeCenterX": 227.525,
"leftEyeCenterY": 126.692,
"rightEyeCenterX": 272.967,
"rightEyeCenterY": 128.742,
"noseTipX": 252.159,
"noseTipY": 158.973,
"noseBtwEyesX": 251.711,
"noseBtwEyesY": 126.492,
"chinTipX": -1,
"chinTipY": -1,
"leftEyeCornerLeftX": 219.005,
"leftEyeCornerLeftY": 126.308,
"leftEyeCornerRightX": 237.433,
"leftEyeCornerRightY": 127.85,
"rightEyeCornerLeftX": 262.995,
"rightEyeCornerLeftY": 129.004,
"rightEyeCornerRightX": 280.777,
"rightEyeCornerRightY": 129.094,
"rightEarTragusX": -1,
"rightEarTragusY": -1,
"leftEarTragusX": -1,
"leftEarTragusY": -1,
"leftEyeBrowLeftX": 211.478,
"leftEyeBrowLeftY": 120.93,
"leftEyeBrowMiddleX": 226.005,
"leftEyeBrowMiddleY": 117.767,
"leftEyeBrowRightX": 241.796,
"leftEyeBrowRightY": 120.416,
"rightEyeBrowLeftX": 264.142,
"rightEyeBrowLeftY": 121.101,
"rightEyeBrowMiddleX": 278.625,
"rightEyeBrowMiddleY": 119.38,
"rightEyeBrowRightX": 290.026,
"rightEyeBrowRightY": 124.059,
"nostrilLeftHoleBottomX": 243.92,
"nostrilLeftHoleBottomY": 168.822,
"nostrilRightHoleBottomX": 257.572,
"nostrilRightHoleBottomY": 170.683,
"nostrilLeftSideX": 236.867,
"nostrilLeftSideY": 163.555,
"nostrilRightSideX": 262.073,
"nostrilRightSideY": 165.049,
"lipCornerLeftX": -1,
"lipCornerLeftY": -1,
"lipLineMiddleX": -1,
"lipLineMiddleY": -1,
"lipCornerRightX": -1,
"lipCornerRightY": -1,
"pitch": -6.52624,
"yaw": -6.43,
"roll": 2.35988
}]}]}

APICloudMe

Face Recognition Tests : APICloudMe FaceRect and FaceMark

Face Recognition Tests : APICloudMe FaceRect and FaceMark

{"faces" : [
{"orientation" : "frontal",
"landmarks" : [
{"x" : 193,"y" : 125},
{"x" : 191,"y" : 145},
{"x" : 192,"y" : 163},
{"x" : 196,"y" : 178},
{"x" : 206,"y" : 194},
{"x" : 218,"y" : 204},
{"x" : 229,"y" : 206},
{"x" : 243,"y" : 209},
{"x" : 259,"y" : 206},
{"x" : 268,"y" : 202},
{"x" : 278,"y" : 195},
{"x" : 287,"y" : 182},
{"x" : 292,"y" : 167},
{"x" : 296,"y" : 150},
{"x" : 297,"y" : 129},
{"x" : 284,"y" : 112},
{"x" : 279,"y" : 108},
{"x" : 268,"y" : 110},
{"x" : 263,"y" : 116},
{"x" : 270,"y" : 113},
{"x" : 277,"y" : 111},
{"x" : 214,"y" : 111},
{"x" : 223,"y" : 107},
{"x" : 234,"y" : 110},
{"x" : 238,"y" : 115},
{"x" : 232,"y" : 113},
{"x" : 223,"y" : 110},
{"x" : 217,"y" : 127},
{"x" : 228,"y" : 121},
{"x" : 236,"y" : 129},
{"x" : 227,"y" : 131},
{"x" : 227,"y" : 126},
{"x" : 280,"y" : 129},
{"x" : 271,"y" : 123},
{"x" : 262,"y" : 130},
{"x" : 271,"y" : 133},
{"x" : 271,"y" : 127},
{"x" : 242,"y" : 128},
{"x" : 238,"y" : 145},
{"x" : 232,"y" : 157},
{"x" : 232,"y" : 163},
{"x" : 247,"y" : 168},
{"x" : 262,"y" : 164},
{"x" : 262,"y" : 158},
{"x" : 258,"y" : 146},
{"x" : 256,"y" : 129},
{"x" : 239,"y" : 163},
{"x" : 256,"y" : 164},
{"x" : 221,"y" : 179},
{"x" : 232,"y" : 178},
{"x" : 240,"y" : 179},
{"x" : 245,"y" : 180},
{"x" : 251,"y" : 180},
{"x" : 259,"y" : 180},
{"x" : 269,"y" : 182},
{"x" : 261,"y" : 186},
{"x" : 253,"y" : 189},
{"x" : 245,"y" : 189},
{"x" : 236,"y" : 187},
{"x" : 229,"y" : 184},
{"x" : 235,"y" : 182},
{"x" : 245,"y" : 184},
{"x" : 255,"y" : 184},
{"x" : 254,"y" : 183},
{"x" : 245,"y" : 183},
{"x" : 235,"y" : 182},
{"x" : 245,"y" : 183},
{"x" : 249,"y" : 160}
]}],
"image" : {
"width" : 529,
"height" : 529
}}

Betaface API

Image ID : 65fe585d-e565-496e-ab43-bcfdc18c7918
Faces : 2

Face detection Test : Betaface API

Face Recognition Tests : Betaface API

hair color type: red (24%), gender: male (52%), age: 49 (14%), ethnicity: white (57%), smile: yes (15%), glasses: yes (48%), mustache: yes (46%), beard: yes (35%)
500: HEAD Height/Width level parameter (POS = long narrow face NEG = short wide face)(min -2 max 2): 1
501: HEAD TopWidth/BottomWidth level parameter (POS = heart shape NEG = rectangular face)(min -2 max 2):0
502: NOSE Height/Width level parameter (NEG = thinner) (min -2 max 2) : 2
503: NOSE TopWidth/BottomWidth level parameter (NEG = wider at the bottom) (min -2 max 2) : 1
504: MOUTH Width level parameter (min -2 max 2) : 1
505: MOUTH Height level parameter (NEG = thin) (min -2 max 2) : 1
521: MOUTH Corners vertical offset level parameter (NEG = higher) (min -2 max 2) : -2
506: EYES Height/Width level parameter (NEG = thinner and wider, POS = more round) (min -2 max 2) : -1
507: EYES Angle level parameter (NEG = inner eye corners moved towards mouth) (min -2 max 2) : 1
517: EYES closeness level parameter (NEG = closer) (min -2 max 2) : 0
518: EYES vertical position level parameter (NEG = higher) (min -2 max 2) : 0
508: HAIRSTYLE Sides thickness level parameter (min 0 max 3) : 0
509: HAIRSTYLE Hair length level parameter (min 0 max 5) : 0
510: HAIRSTYLE Forehead hair presence parameter (min 0 max 1) : 1
511: HAIRSTYLE Hair Top hair amount level parameter (min 0 max 4) : 3
512: FACE HAIR Mustache level parameter (min 0 max 2) : 0
513: FACE HAIR Beard level parameter (min 0 max 2) : 0
514: GLASSES presence level parameter (min 0 max 1) : 0
515: EYEBROWS thickness level parameter (min -2 max 2) : -2
516: EYEBROWS vertical pos level parameter (POS = closer to the eyes) (min -2 max 2) : -2
520: EYEBROWS Angle level parameter(NEG = inner eyebrows corners moved towards mouth)(min -2 max 2) :-2
519: TEETH presence level parameter (min 0 max 1) : 1
522: NOSE-CHIN distance level parameter (min -2 max 2) : 0
620756992: face height/face width ratio / avg height/width ratio : 1.0478431040781575
620822528: face chin width/face width ratio / avg height/width ratio : 1.0038425243863847
620888064: face current eyes distance/ avg eyes distance ratio : 1.0104771666577224
620953600: eyes vertical position - avg position, minus - higher : -0.00089347261759175321
621019136: distance between chin bottom and low lip / avg distance : 0.97106500562603393
621084672: distance between nose bottom and top lip / avg distance : 1.0075242288018134
621150208: distance between nose top and bottom / avg distance : 1.0619860919447868
621215744: distance between nose left and right / avg distance : 1.0426301239394231
621281280: distance between left mouth corner and right mouth corner / avg distance : 1.0806991515139102
621346816: eyebrows thichkness / avg thichkness : 0.83331489266473235
621412352: ratio (low nose part width / top nose part width) / avg ratio : 0.9717897529241869
621477888: eye height/width ratio / avg height/width ratio : 0.9611420163590253
621543424: width of the chin / avg width of the chin : 0.96738062415147075
621608960: angle of the eyes in degrees - avg angle. Negative angle mean inner eye corners moved towards mouth from average position : -0.35247882153940435
621674496: distance between eyebrows and eyes / avg distance : 0.88418599076781756
621740032: face width / avg width ratio : 0.96367766920692888
621805568: skin color (Weight) (min 0 max 1) : 1.340999960899353
621871104: skin color (H) (min 0 max 180) : 7
621936640: skin color (S) (min 0 max 255) : 81
622002176: skin color (V) (min 0 max 255) : 208
622067712: skin color (R) (min 0 max 255) : 208
622133248: skin color (G) (min 0 max 255) : 157
622198784: skin color (B) (min 0 max 255) : 142
622264320: mustache color if detected (Weight) (min 0 max 1) : 0
622329856: mustache color if detected (H) (min 0 max 180) : 0
622395392: mustache color if detected (S) (min 0 max 255) : 0
622460928: mustache color if detected (V) (min 0 max 255) : 0
622526464: mustache color if detected (R) (min 0 max 255) : 0
622592000: mustache color if detected (G) (min 0 max 255) : 0
622657536: mustache color if detected (B) (min 0 max 255) : 0
622723072: beard color if detected (Weight) (min 0 max 1) : 0
622788608: beard color if detected (H) (min 0 max 180) : 0
622854144: beard color if detected (S) (min 0 max 255) : 0
622919680: beard color if detected (V) (min 0 max 255) : 0
622985216: beard color if detected (R) (min 0 max 255) : 0
623050752: beard color if detected (G) (min 0 max 255) : 0
623116288: beard color if detected (B) (min 0 max 255) : 0
623181824: weight of teeth color (Weight) (min 0 max 1) : 0.4440000057220459
623247360: glasses detection (weight floating value, related to thickness of rim/confidence) (min 0.03 max 1) : 0.065934065934065936
623312896: color of the hair area (Weight) (min 0 max 1) : 0.23899999260902405
623378432: color of the hair area (H) (min 0 max 180) : 4
623443968: color of the hair area (S) (min 0 max 255) : 151
623509504: color of the hair area (V) (min 0 max 255) : 130
623575040: color of the hair area (R) (min 0 max 255) : 130
623640576: color of the hair area (G) (min 0 max 255) : 63
623706112: color of the hair area (B) (min 0 max 255) : 53
673513472: eyebrows angle. Negative angle mean inner eyebrow corners moved towards mouth from average position : 0.086002873281683989
673579008: mouth corners Y offset - avg offset : -0.12499242147802289
673644544: mouth height / avg height : 1.1755344432588537
673710080: nose tip to chin distance / avg distance : 1.0093704038280917

BioID

Face Recognition Tests : BioID

Face Recognition Tests : BioID

<?xml version="1.0" encoding="utf-16"?>
<OperationResults xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.bioid.com/2012/02/BWSMessages">
  <JobID>955410d9-eb2c-43db-b3ca-deeedcd665af</JobID>
  <Command>QualityCheck</Command>
  <Succeeded>true</Succeeded>
  <Samples>
    <Sample Trait="Face" Suitable="true">
      <Errors>
        <Error>
          <Code>ImageTooSmall</Code>
          <Message>The part of the image containing the found face is too small.</Message>
          <Details>The found face (with an eye-distance of 43 pixels) does not have the required eye-distance of at least 240 pixels.</Details>
        </Error>
        <Error>
          <Code>ImageTooSmall</Code>
          <Message>The part of the image containing the found face is too small.</Message>
          <Details>The cropped face image (with 146 x 188 pixels) does not have the minimum expected resolution of 827 x 1063 pixels.</Details>
        </Error>
        <Error>
          <Code>FaceAsymmetry</Code>
          <Message>It seems that the face of the found person is somehow asymmetric, maybe due to bad illumination and/or due to a wrong pose.</Message>
          <Details>An asymmetry of 88.20 was calculated, where only a value up to 50.00 is allowed.</Details>
        </Error>
        <Error>
          <Code>MissingTimeStamp</Code>
          <Message>The image does not have any tag attached which could be used to find out when it was taken. It cannot be assured that the image is not older than 183 days.</Message>
          <Details />
        </Error>
        <Error>
          <Code>ImageOverExposure</Code>
          <Message>The image is over-exposed, i.e. it has too many very light pixels.</Message>
          <Details>The amount of very bright pixels is 1.34%, where only 1.00% are allowed.</Details>
        </Error>
      </Errors>
      <Tags>
        <RightEye X="52.174" Y="84.108" />
        <LeftEye X="95.448" Y="86.173" />
      </Tags>
    </Sample>
  </Samples>
  <Statistics>
    <ProcessingTime>00:00:01.3642947</ProcessingTime>
    <TotalServiceTime>00:00:01.6941376</TotalServiceTime>
  </Statistics>
</OperationResults>

BiometryCloud

No demo app available.

HP Labs Multimedia Analytical Platform

Face Recognition Tests : HP Labs Multimedia

Face Recognition Tests : HP Labs Multimedia Analytical Platform

{
"pic":{
"id_pic":"8f2cb88987e9e6b88813c5c17599204a25a8d63b",
"height":"529",
"width":"529"
},
"face":[{
"id_face":"2500002",
"id_pic":"8f2cb88987e9e6b88813c5c17599204a25a8d63b",
"bb_left":"209",
"bb_top":"109",
"bb_right":"290",
"bb_bottom":"190"
}]}

Lambda Labs Face

Face Recognition Tests : Lambda Labs

Face Recognition Tests : Lambda Labs

{
"status": "success",
"images": ["http://www.web3.lu/download/Marco_Barnig_529x529.jpg"],
"photos": [{"url": "http://www.web3.lu/download/Marco_Barnig_529x529.jpg",
"width": 529,
"tags": [
{"eye_left": {"y": 128,"x": 269},
"confidence": 0.978945010372561,
"center": {"y": 143,"x": 250},
"mouth_right": {"y": 180,"x": 267},
"mouth_left": {"y": 180,"x": 220},
"height": 128,"width": 128,
"mouth_center": {"y": 180,"x": 243.5},
"nose": {"y": 166,"x": 250},
"eye_right": {"y": 129,"x": 231},
"tid": "31337",
"attributes": [{"smile_rating": 0.5,"smiling": false,"confidence": 0.5},
{"gender": "male","confidence": 0.6564017215167235}],
"uids": [
{"confidence": 0.71,"prediction": "TigerWoods","uid": "TigerWoods@CELEBS"},
{"confidence": 0.258,"prediction": "ArnoldS","uid": "ArnoldS@CELEBS"}]}],
"height": 529
}]}

Orbeus ReKognition

Face Recognition Tests : Orbeus ReKognition

Face Recognition Tests : Orbeus ReKognition

{
"url" : "base64_ZNlBfC.jpg",
"face_detection" : [{
"boundingbox" : {
"tl" : {"x" : "188.46","y" : "80.77"},
"size" : {"width" : "126.15","height" : "126.15"}},
"confidence" : "0.98",
"name" : "mark_zuckerberg:0.37,obama:0.33,brad_pitt:0.16,",
"matches" : [{"tag" : "mark_zuckerberg","score" : "0.37"},
{"tag" : "obama","score" : "0.33"},
{"tag" : "brad_pitt","score" : "0.16"}],
"eye_left" : {"x" : "229.6","y" : "125.6"},
"eye_right" : {"x" : "272.5","y" : "127.7"},
"nose" : {"x" : "252.4","y" : "161.5"},
"mouth l" : {"x" : "226.9","y" : "173"},
"mouth_l" : {"x" : "226.9","y" : "173"},
"mouth r" : {"x" : "266.1","y" : "175.6"},
"mouth_r" : {"x" : "266.1","y" : "175.6"},
"pose" : {"roll" : "1.68","yaw" : "19.83","pitch" : "-11.7"},
"b_ll" : {"x" : "211.6","y" : "118"},
"b_lm" : {"x" : "226.7","y" : "113.2"},
"b_lr" : {"x" : "242.2","y" : "116.1"},
"b_rl" : {"x" : "263.5","y" : "117.1",
"b_rm" : {"x" : "277.8","y" : "115.5"},
"b_rr" : {"x" : "290.5","y" : "120"},
"e_ll" : {"x" : "221.5","y" : "125.7"},
"e_lr" : {"x" : "237.4","y" : "126.7"},
"e_lu" : {"x" : "229.9","y" : "122.5"},
"e_ld" : {"x" : "229.4","y" : "128.1"},
"e_rl" : {"x" : "265.3","y" : "128.2"},
"e_rr" : {"x" : "279.5","y" : "128.4"},
"e_ru" : {"x" : "272.5","y" : "124.8"},
"e_rd" : {"x" : "272.5","y" : "130.1"},
"n_l" : {"x" : "240.3","y" : "161.2"},
"n_r" : {"x" : "259.7","y" : "163.8"},
"m_u" : {"x" : "248.2","y" : "174.2"},
"m_d" : {"x" : "246.3","y" : "189.3"},
"race" : {"white" : "0.56"},
"age" : "48.28",
"glasses" : "1",
"eye_closed" : "0",
"mouth_open_wide" : "0.77",
"sex" : "0.96"},
{"boundingbox" : {
"tl" : {"x" : "19.23","y" : "221.54"},
"size" : {"width" : "160","height" : "160"}},
"confidence" : "0.07",
"name" : "obama:0.03,brad_pitt:0.02,jim_parsons:0.01,",
"matches" : [
{"tag" : "obama","score" : "0.03"},
{"tag" : "brad_pitt","score" : "0.02"},
{"tag" : "jim_parsons","score" : "0.01"}
],
"eye_left" : {"x" : "93.7","y" : "257.9"},
"eye_right" : {"x" : "128.4","y" : "309.1"},
"nose" : {"x" : "95.8","y" : "299.5"},
"mouth l" : {"x" : "58.9","y" : "306.9"},
"mouth_l" : {"x" : "58.9","y" : "306.9"},
"mouth r" : {"x" : "94.1","y" : "350.9"},
"mouth_r" : {"x" : "94.1","y" : "350.9"},
"pose" : {"roll" : "59.26","yaw" : "-11.22","pitch" : "9.96"},
"b_ll" : {"x" : "102.4","y" : "227.3"},
"b_lm" : {"x" : "114.9","y" : "240.8"},
"b_lr" : {"x" : "119.5","y" : "259.5"},
"b_rl" : {"x" : "133.9","y" : "282.1"},
"b_rm" : {"x" : "147.7","y" : "295.7"},
"b_rr" : {"x" : "153.8","y" : "312.3"},
"e_ll" : {"x" : "88.2","y" : "248.3"},
"e_lr" : {"x" : "100.2","y" : "267.6"},
"e_lu" : {"x" : "94.2","y" : "257.4"},
"e_ld" : {"x" : "92.7","y" : "258.4"},
"e_rl" : {"x" : "122.3","y" : "299.1"},
"e_rr" : {"x" : "134.7","y" : "319.7"},
"e_ru" : {"x" : "129.5","y" : "308.5"},
"e_rd" : {"x" : "127.2","y" : "309.6"},
"n_l" : {"x" : "78.7","y" : "298.6"},
"n_r" : {"x" : "97.8","y" : "318.4"},
"m_u" : {"x" : "80.4","y" : "321.2"},
"m_d" : {"x" : "72.6","y" : "328.5"},
"race" : {"black" : "0.63"},
"age" : "23.07",
"glasses" : "0.98",
"eye_closed" : "0.9",
"mouth_open_wide" : "0.46",
"sex" : "0.66"
}],
"ori_img_size" : {
"width" : "529",
"height" : "529"
},
"usage" : {
"quota" : "-10261829",
"status" : "Succeed.",
"api_id" : "4321"
}
}

Sky Biometry

Face Recognition Tests : SkyBiometry

Face Recognition Tests : SkyBiometry

face: (85%)
gender: male (86%)
smiling: true (100%)
glasses: true (57%)
dark glasses: false (21%)
eyes: open (80%)
mood: angry (69%)
N: 0%
A: 69%
D: 40%
F: 0%
H: 23%
S: 0%
SP: 21%
roll: 3
yaw: -14

Face Recognition Systems

Last update : December 15, 2014

Face Recognition Definitions

A face recognition system is a computer application for automatically identifying or verifying a person from a digital image or from a video frame. One of the ways to do this is by comparing selected facial features (landmarks) from the image with a facial database.

Face recognition is used in biometrics, video surveillance, human computer interfaces and image database management (digital photo albums).

The prior step to face recognition is the accurate detection of human faces in arbitrary scenes. Face detection is the related computer technology that determines the locations and sizes of human faces in digital images. This is an effortless task for humans, but requires a great effort for computers.

Face detection is followed by normalization and extraction which leads to the final recognition. A next step could be the interpretation of the face. This understanding of an individual’s face is called face perception. The proportions and expressions of the human face are important to identify origin, emotions, health qualities, social information and accessories (glasses, beards, …).

Face detection is a general case of face localization and a specific case of object-class detection. In object-class detection, the task is to find the locations and sizes of all objects in an image that belong to a given class. Some digital cameras use face detection for autofocusor to take automatically a second picture if someone closed his eyes during exposure. Today face detection is a standard feature in various image edition programs, for instance in Adobe Photoshop Elements, Synology Photostation, Apple iPhoto, …

Face Recognition Promotion

In the years 2000, 2002, 2006, 2012 and 2013, the US National Institute of Standards and Technology (NIST), an agency of the U.S. Department of Commerce, organized a Face Vendor Recognition Test (FRVT). These tests provided independent government evaluations of commercially available and prototype face recognition technologies. These evaluations are designed to provide U.S. Government and law enforcement agencies with information to assist them in determining where and how facial recognition technology can best be deployed. In addition, FRVT results help identify future research directions for the face recognition community.

The US government conducted two other projects to promote and advance face recognition technologies. The FERET program started in September 1993 and ended in 1997. The Face Recognition Grand Challenge (FRGC) ran from May 2004 to March 2006. The test databases and results of FRVT and FRGC are still available for researchers.

There are other actors who promote face recognition technologies. The IEEE conference on Automatic Face and Gesture Recognition is the premier international forum for research in image and video- based face, gesture, and body movement recognition. Its broad scope includes advances in fundamental computer vision, pattern recognition, computer graphics, and machine learning techniques relevant to face, gesture, and body action, new algorithms, and analysis of specific applications. The Eleventh conference (FG 2015) will be held in Ljubljana, Slovenia in may 2015.

Another notable event in the domain of face recognition was the takeover in June 2012 by Facebook of Face.com Inc, an Israel-based technology company that developed a platform for efficient and accurate facial recognition in photos uploaded via web and mobile applications. One month later, the face.com API was shut down, which left some 45.000 developers stranded, and saw the developer community demanding an open source alternative. Six years earlier, Google acquired Neven Vision, whose technology for face recognition was integrated in Picasa Web Albums in September 2008.

Face Recognition Technologies

Face recognition is based on three approaches :

  • geometric : this approach is based on geometrical relationship between facial landmarks (distances and angles between eyes, nose, mouth , eyebrows, chin, jaw, cheekbones,  …).
  • photometric : this is a statistical approach that distills an image into values and compares the values with templates to eliminate variance.
  • 3D : three-dimensional (3D) face recognition  is based on distinctive features such as curves of eye sockets, chin, nose, tissues and cheekbones. This approach allows to identify a face from a range of viewing angles, including a profile view.

Popular recognition algorithms include :

Web based solutions

Animetrics : FaceR Identity Management System

Animetrics develops next-generation 2D-to-3D face recognition, identity management and biometrically enabled search engine products for authentication and search which links photographic clouds, cameras, video and image stores via Web-service based facial search engines. Animetrics is poised for strong growth in the Government market for mobile and intelligence, and the Commercial & Consumer markets for mobile, social networking and security by revolutionizing human interfaces to computing devices and social media.

APICloud.Me : FaceRect and FaceMark

FaceRect is a powerful and completely free API for face detection. FaceMark is a powerful API for facial feature detection. It finds 68 points for a frontal face and 35 for a profile one. FaceMark detects landmarks for faces on the image specified by URL or uploaded as a file and produces JSON output containing a vector of facial landmarks and orientation for each face found.

Betaface : Face Detection & Recognition

You can communicate with the Betaface webservice from any platform, any OS that will allow you to send and receive HTTP messages. The Website is owned and operated by Software Oleksandr Kazakov, Munich, Germany.

BioID : be recognized

BioID says to be the world’s first webcam-based personal recognition system for web and mobile users : convenient, reliable, secure. BioID provides a playground as test bed for the BioID Web Service, a collection of simple API calls enhancing existing systems with powerful biometrics (face recognition and voice recognition). You can sign up for a free My BioID account. Dr. Robert Frischholz, the author of the Face Detection Homepage, is the Chief Technical Officer (CTO) of BioID.

BiometryCloud : Face recognition for developers

BiometryCloud provides frameworks and plugins that, combined with their pattern recognition API’s, result in the most simple, fast and robust identity platform on the market. The service will be launched soon, you can subscribe to a private beta now.

HP Lab’s Multimedia Analytics Platform : beta

HP offers the Multimedia Analytics Platform Site as a place where you can experiment with some of the latest technologies that are under development at HP Labs, using your own media or sample pictures they provide. The following services are available : Face Detection, Face Verification, Face Demographic, Feature Extraction, Image Matching and Image Collage.

Lambda Labs : Face Recognition API βeta

Lambda Labs, Inc. was founded in the spring of 2012 in San Francisco and is now looking for the best hackers, academics, hustlers, and financiers to join them. A freemium subscription is offered to test the API which provides face recognition, facial detection, eye position, nose position, mouth position, and gender classification.

ReKognition : Integrated visual recognition solution based in Cloud

ReKognition is an open API platform provided by Orbeus, which helps developers easily incorporate the state-of-the-art computer vision capabilities of facial recognition, object recognition and scene understanding into your app or software. Orbeus is a computer vision company that empowers computers to see better than humans. Orbeus says to be the first and only company to provide a proprietary cloud-based image analysis solution that makes sense of faces, scenes and objects all together. You can sign up for a free Play Plan. An iOS beta app was available.

Sky Biometry : Cloud-based Face Detection and Recognition API

SkyBiometry introduces an cloud-based Face Detection and Recognition API. At the core of the product is one of the worlds best algorithms for the detection and recognition of faces that is successfully used in many commercial products around the globe. A free subscription is available.

More web services

Commercial solutions

Cybula FaceEnforce : 3D Face Recognition system

Cybula’s FaceEnforce system represents the leading edge technology for 3D facial biometrics.

FaceFirst : The Leader in Facial Recognition Technology

FaceFirst uses the world’s most highly developed facial recognition software. It is patent-pending technology rated number one by the 2006 Face Recognition Vendor Test conducted by the U.S. Commerce Department’s National Institute of Standards and Technology.

Luxand : FaceSDK 5.0

Luxand Inc. is a private hi-tech company formed in 2005. The company provides a broad range of facial feature recognition solutions. The company’s products and technologies are used by biometric identification and security companies, banks, the entertainment industry, medical and cosmetic industry, at online entertainment portals, chat rooms, and movie Web sites around the globe.

NEUROtechnology VeriLook

VeriLook facial identification technology is designed for biometric systems developers and integrators. The technology assures system performance and reliability with live face detection, simultaneous multiple face recognition and fast face matching in 1-to-1 and 1-to-many modes.

RoboRealm 2.67.45 : vision for machines

RoboRealm is an application for use in computer vision, image analysis, and robotic vision systems. RoboRealm’s face detection module is used to detect the presence of faces within an image.

Sensible Vision FastAccess SDK

FastAccess is facial recognition software for secure access to computing devices which reduces the need to manually log in to the device while maintaining strong security.

Free open source solutions

CCV 0.6 : A Modern Computer Vision Library

One core concept of ccv development is application driven. As a result, ccv end up implementing a handful state-of-art algorithms. It includes a very fast detection algorithm for rigid object (face etc.), an accurate object detection algorithm for somewhat difficult object (pedestrian, cat etc.), a state-of-art text detection algorithm, a long term object tracking algorithm, and the long-standing feature point detection algorithm.

FaceRecLib 2.0.0

The FaceRecLib is an open source platform that is designed to run comparable and reproducible face recognition experiments. This library is developed at the Biometrics group at the Idiap Research Institute. The FaceRecLib is a satellite package of the free signal processing and machine learning library Bob (version 2.0.0), and some of its algorithms rely on the CSU Face Recognition Resources.

OpenCV 3.0 : Open Source Computer Vision

OpenCV is released under a BSD license and hence it’s free for both academic and commercial use. It has C++, C, Python and Java interfaces and supports Windows, Linux, Mac OS, iOS and Android. OpenCV was designed for computational efficiency and with a strong focus on real-time applications. Written in optimized C/C++, the library can take advantage of multi-core processing.

An OpenCV version is also available for processing and Android.

OpenBR 0.5.0 : Open Source Biometric Recognition

OpenBR is a framework for investigating new modalities, improving existing algorithms, interfacing with commercial systems, measuring recognition performance, and deploying automated biometric systems. The project is designed to facilitate rapid algorithm prototyping, and features a mature core framework, flexible plugin system, and support for open and closed source development. Off-the-shelf algorithms are also available for specific modalities including Face Recognition, Age Estimation, and Gender Estimation. OpenBR requires OpenCV and Qt.

Bibliography

The following liist provides links to websites with additional informations about face recognition :

Mechanical Turk revisited

Mechanical Turk

The Mechanical Turk was a fake chess-playing machine constructed and unveiled in 1769 by Wolfgang von Kempelen to impress the Empress Maria Theresa of Austria.

by Racknitz

Copper engraving by Wolfgang von Kempelen or by Johann Friedrich von Racknitz

The automaton consisted of a life-sized model of a human head and torso, dressed in Turkish robes and a turban, mounted behind a large cabinet housing a clockwork machinery. On top of the cabinet stood a chessboard.

Following the death of Wolfgang von Kempelen in 1804, his son sold the Mechanical Turk to Johann Nepomuk Mälzel, (he patented the metronome, invented by Dietrich Nikolaus Winkel) who took it on tour around the world.

The chess-player was a mechanical illusion that allowed a human chess-master hiding inside to operate the machine. The director avoided detection by moving forward or backward on a sliding seat when the cabinet doors were opened in proper sequence. For nearly 85 years the Mechanical Turk won most of the games played during its demonstrations around Europe and the United States.

Among the challengers were :

Johann Nepomuk Mänzel died at sea in 1838 and the Mechanical Turk changed hands several times. Finally the automaton was donated to Nathan Dunn’s Chinese Museum in Philadelphia where it was destroyed during a fire in 1854.

Clockwork Game

page

Personalized copy of the Clockwork Game Novel

Jane Irwin, a self-published comic creator, writer and artist from Kalamazoo, Michigan, retold the story of the Mechanical Turk in her newest graphic novel Clockwork Game. The project was succesfully funded on October / November 2013 on Kickstarter. I was one of the (humble) backers and supporters of the project. I received today my personalized copy of the trade paperback of the Clockwork Game. It’s a beautiful artwork.

The novel is a historical fiction, but it sticks very close to the historical facts. The story starts in May 1769 in Schönbrunn, Vienna, when Herr von Kempelen presents his chess-automaton to her Majesty, Empress Maria Theresa. The story ends in July 1854 when the Mechanical Turk is destroyed in the fire touching Dunn’s Chinese Museum in Philadelphia. Échec was the last word of the machine.

MTurk

The name Mechanical Turk is also used by Amazon for it’s crowdsourcing Internet platform that enables requesters to co-ordinate the work of humans to help the machines of today to perform tasks for which they are not suited. This Amazon Web Service (AWS) labelled MTurk was launched in November 2005.

Small tasks are posted as HIT’s (Human Intelligence Task) by the requesters (individuals or businesses) at the marketplace for work. Turk Workers (also called Turkers) can browse the available HIT’s and execute them (if they are qualified) for a monetary payment set by the requesters. The average wage for completing tasks is about one dollar per hour.

MTurk is also used as a tool for artistic or educational exploration. One example is Aaron Koblin‘s collaborative artwork The Sheep Market displayed, among others, at the Hall of Fame of Digital Art at Leslie’s Artgallery.

Bibliography

The following list provides some links to additional informations about the Mechanical Turk:

1. ancient original documents

  • 1783 – K. G. v. Windisch : Briefe über den Schachspieler des Herrn von Kempelen (Google Books, 33 Seiten))
  • 1783 – Journal des Sçavans : Lettres de M. Charles Gottlieb de Windisch sur le Joueur d’échecs de M. de Kempelen; traduction libre de l’allemand (BnF Gallica bibliothèque numérique, 2 pages)
  • 1784 – Carl Friedrich Hindenburg : Ueber den Schachspieler des herrn von Kempelen: nebst einer Abbildung und Beschreibung seiner Sprachmaschine (Google Books, 45 Seiten)
  • 1784 – Berlinische Monatszeitschrift, Dezember 1784 : Schreiben über die Kempelischen Schach-spiel und Redemaschinen + Zusatz zu diesem Schreiben (Google Books, 20 Seiten)
  • 1784 – Johann Philipp Ostertag : Etwas über den Kempelinschen Schachspieler
  • 1789 – Joseph Friedrich zu Racknitz : Über den Schachspieler des Herrn von Kempelen und dessen Nachbildung (Universitätsbibliothek Humbold-Universität zu Berlin, 71 Seiten)
  • 1819 – Erneuerte vaterländische Blätter für den österreichischen Kaiserstaat :  Die wiedererstandene von Kempelen’sche Schachmaschine (ÖNB/ANNO, 4 Seiten + Schluss)
  • 1821 – Robert Willis : An Attempt to Analyse the Automaton Chess Player of mr. de Kempelen. To which is Added a copious Collection of the Knight’s Moves Over the Chess Board (Google Books, 40 pages)
  • 1836 – Edgar Allan Poe : Maelzel’s Chess Player (MOA digital library, Southern Literary Messenger, Vol 2, issue 5, 8 pages)
  • 1839 – George Walkers : Anatomy of the Chess Automaton; Fraser’s Magazine for Town and Country, Volume 19 (Google Books, 15 pages)
  • 1841 – Beilage zu Nr. 155 des Adlers für 1841 : Das Geheimnis des berühmten Schach-automaten (ÖNB/ANNO, 3 Seiten + Schluss)

2. reprints of ancient documents

  • 1784 : Philip Thicknesse : The Speaking Figure and the Automaton Chess Player, Exposed and Detected; ISBN 978-1170687338

3. contemporary books and documents

4. Videos

Dependency Walker

Dependency Walker is a free utility that scans any 32-bit or 64-bit Windows module (exe, dll, ocx, sys, etc.) and builds a hierarchical tree diagram of all dependent modules. For each module found, it lists all the functions that are exported by that module, and which of those functions are actually being called by other modules. Another view displays the minimum set of required files, along with detailed information about each file including a full path to the file, base address, version numbers, machine type, debug information, and more.

Wikedia states that Dependency Walker was included in Microsoft Visual Studio until Visual Studio 2005 (Version 8.0) and Windows XP SP2 support tools. The utility was developed by Steve P. Miller, but is copyrighted to Microsoft. The latest version is 2.2.6000, released on October 29, 2006.

The following figure shows the dependencies of the TuxDroidServer program.

Dependency Walker version 2.2.6000, bny Steve P. Miller

Dependency Walker version 2.2.6000, by Steve P. Miller

 

Tux Droid Development

Last update : September 1, 2020

Referring to my recent post about the Tux Droid History, I would like to share my findings about the progress of the software development done by the community to keep Tux Droid alive.

Test environment

I use the following equipments to install and test the software :

1. PC Windows 7 64 bits

Windows 7 Edition Familiale Premium
Service Pack 1
Intel Core2 Quad CPU Q8400@2,66 GHz
RAM : 4 GB
Screen resolution : 1.024 x 768 pixels

2. PC Windows 7 32 bits

Windows 7 Edition Familiale Premium
Service Pack 1
Intel Pentium D CPU@2,66 GHz
RAM : 4 GB
Screen resolution : 1.280 x 1.024 pixels

3. Laptop Vista 32 bits

Windows Vista Home Premium
Service Pack 2
Intel Core2 DUO CPU T6400@2GHz
RAM : 4 GB
Screen resolution : 1.280 x 800 pixels

4. Laptop Linux Debian 32 bits

Gnome 3.4.2
Intel Core2 CPU U7500@1GHz
RAM : 1 GB
Screen resolution : 1.366 x 768 pixels

5. Tablet Samsung 2 7.0

Android Version 4.1.1
Dual Core Processor 1GHz
Memory : 16 GB
Screen resolution : 600 x 1.024 pixels (in portrait mode)

6. Tux Droid V2

Firmware : ?
5 ATMEL AVR microcontrollers
RAM : 128 MB

First Tests

Tuxbox 2.0

To start testing, I installed the binaries TuxBox_Setup_French_7_Vista.exe from the Tux Droid community depot on PC 1 and 2 and on Laptop 3. On Laptop 4, I installed the package tuxbox-French-TTS-3.1.4-i386.deb from the same website.

TuxBox 2.0 is running fine on all four equipements.

I uninstalled TuxBox 2.0 on the different computers before continuing the tests to avoid a mixing of libraries and files.

TuxDroidServer

Joël Matteotti developped the TuxDroidServer, using the TCP protocol, to manage the Tux Droid. I installed his Windows binaries TuxDroidServer-rev150-win32-binaries.zip on equipement 1, 2 and 3 and his Linux tarball TuxDroidServer-rev150-linux-i686-binaries.tar.gz on equipment 4. Here are the results of my tests :

  • PC 1 (Windows 7 64 bits) : works as expected, but only in compatibility mode XP service pack 3
  • PC 2 (Windows 7 32 bits) : works (with crashes) in normal or compatibility mode
  • Laptop 3 (Vista 32 bits) : crashes even before the server is started, in normal or compatibility mode (see following figure)
TuxDroidServer crash

TuxDroidServer crash

  •  Laptop 4 (Linux Debian 32 bits): Installation fails due to missing file libcurl.so.4. I was not yet able to find and install this shared library.

When the server is started on Windows, libtuxdriver version 29 is indicated. I expect to see version 30, referring to the documentation.

TuxDroidServer started

TuxDroidServer started

I don’t find any information about the warning concerning the STATUS FRAME.

TuxDroidClient

The window of the TuxDroidClient has fixed dimensions of 728 x 888 pixels and cannot be resized. I can only use it on PC 2 where the screen hight is sufficient to display the client window.

TuxDroidClient Error Message

TuxDroidClient Error Message

The error message displayed by the TuxDroidClient seems to have a problem with the character unicode.

Android Controller

I copied the Android package TuxDroidControler-1.3.0-Android-2.3.3, created by Joël Matteotti, to my Android Development workspace and installed it succesfully with the command

adb install bin/TuxDroidControler.apk

on my equipment 5 (Samsung tablet 2  7.0 ). After saving the IP address, port number and Tux key of the server in the app, it works as expected (knowing that it is still a proof of concept).

TuxDroid Android App

TuxDroid Android App

Next steps

In the next step I will try to set up a Tux Droid Development environment for Windows and Linux to compile the binaries from the SVN sources and to progress with my tests based on the most recent software revisions. I will also have a closer look at the firmware and at the driver updates and check if my Tux Droids have the latest firmware. Finally I will file all identified bugs in the Bug Tracker.

Historique de Tux Droid

Last update : 24 mars 2022

Note: En date du 1er septembre 2020 j’ai enlevé tous les liens qui ne sont plus disponibles sur Internet. J’ai assemblé tous mes fichiers relatifs à Tuxdroid dans l’archive tuxdroid-archive.zip disponible ici sur mon site web.

Présentation de Tux Droid

Tux Droid est un compagnon intelligent, c.à.d. un objet communiquant programmable sous Linux. Son aspect extérieur représente Tux, la mascotte de Linux. Tux Droid peut se tourner sur lui-même, battre les ailes, bouger le bec, fermer les paupières, clignoter les yeux (LED’s), enregistrer (microphone) et restituer (haut parleur) des sons, recevoir et émettre des commandes IR (infrarouge), capter l’intensité de luminosité et capter la pression de boutons sur la tête et dans les ailes.  Il dispose d’une batterie rechargeable et d’un dongle USB, assurant une liaison sans-fil (non WiFi) avec un ordinateur. Le dongle a la forme d’un poisson et il est appelé Fux. Tux Droid est souvent comparé au Nabaztag. Il a été créé par la société belge Kysoh SA en 2006.

Tux Droid et Fux

Tux Droid et Fux

La version beta de Tux Droid a été présentée la première fois par Kysoh à la conférence OSCON 2006 (Open Source Convention) à Portland, Oregon, en juillet 2006. Le premier guide d’usager est archivé ici. La commercialisation de Tux Droid en Europe a débuté en mars 2007. Les sources de l’architecture, du matériel et du logiciel ont été ouvertes dès le début et mises en ligne sur le site web communautaire www.tuxisalive.com. Des outils de développement ont été fournis pour permettre à des développeurs de créer leurs propres applications.

La société Kysoh (Keep your sense of humor) avait été fondée pendant l’été 2005, en collaboration avec l‘Ecole Polytechnique de Mons, avec pour objectif de développer et de commercialiser des produits électroniques connectés à un PC et dédiés au divertissement. Les fondateurs de Kysoh étaient Thierry Nancy et Sébastien Domingues. L’équipe marketing était constituée de Frank Aernout, Mélanie Chamaah et Awa M’Baye. Les ingénieurs, programmeurs et infographistes étaient, par ordre alphabétique, Jean-Luc Bernard, David Bourgeois, Jérôme Conan, Julien Depasse, Pascal Hanon, Rémi Jocaille, Raphael Lamy, Paul Rathgeb (alias ks156), Olivier Vandorpe et Sebastiaan Vanpoucke.

Tux Droid en magasin

Tux Droid en magasin

Au début, la vente de Tux Droid se faisait exclusivement par Internet via le magasin en ligne de Kysoh. Dans la suite, Tux Droid était également vendus sur d’autres sites de commerce électronique comme Amazon, Thinkgeek etc, dans des magasins électroniques et même dans des grandes surfaces comme la FNAC en France et le Kaufhof en Allemagne.

La société Kysoh était très active au niveau marketing. Le 14 février 2008, Tux Droid était présenté au Brussels Girl Geek Dinner. Le 9 décembre 2008 Tux Droid a rejoint Facebook. L’année suivante et au début 2010, Tux Droid faisait la une de nombreux magazines informatiques et il était présent dans de nombreux salons et émissions TV.

Malgré ces efforts, le 28 juillet 2010,  la société Kysoh SA, située à Mons (Henegouwen), a été déclarée en liquidation judiciaire par le tribunal de Bergen en Belgique et les sites web kysoh.com et tuxisalive.com ont été fermés. Le curateur s’est retrouvé avec un stock de 3.700 Tux Droid’s à écouler.

Matériel de Tux Droid

L’électronique de Tux Droid contient une carte mère en charge des fonctions audio, capteurs, moteur et chargement batterie ainsi qu’une carte secondaire en charge de la communication sans fil avec le dongle USB. Le matériel est construit autour de trois modules : core, audio et radio. Ces modules sont interconnectés par un bus bi-directionnel SPI entre les modules radio et audio et par un bus bi-directionnel I2C entre les modules audio et core.

Modules de Tux Droid

Modules de Tux Droid

Les modules core et audio sur la carte mère sont gérés chacun par un processeur ATmega88 de Atmel. Le module radio contient un microcontrôleur RF ATR2406 de Atmel et un processeur ATmega48 de Atmel. Le dongle USB dispose d’un microcontrôleur RF AT89C5130 de Atmel. Côté radio, les puces RF exploitent la bande de fréquences 2.4Ghz, ce qui dans certains cas peut provoquer des interférences avec le WiFi et perturber la connexion du PC avec un routeur, le cas échéant. La firmware des trois processeurs et des deux microcontrôleurs peut être modifiée.

Une télécommande est jointe au Tux Droid et permet de le commander, respectivement d’agir sur les applications du PC par son intermédiaire.

La version V1 de Tux Droid a été vendue jusqu’en mi 2008, ensuite c’était la version 2 qui avait une meilleure qualité du plastique et un nouveau firmware.

Firmware de Tux Droid

La firmware du Tuxdroid peut être mise à jour pour les deux versions, mais elle n’est pas sans risques. La première étape consiste à mettre à jour le dongle USB (poisson Fux). Ensuite on connecte le câble de programmation blanc entre le dongle et Tux Droid. Le connecteur est situé à l’arrière de Tux Droid, il faut enlever le couvercle de batterie pour y accéder. Pour démarrer Tux Droid en mode bootloader, il faut appuyer le bouton de tête pendant la mise sur “on” de l’interrupteur. Uniquement l’œil gauche sera allumé pour confirmer l’état souhaité. La mise à jour du firmware des cinq processeurs de Tux Droid se fait ensuite avec des outils particuliers (TuxUp). La version la plus récente du firmware est 0.9.4, elle date du 3 décembre 2013.

Logiciels originaux de Tux Droid

L’ensemble des logiciels de Tux Droid a été appelé TDSS (Tux Droid Software Suite); il est considéré aujourd’hui comme une usine à gaz.

En mars 2007, une première version de l’architecture logicielle (V1), dédiée à Linux, a été développée et évaluée par les utilisateurs finaux. Elle a été programmée en python et GTK (api et software) et en C (daemon).

En avril 2008, le développement de la seconde version (V2) de l’ensemble des logiciels a commencé. Il s’agissait d’une réécriture en profondeur se reposant sur l’expérience accumulée par l’équipe des ingénieurs et programmeurs. Cette version était construite autour d’un serveur donnant accès aux fonctionnalités du compagnon par des requêtes HTTP. Cette suite logicielle, bâtie autour d’un Centre de Contrôle, fonctionnait sur Linux et Windows. Elle était programmée essentiellement en Java, avec quelques parties en Python (webradio et serveur HTTP) et C (Tuxdriver).

Au début de l’année 2009, un refactoring complet de la suite logicielle v2 a été entamé. Le 1er septembre 2009, la troisième version (V3) a été mise en ligne, incluant une toute nouvelle interface graphique appelée TuxBox 2.0, ainsi qu’un système de gadgets plus puissant. Cette version était basée sur un serveur web. Les langages utilisés étaient Python, Java, C et C++.

Suite à la liquidation judiciaire de Kysoh fin juillet 2010, les développements des logiciels originaux ont été arrêtés.

Le répertoire Ohloh de la société Black Duck Software révèle qu’entre mars 2006 et juillet 2010, 27 programmeurs ont contribué au développement des suites logiciel pour Tux Droid. Le code total généré dans le dépôt http://svn.tuxisalive.com/ comprend 1.432.377 lignes plus 493.816 lignes de commentaires. 6.107 révisions (commits) ont été enregistrées dans le dépôt. Les langages de programmation utilisés sont le Python (38%), le Java (23%), le C (21%)  et d’autres (18%). Sur base du Constructive Cost Model (COCOMO), l’effort de programmation total du projet est évalué à 404 personnes * années, ce qui équivaut à un coût estimé de 22 millions $.

Communauté Tux Droid

Tux Droid a toujours eu une communauté très active se reposant solidement sur Kysoh. Après la fermeture des sites web kysoh.com et tuxisalive.com, la communauté s’est organisée pour sauver les meubles. Des miroirs ont été créés pour sauvegarder les précieux paquets open source et la documentation y associée de Tux Droid. Avec la complicité d’anciens programmeurs de Kysoh, les sources et paquets des logiciels originaux ont été migrés fin août 2010 vers SourceForge.

Site web tuxdroid-community.org

www.tuxdroid-community.org

Au début c’était Anti-Bug-Computers qui était très engagée dans la récupération des données de Kysoh. Ensuite floOr a créé en octobre 2010 le forum tuxdroid-community.org; shadow89 a lancé le 16 décembre 2010 le site web tuxdroid-community.net. Le 19 mars 2011 les deux sites ont fusionné et un  nouveau projet SVN a été ouvert sur Sourceforge.

Le site web www. tuxdroid-community.org est devenu dans la suite le site unique de la communauté Tux Droid. Le site a été refait sous Drupal en septembre 2011 et comporte aujourd’hui un forum, un wiki en français et anglais avec une partie de l’ancien wiki de Kysoh, une archive avec les sources et sites web récupérés de Kysoh et une rubrique pour présenter le nouveau projet TuxDroidServer. Le site est administré par Edouard Postel (alias floOr); le forum est modéré par Joël Matteotti (alias Joe). En juin 2013 des soirées IRC (chat) ont été organisées pour répondre à des questions sur Tux Droid, mais elles n’ont pas rencontré le succès escompté.

Synthèse vocale (TTS)

L’ensemble TDSS incluait des librairies de Acapela pour la synthèse vocale et Kysoh payait les licences pour la distribution de ces librairies avec Tux Droid. L’utilisation des fichiers sons produits par la synthèse vocale d’Acapela est autorisée à des fins privés, mais la distribution des bibliothèques ou des sons n’est pas libre et réglée par des conditions spécifiques. Ce problème légal n’a pas facilité la reprise des logiciels de Kysoh par la communauté Tux Droid. Comme les clés d’exploitation des bibliothèques Acapela étaient partiellement intégrées au code, la situation était encore plus problématique. Les sources avec les interfaces (libtuxosl) Acapela ont été enlevées.

Une des priorités de la Communauté Tux Droid en 2010 était donc le remplacement de la synthèse vocale Acapela par une autre solution.

TuxBox 2.0

A la fin de l’été 2009, Kysoh avait sorti la nouvelle interface de pilotage plus pratique pour le Tux Droid, la Tuxbox 2.0, basée sur une interface web, qui remplacait l’ancien centre de contrôle. Cette interface fonctionne encore ajourd’hui. Les binaires de la TuxBox 2.0 (version 3.1.4)  pour Linux et Windows, les sources ainsi que le guide d’usager afférent sont disponibles sur le site de la communauté Tux Droid.

L’nstallateur Windows distribué est crédité à Akasanvas95, avec l’aide de Anti-Bug-Computers, Steph138 et Anthrax132.

Sur Windows, TuxBox 2.0 s’installe dans le répertoire C:/Program Files/Kysoh/. Après le démarrage, l’icône d’une patte rouge (pied d’un manchot) est affichée dans la barre des tâches en bas à droite. Cette patte passe en jaune si Fux est connecté et si la communication sans fil avec Tux Droid est établie. Si on clique sur l’icône, la fenêtre de la TuxBox est affichée. L’état de la TuxBox est indiqué avec des petits symboles dans la patte jaune, par exemple son coupé (voir figure suivante à droite) ou Tux Droid actif.

TuxBox 2.0

Icônes d’état de la TuxBox 2.0 dans la barre inférieure du desktop Windows

La fenêtre principale (Vivre avec Tux) de la TuxBox, qui est une page web locale (http://127.0.0.1:270), accédée via le port 270,  présente quatre autres volets :

  • Gadgets : ce sont des mini-applications (plugins comprimés avec extension .scp) hébergées sur l’ordinateur qui fournissent des informations personalisées telles que e-mails, prévisions météorologiques, nouvelles, etc.
  • Attitunes : ce sont des animations robotiques combinant des mouvements, des sons et de la synthèse vocale. Elles apportent une touche sympathique aux fonctions des gadgets.
  • Outils : ce sont des programmes pour configurer Tux Droid (par exemple créer des attitudes)
  • Magasin en ligne : c’est le dépôt de téléchargement central des gadgets
TuxBox 2.0 pour Tux Droid

TuxBox 2.0 pour Tux Droid

La barre des icônes affiche les gadgets installés.Tux Droid prononce le nom de chaque gadget sélectionné. On peut faire défiler les gadgets avec la souris, la télécommande ou en appuyant sur les ailes de Tux Droid. La majorité des gadgets nécessite d’être configuré, ce qui peut se faire dans la rubrique “Gadgets” du menu supérieur. Les attitunes installées sont gérées dans la rubrique “Attitunes”. La rubrique “Outils” donne accès à Attitune Studio pour créer et modifier des attitudes, au Controller pour commander en direct les mouvements de Tux Droid ainsi qu’à des pages de configuration et d’aide.

Tux Droid Attitude Studio and Tux Droid Controller

Tux Droid Attitune Studio and Tux Droid Controller

La rubrique “Magasin en ligne” permettait dans le passé de  télécharger des nouveaux gadgets. Cette fonction n’est plus opérationnelle. Le wiki “How To List” de la communauté Tux Droid contient des informations comment programmer un nouveau gadget (plugin) : Hello World, Python, Java, Google Gadget, … et comment l’installer ensuite dans la TuxBox 2.0. Les anciens gadgets sont encore disponibles dans les archives sur le site de la communauté.

Le fonctionnement et l’affichage de la TuxBox 2.0 sous Linux sont similaires à ceux de Windows. Sur Linux, ce sont les distributions originales de Kysoh qui sont disponibles. Le port 54321 est utilisé par défaut pour l’accès au serveur HTTP.

Un problème de la TuxBox 2.0 est le fait qu’il n’y a plus d’adaptations et on constate de plus en plus souvent des incompatibilités avec les évolutions de Windows et Linux. Sous Windows, on arrive dans certains cas à faire fonctionner TuxBox 2.0 sur une version récente en mode “administrateur” ou en mode “compatibilité XP / Vista”. Sur Linux, il faut être un utilisateur chevronné pour trouver des solutions en cas de problème.

La communauté a donc cherché des solutions pour assurer la pérennité de Tux Droid.

TuxDroidServer et TuxDroidClient

Joël (Joe) Matteotti a démarré en juin 2012 le développement d’un nouveau projet baptisé TuxDroidServer. Il s’agit d’un serveur TCP multiclients/multithreads, programmé en ANSI-C99 et intégrant son ancien projet TuxDroidInterface. Il utilise par défaut le port 9595 pour la communication. Ce projet a été très bien accueillie par la communauté Tux Droid.

Une année plus tard, presque jour sur jour, Joe a créé son propre blog sous le domaine tux-droid.eu pour mieux présenter l’évolution de son projet, tout en continuant à modérer le forum communautaire Tux Droid.

Le grand avantage de TuxDroidServer est sa portabilité, car il se compile aussi bien sous Windows que sous GNU/linux, sans modification du code, et il est aussi portable au sens où il ne nécessite aucune installation. La synthèse vocale est basée sur le projet open source espeak. La version la plus récente (révision 153) du code a été déposée début décembre 201.

Les grandes étapes du développement de TuxDroidServer sont :

  • 7.6.2012 : première version basée sur l’ancien projet TuxDroidInterface rev34
  • 10.6.2012 (rev 9 à 12) : entre autres, ajout des commandes Tux_Micro() pour la gestion du micro et Tux_Audio() pour la lecture de musique
  • 12.6.2012 (rev 17) : ajout de la commande Tux_PlayAtt() permettant la lecture d’attitunes
  • 13.6.2012 (rev 21) : entre autres, ajout d’un fichier de configuration
  • 19.6.2012 (rev 24) : ajout d’un système d’authentification
  • 21.6.2012 (rev34) : ajout d’un petit shell pour démarrer et arrêter le serveur
  • 23.6.2012 (rev 39) : entre autres, ajout des commandes Tux_Sleep() et Tux_Wakeup()
  • 23.7.2012 (rev 49) : ajout d’un logger
  • 28.7.2012 (rev 55) : entre autres, ajout des commandes Tux_Remote() et Tux_User()
  • 28.8.2012 (rev 61) : entre autres, ajout de la commande Tux_Timestamp()
  • 17.9.2012 (rev 67) : ajout des commandes Tux_getMicro() et Tux-getSoundCard()
  • 15.1.2013 (rev 71) : création d’une nouvelle branche du projet qui utilise PortAudio
  • 7.2.2013 (rev 79) : ajout d’un système d’identification et de gestion des priorités
  • 30.5.2013 (rev 96) : ajout du framework unittests
  • 8.8.2013 (rev 122) : entre autres, ajout d’un système de traduction pour rendre TuxDroidServer multilingue
  • 20.9.2013 (rev 141) : entre autres, ajout de la reconnaissance vocale basée sur Google Speech API
  • 27.11.2013 (rev 151) : introduction de l’obligation d’entrer l’identifiant
TuxDroidClient alpha version

TuxDroidClient alpha version

Pour faire fonctionner TuxDroidServer, on a besoin du driver Tux Droid. La version la plus récente est 0.0.6 rev30.

Joe a également réalisé en QT/C++ une application graphique (GUI), nommée TuxDroidClient, permettant de contrôler un Tux Droid géré par TuxDroidServer.

Des binaires pour la version 7 de TuxDroidClient et de la version 150 de TuxDroidServer sont disponibles pour Windows 32bits. Un tarball Linux de la version 150 est également disponible pour processeurs Intel 32 bits.

Applications Android pour Tux Droid

Une première application Android pour commander Tux Droid a été développée en octobre 2009 par r3gis. Joe a également développé une application Android en juin 2012. Il vient de la mettre à jour à la version 1.3.0.

Situation en 2022

Sur le forum ubuntu.fr une communauté intéressée au TuxDroid est toujours active. Il y a également un nouveau site web tuxdroid.tounepi.com mis à jour.

Liens

Quelques liens avec des informations additionnelles au sujet de Tux Droid sont relevés dans la liste qui suit :

Furby 2012 and Furby BOOM

Last update : May 25, 2021

Furbies were the first successful attempt to produce and sell domestically-aimed robots. They were launched in 1998. In April 2012, it was announced that Hasbro will be making a new line of Furbies, which was released in September 2012. The Furby 2012 was first launched in six colors, one month later four other colors were added. A second generation of six Furbies, with styleable tufts of hair on their heads, was relased in December 2012. Compared to the original Furby, the Furby 2012 has more expressive LCD eyes, a wider range of motions, its own iOS and Android app (to feed, care and control the Furby), and the ability to adapt its personality in reaction to user behavior.

Furby 2012

Furby 2012

The Furby 2012 has 6 personalities :

  • Angry Personality : Furby will act grumpy and irritable. Get this by overfeeding.
  • Diva Personality : Furby may turn into this personality if it listens to music for an extended period of time.
  • Valley Girl Personality : Furby resembles a stereotypical teenage girl. Get this by talking for a long time.
  • Cute Personality : Furby will act friendly and sing a lot. Get this by repeatedly petting it.
  • Crazy Personality : Comedic and funny personality. Furby will often laugh like crazy over almost anything. Get by shaking and pulling tail.
  • Default Personality : When you put the batteries in for the  first time. To get it back, hold it upside down, hold the tongue, then hold the tail for a few seconds. Instead of flashing eyes, furby will reboot.

In February 2013 the Furby Party Rockers were launched. They can sing and chat with Furby 2012 and with other Party Rockers, have a new voice and can be used with the app’s for IOS and Android. They only speak Furbish. There are 4 rockers in the 1st generation (Fussby, Loveby, Twittby, Scoffby) and 2 rockers in the 2nd generation (Wittby and Nerdby).

Furby Party Rockers : Fuusby, Twittby, Lovely, Scoffby, Wittby, Nerdby

Furby Party Rockers : Fussby, Twittby, Lovely, Scoffby, Wittby, Nerdby

In August 2013, the new Furby Boom was launched and became the No1 best seller this Christmas 2013. Furby Boom is packed with loads of new features and can be encouraged to lay eggs into your tablet, via the new iOS and Android app, which then grow to become a small virtual Furby (Furbling) that you can then feed, maintain and play games with, like the former Tamagotchis. By caring the Furbling you earn Furbucks to unlock other features and extras. Up to 50 eggs can be collected and will unlock a whole Furby Boom City.

Furby Boom : Blue Waves, Zigzag, Stripes, Polka Dots, Triangles, Peacock

Furby Boom : Blue Waves, Zigzag, Stripes, Polka Dots, Triangles, Peacock

The first species of Furbies (1998 – 2005) communicate with infrared ports. The Furbies 2012 and later use an audio protocol to communicate with other nearby Furbies and with the apps. Igor Afanasyev (iafan) from Moscow, Russia, analyzed and recreated this audio protocol to communicate with Furbies using a computer.

Links

  • https://chapelierfou.org/blog/a-usb-furby.html
  • https://github.com/paullouisageneau/usb_furby

Animata : real-time animation software

Last update : August 14, 2015

Animata is an open source real-time animation software, designed to create animations, interactive background projections for concerts, theatre and dance performances. It is controlled by OSC (Open Sound Control) messages and it can easily be controlled from OSC enabled software. There is not much documentation about Animata. There are a few videos that show, with no narration, how to do some basic scene construction.

Animata was developed by Peter Nemeth, Gabor Papp and Bence Samu at Kitchen Budapest (KIBU). Founded in 2007 and powered by Magyar Telekom, KIBU is a space where a multidisciplinary team of designers, technologists, artists, researchers and entrepreneurs are working in a hyper-collaborative environment to create value and push boundaries forward.

In October 2012, Gabor Papp created a Google Group as a forum for interested people in Animata, to replace the old email lists animata-users and animata-developers.

Executables of Animata versions 004 and 003 for Windows and Mac OSX are available at the Animata KIBU website. Some examples and sound-input programs for Windows and for Java can be downloaded at the same website.

The source code can be downloaded from a subversion repository at Google Code. The last committed changes have been done by Gabor Papp on April 22, 2013. A short technical documentation about Animata is available at the KIBU website.

I tried to compile the Animata source code on a Debian Linux development system. Animata requires the fltk package 1.1.x. FLTK, pronounced fulltick, is a cross-platform C++ GUI toolkit for Linux, Windows and Mac OSX. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its built-in GLUT emulation. The current FLTK version is 1.3.2, but I didn’t manage to compile the Animata source code with this new version.

To install the FLTK version 1.1.11, I did the following actions :

  • download the file fltk-1.0.11-source.tar.gz from the FLTK website
  • unrar the package
  • navigate to the extracted folder in terminal
  • run the following commands in terminal as root : ./configure, make, make install

The result is shown hereafter :

Animata running in Linux

Animata running in Linux

The linux executable can be downloaded from this website.

 Animata and processing

Processing is an open source programming language and environment for people who want to create images, animations, and interactions. Michael Forrest was the first to extract the playback view from Animata for integration in Processing applications in January 2009. One month later, Zeni forked the program to animatap5. In May 2013, James Britt forked the project from Zeni, revamped and extended the program to AnimataP5-ng. I managed to compile the AnimataP5-ng library with the included rake file. The Animata sketches run fine on Processing 2.1. James Britt posted a comprehensive introduction to AnimataP5-ng on his blog.

Animata Processing 2.1 sketch

Animata Processing 2.1 sketch

Animata on other platforms

Michael Forrest ported the Animata renderer not only to Processing in 2009, but also to the Flash and iPhone platforms. There are no executable files available at these Github websites, only the source code with building files to do your own compilation. A video referring to the iOS project is available on Vimeo, the Flash Tree Artwork of Michael Forrest  can be viewed on his website.

Animata Tree Artwork by Michael Forrest

Animata Tree Artwork by Michael Forrest in Flash

Animata, OSC and Kinect

Controlling Animata with a mouse and doing real-time animations is pretty cool by itself, but Animata really shows its true potential when you control it with OSC. Matti Niinimäki (MÅNSTERI) from Finland was the first to report about his experience with Animata, OSC, Puredata , Max/MSP, Quartz Composer and Kinect. This link shows you all posts of Matti Niinimäki tagged with Animata. OSC Informations provided by Matti Niinimäki have been included in a Wiki embryo usinganimata.wikia.com.

Boris Masis from Russia reported in Februrary 2011 about his Kinect animations with Animata. James Britt wrote in December 2011 about his Kinect Hackings for Artists. He published a note on his Neurogami website about his talk, related to this subject, given at Tiny Army on February 1, 2012. Code for this talk is available at the Neurogami Gitbub website. Yannick Loriot published a tutorial in two parts how to install  OpenNI on Windows for Kinect.

The following list provides links to videos showing animations done with OSC :

OSC Tools

The following OSC tools can be used to control Animata animations :