Open kay2019-art opened 2 weeks ago
Hi @kay2019-art What distance from the checkerboard is the camera placed at, please? The ideal 'sweet spot' distance of the box_dimensioner_multicam project is 1 meter. Placing the camera nearer to or further from the board than 1 m can cause problems, such as a bounding box that does not fit around the observed box on the checkerboard.
May I also confirm whether the object placed on your checkerboard is a box or an irregularly shaped object?
If the distance is one meter or more, there are both regular and irregular objects, but the results are measured as point clouds, and the data is empty. May I ask if using the checkerboard as the negative map is the two-dimensional coordinate point information of the regular image? Can the irregular objects be measured?
The box_dimensioner_multicam project is not designed to display pointcloud data. Instead, it generates a pointcloud for each attached camera placed around the checkerboard (it works with one camera despite the multicam name of the project) and then uses them to calculate a bounding box and overlay it over the object on the RGB image along with the volumetric measurements of the object.
The purpose of the checkerboard is to calibrate together the positions of multiple cameras relative to each other, which is why the object does not need to be placed on the board until this initial calibration has been completed. It is possible to adapt the project to remove the need for the checkerboard to be present if only one camera is being used.
It is rare to attempt to use this project for irregular objects instead of square boxes, as it would be difficult to accurately fit a single square bounding box around such an object.
There was a recent case where it was suggested that multiple different shaped bounding boxes could be used on irregular objects to better map around their contours.
In that case, I suggested that a possible approach for creating a bounding box for irregularly shaped objects would be to use OpenCV contour code to form a bounding box around the object from rectangles and circles.
https://docs.opencv.org/3.4/da/d0c/tutorial_bounding_rects_circles.html
@MartyG-RealSense I used a single camera, but it didn't show the length, width and height, and I couldn't get the point cloud data. If you use a single camera, can you detect irregular images without using the checkerboard as the base map?
https://github.com/IntelRealSense/librealsense/issues/9951 and https://github.com/IntelRealSense/librealsense/issues/10054 discuss a RealSense user's attempts to adapt the box_dimensioner_multicam code to work without the chessboard by storing and using the intrinsics of the single camera instead.
box_dimensioner_multicam is almost always used with regular-shaped objects such as boxes though, so there is not enough information available for me to offer a prediction on the likelihood of success with irregular objects, unfortunately.
Are you positioning the camera at the corner of the chessboard facing inwards towards the object, and not directly overhead?
I put the camera on the top of the checkerboard, when the checkerboard was detected, put the box on the checkerboard, there has been no reaction, you can not show the effect, the point cloud information is empty, what is the reason
I want to debug it to see if the code can be executed on the terminal with sudo, but the device cannot be found when executed in pycharm. How should I operate
Are you using the 6x9" chessboard image provided by the box_dimensioner_multicam project?
A RealSense user at https://github.com/IntelRealSense/librealsense/issues/11763 who was running the project in Pycharm had problems with the program that were resolved once the chessboard image at the link above was used, as they had been using their own chessboard image.
Hi @kay2019-art Do you have an update about this case that you can provide, please? Thanks!
###########################################################################################################################
License: Apache 2.0. See LICENSE file in root directory.
###########################################################################################################################
Simple Box Dimensioner with multiple cameras: Main demo file
###########################################################################################################################
Workflow description:
1. Place the calibration chessboard object into the field of view of all the realsense cameras.
Update the chessboard parameters in the script in case a different size is chosen.
2. Start the program.
3. Allow calibration to occur and place the desired object ON the calibration object when the program asks for it.
Make sure that the object to be measured is not bigger than the calibration object in length and width.
4. The length, width and height of the bounding box of the object is then displayed in millimeters.
###########################################################################################################################
Import RealSense, OpenCV and NumPy
import pyrealsense2 as rs import cv2 import numpy as np
Import helper functions and classes written to wrap the RealSense, OpenCV and Kabsch Calibration usage
from collections import defaultdict from realsense_device_manager import DeviceManager from calibration_kabsch import PoseEstimation from helper_functions import get_boundary_corners_2D from measurement_task import calculate_boundingbox_points, calculate_cumulative_pointcloud, visualise_measurements
def run_demo():
if name == "main": run_demo()
![Uploading 1111.png…]()
point_cloud = calculate_cumulative_pointcloud(frames_devices, calibration_info_devices, roi_2D),The point cloud information for this line of code is empty,How should I debug to find out the cause?