Since my last post on EfficientNet on LinkedIn I started further reading on building blocks of the EfficientNet architecture, it can be divided into Architecture (Mobile Inverted Residual Block, Squeeze and Excitation optimization) and Training (Swish activation / Quantization friendly hard Swish activation, Stochastic Depth with Survival probability etc).
There is also a mobile-friendly EfficientNet architecture – EfficientNet-Lite, which removes Squeeze and Excitation network, replaces Swish activation with Relu6 for supporting post-training quantization and heterogeneous hardware.
Criticism and improvements of EfficientNet Architecture:
Here’s an article How Efficient is EfficientNet? that says EfficientNet’s performance on small dataset leaves much to be desired and ML community on Reddit and Twitter seems to agree.
Also there is an article from late July A more parameter-efficient bottleneck for EfficientNet! that introduces Efficient Channel Attention ‘ECA’, it shows that if you replace EfficientNet Linear bottleneck Squeeze-Excitation ‘SE’ layer with Linear Bottleneck ECA it is slightly better in terms of accuracy and also reduces the number of parameters by 12%
Adrian Rosebrock of PyImageSearch.com recently released this new book so in this post, I decided to review it. The book starts with an introduction to Raspberry Pi (RPi), Computer Vision and Deep Learning, with clear explanation of what’s changed from few years ago and why its now suitable to run Computer vision and Deep learning algorithms on RPi, what are co-processor devices Intel Movidius NCS 2, Coral USB Accelerator and how image processing, Computer vision and Deep learning overlap.
Each chapter starts with chapter Learning Objectives which you can read to understand the key takeaways from a chapter before going in the details. After the first few introductory chapters rest of the book is written in a way that you can pick a chapter which is close to the problem that you’re trying to solve and go from there such as if you’re looking to change USB camera parameter or work with multiple cameras with the RPi, this book has chapters on each of these topics and other such projects, full list of topics in this Hobbyist as well as upcoming Hacker and Complete bundles can be found on PyImageSearch.com so I’m not going to repeat them in this post.
Though this book is targeted to those who are new to Computer vision or Raspberry Pi but it is filled with information that is useful for even those with some experience in OpenCV and Computer Vision. Arguably some of the material in the book has been covered previously on PyImageSearch.com blog but Adrian expands on most of these in this book which allows much more room to include all the details unlike a blog post, so if you love his blog posts wait till you read his book.
The book has also helped me come up with a few tricks of my own when I was stuck at the same problem for a while but then I had an Ahaa Moment after I read Adrian’s book and it was interesting to get an insight into how Adrian and his team did a few revisions to arrive at the right solution given the limitations that exist on an RPi computer due to CPU resource and how to work around them. If you are starting out with OpenCV and Computer Vision for edge computing then you should definitely check out this book.
Meanwhile, I’m looking forward to getting Hacker and Complete Bundle when things get much more serious with the introduction of Deep Learning models, many more practical use cases and use of edge computing hardware like Intel Movidius NCS 2, Coral USB Accelerator and Nvidia Jetson Nano.