I have been following and modifying the example for LIDAR Complex-YOLOv4 Object Detection, and I am running into an issue when creating training data using the createTrainingData.m file. The Standard pcRange block [xMin = -25.0 xMax = 25.0 yMin = 0.0 yMax = 50.0 zMin = -7.0 and zMax = 15.0] is too small for my data set, and the origin position cuts off most of the point cloud regions I want to capture (see image ROI_within_PointCloud). I would like to adjust the pcRange to allow for an ROI as seen in the attached image DesiredROI_2D_PointCloud.
When I drop the xMin and/or yMin values below the standard, i.e. xMin < -25 and/or yMin < 0, to capture the desired region I receive the following error:
-----------------------------------------------------------------------------------------------------------
Error using sub2ind (line 71)
Out of range subscript.
Error in helper.preprocess (line 53)
mapIndices = sub2ind([bevHeight,bevWidth],locMod(:,1),locMod(:,2));
Error in createTrainingData (line 42)
[processedData,~] = helper.preprocess(ptCloud,gridParams);
----------------------------------------------------------------------------------------------------------
As far as I can tell after diving into the sub2ind function, this error is occuring due to v, the newly sorted array of points, failing this portion of the if statement: min(v,[],'all') < 1. I can adjust xMax and yMax to be larger in the positive direction and have no issues.
How do I get past this issue and move/modify the region of interest within the point cloud scene? Can I adjust the origin location of the point cloud some how? Or can I remove the restriction on expanding the ROI into the negative quadrants?