Locking a deepstream application, and tensorrt weights for a specific hardware

Hi there,

I have used pyinstaller to create an executable file for my deepstream based object detector (on jetson nano), by modifying the “deepstream_test_2.py”. the executable file is created and every thing works perfectly.

now, I want to lock my executable file as well as the tensorrt weights on my jetson nano. so, that if some one steals it, they cannot copy paste everything in other jetson nano boards (that they might have) to produce thousands of illegal copies of my software.

in other words, I want my program to work on only this specific jetson nano I have bought, and also, the same for my tensorrt weights.

any Ideas on how to do this?

hello again,

I have found that I can use either cat /proc/device-tree/serial-number or sudo lshw | grep serial to get the serial number of my device. I will then add some new lines to my python code to check my device id. is this a safe approach? if some body steals my board and takes a copy of my sd card and runs it on another jetson nano, will the result of the two approaches (i.e. sudo lshw | grep serial or cat /proc/device-tree/serial-number ) be different on that board, from the my board?

also, it would be excellent if you could provide me with an approach to some how lock my tensorrt weights?

These are not 100% safe.

if you want to have a ~100% safe solution, the official solution we provide is to enable secuure boot and trusty to encrypt the model, hoiwever, this is a complex work. You can refer to doc - https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fsecurity.html%23

if you want a simpler solution, you can search many solutions on Network, and we open source many code for user to customize.

Thanks!