Tiny Yolo2

by Synthiam

Object detection is fundemental to computer vision: Recognize what the objects are inside the robot camera and also where they are in the image.

How to add the Tiny Yolo2 robot skill

  1. Load the most recent release of ARC (Get ARC).
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Robot Skill from the button ribbon bar in ARC.
  4. Choose the Camera category tab.
  5. Press the Tiny Yolo2 icon to add the robot skill to your project.

Don't have a robot yet?

Follow the Getting Started Guide to build a robot and use the Tiny Yolo2 robot skill.

How to use the Tiny Yolo2 robot skill

Object detection is fundamental to computer vision: Recognize the objects inside the robot camera and where they are in the image. 



1) Add a Camera Device to the project

2) Add this robot skill to the project

3) START the camera device, so it is displaying a video stream

4) By default, this skill will not be active. Check the "Active" checkbox to begin processing the camera video data stream

Camera Device Integration

This robot skill integrates with the camera device by using the tracking features. If the servo tracking is enabled, this robot skill will move the servos. This is an extension of the camera robot skill.


In HD webcam resolution, Tiny Yolo is processing 30+ FPS with 38% CPU
User-inserted image


The detected objects are stored in global variables in the array provided by the camera robot skill. The number of detected objects determines the size of the array. The detected object's location, confidence, and name are all stored in variables.
User-inserted image

- control commands for starting, stopping
- object tracking start and object tracking end scripts
- ability to specify custom training model files


Upgrade to ARC Pro

ARC Early Access will give you immediate updates and new features needed to unleash your robot's potential!

I do prefer ptp's solution though - his is more elegant so far i think
When I open it now it says in the Tiny Yolo2:

Loading models: C:\ProgramData\ARC\Plugins\19a75b67-c593-406c-9789-464aa3ba998b\models\TinyYolo2_model.onnxSet Configuration: Error initializing model :Microsoft.ML.OnnxRuntime.OnnxRuntimeException: [ErrorCode:RuntimeException] Exception during initialization: bad allocation
at Microsoft.ML.OnnxRuntime.NativeApiStatus.VerifySuccess(IntPtr nativeStatus)
at Microsoft.ML.OnnxRuntime.InferenceSession.Init(String modelPath, SessionOptions options)
at Microsoft.ML.OnnxRuntime.InferenceSession..ctor(String modelPath)
at Microsoft.ML.Transforms.Onnx.OnnxModel..ctor(String modelFile, Nullable`1 gpuDeviceId, Boolean fallbackToCpu, Boolean ownModelFile, IDictionary`2 shapeDictionary)
at Microsoft.ML.Transforms.Onnx.OnnxTransformer..ctor(IHostEnvironment env, Options options, Byte[] modelBytes)
Looks like your computer ran out of memory when loading and parsing the model. Try rebooting and using the skill again.
This looks interesting will give it a try!
#10   — Edited
I tried it again, only can see "a person" , thinks my iPhone in a tv-monitor,   :-)

Also the box that pops up is to the left of the  "person" it sees -  the person is not in the box

Will keep trying
V8 not working for me. I get this message and no scrolling of detected items.

User-inserted image
You'll have to press the ACTIVE button - and an active camera will need to be running. You can see the instructions in video above:)
I do have an active camera running and the ACTIVE button is depressed as in the pic above. Followed the vid to a T.
That is all I ever see in the plugin. I do notice in the variable watcher that it is detecting and the variable changes when it detects me or something else, but the plugin never changes.

I tried it again, only can see "a person" , thinks my iPhone in a tv-monitor, :-)

Also the box that pops up is to the left of the "person" it sees - the person is not in the box
#15   — Edited
Fixed the boxes around the detected objects

Perry, the plugin doesn't change or display anything. The objects detected are in the camera view and the variable manager. They're not in the display of the plugin. Would it help if they were also listed in the plugin display for you to see in there as well?
Perry, I added a DEBUG checkbox that will display debug information in the plugin of detected objects as i think that's what you'd like to see? The detected object will also be highlighted in the camera device
Hi DJ. I noticed the boxes that appear around detected objects onscreen. The text was tiny and unreadable in the highest resolution I was previously stuck with. I had expected to see the plugin updating with the detected objects because that is the way it works in the video.
Does the new debug work for you? I can make it so the debug value saves with the project configuration as well - if it's something you'd like to see on every frame
#19   — Edited
Are the pictures captured in a file, stored on your laptop like PTP's DarkNet Yolo stores the files is a captured files ?

The reason I a asking is, I like deleting the captured files to save on storage on my laptop -  I do delete the DArkNet Yolo files / pictures in the C:\...Documents\YOLO.Plugin\Captures folder


There’s no files saved. Do not delete any files
got it


Any chance that I can load my own Yolo or ONNX trained neural network in this skill?
Yeah, you totally can. There's a folder that contains the data file. It'll be in the plugin folder, which should be something like...



I can quickly change the robot skill to allow you to select your own data file if you'd like. I don't think that exists in this.
It'll be easier if we modify the robot skill to allow loading of custom files. that way you can test it and have full control of your environment.