-
Notifications
You must be signed in to change notification settings - Fork 253
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Performance #56
Comments
Use an iPhone XS or better. :-) On older devices, YOLO doesn't really perform very well. The best thing you can do there is switch to something like MobileNet+SSD: https://machinethink.net/faster-neural-networks/ On the XS's Neural Engine, YOLO is actually pretty fast. So "to better the performance" needs a bit more context: which device will you be running it on? |
I just wanted to make sure that when I saw performance, I dont mean the accuracy of the detection but the battery usage and the phone getting hot when the app is running. Is there a way to better that? It will be running on iPhones 7 and up. |
On anything from iPhone 7 up to (and including) the X, the best way to get better speed is to not use YOLO but MobileNetV2+SSDLite. (I don't have any recommendations on how to make YOLO faster.) |
I think you misunderstand me, I am not looking to make it faster, I want to better the battery consumption. |
That's really the same thing. The more efficiently a model runs, the faster it is, and the better the battery usage is. See also https://machinethink.net/blog/how-fast-is-my-model/ |
What is your advice if I want to setup an object detection application like Tiny YOLO on iOS but have improved battery usage. I went through some of the articles that talked about MobileNetV2+SSDLite, would it run on all devices? and from your experience how much more efficient is it in comparison to YOLO? Thank you again |
It is at least 4x faster / more efficient than (tiny) YOLO v2. Only on the XS / XR is YOLO faster because it can take advantage of the Neural Engine better. |
How can that be? I ran the MobileNetV2+SSDLite demo app in Xcode and measured the Energy Impact it was very high, and the CPU usage was over 50%. At the same time, I ran the TinyYolo app with some modifications (less frames per second) and was able to get the Energy consumption to be eventually in the low sector with about 20% CPU usage |
Did you run both at the same number of FPS? Naturally, if MobileNetV2+SSDLite runs as fast as it can, it will use more energy than TinyYOLO running at a lower frame rate. If you want to get a rough idea of the energy usage of a neural network, count up the number of memory accesses that are being done by a single pass through the network (see that blog post I linked to). Memory accesses use up a lot more energy than computations, so that would be the thing to focus on. |
Its no doubt that there are a lot of computations that it needs to do to detect the objects, however having said that is there a way that we can better the performance? I know we can reduce the frame rate and the amount of times it detects but are there other things we can do to better the performance?
The text was updated successfully, but these errors were encountered: