{"id":13692913,"url":"https://github.com/ylogx/aesthetics","last_synced_at":"2026-03-09T15:02:02.016Z","repository":{"id":18969652,"uuid":"85695666","full_name":"ylogx/aesthetics","owner":"ylogx","description":"Image Aesthetics Toolkit - includes Fisher Vector implementation, AVA (Image Aesthetic Visual Analysis) dataset and fast multi-threaded downloader","archived":false,"fork":false,"pushed_at":"2023-07-06T21:12:18.000Z","size":4372,"stargazers_count":230,"open_issues_count":8,"forks_count":54,"subscribers_count":8,"default_branch":"master","last_synced_at":"2026-01-14T09:29:51.619Z","etag":null,"topics":["aesthetic","aesthetics","ava","dataset","dataset-creation","dataset-generation","datasets","fisher-vectors","image","image-aesthetic-visual-analysis","image-processing","live"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ylogx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":["ylogx"],"patreon":"chaudhary","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":"chaudhary","issuehunt":null,"otechie":null,"custom":null}},"created_at":"2017-03-21T11:50:53.000Z","updated_at":"2025-11-30T16:06:12.000Z","dependencies_parsed_at":"2023-07-26T10:50:46.911Z","dependency_job_id":null,"html_url":"https://github.com/ylogx/aesthetics","commit_stats":{"total_commits":70,"total_committers":7,"mean_commits":10.0,"dds":"0.22857142857142854","last_synced_commit":"71eae2079a3ebfd6a75001d9ea9e1019b2814095"},"previous_names":["shubhamchaudhary/aesthetics"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/ylogx/aesthetics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ylogx%2Faesthetics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ylogx%2Faesthetics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ylogx%2Faesthetics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ylogx%2Faesthetics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ylogx","download_url":"https://codeload.github.com/ylogx/aesthetics/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ylogx%2Faesthetics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30299849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T14:33:48.460Z","status":"ssl_error","status_checked_at":"2026-03-09T14:33:48.027Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aesthetic","aesthetics","ava","dataset","dataset-creation","dataset-generation","datasets","fisher-vectors","image","image-aesthetic-visual-analysis","image-processing","live"],"created_at":"2024-08-02T17:01:03.422Z","updated_at":"2026-03-09T15:02:01.980Z","avatar_url":"https://github.com/ylogx.png","language":"Python","funding_links":["https://github.com/sponsors/ylogx","https://patreon.com/chaudhary","https://liberapay.com/chaudhary"],"categories":["Repos","📦 Legacy \u0026 Inactive Projects"],"sub_categories":[],"readme":"# Aesthetics\n\n\n## Image Aesthetics Definition\nImage aesthetic evaluation aims to classify photos into high quality or low quality from the perspective of human.\n\nHigh Quality Image                    |            Low Quality Image\n:------------------------------------:|:-------------------------------------:\n![Good Image](https://i.imgur.com/ZGiqssA.png)  |  ![Bad Image](https://i.imgur.com/1do94BE.png)\n\nImage Aesthetics drills down to a classification problem:\n* Low Quality Image \u003cimg alt=\"Bad Image\" src=\"https://i.imgur.com/1do94BE.png\" height=30/\u003e\n* High Quality Image \u003cimg alt=\"Good Image\" src=\"https://i.imgur.com/ZGiqssA.png\" height=30/\u003e\n\nA commonly used dataset for image aesthetics is AVA (Image Aesthetic Visual Analysis) dataset\n\n\nThis repo provides following tools to help in image aesthetics problem:\n* [Fisher Vector implementation](https://github.com/shubhamchaudhary/aesthetics/tree/master/aesthetics/fisher)\n* AVA dataset and fast multi-threaded downloader\n\n\n\n## Fisher Vector\nFisher Vector is a technique for generating features for images, which can be used by discriminative models like SVM. You can use fisher vectors for usecases like image classification (ImageNet), image aesthetics.\n\u003c!-- Describe Patches by their deviation from Universal Generative Mixture Model. --\u003e\n\n### Flow\n* We create local descriptors using SIFT for each image in the training set\n* We fit a Gausian Mixture Model (GMM) on descriptors for all images in training set.\n* Using this global GMM we generate features for each image\n\n![Fisher Vector flow](https://i.imgur.com/S5oAnEU.png)\n\n### Spatial Pooling\nSpatial pooling is a technique to save the spatial information of the image while generating features. This is very important in image aesthetics because the look and feel of the image are highly dependent on the aspect ratio, placement of the objects in the image.\n\nFollowing image should clarify the importance of spatial pooling:\n\n![Importance of spatial pooling](https://i.imgur.com/nZ3aYkL.png)\n\nFor spatial pooling, the fisher vector paper recommends splitting the image into 4 patches:\n* Full image patch\n* 3 horizontal sliced patches of the image\n\nTo generate the fisher vector of the image, as shown in the flowchart above, we concat the fisher vectors of the 4 individual patches of the image.\n\n## AVA Downloader\n```sh\n./download.py --help\n./download.py ava\n```\n\nThis is a WIP\n\n\n\u003c!--# Downloaded dataset--\u003e\n\n\u003c!--ECCV 2016:--\u003e\n\u003c!--* [Dataset Link (2 GB)](dataset_link)--\u003e\n\u003c!--* [Dataset 256x256 size cropped preview (132 MB)](dataset_preview_link)--\u003e\n\n\n\u003c!--[dataset_link]: https://drive.google.com/open?id=0BxeylfSgpk1MN1hUNHk1bDhYRTA--\u003e\n\u003c!--[dataset_preview_link]: https://drive.google.com/open?id=0BxeylfSgpk1MU2RsVXo3bEJWM2c--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fylogx%2Faesthetics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fylogx%2Faesthetics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fylogx%2Faesthetics/lists"}