Recommendation of an existing application for object detection and tracking with jetson Nano, YOLO V3 Tiny and Tensorflow

Hi,

I am looking for an existing jetson nano application that utilizes tensorflow AND YOLO V3 Tiny. If someone can recommend a tutorial to me, I would also be very pleased.
It is also important that there is the possibility to re-train the pretrained weights with my own dataset.
I already tried several tutorial but was facing always different issues / problems / errors and have not yet managed to get an application up and running. One reason is unfortunately also my lack of experience.

Here is some information about my nano and installed software + packages:

  • Jetpack 4.3
  • Tensorflow 2.1.0
  • Python 3.6.9 (it is important for me that I can use python. The version is not the deciding factor.)

I welcome all help and suggestions.

Best regards
chris

Hi,

Do you have any dependences on TensorFlow,
If not, it’s recommended to use our TLT toolkit for transfer learning and use Deepstream SDK for deploying.

Thanks.

Hi,

perhaps it is helpful if I briefly explain what I want to use the Nano for.

I want to detect and track people to count how often they walk through a certain area. (This is the topic of my masterthesis.)
It is mandatory to use SSD or YOLO V3 (Tiny).

I could use the TLT toolkit on the Nano itself because there is no obligation to use TensorFlow on the Nano.
But the training of the pre-training model shall be done on the virtual machine of the university (independent of the Nano). In this respect there is a dependence on TensorFlow. And it is not possible to install the TLT tollkit on the vm.

Therefore I don’t now if it is possible to use the TLT toolkit for my application?

I suspect it is easier to use another existing application / model that is indepentent of the TLT toolkit.
Please correct me if I’m wrong.

Best regards
chris

Hi,

Yolo will get you your object detections for like people or cars, you can use yolov3 tiny if it is a requirement but would also look at yolov4 and the non tiny versions to compare performance and accuracy across some different models.

For tracking you need a tracker like DEEP_SORT then to do the line counting just need some python logic to have a line and check of the tracked objects moved across it.

There are a decent number of good examples of yolo and deep sort implementations on github if you do some googling, best of luck

Also there are models for deep sort and yolo already out there so no training is needed

for extra points you could also look at getting the yolo model running on tensorRT for better performance and or through the triton inference server, there are also some hand githubs, have fun

Hi,

thanks a lot for your advice and suggestions.
I have already tried this ones:





But I did not make anything run because of different errors. Sometimes the requirements are not met, sometimes the Nano is running out of memory and so on. I got a lot of help here and could solve some problems but finally I made nothing work as intended.
It is quite possible that my little experience makes things more difficult.

Therefore I am looking for an application that is especially suitable for the Nano. I hope that in this way I can avoid problems concerning the requirements and also the out of memory errors.

Since I just tried YOLO V3 (Tiny) so far I will give YOLO V4 a try. Maybe I’ll have better luck with that.

Hi,

Does your school machine support darknet, which is developed by the YOLO’s author?
If yes, it’s recommended to train your database with darknet directly.
You can also verify the model with the API provided in darknet.

After that, you can deploy the new YOLOv3 model with Deepstream and enable the tracker that integrated into Deepstream.

Thanks.

Hi,

thanks for your recommendation. I have a question regarding the deepstream pdf you shared in your post.
Is it necessary to work with C++ or is there a way to work only with python?

Hi chrisTopp,

Python should be working, please refer to:

Hi,

first of all many thanks for all the great help I always get here!

To avoid doing anything wrong I would like to ask a few questions first.

Since I have no Linux host systems I would follow the instructions from this website https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_Quickstart.html#run-deepstream-app-the-reference-application and install the DeepStream SDK this way:

1. I would not use the NVIDIA SDK Manager because I have no Linux host system.

2. Install dependencies:

$ sudo apt install \
libssl1.0.0 \
libgstreamer1.0-0 \
gstreamer1.0-tools \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
libgstrtspserver-1.0-0 \
libjansson4=2.11-1

3. Install librdkafka
Steps 1., 2. and 3.

4. Install NVIDIA V4L2 GStreamer plugin
Step 1
Step 2 (Jetson Nano)

deb https://repo.download.nvidia.com/jetson/common r32.4 main
deb https://repo.download.nvidia.com/jetson/t210 r32.4 main
Step 3. and 4.

5. Install DeepStream SDK
Method 2: Using the DeepStreamtar package
(Question: I read something about 25 GB needed space. Am I right?)

That’s it. Should it work now if I have not made any mistake?

Best regards
chris

Hi @chrisTopp Is your Nano developer kit with SD card or emmc? If is is with SD card, the image has included the package in

/opt/nvidia/deepstream/deepstream-5.0/

Hi,
my developer kit is with SD card. I downloaded the image (jetson-nano-4gb-jp441-sd-card-image.zip) from here


and followed the instructions for windows.

But when I have a look into the directory you told me there is no folder “deepstream” :(

nvidia@nvidia-desktop:/opt/nvidia$ ls
jetson-io l4t-bootloader-config l4t-usb-device-mode vpi vpi-0.4

Do I now have to install deepstream as I explained or is there another directory I could find deepstream?

BR
chris

Hi,
Is your SD card with 32GB or larger size?

Hi,
We have not included it in JP4.4.1 yet. Please try JP4.4:
https://developer.nvidia.com/jetson-nano-sd-card-image-44

1 Like

Ok, thanks for your information.

I will think about changig to JP4.4 or keeping JP4.4.1 to find a solution without Deepstream.

Best regards
chris

Hi, I’m usig a 64GB SD card.

Best regards
chris

Hi,
On JP4.4.1, please run

$ sudo apt install deepstream-5.0

And you should see the package in

/opt/nvidia/deepstream
1 Like

Thanks a lot. I have forgotten that there are also simple solutions for many things. :)