This application demonstrate how the NAO robot can recognize objects using deep learning algorithms. It comes with a pre-trained deep learning model that allows NAO to recognize up to 600 different objects with its camera.
You can also train your own deep learning model on your own object image dataset and upload the model to be used in this application.
- 1. Hardware & software compatibility
- 2. Supported language
- 3. Install the app
- 4. Use the app
- 5. Training your custom model
- 6. Uploading your custom model to the app
Please see the following video on YouTube for some more information about how this project works in practice: https://youtu.be/NwHXtjw7TG0
This app is compatible with NAO V6, and Naoqi 2.8.6
This app is available in:
- French
- English
The application will automatically switch to English or French language when you change the language on NAO
If you want to use the Deep NAO app in French, you need to have the French language installed on your robot. If it is not installed by default, you can order the French language by contacting customer support.
To install this application on your NAO, you need to use the Choregraphe suite.
First launch Choregraphe. Click on File
> Open Project
, select the deep_nao.pml
file located in this project folder, then click Open
.
Then connect Choregraphe to your NAO robot.
Finally open the Robot applications panel, and click on the Package and install current project to the robot
icon , located in the Robot application panel toolbar. This will package and install the Deep NAO application to your NAO robot.
Once this is done, you can close Choregraphe, the app has been installed on your NAO.
The app start automatically when the robot is in solitary or interactive state. It is stopped when the robot is in disabled or safeguard state. To enable the application when the robot is in disabled state, double click on NAO chest button.
We provide a default deep learning model that was trained on Google Open Image Dataset. Using this model, NAO can recognize up to 600 different objects.
You can view the complete list of recognized object in this file (open it with a text editor).
A web page is available that allows you to remote control the application.
You can access it at the url: http://<robot_ip>/apps/deep_nao/
Replace <robot_ip>
by the real ip of the NAO robot (for instance something like 192.168.0.2).
If the application is disabled, the web page will display the following message:
In that case, see 4.1. Start the app to find out how to start the application.
When the Deep NAO application is running, the remote control webpage looks as follow:
When the app is active, the web page will display NAO camera stream, so that you can see what objects NAO sees and recognizes. When NAO recognizes an object, it will display a yellow square around the object in the camera stream image. The name of the object will also be displayed.
You can ask NAO to say the name of the objects it recognizes. To do so you can either:
- click on the
Describe what you see
button: NAO will say what object it recognizes at the moment - toggle the
Describe continuously
switch button: Whenever NAO recognizes a new object, it will say its name. It will continue doing so until you toggle back the switch to off. - toggle the
Explore continuously
switch button: NAO will start to walk randomly in the room to search for objects to describe. As with theDescribe continuously
button, whenever it recognize a new object it will say its name.
When you have uploaded a custom model to the app, a Use custom model
switch will appear. Toggle it if you want NAO to use your custom model.
You can train your own custom model so that NAO recognizes the objects you taught it to learn.
We provide a tutorial in the form of a Google Colab notebook tutorial that allow you to train a custom network to recognize two different objects. You can pick these two objects from the 600 objects available in the Google Open Image dataset.
Now go to the Colab tutorial, and follow the instructions!
Once you have trained your custom model using the Colab tutorial, download the resulting files from your Google Drive.
The tutorial should have created a folder NAO_DeepLearning
in your Google drive, with a result
folder in it. Download all the files from the NAO_DeepLearning/result
folder. There should be the following files:
model.cfg
model.weights
objects.names.en
objects.names.fr
Once you have these four files, you need to upload them to the Deep NAO app. To do so, open the special url: http://<robot_ip>/apps/deep_nao/upload.html
in your browser.
Replace <robot_ip>
by the real ip of the NAO robot (for instance something like 192.168.0.2).
Your browser will display:
Click on each browse button to select the four files you just donwloaded. Then click on upload files.
Once the upload is done, you will be redirected to the Deep NAO main web page. Toggle the Use custom model
switch and NAO will start using your custom model instead of the default one.
If you want to revert to the default model, toggle back the Use custom model
switch.