Question for folks who upgraded to JetPack 3.3: Are you still able to run the original models included in DeepStream SDK 1.5 after the Jetpack upgrade? I’ve just upgraded tensortrt to 4.0 on our Tx2 system and while I can run yolo plugin, the original SDK 1.5 models are sig’faulting now.
Just curious if models included in SDK 1.5 can be run with tensortrt at all… I think someone mentioned that they are not compatible?
I am now able to get Jetpack 3.3 working with DeepStream 1.5, thanks to the suggestion in Comment #22 by NvCJR. Removing the Model .cache files was the missing step. Thanks again
It resizes the number of inference images into a multiple of batch size. In your case it would make the number of inference images 0. Keep in mind that the TensortRT context also requires the number of images being used in each forward pass. Right now batch size is being used for this value. Reference - https://github.com/vat-nvidia/deepstream-plugins/blob/master/sources/lib/yolov3.cpp#L76
After training for a good amount of time, still the model predicts multiple false positives.
Changes - Mask’s according to the data, Anchor’s, Image size(increased to 800).
I think there’s a bug in the plugin code, in the function that parses the input Darknet cfg file.
sources/lib/trt_utils.cpp:loadWeights()
The code skips 4 int32 or 5 int32 bytes at the beginning of the cfg file, depending on the Network Type.
if (networkType == “yolov2”)
{
// Remove 4 int32 bytes of data from the stream belonging to the header
file.ignore(4 * 4);
}
else if ((networkType == “yolov3”) || (networkType == “yolov3-tiny”)
|| (networkType == “yolov2-tiny”))
{
// Remove 5 int32 bytes of data from the stream belonging to the header
file.ignore(4 * 4);
}
The proposed correction - the number of bytes to skip should be based on the major and minor version, which are in the first 2 int32 values, as in the Darknet github parser.c, load_weights_upto():
I would expect the probability density vector to be contiguous in memory such that I could use std::max_element instead of the manual for-loop to find the largest probability so I was surprised about this layout.
Also it would be interesting if you could make these plugin layers open-source in another repository. Any chance of this happening?
One more question on the YOLO plugin, this time on the implementation.
The inference happens on the GPU, and the resulting bounding boxes are copied over to the CPU, where the rest of the processing happens (non max suppression, probability filtering, IoU).
Wouldn’t it have been better to do these post processing steps also on the GPU?
Yes, the postprocessing can be further optimized by doing NMS on the GPU.
You can either try cuda 9.0 and TensorRT 4 or cuda 10.0 and TensorRT 5. You dont have to make any changes to the Makefile but will have to update Makefile.config with install paths for OpenCV and TensorRT. I would suggest you go ahead with TensoRT 5 and cuda 10. Please refer to the following bug for a minor change in code you would need to make for TensorRT 5 - https://devtalk.nvidia.com/default/topic/1043214/general/trt-for-yolov3-fp16-and-int8-optimization-failed/post/
NvCJR: thanks for replying. Regarding the last point - running trt-yolo-app without DeepStream, I haven’t been successful with this effort, perhaps it needs some changes. Have you or someone at NVIDIA actually tried this out on a setup without DeepStream installed?
I got error messages that DeepStream is required.
@prashanth.bhat Please create a new topic with more details regarding your setup and error messages so that we can help you out. The standalone implementation has been tested on both Tesla and Tegra devices and it is expected to work without any issues.
why deepstream-yolo app can only be used on TESLA, but not TEGRA?
and when can you prepare the new deepstream version for TX2 to support deepstream yolo?
I’m using jetpack3.3 and deepstream 1.5 on TX2 and I have run trt-yolo-app successfully. Now I want to use the deepstream-yolo application. I did as the readme says and my deepstream sample application is working fine. But when I’m executing make && sudo make install in source/apps/deepstream_yolo directory it seems I missed the file named gstnvivameta_api.h. I searched my computer it turns out that I dnt have that file. Did I missed some dependency installations? By the way I’m using the code from DS32 release not the code from the original github page given.