Post

Replies

Boosts

Views

Activity

Reply to Acquisition of specific point[pixel] LiDAR depth information
Hi TSHKS, I summarize the picking a 3D point in 2D screen as below. How to Pick a 3D Point in 2D Screen (https://github.com/CurvSurf/ARKitDepthFindSurfaceWeb): You aim your device at object surface. Your touch point is in the screen center. The probe radius [pixel] on screen is converted to physical radius at unit distance from ray_pos. unitRadius represents the half vertex angle of the “view cone”. Squared slope length: UR_SQ_PLUS_ONE = unitRadius * unitRadius + 1.0 . len1 = distance of list[idx] from ray_pos in the direction of ray_dir . Squared slope length at distance len1 is UR_SQ_PLUS_ONE * (len1 * len1). If the squared distance of list[idx] from ray_pos is smaller than the squared slope length at len1, the point list[idx] is viewed inside the “view cone”. Orthographic version “view cylinder (pipe)” is used by https://developers.curvsurf.com/WebDemo/ Hope this helps....
Dec ’23
Reply to Acquisition of specific point[pixel] LiDAR depth information
Hello, I hope I help you. The overall process will be: LiDAR data collection -> Touch a screen point -> Find the point closest to the touchscreen point from the LiDAR data. The unit of measurement for LiDAR depth data is meters, i.e. [m]. The relatively reliable distance range for which data accuracy is guaranteed is between about 0.3 and 4 meters. function _pickPoint() from GitHub/CurvSurf
Nov ’23
Reply to Retrieve Normal Vector of Tap location? RayCast from device(head)?
3D point cloud processing is a really difficult problem. It truly requires a lot of specialized knowledge; Linear algebra, algebra, geometry, differential geometry, probability and statistics, optimization, 3D measurement practice, software practice, ... This is a problem that cannot be solved with expertise in just one field. I have expressed my views as I thought about them since the fall of 2018. https://laserscanningforum.com/forum/viewtopic.php?t=13716 It will be helpful if you read it carefully until the end.
Nov ’23
Reply to Retrieve Normal Vector of Tap location? RayCast from device(head)?
The ray casting implemented in a CurvSurf FindSurface demo app is as follows. The basic information needed for ray casting is: Ray origin Ray direction Ray casting target domain. In the CurvSurf FindSurface demo app: Ray origin: Current position of device Ray direction: Center of device screen (has eventually 6-DOF) Ray casting target domain: 3D measurement point (point cloud, or vertex points of mesh). pickPoint() sets up a viewing cone with the ray direction as its axis, and selects the point closest to the device among the points inside the viewing cone. If there are no point inside the viewing cone, the point closest to the viewing cone is selected. https://github.com/CurvSurf/FindSurface-GUIDemo-iOS/blob/main/ARKitFindSurfaceDemo/ViewController.swift https://github.com/CurvSurf/FindSurface-GUIDemo-iOS/blob/main/ARKitFindSurfaceDemo/Helper.swift
Nov ’23
Reply to Retrieve Normal Vector of Tap location? RayCast from device(head)?
The normal vector of the mesh is fundamentally sensitive to measurement errors. Therefore, if the measurement error is large, the spatial range for calculating the average normal vector at the tap location must be increased. Additionally, real-life objects have sizes. The size can be approximately expressed as the radius of surface curvature. For example, the radius of a cylinder. Therefore, the spatial extent for calculating the normal vector at the tap location must be increased proportional to the radius of curvature of the object surface. The radius of curvature of a plane is very large. Currently, it appears to take a normal vector of one vertex at the tap location. This is quite unstable information. In summary, The normal vector calculation range near the tap location must be expanded in proportion to the measurement error. The normal vector calculation range must be expanded in proportion to the radius of curvature of the target object surface at the tap location. In summary, one solution may be to take the average value of the normal vector of several vertices near the tap location. App developers must implement it themselves. More preferably, Apple, which has information about measurement errors, should provide a solution.
Nov ’23
Reply to Placing Item on plane, position is great, but trouble with rotation
An item (model, or virtual object) has shape, size, position, and orientation. There is the world reference coordinate system. And, your device has moving device coordinate system. A real moving/stationary object has own model (shape, size, position, and orientation) coordinate system. And finally, You like to attach your item onto/around a real object surface inside your device screen. It's a real time AR example. Really difficult unsolved problem yet. It's a hard problem. But, there is already a solution. First, you created/designed an item (model, or virtual object) with shape, size on the model coordinate system. Then, the world reference coordinate system was set as you ran your App. The device's coordinate system referenced to the world reference coordinate system is determined in real time by motion tracking of ARKit. What information is lacked at this moment? What unknown is the shape, size, position, and orientation of the real object surface of your interest (e.g., your real object plane). Our FindSurface runtime library solves your last problem: FindSurface Web Demo https://developers.curvsurf.com/WebDemo/ Virtual ads inside Chungmuro station Line 3 - iPhone Pro 12 https://youtu.be/BmKNmZCiMkw
Oct ’23
Reply to Is apple planning to give Vision Pro camera access to developers in future?
Apple's current privacy policy doesn't allow this. This is especially true given the failure of Google Glass in 2013. Imagine the person in front of you wearing Vision Pro, recognizing your face, tracking your body movements, and having fun creating virtual, comical transformations of your face and body. Also imagine that it tracks your ID and analyzes your body movement-related health status in real time. Your private living room can be scanned and misused somewhere at some point.
Oct ’23
Reply to Is ARKit's detecting 3D object reliable enough to use?
The FindSurface SDK software library has a binary file size of about 300 KB for Windows 64-bit DLL or 1 MB (due to the module name texts) for iOS/iPadOS/macOS/Linux/Android framework. It is a really tiny little runtime library that contains many algorithms for region growing, segmentation, model fitting (orthogonal distance fitting), optimization, geometry, curvature analysis, statistics and probability theory without any commercial libraries or ML/DL algorithms. It is a simple container with optimized abstract mathematical formulas and strategies.
Oct ’23
Reply to Truedepth Camera on iPhone13 products - lower accuracy of depth data?
What is clear is that if you can solve a problem with software, you can always save on hardware costs. Even if the data quality is low, if the desired results can be achieved through software, inexpensive hardware should be applied. That is why the role of mathematics stands out. Here is an example of processing 3D face point cloud data (2019) by CurvSurf FindSurface. Nose extraction - iPhone X, SR300 https://youtu.be/eCmVYl3GIEY
Oct ’23
Reply to PlaneDetection, ImageTracking and Scene Reconstruction support on VisionOS Simulator NOT WORKING
The ARPlaneAnchor and ARMeshAnchor (plus Scene understanding) spatial information will be the only secondary information provided even after the physical primary sensor information is processed internally by visionOS. Currently, no primary sensor information is provided in the visionOS 'simulator'. Although the primary physical sensors, the RGB camera and the LiDAR 3D camera, are installed in the commercially available Vision Pro, only ARPlaneAnchor and ARMeshAnchor appear to be made available to developers via visionOS ARKit to protect personal data. It seems that information such as RGB stream, LiDAR depth map, facial recognition and human body contours are not provided. There is absolutely no reason why Apple would allow the development of apps that allow users to attach Vision Pro to their heads and secretly alter other people's faces and bodies.
Sep ’23