Newton is waiting for DL4J !!! Inmoov CUDA ready :D

 

GroG

7 years 7 months ago

WOW !   Amazing build Bretzel !
Could you supply a link to the hardware ?

What ideas do you have for DL4J ?  What do you want your InMoov to do ?

This is a regular (and small !) computer. Core I3 7300T (35W TDP) with 16GB SODIMM

 

The motherboard is a mini stx format from Asrock. (H110M-STX) the size is 14x14.5cm

There is no standard PCI-E x16 on this motherboard due to the small size.So I've installed an adapter called EXP GDC. This is used for e-GPU on laptop. there is a pcie x4 ssd format (M2) card connected to a pcie x16 board by 2 hdmi cables.

 

https://www.banggood.com/fr/search/exp-gdc.html

I have some problems with this adapter, connections are made with hdmi plug, and it's not reliable . Need to change for a good one. I think that solder the cables directly on the pcie x16 board would be better. I'm working on that.

I've installed a Nvidia Geforce GTX 960 4GB MINI from Asus. This card is no longer available, it's a second hand card. Nvidia has disabled the capability to use as e-GPU cards form the 10x0 series since driver 372.90 :

https://egpu.io/forums/expresscard-mpcie-m-2-adapters/nvidia-is-killing…

So, cards from the 900 series are the most recent and powerfull you can use.

 

About DL4J :

I don't know exactly what DL4J can do. I did some experiment with YOLO V2 and YOLO 9000.

 

I think as an Inmoov service, DL4J would be usefull if the robot can recognize object and can interact with them. (take the ball you know...)

What do you see ? 3 persons, two bottles, a car, a pink elephant (lol), a speculos box...

So, I've installed a dedicated Nvidia GPU because, for efficient video processing, you need CUDA. and a standard computer if I need to install I5 or I7 ..., dual boot, etc...

 

Looks Great ..

I peeked at a Yolo 9000 related site - the gif they have certainly is enticing

https://github.com/philipperemy/yolo-9000

I'm hoping to get more time to work on Dl4j with kwatters and refactoring OpenCV service for Mrl.  This is really impressive.  I'd be curious of Dl4j's speed. The next step I usually want to see is stiching and memory.  When you pan or look away, things disappear from the video stream, but we as infants learn they still exist in the same room.  Would be nice to display this concept in some way - and have the robot interact with things it "thinks" are still around vs only ones it "sees".

Dunno if I greeted you before, but Welcome !

What is your background ?  Are you in the Software-Fu trade ?
(sorry if I forgot .. my memory needs augmenting...)

GroG

Thanks ;)

No, I'm mechanical engineer and working as maintenance manager in a mill.

With my hardware, Yolo can recognized object at 10-27fps depends on the trained model. (yolo or yolo 9000, there is also a small model that required less memory called tiny yolo but not tested with the gtx 960). It needs a lot of graphic memory, that's why I've chosen a GPU with 4GB. with cpu computing, it takes 6-10 sec per picture. it's a uge difference. 

I did a demonstration of Yolo with the webcam in the eye of my Inmoov at the Paris Maker Faire with Gaël. It has interested visitors.

 

 

Moo!  Quack... 

So, there is an open source module/project called deeplearning4j-zoo.  This is a place where people have contributed pre-trained models.  I suggest, we start with one of those, and then work on building and training our own models.

Some links here:   https://deeplearning4j.org/model-zoo

Also, here's an online demo of using the VGG-16 model:   https://deeplearning4j.org/demo-classifier-vgg16

If we get this worky, I think we'll have a good start on using deeplearning in mrl.

impressive foo - worky on Android through browsers, hooked into my camera .. took snapshot .. interesting results 

Ya very cool Full Steam Ahead !

Ok I can say a lot more... This is amazing I have been trying to decide how to increase the onboard computing strength in a similar way. I am at a conference this week and had a session on DeepLearning4J yesterday and another on machine learning this afternoon. I know I will come back home ready to make some upgrades... I will definitely keep an eye on this chain of posts and probably pester you to no end when I start the upgrade. Thanks for making awesome things and continuing to push the rest of us forward!!!

Kyle

So,  a bit of wrangling, I finally got the "deeplearning4j-zoo" pulled into MRL.  This is very much the bleeding edge for the dl4j project.  It allows us to pull down a bunch of pre-trained models that can do image recognition and classification.  

I've added 2 methods to the deeplearning4j service,

dl4j.loadVGG16()

and

dl4j.classifyImageFileVGG16(filename) 

 

 

calling loadVGG16 will download and cache the VGG16 model from DL4J.  It's about 510MB, so beware, it's big and takes a while to download.  (it's stored in the users home directory currently  ~/.deeplearing4j  ) 

 

Once you've called that method you can call classifyImageFileVGG16(filename) 

 

This is where you can pass it a filename  (on disk) of an image file, ther return value from this method call is a string the represents the classifictions.  

 

This is very much work in progress.. these methods are here now for people who are interested to have an early peak as to what is coming.  The longer term goal will be to integrate this with an OpenCVFilter...

 

Enjoy!

 

P.S.  Now I just need to make the build pass ;)