0
$\begingroup$

Can you advise me what kind of machine learning to achieve? ... I had thought, for example, to make a face and, by varying the expression through the "manipulate" function (I do not know if it is possible to do so), the machine will tell me if it is sad, happy, etc. This is the code that allows me to manipulate the face:

    Manipulate[
 eyeMat = {{1/(eyeRadius - pupilRadius/2), 0}, {0, 
    1/(0.15 + eyes - pupilRadius/2)}};
 If[Norm[eyeMat.(pup - eyeCenter[[left]])] < 1, 
  pupNow = pup - eyeCenter[[left]];];
 If[Norm[eyeMat.(pup - eyeCenter[[right]])] < 1, 
  pupNow = pup - eyeCenter[[right]];];
 Graphics[{face, eye[left, eyes], eye[right, eyes], Blue, 
   pupil[left, pupNow, eyes], pupil[right, pupNow, eyes], Black, 
   browDraw[left, brows, eyes], browDraw[right, brows, eyes], 
   Inset[mouthDraw[mouth], {0, -0.5}]}, 
  ImageSize -> {400, 450}], {{brows, {-Pi/20, 0}}, {-0.6, 0}, {0.6, 
   0.15}, ControlPlacement -> Left}, {{eyes, 0}, -0.07, 0.07, 
  ControlPlacement -> Left, 
  ControlType -> VerticalSlider}, {{mouth, 0.15}, -0.401, 0.4, 0.01, 
  ControlPlacement -> Left, 
  ControlType -> VerticalSlider}, {{pup, {0, 0}}, Locator, 
  Appearance -> None}, 
 Initialization :> (face = Circle[{0, 0}, {1, 1.2}]; pupNow = {0, 0};
   left = 1; right = 2;
   eyeRadius = 0.18; eyeCenter = {{-0.4, 0.15}, {0.4, 0.15}};
   pupilRadius = 0.09;
   browUp = 0.25; browW = 0.2; browAng = Pi/20;
   eye[side_, eccen_] := {Black, 
     Circle[eyeCenter[[side]], {eyeRadius + 0.05, eyeRadius + eccen}]};
   pupil[side_, pup_, 
     eccen_] := {Disk[eyeCenter[[side]] + pup + {0, pup[[2]] eccen}, 
      pupilRadius + Max[0, eccen/3]], Black, 
     Disk[eyeCenter[[side]] + pup + {0, pup[[2]] eccen}, 0.03]};
   browDraw[side_, {browAng_, browLift_}, eccen_] := 
    Rotate[{Thickness[0.01], 
      Line[{{eyeCenter[[side]] + {-browW, 
           browLift + browUp + 0.5 eccen}, 
         eyeCenter[[side]] + {browW, 
           browLift + browUp + 0.5 eccen}}}]}, 2 (side - 1.5) browAng];
   mouthDraw[s_] := 
    ParametricPlot[{Cos[u], -s Sin[u]}, {u, Pi/6, Pi - Pi/6}, 
     Axes -> False, PlotStyle -> {Red, Thickness[0.02]}, 
     PlotRange -> All];)]

Now, How can I teach the car to say what kind of expression the face has (sad, happy, etc.)?

$\endgroup$
  • 2
    $\begingroup$ Hey Pasquale, welcome to Mathematica.SE! This is certainly possible, but at the moment your question is too vague. To get meaningful answers you should show what you already tried in code or ask very specific questions what you want to achieve with your code. $\endgroup$ – Thies Heidecke Dec 17 '18 at 16:12
  • $\begingroup$ I entered the code $\endgroup$ – Pasquale Dec 17 '18 at 17:06
1
$\begingroup$

You can try the built-in facial expression classifier with Mathematica version 11.3.

EDIT Question was crossposted here, and I provided a very naive solution.

| improve this answer | |
$\endgroup$
  • $\begingroup$ How can I make a code that allows me to output an image from my computer? $\endgroup$ – Pasquale Dec 17 '18 at 16:08
  • $\begingroup$ @Pasquale - Look at the documentation for Export $\endgroup$ – Bob Hanlon Dec 17 '18 at 16:45

Not the answer you're looking for? Browse other questions tagged or ask your own question.