VPI Samples - lock_cpu() - AttributeError: 'vpi.Image' object has no attribute 'lock_cpu'

Hi,

I have Jetson AGX Xavier. I want to use vpi python library with python3.6.9 version. I run the sample application codes at the link bellow.
https://docs.nvidia.com/vpi/

Every sample code return the same error:
‘vpi.Image’ object has no attribute ‘lock_cpu’

Sample code:

import cv2
import sys
import vpi
import numpy as np
from argparse import ArgumentParser
 
# ----------------------------
# Parse command line arguments
 
parser = ArgumentParser()
parser.add_argument('backend', choices=['cpu','cuda','pva'],
                    help='Backend to be used for processing')
 
parser.add_argument('input',
                    help='Input image on which harris corners will be detected')
 
args = parser.parse_args();
 
if args.backend == 'cpu':
    backend = vpi.Backend.CPU
elif args.backend == 'cuda':
    backend = vpi.Backend.CUDA
else:
    assert args.backend == 'pva'
    backend = vpi.Backend.PVA
 
# --------------------------------------------------------------
# Load input into a vpi.Image and convert it to grayscale, signed 16bpp
with vpi.Backend.CUDA:
    input = vpi.asimage(cv2.imread(args.input), vpi.Format.BGR8).convert(vpi.Format.S16)
 
with backend:
    corners, scores = input.harriscorners(sensitivity=0.01)
 
# ---------------------------------------
# Render the keypoints in the output image
 
out = input.convert(vpi.Format.BGR8, backend=vpi.Backend.CUDA)
 
if corners.size > 0:
    with out.lock_cpu() as out_data, scores.lock_cpu() as scores_data, corners.lock_cpu() as corners_data:
        cmap = cv2.applyColorMap(np.arange(0, 256, dtype=np.uint8), cv2.COLORMAP_HOT)
 
        maxscore = scores_data.max()
 
        for i in range(corners.size):
            color = tuple([int(x) for x in cmap[255*scores_data[i]//maxscore,0]])
            kpt = tuple(corners_data[i].astype(np.int16))
            cv2.circle(out_data, kpt, 3, color, -1)
 
# -------------------
# Save result to disk
cv2.imwrite('harris_corners_python'+str(sys.version_info[0])+'_'+args.backend+'.png', out.cpu())

Thank you in advance…

Hi,

Which VPI version do you use?

Please noted that there are some VPI changes between 1.x and 2.x.
Please check if you are refer to the correct document version first.

VPI 2.x: VPI - Vision Programming Interface: Main Page
VPI 1.x: VPI - Vision Programming Interface: Main Page

Thanks.