• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Learn OpenCV

OpenCV examples and tutorials ( C++ / Python )

  • Home
  • About
  • Courses
  • PyTorch
  • CV4Faces
  • Resources
  • AI Consulting

Embedded Computer Vision: Which device should you choose?

Ankit Sachan

February 20, 2017 By 25 Comments

Device for Embedded Vision

At Big Vision LLC, we receive requests for a lot of consulting projects where the solution needs to be delivered on a small single board computer like the Raspberry Pi. For example, one company wants to build a vision system for accurately detecting the state of railroad crossing signals ( a pair of alternating red lights ). Another company wants to build a system for detecting drones from a camera mounted on an aircraft. A third company is developing a solution for retailers for real-time in-store analytics. As you can imagine different applications call for different solutions. In this post, we will provide a quick review of the various options available for delivering embedded vision on single board computers.

With the tremendous progress made in the field of Computer Vision and availability of cheap computation in recent years, Computer Vision is at an inflection point where our devices are just beginning to get “eyes” beginning with our cars. More and more computer vision algorithms are being deployed for vision on the edge use cases like drones, security cameras, mobile applications, retail analytics, etc.

This is a guest article by Ankit Sachan who also writes about Computer Vision and AI on his blog CV-Tricks.com

There are many popular devices that are commonly used for running computer vision algorithms by early adopters. However, when it comes to an industrial application, long-term viability becomes a very important factor. In this article, I have analyzed some of the most suitable devices for computer vision and assessed how you should go about choosing a device for your industrial computer vision application.

Deep Learning vs Traditional Computer Vision

Deep learning based algorithms are very robust and powerful in general and work with real world noise and variations for most use-cases. However, they need massive computing power usually provided by a good Nvidia GPU attached to a good CPU. This is not only expensive but in a lot of cases, it’s not possible to connect a GPU to an embedded system. However, this is changing rather quickly with Nvidia releasing Jetsons for edge computing. Also, some researchers and start-ups are looking to run deep learning on the CPU.

Performance Considerations

Depending on your use-case, the performance of a device may or may not be critical. Performance requirements can vary quite a lot. Consider the two scenarios — (a) Analyzing the footage of a security camera at the restricted area in a busy airport, (b) Demographic analysis of visitors in a retail store. In scenarios b), you could run your algorithm at just 5 frames per second (FPS) but in scenario (a) a higher FPS is critical. Scenario (a) also places a much greater demand for accuracy. Knowing these performance requirements are key to using a suitable device for your use-case.

Community Support

Computer vision has made huge progress in last few years and is evolving very fast. New frameworks are still being written, new networks and datasets are being released, and new chips are being designed at a historically unprecedented pace. The following tweet by Andrej Karpathy succinctly makes this point.

Embedded computer vision

The eco-system is rewriting itself every year, and you don’t want to be stuck with a loser.

The support of the community and that of large organizations often decide the winners.From this point of view some of the devices like Raspberry Pi, Jetson Tk1 & Tx1 have a huge advantage.

Community support/Large organizations’ pull are going to be key factors in deciding the winners. From this point of view, some of the devices like Raspberry Pi, Jetson Tk1 & Tx1 have a huge advantage.

Here is a list of a few devices that are being used for computer vision use-cases:

1. Nvidia Jetson TX1

Loaded with 64-bit quad-core ARM Cortex-A57 CPU with a 256-core Maxwell GPU, Nvidia Jetson TX1 is one of the most powerful devices in the market for embedded computer vision. What makes it more impressive is that it consumes just 10W of power to deliver 1 Teraflop 16FP performance. At $495, it is slightly pricey, but with Nvidia putting all its force behind it, you have a growing eco-system to make this the right choice for high-end computer vision applications.

2. Nvidia Jetson TK1

Nvidia Jetson TK1 is the predecessor of Jetson TX1 and is available at $192. If you think the pricing is odd, think again. With 192-core Kepler GK20a GPU, it is priced at $1 per CUDA core and it delivers a performance of 300 GigaFlops. Tk1 doesn’t have onboard WiFi or Bluetooth. However, these can be added via USB or the mini-PCIe port.

