{ "info": { "author": "haoxintong", "author_email": "haoxintongpku@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# Gluon FR Toolkit\n[![Documentation Status](https://readthedocs.org/projects/gluon-face/badge/?version=latest)](https://gluon-face.readthedocs.io/en/latest/?badge=latest)\n\nGluonFR is a toolkit based on MXnet-Gluon, provides SOTA deep learning algorithm and models in face recognition.\n\n## Installation\nGluonFR supports Python 3.5 or later. \nTo install this package you need install GluonCV and MXNet first:\n```shell\npip install gluoncv --pre\npip install mxnet-mkl --pre --upgrade\n# if cuda XX is installed\npip install mxnet-cuXXmkl --pre --upgrade\n```\nThen install gluonfr:\n\n- From Source(recommend)\n\n```shell\npip install git+https://github.com/THUFutureLab/gluon-face.git@master\n```\n\n- Pip\n\n```shell\npip install gluonfr\n```\n\n## GluonFR Introduction:\nGluonFR is based on MXnet-Gluon, if you are new to it, please check out [dmlc 60-minute crash course](http://gluon-crash-course.mxnet.io/).\n\n#### Data: \nThis part provides input pipeline for training and validation, \nall datasets is aligned by mtcnn and cropped to (112, 112) by DeepInsight, \nthey converted images to `train.rec`, `train.idx` and `val_data.bin` files, please check out \n[[insightface/Dataset-Zoo]](https://github.com/deepinsight/insightface/wiki/Dataset-Zoo) for more information. \nIn `data/dali_utils.py`, there is a simple example of Nvidia-DALI. It is worth trying when data augmentation with cpu \ncan not satisfy the speed of gpu training, \n\nThe files should be prepared like:\n```\nface/\n emore/\n train.rec\n train.idx\n property\n ms1m/\n train.rec\n train.idx\n property\n lfw.bin\n agedb_30.bin\n ...\n vgg2_fp.bin\n```\nWe use `~/.mxnet/datasets` as default dataset root to match mxnet setting.\n\n#### [Model_Zoo](/wiki/Model_Zoo):\nmobile_facenet, res_attention_net, se_resnet... \n\n\n#### Loss:\nGluonFR provides implement of losses in recent, including SoftmaxCrossEntropyLoss, ArcLoss, TripletLoss, \nRingLoss, CosLoss, L2Softmax, ASoftmax, CenterLoss, ContrastiveLoss, ... , and we will keep updating in future. \nIf there is any method we overlooked, please open an [issue](https://github.com/THUFutureLab/gluon-face/issues).\n\n#### Example:\n\n`examples/` shows how to use gluonfr to train a face recognition model, and how to get Mnist 2-D \nfeature embedding visualization. \n \n## Losses in GluonFR: \n\nThe last column of this chart is the best LFW accuracy reported in paper, they are trained with different data and networks, \nlater we will give our results of these method with same train data and network. \n\n|Method| Paper |Visualization of MNIST|LFW|\n|:---|:---:| :---:|:---:|\n|Contrastive Loss|[ContrastiveLoss](http://yann.lecun.com/exdb/publis/pdf/hadsell-chopra-lecun-06.pdf)|-|-|\n|Triplet|[1503.03832](https://arxiv.org/abs/1503.03832)|-|99.63\u00b10.09|\n|Center Loss|[CenterLoss](https://ydwen.github.io/papers/WenECCV16.pdf)||99.28 |\n|L2-Softmax|[1703.09507](https://arxiv.org/abs/1703.09507)|-|99.33|\n|A-Softmax|[1704.08063](https://arxiv.org/abs/1704.08063)|-|99.42|\n|CosLoss/AMSoftmax|[1801.05599](https://arxiv.org/abs/1801.05599)/[1801.05599](https://arxiv.org/abs/1801.05599)||99.17|\n|Arcloss|[1801.07698](https://arxiv.org/abs/1801.07698)||99.82|\n|Ring loss|[1803.00130](https://arxiv.org/abs/1803.00130)||99.52|\n|LGM Loss|[1803.02988](https://arxiv.org/abs/1803.02988)||99.20\u00b10.03|\n\n## Pretrained Models\nSee [Model Zoo](https://gluon-face.readthedocs.io/en/latest/model_zoo.html) in doc.\n\n## Todo\n\n- More pretrained models\n- IJB and Megaface Results\n- Other losses\n- Dataloader for loss depend on how to provide batches like Triplet, ContrastiveLoss, RangeLoss...\n- Try GluonCV resnetV1b/c/d/ to improve performance\n- ~~Create hosted docs~~\n- Test module\n- ~~Pypi package~~\n\n\n## Docs\n\nPlease checkout [link](https://gluon-face.readthedocs.io/en/latest/). \nFor Chinese Version: [link](https://gluon-face.readthedocs.io/zh/latest/index.html) \n\n## Authors\n{ [haoxintong](https://github.com/haoxintong) [Yangxv](https://github.com/PistonY) [Haoyadong](https://github.com/jiqirenno1) [Sunhao](https://github.com/smartadpole) }\n\n## Discussion\n[\u4e2d\u6587\u793e\u533aGluon-Forum](https://discuss.gluon.ai/t/topic/9959) Feel free to use English here :D.\n\n## References\n\n1. MXNet Documentation and Tutorials [https://zh.diveintodeeplearning.org/](https://zh.diveintodeeplearning.org/)\n\n1. NVIDIA DALI documentation[NVIDIA DALI documentation](https://docs.nvidia.com/deeplearning/sdk/dali-developer-guide/docs/index.html)\n\n1. Deepinsight [insightface](https://github.com/deepinsight/insightface)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/THUFutureLab/gluon-face", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "gluonfr", "package_url": "https://pypi.org/project/gluonfr/", "platform": "", "project_url": "https://pypi.org/project/gluonfr/", "project_urls": { "Homepage": "https://github.com/THUFutureLab/gluon-face" }, "release_url": "https://pypi.org/project/gluonfr/1.0.2/", "requires_dist": null, "requires_python": "", "summary": "Gluon FR Toolkit", "version": "1.0.2" }, "last_serial": 5958063, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "2f3a05a87a884689f14658c8a55f6899", "sha256": "41989be55ade40682789281895035bb2e49341371d49a0f09531cc1c249df416" }, "downloads": -1, "filename": "gluonfr-1.0.1.tar.gz", "has_sig": false, "md5_digest": "2f3a05a87a884689f14658c8a55f6899", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25956, "upload_time": "2019-03-07T08:02:49", "url": "https://files.pythonhosted.org/packages/b8/3a/77af68708a9853586b8df6513e66d0151277c84596201017cfaf4e42bd33/gluonfr-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "6ec35b4f03151a5ab8fb9cbe55c1bc37", "sha256": "6223c6949964b9025da9d4203b0c71dd3e1c3e7000e244704c201384c7731120" }, "downloads": -1, "filename": "gluonfr-1.0.2.tar.gz", "has_sig": false, "md5_digest": "6ec35b4f03151a5ab8fb9cbe55c1bc37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24189, "upload_time": "2019-10-11T02:39:47", "url": "https://files.pythonhosted.org/packages/0b/9d/adb9669f1a97877afbcd766728349498ffe3b4239d1f80bfc6ecde569ee3/gluonfr-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6ec35b4f03151a5ab8fb9cbe55c1bc37", "sha256": "6223c6949964b9025da9d4203b0c71dd3e1c3e7000e244704c201384c7731120" }, "downloads": -1, "filename": "gluonfr-1.0.2.tar.gz", "has_sig": false, "md5_digest": "6ec35b4f03151a5ab8fb9cbe55c1bc37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24189, "upload_time": "2019-10-11T02:39:47", "url": "https://files.pythonhosted.org/packages/0b/9d/adb9669f1a97877afbcd766728349498ffe3b4239d1f80bfc6ecde569ee3/gluonfr-1.0.2.tar.gz" } ] }