3 ms·
RetinaFace: Single-stage Dense Face Localisation, implemented in TensorFlow 2.0
- cheez 6y agoNot an expert, why is it called state of the art if its accuracy is worse than mxnet, whatever that is
- stan_btd 6y agoThe algorithm is state of the art. There are several implementations of the algorithm, the original is with the mxnet framework, and my implementation with tensorflow framework has a slightly lower accuracy.
- cheez 6y agoThanks! What makes it state of the art and why is lower accuracy acceptable?
- stan_btd 6y agoThe paper that presents this algorithm has the best known accuracy on the widerface dataset, which is why it is called state of the art. The authors of the paper published an implementation of this algorithm based on mxnet, but a lot people and companies use tensorflow instead of mxnet in their work, so just using the mxnet implemenation is not an option. Thats why I converted it to TF, with a slight decrease in accuracy on widerface. Then what is "acceptable" depends on your judgement, but the widerface dataset is extremely challenging, with many pictures having hundreds of small faces. In some of these pictures my implementation will miss a few faces, or find them but with lower probability. Overall for the vast majority of face detection applications, the two implementations will yield extremely similar results. I havent yet found a picture with a few dozen faces where the TF implementation performed not as well as the original one !
- cheez 6y agoGot it. I understand now. Don't be offended at my use of "acceptable", it was used in ignorance.
- stan_btd 6y agono offense taken at all !
- yshvrdhn 6y agoAny thoughts on distilling it or pruning to make it smaller ?
- stan_btd 6y agowould you be interested in a smaller model file size or in a model that runs faster ? For model file size I have a few ideas of things that could be tried easily. For a faster model, this model is based on resnet50 architecture. The original authors also published a lighter mobileNet architecture. I havent converted it to tensorflow but I could try to take a look
- nl 6y ago> What makes it state of the art Generally it means something roughly like "the best known approach for this specific problem". Often it means "the best known approach for this specific dataset" (eg "SOTA on ImageNet"). > why is lower accuracy acceptable? Lower accuracy is worse, but these numbers look close enough that it's probably acceptable for most people. There are plenty of environments where TF is preferable to MXNet (eg, you have TPUs/want to use TFLite on mobile/want to slice the model weights up and use it for your own custom TF model). It's probably lower accuracy because it wasn't trained as long. Those extra couple of points could take days (or more) of training.
- cheez 6y agoAwesome, thanks for the explanation!
- symisc_devel 6y agoThe algorithm have been already shipped within the release of the PixLab Rest APIs 1.9.72: https://blog.pixlab.io/2020/08/pixlab-api-1972-released https://blog.pixlab.io/2020/08/pixlab-api-1972-released Note however that Retina does not support real-time performance on the CPU especially on IoT devices and web browsers (WebAssembly). That's why we opted for a standard cascade approach for our WebAssembly port: https://sod.pixlab.io/articles/porting-c-face-detector-webassembly.html https://sod.pixlab.io/articles/porting-c-face-detector-webas...
- codetrotter 6y agoI couldn’t find any license text in the repo. Would you consider using an open source license like for example the ISC license? https://choosealicense.com/licenses/isc/ https://choosealicense.com/licenses/isc/
- stan_btd 6y agoOf course, done !
- codetrotter 6y agoGreat, thank you :)
- AndrewThrowaway 6y agoModel | Easy | Medium | Hard Mxnet | 96.5 | 95.6 | 90.4 Ours | 95.6 | 94.6 | 88.5 My professors would be so mad if I submitted data like this. I already can hear "What are the units? Seconds? So yours are by one second better? Error margin? Percent? So yours is worse?" I get that this is a very specific information for a specific audience. People who stumble on this repo should know what is that. However we can all be better at presenting our data.
- stan_btd 6y agoas stated in the repo, its "mAP result values" https://medium.com/@jonathan_hui/map-mean-average-precision-for-object-detection-45c121a31173 https://medium.com/@jonathan_hui/map-mean-average-precision-...
- AndrewThrowaway 6y agoDon't get me wrong. I totally get it. But my professor is saying: "So this is precision? 0 to 1? 1 being totally accurate? And you got 96.5? I assume it is percentage?"
- nl 6y agoIt says "mAP result values on the WIDERFACE validation dataset:" If your professor is working in on object detection they know what mAP is - all the major datasets use it as their standard evaluation criteria.
- AndrewThrowaway 6y agoSo is it mAP of 0.956 or 95.6? Why not 956?
- nl 6y agoNot to be rude, but if you can't work that out you shouldn't be working on this. I'm sure the author would take a pull request, but but it really sounds like you are nitpicking. Figures like precision and recall are often expressed either as 66% or 0.66. Confusion really isn't that big a problem.
- marstall 6y agoI feel much safer now.