What autopilot sees (computer vision and obstacle detection in Tesla auto-pilot)

I will simply leave this here. A great video from Tesla showing off their autopilot, first person view style:


Autopilot Full Self-Driving Hardware (Neighborhood Long) from Tesla Motors on Vimeo.
What is even more mind-blowing is that currently these sort of technologies are openly available as result of general technology advancements and large tech corporations backing open-source.

Want to build your own self-driving car?

Just use the existent components:

 

Top IoT countries 2017 (Internet of Things events destinations)

We have earlier published the list of top cities hosting Internet of Things events throughout the world and the winner was (1st) London (UK) followed by (2nd) Chicago (US), (3rd) Toronto (Canada) and (also 3rd) New Delhi (India).

That list however treats all city destinations individually and does not group results by country. So which is the country that does most around IoT in 2017 (well at least events wise)? You could probably have guessed by now especially if you looked into our IoT events database but here are the results in case you’re still curious:

  • 1st place: United States (29 events)
  • 2nd place: United Kingdom (15 events)
  • 3rd place: Germany (9 events)
  • 4th place: India (7 events)
  • 5th place: Canada (6 events)

The overall relative percentage:IoT events 2017 top countries

This statistics is based on our research of Internet of Things related events for period 2016 Q4 – 2017, all data extracted from open sources available in English. We made the database absolutely free to download here, just click/tap on “CSV”, “Excel” or “PDF” button. Feel free to use it in your own analytics or simply to plan where to demo your products or learn more about the trends of connected things industry in 2017.

P.S. We do understand our research on IoT expos and conferences in 2017 is not excessive as new events will be announced going forward. Once our database is updated, this post will be updated with a link to the new version. Please feel free to use the comments section to inform us about new events posting a link to official website.

 

Fixing Darknet OpenCV3 make error (convolutional_kernels)

So Darknet is a great open-source framework for deep learning including useful neural network implementations such as YOLO, ImageNet, RNNs etc but we have stumbled upon problems when trying to make it work with our system running CUDA 8.0 and OpenCV 3. It simply wouldn’t make, producing this error instead:

nvcc –gpu-architecture=compute_52 –gpu-code=compute_52  -DGPU -I/usr/local/cuda/include/ -DCUDNN  –compiler-options “-Wall -Wfatal-errors  -O0 -g -DGPU -DCUDNN” -c ./src/convolutional_kernels.cu -o obj/convolutional_kernels.o
/usr/include/c++/4.8/bits/stl_relops.h(85): error: this declaration may not have extern “C” linkage
Error limit reached.
100 errors detected in the compilation of “/tmp/tmpxft_00007d61_00000000-7_convolutional_kernels.cpp1.ii”.
Compilation terminated.
Makefile:98: recipe for target ‘obj/convolutional_kernels.o’ failed
make: *** [obj/convolutional_kernels.o] Error 4

Apparently this is a known issue when trying to build Darknet with OpenCV3 and is being discussed in Darknet google group: https://groups.google.com/forum/#!topic/darknet/bXDkfGwU3CE. Most people ended up downgrading to OpenCV2 to make it work.

However just recently in October’2016, Prabindh Sundareson has posted his forked version of Darknet that resolves this problem: https://github.com/prabindh/darknet also available as a pull request to original code from PJReddie: https://github.com/pjreddie/darknet/pull/21.

That version actually allows to build Darknet with GPU, cuDNN and full OpenCV3 support and we have tested it on Ubuntu 16.04 xenial.

Still it didn’t work out of the box using Prabindh’s update, for example we had a problem with nvcc resulting in this:

nvcc –gpu-architecture=compute_52 –gpu-code=compute_52  -DGPU -I/usr/local/cuda/include/ -DCUDNN  –compiler-options “-Wall -Wfatal-errors  -O0 -g -DGPU -DCUDNN” -c ./src/convolutional_kernels.cu -o obj/convolutional_kernels.o

/usr/local/cuda/include/surface_functions.h(134): error: expected a “;”

and other issues to do with environment and versioning so we decided to post the steps here in our blog so that others can benefit from them too:

  1. Clone the repo from Prabindh Sundareson (as of 13th November 2016 PJReddies hasn’t accepted this pull request into main repo of Darknet yet):
    git clone https://github.com/prabindh/darknet.git
  2. get the RC build from Nvidia (cuda_8.0.27_linux.run). For us this was tricky to find as NVidia search wouldn’t locate the file. Make sure you go into Member area or simply follow this link: https://developer.nvidia.com/cuda-release-candidate-download
    sudo sh Downloads/cuda_8.0.27_linux.run —override
    (in our case said “no” to driver and “yes” to samples as we had later driver version installed already)
  3. download “cuda_8.0.27.1_linux.run” patch from Nvidia as well. This patch fixes the NVCC / GCC versioning compiler issue but don’t install it yet if you’re in same situation like me, below:
    so in our case nvcc -V was still returning version “7.5” even after installing the 8.0.27 and 8.0.27.1 above so if you have the same, make sure you set up the environment following instructions from “CUDA quick start guide for Ubuntu” or our steps below
  4. sudo sh Downloads/cuda_8.0.27_linux.run –silent –toolkit –override
  5. export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
  6. sudo nvidia-xconfig
  7. Then install cuDNN (re-install if like us you had it installed before)
    do something like:
    cd ~/Downloads/
    tar xvf cudnn*.tgz
    cd cuda
    sudo cp */*.h /usr/local/cuda/include/
    sudo cp */libcudnn* /usr/local/cuda/lib64/
    sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
  8. Only AFTER all above steps install the cuda_8.0.27.1_linux.run:
    sudo sh /Downloads/cuda_8.0.27.1_linux.run
  9. Finally, go into darknet folder (Prabindh version you downloaded above) and build it:cd darknet make

Following the steps above allowed us to make and run Darknet with CUDA 8.0 and OpenCV3 installed, these are the parameters from Makefile:

GPU=1
CUDNN=1
OPENCV=1
DEBUG=1

Hope it helps, leave your questions or comments if any.

Best regards,

Covijn team.

 

 

 

 

Raspberry Pi powered rocket launcher

As reported on imgur, reddit and by Kyle Mizokami of Popular Mechanics, a Raspberry Pi hobbyist computer board has been spotted inside a rocket launcher prototype presented at last month’s Bezpeka Security trade show in Ukraine which specializes on defense and fire protection equipment.

turchinov rpi grenade launcher

In the photo above, Ukrainian Defense and Security Secretary, Olexander Turchinov, is posing with the rocket launcher prototype.

Raspberry Pi Rocketl Launcher

Above and below a Raspberry Pi board and the whole makeshift arrangement can be seen in the closer photos of the device.

Raspberry Pi guidance system inside Rocket Launcher

The RPi board is located towards the head of the device and Popular Mechanics contemplates its purpose could be sound guidance in applications against helicopters and tanks. There are obviously concerns around using a hobbyist computer board in military applications and questions in regards to its battlefield reliability. This does however reflect the trend in the modern warfare where smaller forces with limited budgets increasingly are able to cause greater impact with the help of affordable technology.