Giter VIP home page Giter VIP logo

Comments (11)

yu4u avatar yu4u commented on May 25, 2024 4

As described in the website, the dataset was automatically created via crawling. The ages in the dataset are estimated values calculated from dob (date of birth) and photo_taken (Exif). Therefore, the resulting metadata may be not so accurate.

Of course, we can not vouch for the accuracy of the assigned age information. Besides wrong timestamps, many images are stills from movies - movies that can have extended production times

from age-gender-estimation.

yu4u avatar yu4u commented on May 25, 2024 2

Yes, as it is impossible to know exact ages, what we can do is filter out unreliable ages manually as you mentioned or automatically (but not perfect) as done in create_db.py.
You can use this dataset for pre-train, and then fine-tune the model using more reliable (but smaller) dataset (I had not tried it).
http://chalearnlap.cvc.uab.es/dataset/19/description/

from age-gender-estimation.

yu4u avatar yu4u commented on May 25, 2024 1

Cross entropy is used as proposed in the original paper:

        predictions_a = Dense(units=101, kernel_initializer=self._weight_init, use_bias=self._use_bias,
                              kernel_regularizer=l2(self._weight_decay), activation="softmax")(flatten)

from age-gender-estimation.

edumucelli avatar edumucelli commented on May 25, 2024 1

I see. Good to know about the APPA-REAL dataset, I did not knew it. Thanks for the info!

from age-gender-estimation.

adamaulia avatar adamaulia commented on May 25, 2024

so, If I want to train image with exact age, I must do manual filter, right ?

from age-gender-estimation.

adamaulia avatar adamaulia commented on May 25, 2024

For training age estimation are you using categorical cross entropy or regression ?

from age-gender-estimation.

edumucelli avatar edumucelli commented on May 25, 2024

Interesting discussion, but have you guys manually inspected the data? By doing so I see most of the photos make no sense for the age they are set to. For me it is impossible to the network to learn something reliable from such data. Maybe I am missing something here, but for example, none of the images I see under 10 years old actually belongs to a under-than-10 year old person on the IMDB dataset.

from age-gender-estimation.

yu4u avatar yu4u commented on May 25, 2024

You are right.
The labels in the IMDB-WIKI dataset are noisy because it is was automatically created from web sites.
It is originally created for the purpose of pre-training; training on cleaner datasets such as the APPA-REAL Dataset (https://github.com/yu4u/age-gender-estimation/tree/master/appa-real) is assumed.

from age-gender-estimation.

NSavov avatar NSavov commented on May 25, 2024

Thanks for the repo and all the effort!
I get that you have below 4 MAE with other datasets, but I am curious what MAE score you get for training/validation on the noisy IMDB-WIKI with this implementation. In my own implementation, when training on 14k filtered images from Wiki, with balanced distribution and batches, no augmentation, with VGG-16 and regression it converges to 5.2 MAE (validation), with AlexNet (used for multi-task purposes with another network) and regression - 5.6, and with AlexNet classification - 5.8. For my use, having the lowest score is not important but still, it seems alarmingly high and I would like to compare if you have the numbers. Thanks!

from age-gender-estimation.

yu4u avatar yu4u commented on May 25, 2024

As I don't know the difference between your implementation and this project, I can't say for certain, but; 1) the imdb dataset is relatively better (cleaner) than the wiki dataset, 2) classification+expectation is better than regression if you are solving age estimation as regression problem.

from age-gender-estimation.

voqtuyen avatar voqtuyen commented on May 25, 2024

Cross entropy is used as proposed in the original paper:

        predictions_a = Dense(units=101, kernel_initializer=self._weight_init, use_bias=self._use_bias,
                              kernel_regularizer=l2(self._weight_decay), activation="softmax")(flatten)

@yu4u Why dont you compute the loss between the label and softmax expected value like in the demo.py:

results = model.predict(sub_test_images)
predicted_genders = results[0]
ages = np.arange(0, 101).reshape(101, 1)
predicted_ages = results[1].dot(ages).flatten()

from age-gender-estimation.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.