3. Raspberry Pi 3

Raspberry Pi 3 (RasPi3) has been a significant upgrade on Raspberry Pi 2. With 1.2 GHZ quad-core ARM Cortex A53, new RasPi3 is the go-to device for traditional computer vision on a budget applications (usually using OpenCV). It can output a video at full 1080p. Not only has Google hinted on betting on RaPi3, it has also provided Tensorflow support for it. An active and growing community and recent interest shown by Google makes this a real viable choice for computer vision.

4. Beagleboard: BeagleBone Black

BeagleBone Black is popular for IoT applications. As compared to Raspberry Pi which has a single 26-pin header that can be used as 8 GPIO pins, or as a serial bus, the Beaglebone Black has two 48-socket headers that can be utilized for virtually limitless I/O hardware. It also includes a number of analog I/O pins that allow it to connect to a variety of sensor hardware that can’t be used with an out-of-the-box Raspberry Pi. With double the price and inferior performance, BeagleBone Black isn’t an excellent choice for computer vision as video decoding, 3D rendering, and general GUI performance is much better on Raspberry Pi 3.

5. Orange Pi

Orange Pi has slightly better hardware than Raspberry Pi for the price point. It also has some features missing from Raspberry Pi like SATA, Gigabit Ethernet, IR, and mic. However, the lack of an eco-system and the unavailability of support has kept this otherwise decent piece of hardware away from the computer vision community.

6. ODROID-C2

Sold by Hardkernel, At $39, this is a serious contender against Raspberry Pi. It packs double the ram and much faster processor than RasPi 3. Features like Gigabit Ethernet and 4K video support make it superior to Raspberry Pi 3. Software support and the strength of the community is nowhere close to Raspberry Pi. However, this card boasts of a small but dedicated community and that is always a good sign. Another plus point for ODROID-C2 is its easy availability as opposed to Raspberry Pi.

7. Banana Pi

Banana Pi has the same processing per dollar as that of Raspberry Pi. However, the eco-system around Raspberry Pi doesn’t make it worth trying to do computer vision on Banana Pi.

Note: There are a few more devices like Intel Edison that are more suitable for IoT use cases and hence have been ignored for this post. Arduino board is another device that is extremely popular and a lot of hobbyists and students run some computer vision algorithms on it. However, we believe that Arduino is more suitable for Internet of Things but not computer vision due to its lower technical specifications(specifically very low RAM availability). Also, solutions providers like Movidius have not been included.

Conclusion

All in all, Raspberry Pi 3, Jetson TK1 and Jetson TX1 are clearly ahead of the game today with huge communities and companies behind them. ODROID-C2 is the dark horse that could be a good alternative to Raspberry Pi. Still, the market is quite nascent with too many big companies still working hard to make a dent in this market. Please let us know in comments which device are you using for computer vision.

Subscribe & Download Code

If you liked this article and would like to download code (C++ and Python) and example images used in all posts of this blog, please subscribe to our newsletter. You will also receive a free Computer Vision Resource Guide. In our newsletter, we share OpenCV tutorials and examples written in C++/Python, and Computer Vision and Machine Learning algorithms and news.

Subscribe Now

Filed Under: Devices Tagged With: Embedded Vision, Jetson, Raspberry Pi

Comments

  1. Siddhant Mehta says

    February 20, 2017 at 10:16 am

    Hi Satya Sir and Ankit Sir,

    Nice article. Just wondering why Arduino with makeblock is not included in the list.

    Thanks.

    Reply
    • Ankit says

      February 22, 2017 at 5:59 am

      Hi Siddhant, amount of computation required in computer vision is generally very high and you would frequently run out of memory for most of the use-cases with Arduino.

      Reply
  2. Albert Burbea says

    February 20, 2017 at 10:31 am

    What about a hefty i7? You can get one for 250 dollars and it’s a really powerful machine isn’t it? Maybe a bit cumbersome to install because of power supply but there are plenty of application where you do not need a battery

    Reply
  3. David Diaz says

    February 20, 2017 at 10:35 am

    Ankit,

    hi, excellent article. It would be nice to add a table comparing key factors among options (i.e. GPU, RAM, CPU, ports, etc…)

    Best regards,

    David

    Reply
    • Ankit says

      February 22, 2017 at 5:55 am

      Thank you David! That’s an good idea. Will add one soon.

      Reply
  4. Arjun Singh says

    February 20, 2017 at 10:36 am

    Well, all the above mentioned boards are awesome for prototyping. Considering, performance I think you should have included boards from Toradex https://www.toradex.com/products.

    Reply
  5. Amin Ta says

    February 20, 2017 at 10:59 am

    Udoo X86
    http://www.udoo.org/udoo-x86/

    Reply
    • Ankit says

      February 22, 2017 at 5:54 am

      Thank you. Looks impressive performance-wise. However, too early to judge for enterprise suitability. Will wait and watch :0

      Reply
  6. MarcusOB says

    February 20, 2017 at 11:54 am

    The ODroid C2 is $80CAD, so yet again, much better to stick with the Pi3.

    As for the Banana Pro, you left off the fact that this is a very good device. I use it with 4 USB cameras, all positioned 90 degrees to each other on my robot, they all take a snap shot and find faces based on the open CV SDK in C++. The app I wrote for face detection uses a single thread to process the images (as openCV is not thread safe), but it uses a thread pool to write the images to disk, so it is very fast. The Banana pro has a a SATA connector that I have a 1TB SSD connected to, this backs up all my images. Then at the end of the week my robot goes through all the faces it didn’t recognise and we have a supervised learning session. The Banana Pro also has built in wifi (so does the Pi3 now – but the 2 didnt).

    Anyway for other modules on my robot, my system is distributed using a 0MQ system. The other distributed modules are all Pi3 and Pi Zero. The Pi 3’s are for
    1. Mobility and object avoidance/navigation
    2. vision and image object detection
    3. speech recog and synthesis
    4. The mind module that controls everything,
    5. A memory module with semantic networks/prolog and inference engines (and also relational DBs !).
    6. Lastly I have an entertainment module Pi3 that drives a projector for films, a music system, and it plays games with me.
    7. The Pi zeros are running a robot arm using generic programming techniques

    All this and it is constantly evolving its personality !

    See my web site, I’ve started writing it all up. http://www.roboticsfordreamers.com

    I have got so much more to write up though, I just havent got the time with work etc.

    Reply
  7. Emilio Coronado says

    February 20, 2017 at 4:31 pm

    Recently I meet those guys : http://rhomb.io/ , and would recommend a close follow up. basically their solution continues the Pi’s, Arduino’s, Beagleboard principle, except that the CPU is “changeable” so far at the moment support Exynos but soon might support Qualcomm, even AMDs.

    That’s really great for prototyping commercial devices, since one board design might allocate different CPUs solution depending on what’s needed from the SOC.

    Reply
    • Ankit says

      February 22, 2017 at 5:38 am

      This seems to be very unique and exciting! However, the company seems to be slightly early-stage, isn’t it? Would be keeping an eye on them.

      Reply
      • Emilio Coronado says

        February 23, 2017 at 6:49 am

        so far they have their first batch of products almost ready for mass production, in fact i have an evaluation board with an exynos SOC. and access to the drivers for different Linux flavors, but could not have time to play with it yet.

        Reply
  8. Supra says

    February 20, 2017 at 7:11 pm

    The Asus tinker board is top of lines that comes with 4K. But it is also faster than anyone of them.
    Here is link:
    http://www.trustedreviews.com/news/asus-tinkerboard-release-date-price-specs-buy

    Reply
    • Ankit says

      February 22, 2017 at 5:32 am

      wow, this was released last month! Specs are really impressive and price point quite unique in this market. We shall check it out. Thank you for pointing this out to us 🙂 .

      Reply
      • Supra says

        February 22, 2017 at 6:41 am

        U’re welcome.

        Reply
  9. Oscar Deniz Suarez says

    February 20, 2017 at 10:01 pm

    http://www.eyesofthings.eu

    Reply
    • Ankit says

      February 22, 2017 at 5:25 am

      Thank you Oscar. EOT looks like very promising project. How can one get hold of their factor-form board or any other board?

      Reply
      • Oscar Deniz Suarez says

        February 22, 2017 at 9:09 am

        Q3 this year for early adopters

        Reply
  10. ارم الزهراء says

    February 20, 2017 at 11:07 pm

    hey satya i am using odroid C2 for face detection and recognition using open CV but my fps is too damn low 1 or 2 fps … i tried both rasberry and and orange pi but odroid is better than them… moreover dlib doesnt perform well on odroid and the other two pies…. It would be very great if you could give me some suggestions on improving FPS

    Reply
  11. Muncho Munchev says

    February 21, 2017 at 12:38 am

    I would suggest parallella board (parallella.org).

    Reply
    • Ankit says

      February 22, 2017 at 5:17 am

      Thank you Muncho. We plan to evaluate Parallella board and update this list. Thank you for pointing this out 🙂

      Reply
  12. Carlo Alberto Avizzano says

    February 21, 2017 at 1:52 am

    I had a similar review for internal purposes and came out also with the following board and comparison:

    UP, EUR 89-139, Max 2GB 32GB, Passmark 1202 (387 per core)
    ASROCK J4205-ITX EUR150, NoMEM, ApolloLake Passmark:2397 (898 per core)
    UP Squared N4200, EUR169-269, Max 4GB-64GB, Apollo Lake, Passmark 2048 (857 per core)
    UDOO Advanced, N3160, EUR149, 4GB 32GB,CherryTrail, Passmark 1668 (477 per core)
    UDOO Ultra, N3710, EUR259, 8GB 32GB, Passmark 1875 (572 per core)
    UP, EUR 89-139, Max 2GB 32GB, Passmark 1202 (387 per core)
    LattePanda, EUR 89, Max 2GB 32GB, Passmark 1202 (387 per core)

    Other suggestions:
    1. Do not believe to burst speed, It does not work for prolonged heavy load;
    2. Take care of thermal design factor, we had several board overheating and resetting;
    3. Take care of RAM type on the boards, DDRAM3/4 are faster
    4. Take care of Multimedia extension of OpenCV (SSE4.2 / AVX) are strongly used by OpenCV
    5. Check presence of CSI / CSI4X lanes on the board for embedded cams
    6. Check presence of USB3 hub ports on the board

    2017 Low power Intel cores are very promising, e.g.:
    I7-7500U has Passmark 5261 with per core performance of 1950, which is (per core) closer

    to top of line of intel i7 in 2013 (e.g. i7-4960HQ was Passmark 9770 single 2169), but with only 15W
    of TDP. So we can expect 2017/17 Embeeded boards to release fully openCV enabled CPU.

    Reply
  13. Sumeet Dube says

    February 21, 2017 at 10:07 pm

    NXP’s iMX6Q Processor is a good option for image processing too. NXP has development boards based on iMX6Q as well as Toradex

    Reply
  14. Wizzer King says

    February 28, 2017 at 12:48 pm

    I don’t see anywhere the Panda Board
    Why would you use the Beagle Board , when the Panda Board is designed for Video ??
    http://pandaboard.org/

    Reply
  15. Eddie J says

    September 22, 2018 at 9:22 pm

    basically too slow or too expensive…

    Reply

Leave a Reply to ارم الزهراء Cancel reply

Your email address will not be published. Required fields are marked *

OpenCV Certified AI Courses

AI Courses by OpenCV.org

Resources

Download Code (C++ / Python)

Disclaimer

This site is not affiliated with OpenCV.org

Satya Mallick

I am an entrepreneur who loves Computer Vision and Machine Learning. I have a dozen years of experience (and a Ph.D.) in the field.

I am a co-founder of TAAZ Inc where the scalability, and robustness of our computer vision and machine learning algorithms have been put to rigorous test by more than 100M users who have tried our products. Read More…

Recent Posts

  • Gaze Tracking
  • Simple Background Estimation in Videos using OpenCV (C++/Python)
  • Applications of Foreground-Background separation with Semantic Segmentation
  • EfficientNet: Theory + Code
  • Mask R-CNN Instance Segmentation with PyTorch

Copyright © 2019 · Big Vision LLC