Results 1 to 26 of 26

Thread: How To Use JPsychoMorph - A "Brief" Introduction

  1. #1
    you can go to where your heart is Galen's Avatar
    Join Date
    Sep 2009
    Posts
    8,459
    Mentioned
    206 Post(s)
    Tagged
    0 Thread(s)

    Default How To Use JPsychoMorph - A "Brief" Introduction

    I'll try to be quick about this, since I've had enough people ask me how to use this goddamn thing and I want to see what other things people can come up with.

    Download the program here (link at the very top). Make sure Java is fully up to date, I've heard problems with older Java players not running it.



    There are two basic windows in JPM: the Transform window, and the Morph window. Transform is where you create templates for each of your faces, which I'll explain next. The Morph window is where these faces and templates are combined to make the composites.

    Before you load up any faces for your templates, I recommend rotating and cropping the faces in an image editor of your choosing (GIMP is a perfect free program for just such a task). Also make sure you save your photos as .png, the Transform window doesn't seem to allow anything other than .pngs even though the morph window can take other filetypes.


    Once that's done, go to File -> Load Image in the Transform window and your face will show up. If for some reason your faces are too large or too small to fit properly, just go to the Zoom tab and resize accordingly (I've heard that this may not work for some, but I've had no problems with it. If it does fail, go to Edit -> Resize image and template and resize the file from there).

    Now is the arduous task of placing each of your delineation points. I outline my process in this post, you can follow along if you want or you can create your own as you see fit. Just make sure each template is constructed in the exact same order, otherwise you get distortions in the final product; blob face and whatnot.

    Once the template is done, head to File -> Save Template and name this template the same as the image file it was derived from. Also make sure that you end the filename with .tem. The program's so unintuitive that if you don't save it in a filetype it recognizes, it won't create any file at all. Be sure you check File -> Auto Load Templates in case you want to go back and fix something later.

    You'll also notice that if you have a template already on the screen and you load another image, the pre-existing points don't go away. To get around this I create a blank template files and name them for each new face, so that when Auto Load Templates is checked it automatically loads a new template. This way you can also do Auto Save Templates to save more time.


    When all of your desired faces have fully completed templates (and they're all in the same folder/directory), head on over to the Morph window and go to Average -> Make Average List. Save it to the same folder with all your pictures and templates. Name it whatever you want, but make sure you save it with a .txt extension or, like before, nothing will be saved. You'll then see a sequence of pop-up windows: for the first one, select .tem; the second and third choose .png; the fourth will ask you about subfolders, which can be useful in larger projects, but for our purposes we'll say no.

    Your finished average list will look something like this. This protocol basically tells the program what pictures go with which templates. You can manually add, remove, or change around files here, but right now we'll leave it alone.

    To create your average composite, go to Average -> Average Images. Two pop-ups will ask you for your desired width and height for the resulting image. I personally like to go with 500x600.

    Hit submit, and if you've done everything right, voila! It will load up each face in sequence on the left panel, reshape it, and successively add it onto the right side. To better view the composite at this stage, you can go to View -> Display Off to turn off the delineation points. To save your image, go to File -> Save Right Image as whatever file you want; again, make sure to manually add your filetype extension here.

    At this point I like to bring the composites into GIMP and touch them up (Brightness/Contrast, color balance, sharpness, etc), or you can just serve it raw. It's up to you.



    A couple more advanced tips for ye:

    The program has a couple different algorithms for how it generates its composites that I like to mess with. Shape Normalization changes the way in which each delineation point is averaged between each other. I don't know anything about the specifics for sure, but I assume it creates mean averages of each coordinate set based on symmetry or how many outliers there are, etc. I generally find that Full (Procrustes) will yield a better result, but it's always worth a check between that and None. I've never cared for Two and Three Point algorithms, but you can mess with them at your leisure.

    Lastly for now are Warping Options. This seems to do with the way in which each individual image is manipulated, although I'm not sure on how the math works. Thin Plane Spline seems to warp each face more evenly, so the final composites generally comes out looking smoother overall. Multiscale generally gives the eyes greater clarity, while Thin Plane Spline makes the mouth more even. Whichever one turns out better results in entirely dependent on the composite at the moment, so mess with both and see which one turns out better.

  2. #2

    Unhappy question..

    hi Galen

    thank you so much for this post !! i am currently trying to get started using JPsychomorph which seems awesome but seriously the available online help is barely helpful at all...

    all i am trying to achieve here is aligning the eyes of a bunch of faces. i have the faces pictures cropped and ready. i thought all i would have to do would be clicking on "batch align eyes", but then i found out i was sooooo wrong... i tried creating a .txt file listing all the faces i want to align (without the file extension), and then selecting this text file after clicking on "batch align eyes". but i am getting no result at all, not even an error message. it just seems to be doing absolutely nothing (except for creating an empty "results.txt" file). after reading your post i was thinking "oh okay maybe i should create some template for each picture", which i did, but i still don't know what i am supposed to do with those.

    do you know how to use this "batch align eyes" feature ? there is nothing on this feature on the online wiki :-( i am getting very annoyed and quite desperate about using this freeware. this thread is the closest to a user forum i could find...

    thank you very much for any help or advice,
    laurie

  3. #3
    you can go to where your heart is Galen's Avatar
    Join Date
    Sep 2009
    Posts
    8,459
    Mentioned
    206 Post(s)
    Tagged
    0 Thread(s)

    Default

    Batch Align Eyes seems like a pretty banal function, why do you need to use it?

  4. #4

    Default

    Quote Originally Posted by Galen View Post
    Batch Align Eyes seems like a pretty banal function, why do you need to use it?
    Hi Gallen,

    thank you very much for your quick reply !

    I need it to align eyes in a bunch of face pictures, instead of doing it one by one with the "align eyes" function. i understand how "align eyes" works, it's the "batch align eyes" that i don't understand. i guess the text file i wrote for the program does not give sufficient information. i tried writing one column of "source files" (the equivalent of the left image for the simple "align eyes" function) and one column of "target eyes position" files (the equivalent of the right image for the simple "align eyes" function), all without any extension. but it does not work and i am not getting any error message.

    did you ever use it, or any batch function, successfully ?

    cheers,
    laurie

  5. #5
    you can go to where your heart is Galen's Avatar
    Join Date
    Sep 2009
    Posts
    8,459
    Mentioned
    206 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by Laurie Bayeah View Post
    Hi Gallen,

    thank you very much for your quick reply !

    I need it to align eyes in a bunch of face pictures, instead of doing it one by one with the "align eyes" function. i understand how "align eyes" works, it's the "batch align eyes" that i don't understand. i guess the text file i wrote for the program does not give sufficient information. i tried writing one column of "source files" (the equivalent of the left image for the simple "align eyes" function) and one column of "target eyes position" files (the equivalent of the right image for the simple "align eyes" function), all without any extension. but it does not work and i am not getting any error message.

    did you ever use it, or any batch function, successfully ?

    cheers,
    laurie
    I'm still not sure why you'd need to use this function. Presumably it realigns all your templates and images to account for image rotation, but I do all my manipulation in a 3rd party image software. This function also seems to be built into the Average Images command itself, so it beats me as to why you'd want to do this as a separate step.

    From what I can tell though, you have to have an Average List for Batch Align Eyes to work. First load up any template into the right-hand side, presumably one with proper alignment in the eyes already. Then select Batch Align Eyes, choose whichever algorithm you want (I assume Eye is the quickest), then the average list containing the faces you want aligned, then select a new folder for saving all these new files; I'd recommend making a new folder so as to keep everything clean. The output tag window just allows you to add on names to the end of each file in order to differentiate them from the original files, although you may leave that field blank if you want.

    If you're still not getting it to work, then your Average List is probably off, as it seems to be anyway. It should look something like this:

    Quote Originally Posted by Average List
    "anderson.png" "anderson.tem"
    "bean.png" "bean.tem"
    "brown.png" "brown.tem"
    "cranston.png" "cranston.tem"
    "eastwood.png" "eastwood.tem"
    "favre.png" "favre.tem"
    "hurley.png" "hurley.tem"
    "laurie.png" "laurie.tem"
    "mack.png" "mack.tem"
    "perlman.png" "perlman.tem"
    "sherman.png" "sherman.tem"
    "statham.png" "statham.tem"
    "willis.png" "willis.tem"
    "jackman.png" "jackman.tem"
    Note that your image files are on the left and your template files are on the right. You need to make templates for each face in order for anything to work in PsychoMorph, it doesn't guess on your behalf.

  6. #6

    Red face

    Quote Originally Posted by Galen View Post
    I'm still not sure why you'd need to use this function. Presumably it realigns all your templates and images to account for image rotation, but I do all my manipulation in a 3rd party image software. This function also seems to be built into the Average Images command itself, so it beats me as to why you'd want to do this as a separate step.

    From what I can tell though, you have to have an Average List for Batch Align Eyes to work. First load up any template into the right-hand side, presumably one with proper alignment in the eyes already. Then select Batch Align Eyes, choose whichever algorithm you want (I assume Eye is the quickest), then the average list containing the faces you want aligned, then select a new folder for saving all these new files; I'd recommend making a new folder so as to keep everything clean. The output tag window just allows you to add on names to the end of each file in order to differentiate them from the original files, although you may leave that field blank if you want.

    If you're still not getting it to work, then your Average List is probably off, as it seems to be anyway. It should look something like this:



    Note that your image files are on the left and your template files are on the right. You need to make templates for each face in order for anything to work in PsychoMorph, it doesn't guess on your behalf.
    oh ok thank you !! i did not know the list should look like this, or that i should have the right image already loaded with its template !!
    i guess if i have to save one template/face anyway, batch aligning would go only slightly faster than the simple "align eyes" function i know the software cannot guess on my behalf, but i couldn't guess how it wanted its list done either i'll try it the way you told me.

    thank you very much for clarifying all this

    (actually i am not contructing an average face but simply using the software to align the eyes of a bunch of face pictures so that they may be used in psychology experiments)

  7. #7
    you can go to where your heart is Galen's Avatar
    Join Date
    Sep 2009
    Posts
    8,459
    Mentioned
    206 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by Laurie Bayeah View Post
    oh ok thank you !! i did not know the list should look like this, or that i should have the right image already loaded with its template !!

    i guess if i have to save one template/face anyway, batch aligning would go only slightly faster than the simple "align eyes" function i know the software cannot guess on my behalf, but i couldn't guess how it wanted its list done either i'll try it the way you told me.
    Yeah, I had to look up other tutorials to figure this out myself.



    Quote Originally Posted by Laurie Bayeah View Post
    (actually i am not contructing an average face but simply using the software to align the eyes of a bunch of face pictures so that they may be used in psychology experiments)
    Ahh I see. Well then you may have an easier time simply creating templates delineating both eyes instead of full faces, then running them through the batcher. I'm assuming how it works is that it uses the first two delineation points as reference for the eyes, left and right respectively. So yeah, if you just draw in those two points instead of making full-on templates you should be good to go.

    You may run into some issues with the images becoming stretched around the borders, but let me know if this works for your purposes.


    Quote Originally Posted by Laurie Bayeah View Post
    thank you very much for clarifying all this
    De nada.

  8. #8

    Join Date
    Jun 2013
    Posts
    5
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question Anyone here use Psychomorph?

    Does anyone here use Psychomorph?

    It's a program which can make an average face out of many faces. Here's a link to it: http://users.aber.ac.uk/bpt/jpsychomorph/

    I have a question about it. So, if you have experience using it, please reply in this thread.

  9. #9
    ■■■■■■ Radio's Avatar
    Join Date
    Aug 2011
    Posts
    2,571
    Mentioned
    154 Post(s)
    Tagged
    0 Thread(s)

    Default

    i think @Galen uses it

  10. #10
    you can go to where your heart is Galen's Avatar
    Join Date
    Sep 2009
    Posts
    8,459
    Mentioned
    206 Post(s)
    Tagged
    0 Thread(s)

    Default

    Yes hi I can help

  11. #11

    Join Date
    Jun 2013
    Posts
    5
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Hi Galen,

    Would you happen to have some screenshots showing how to "Make an image and template list file" and how to construct the average?

    Also, perhaps you're available for a Skype chat so we can share screens? I can pay you for your time on this. I want to learn how to use this program for some art projects. You can view my recent art projects at nickolaylamm.com

    Best regards,

    Nickolay
    Last edited by biz123; 09-10-2013 at 09:49 PM.

  12. #12
    you can go to where your heart is Galen's Avatar
    Join Date
    Sep 2009
    Posts
    8,459
    Mentioned
    206 Post(s)
    Tagged
    0 Thread(s)

    Default

    Howdy.

    I've written up a brief tutorial on how I use Psychomorph in this thread. Let me know if this answers any of your questions.

  13. #13

    Join Date
    Jun 2013
    Posts
    5
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by Galen View Post
    Howdy.

    I've written up a brief tutorial on how I use Psychomorph in this thread. Let me know if this answers any of your questions.
    Okay, I need to make an average of 25 faces. I have one face loaded as the left image in the "PsychoMorph" panel. Now, I'm trying to make a template but don't know how to start adding points to make the template. I don't see an option to start adding points in the transform window.

  14. #14
    you can go to where your heart is Galen's Avatar
    Join Date
    Sep 2009
    Posts
    8,459
    Mentioned
    206 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by biz123 View Post
    Okay, I need to make an average of 25 faces. I have one face loaded as the left image in the "PsychoMorph" panel. Now, I'm trying to make a template but don't know how to start adding points to make the template. I don't see an option to start adding points in the transform window.
    To make templates you have to load your faces into the Transform window, not the Psychomorph one. Reread that post, all the details should be there.

  15. #15

    Join Date
    Jun 2013
    Posts
    5
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by Galen View Post
    To make templates you have to load your faces into the Transform window, not the Psychomorph one. Reread that post, all the details should be there.
    Thank you Galen! I got it to work!

    Can you please give me an example of where these points are on the face? I have a good idea, just want to make sure.

    Top of left/right eyebrow arch
    Left/right jaw hinge
    Left/right temple

  16. #16
    you can go to where your heart is Galen's Avatar
    Join Date
    Sep 2009
    Posts
    8,459
    Mentioned
    206 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by biz123 View Post
    Thank you Galen! I got it to work!

    Can you please give me an example of where these points are on the face? I have a good idea, just want to make sure.

    Top of left/right eyebrow arch
    Left/right jaw hinge
    Left/right temple
    Sure, sorry for the delay.

    0/1 = Left/right eyebrow arch
    2/3 = Jaw hinges (or at least the points where the jaw flares out the most)
    4/5 = Temples

  17. #17
    Darn Socks DirectorAbbie's Avatar
    Join Date
    Aug 2008
    Location
    Southwest USA
    TIM
    LSE
    Posts
    7,123
    Mentioned
    382 Post(s)
    Tagged
    2 Thread(s)

    Default

    I keep seeing this as, "Anyone here a psychopath?"

    LSE
    1-6-2 so/sx
    Johari Nohari

    Quote Originally Posted by Ritella View Post
    Over here, we'll put up with (almost) all of your crap. You just have to use the secret phrase: "I don't value it. It's related to <insert random element here>, which is not in my quadra."
    Quote Originally Posted by Aquagraph View Post
    Abbie is so boring and rigid it's awesome instead of boring and rigid. She seems so practical and down-to-the-ground.

  18. #18

    Join Date
    Jun 2013
    Posts
    5
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Thank you for clarifying this!

    Also, do you know what it means when you click Average Images... and then, nothing happens?

  19. #19

    Join Date
    May 2014
    Posts
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Hi Galen,

    Thanks for posting your guide on Psychomorph...there is absolutely no other help out there apart from the very minimal wiki from the JPsychoMorph website so finding your post was a godsend.

    So, I am trying to make an average face, so I made all my templates and images, created my Average List with no problems. However, when I click Average Images and select my Average List, nothing happens. I opened the list and found a blank line at the end, so deleted that, and now I get two errors instead; one saying "Can't create an ImageInput Stream!" and the second saying "ArrayIndexOutofBoundsException: 0>=0" .

    I checked all my .png files and they were fine, all my .tem files seem fine too, and the Average List looks the same as your examples you have posted. Any other ideas about what the problem might be? Just to check, the quotation marks in the Average List are supposed to be there, right?

    if you have any advice it would be hugely appreciated!

  20. #20
    you can go to where your heart is Galen's Avatar
    Join Date
    Sep 2009
    Posts
    8,459
    Mentioned
    206 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by PinkLara View Post
    Hi Galen,

    Thanks for posting your guide on Psychomorph...there is absolutely no other help out there apart from the very minimal wiki from the JPsychoMorph website so finding your post was a godsend.

    So, I am trying to make an average face, so I made all my templates and images, created my Average List with no problems. However, when I click Average Images and select my Average List, nothing happens. I opened the list and found a blank line at the end, so deleted that, and now I get two errors instead; one saying "Can't create an ImageInput Stream!" and the second saying "ArrayIndexOutofBoundsException: 0>=0" .

    I checked all my .png files and they were fine, all my .tem files seem fine too, and the Average List looks the same as your examples you have posted. Any other ideas about what the problem might be? Just to check, the quotation marks in the Average List are supposed to be there, right?

    if you have any advice it would be hugely appreciated!
    Can you send me all the files you're using? All the .pngs, the .tems, and the .txt file. You can PM them to me if you wish.

  21. #21

    Default

    Hello. I've been using PsychoMorph for a while but have just decided to try a batch transform of various images. Basically for each image I have three templates - the original, one shifted towards a 'happy' end of an emotional scale, and one towards the 'angry' end. Essentially I want to morph each image (I have 20 faces in total) towards each template in small increments (+5 shape, 0 colour and +5 texture for each increment). I can do this by hand but it takes forever and I'm a big fan of trying to find faster and more efficient ways.

    Unfortunately the online help for this software is abysmal and this is the only useful thread I've found (the OP was the only reason I've made it this far). As such, I was wondering how I could do this? I'm fairly sure it must be possible with either Batch or Super Batch Transform, but I have no idea how to format the text files. A simple Batch Transform returns errors, and SBT seems to process the file and then outputs nothing.

    I'm sure it's probably something I'm doing wrong with the .txt file. I've tried to follow the instructions here (http://cherry.dcs.aber.ac.uk:8080/wiki/batch), but the help pages there don't help me, I'm afraid. An example line from my current SBT .txt file is this, which I've tried with and without quotation marks, with and without file extensions (I've included them here so that image and template files can be better differentiated), and both comma- and tab-delimited:
    "original.jpg" "original.tem", "original.jpg" "original.tem", "original.jpg" "happy.tem", 5, 100, 20, "happyoutput.jpg", 1, 0, 1, 0, 0, 0
    Key: [subject, source, target, start point, end point, number of steps, output file, shape boolean, colour boolean, texture boolean, mask boolean, sample boolean, resize scale]

    No variations have worked, as when I try to run the .txt file in JPsychomorph from the Transform window, I click to open the file and nothing happens - no error messages, no output. I think I'm missing something fairly fundamental to this procedure. If anyone has any experience with this sort of batch transform I'd really appreciate any help, or I'll have to resign myself to a few mind-numbing days (well, hours) of doing this by hand.

    Also, if anyone has any idea of how to write the output as multiple files with separate names, that'd be shiny.

  22. #22

    Join Date
    Jul 2014
    Location
    Zurich
    Posts
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Hey,
    I am working on my thesis and need to transform faces (the originals were taken with subjects being calm, expressionless [looking straight ahead and no smiling]) towards happy and sad faces. I always get the same error message though: Problem reading transforming image java.lang.NullPointerException
    In the Transform Window I have the Original png image, in the PsychoMorph window on the left I have the delineation template, which I created for the original and on the right my happy-face-protoype including delineation marks (I want the happy-face-prototype to be 'applied' to the original face).
    I cannot figure out what I am doing wrong and you said you know how to do this. Could you tell me what I need to change to make it work? I would be very greatful for any tips on how to fix this.



    Quote Originally Posted by James Strachan View Post
    Hello. I've been using PsychoMorph for a while but have just decided to try a batch transform of various images. Basically for each image I have three templates - the original, one shifted towards a 'happy' end of an emotional scale, and one towards the 'angry' end. Essentially I want to morph each image (I have 20 faces in total) towards each template in small increments (+5 shape, 0 colour and +5 texture for each increment). I can do this by hand but it takes forever and I'm a big fan of trying to find faster and more efficient ways.

  23. #23

  24. #24

    Default

    Hi Galen,
    First of all, thank you very much for taking the time to write this tutorial! By following your step-by-step recommendations I was able to take averages of pictures. However, I run into a problem that I am not sure how to solve. Let me elaborate a little.

    I am interested in manipulating how masculine/feminine a person looks like. If have a picture of one guy and one girl I can make averages that look more masculine or more feminine. For instance, if I use the male picture four times and the female picture one time the average face will look very masculine. Moreover, if I use the female picture three times and the male picture only once the average will look quite feminine. There are off course many other possibilities here.

    But here is my problem. By averaging a guy and a girl, the outcome will always be less masculine than the original guy or less feminine than the original female. So my question is, is there a way to make a picture of 1 guy to look more masculine? (which is the same as asking for a way to make a picture of 1 female more feminine).

    I read some of academic papers that report doing this (e.g. Perrett et al., 1998; Rowland & Perrett, 1995) so I know that there must be a way of doing this but I still don't know how to do it with the software!

    So in summary, if you (or anyone else out there) can give me a hand with this I will gladly appreciate it!

  25. #25

    Default

    Never mind, guys. I was able to do it myself... If someone needs help with this, PM me

    best,
    Felipe

  26. #26

    Join Date
    Jul 2017
    Posts
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default Creating a PCA file

    Hello everyone! I have started using JPsychomorph for a couple of months. Currently, I'm working on a project that is about morphing faces according to masculinity dimensions. In order to this, I followed the guideline. Firstly, I delineated the faces and created the averages for masculine and feminine faces. And then, I aligned the faces according to eyes and mouth region from the batch menu in psychomorph window. All seemed to work well so far!

    However, what I wanted to do was to create a PCA file that could give me the formula about the fiducidal points of the averaged faces so that I can manipulate the faces on particular fiducidal points that I'm interested in. At that point, in the guideline, it is written that you have to create a batch file containing the names for the aligned templates. So, I created a separate text file only for the aligned templates without the images and clicked the PCA menu to select creating a shape PCA file. At this stage, I am constantly seeing two errors. Firsly,

    ''Error reading the image C://(trajectory in my computer is given here)/aligned_tem (the name of the template)'' and then
    ''Error saving ASM file.C://(same trajectory) error java lang.Array index Out of Bounds Exception:0

    I'm thinking that that batch file that I created did not work with this function.

    Can anyone who created a PCA file before help me about this procedure? I am really desparate about creating a batch file only for this PCA function.
    I'd really appreciate if you could give me an idea about it! Thanks in advance!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •