Tegra Multimedia API samples Readme seems to have changed from Jetpack 3.0 to 3.1

JetsonHacks has done really awesome YouTube videos to help us newbies have a fighting chance getting things started. The last step in his “JetPack 3.0 - NVIDIA Jetson TX2” video is to run the example program that identifies vehicles in a 10 fps video. He shows copy and paste of the command to run the “backend” program as coming from the README file in ~/tegra_multimedia_api. That text appears to have disapppeared between 3.0 and 3.1 from what I see in his video.

The help for the program seems pretty normal Linux style help (a good memory jog if you already know the info) but is not terribly helpful if you really have no clue (where I am right now).

Is it possible to get a short “Getting Started” document for this demo, so we can see if we got the tools installed? Do I need to look in a different place for that text? I have been around Windows too much. Heading off to run grep but info here would probably help!

Thanks.

You can find doc in Jetson Download Center | NVIDIA Developer go to “L4T Multimedia API Reference”
It is same as before.

Wayne:

I had downloaded the package you mention. I have located at least one problem. There appears to be two sets of code and binaries as JetPack 3.1 ships. One set exists in ~/nvidia/tegra_multimedia_api (what appears like it should work with the README data) and another in ~/tegra_multimedia_api

The ~/tegra_multimedia_api set comes with compiled binaries (and permissions set to execute). The ~/nvidia/tegra_multimedia_api set must be compiled in order to execute, but I haven’t worked through the settings necessary to get a clean compile yet. (Film at 11).

So, I might be on the trail of getting things going, but there is definitely a problem at nVidia with two sets of directories that are incompatible.


Here is the command line suggested from README in the L4T package (~/nvidia/tegra_multimedia_api):
$ cd backend
$ make
$ ./backend 1 …/…/data/video/sample_outdoor_car_1080p_10fps.h264 H264
–gie-deployfile …/…/data/model/GoogleNet-modified.prototxt
–gie-modelfile …/…/data/model/GoogleNet-modified-online_iter_30000.caffemodel
–gie-forcefp32 0 --gie-proc-interval 1 -fps 10


Here is the result of “./backend --help” from the ~/tegra_multimedia_api/samples/backend directory:

backend … [options]

Channel-num:
1-4, Number of file arguments should exactly match the number of channels specified

Supported formats:
H264
H265

OPTIONS:
-h,–help Prints this text
-fps Display rate in frames per second [Default = 30]

--s                  Give a statistic of each channel
--input-nalu         Input to the decoder will be nal units[Default]
--input-chunks       Input to the decoder will be a chunk of bytes

--trt-deployfile     set deploy file name
--trt-modelfile      set model file name
--trt-proc-interval  set process interval, 1 frame will be process every trt-proc-interval
--trt-forcefp32      0 to use fp16 (if supported), 1 to use fp32
--trt-dumpresult     1 to dump result, 0[default] otherwise
--trt-enable-perf    1[default] to enable perf measurement, 0 otherwise

directory structure on shipping code in ~/tegra_multimedia_api:

~/tegra_multimedia_api/data/Model
~/tegra_multimedia_api/data/Video

From ~/nvidia/tegra_multimedia_api directory:

~/nvidia/tegra_multimedia_api/data/model
~/nvidia/tegra_multimedia_api/data/video

An update:

I tried running Make on the “backend” project in ~/nvidia/tegra_multimedia_api/samples. I get an undefined symbol on “Dims3” from samples/common/algorithm/gie/gie_inference.h

Running grep discovers that Dims3 is used but never defined by any file in the tree. It is used 3 times in the header file mentioned above. Perhaps turning on something in the Makefile will solve the issue. Strange that the definition appears nowhere.

I think you have already succeed to run app.
Also this is just a sample, just learn how to use.
For cuda related, you can learn from cuda DOC.

Not sure how you came to the conclusion that I have succeeded in running the application. It has executed and exited with errors without doing anything useful.

I have also tried contacting dusty-nv to see what I really need to do to get files from GitHub to allow me to compile a version that will run correctly. Dusty-nv apparently placed an update on GitHub, but nVidai does not seem to have updated the JetPack 3.1 distribution with correct files.

I take this process to be the Deep Learning equivalent of “Hello World.” It is frustrating to not be able to even get that much accomplished. It does not speak well for trying to use nVidia components in one of my products for sale!

OK. Now I have successfully run the demo.

Here is the sequence of commands:

$cd ~/tegra_multimedia_api/samples/backend
$ ./backend 1 ~/nvidia/tegra_multimedia_api/data/video/sample_outdoor_car_1080p_10fps.h264 H264
–trt-deployfile ~/nvidia/tegra_multimedia_api/data/model/GoogleNet-modified.prototxt
–trt-modelfile ~/nvidia/tegra_multimedia_api/data/model/GoogleNet-modified-online_iter_30000.caffemodel
–trt-forcefp32 0 --gie-proc-interval 1 -fps 10

That command works. The one I posted in the first round with “gie” in the command DOES NOT WORK!

If possible, y’all should produce a JetPack v3.1.1 which fixes both this problem as well as the “Dims3” undiefined symbol issue that dusty-nv has already fixed. Given it has been over 4 months since he fixed the issue, there is no excuse for that fix not being in the full distribution.

The commands above assume you have installed the tools in your /home/nvidia directory and you are logged on as nvidia.