marek-simonik / record3d

Accompanying library for the Record3D iOS app (https://record3d.app/). Allows you to receive RGBD stream from iOS devices with TrueDepth camera(s).
https://record3d.app/
GNU Lesser General Public License v2.1
382 stars 55 forks source link

usbmuxd_get_device_list: error opening socket! #21

Closed lamhoson closed 3 years ago

lamhoson commented 3 years ago

Any ideas for the error and how to fix it? Would the system work with a USB hub or must plug into the computer directly ?

image

marek-simonik commented 3 years ago

I've never seen similar error before, but since it is related to the low-level iDevice–PC communication and not the record3d library per se, I can only guess and recommend checking the following:

I would indeed first try connecting your iPhone/iPad to your computer directly, just to see if this is causing the issue, but my bet is on one of the reasons mentioned above.

I'm curious if some of the above mentioned advice will help, please keep me updated. Thank you.

lamhoson commented 3 years ago

Noted with thanks. I didn't install iTune but just plugin to the notebook computer.

lamhoson commented 3 years ago

However i can see my photos in the iPhone.

marek-simonik commented 3 years ago

The missing iTunes seems to be the cause of the problem :)! Even though you can see the photos in Windows Explorer, it is still necessary to install iTunes to install necessary libraries for low-level communication with your iPhone.

Please install iTunes, restart your computer and try the Python demo again (it should work then).

lamhoson commented 3 years ago

Noted with thanks and it work.

However which computer folder stored the files captured?

marek-simonik commented 3 years ago

I'm glad to hear installing iTunes fixed the problem. I am therefore closing this issue, but we can still continue in our discussion.

However which computer folder stored the files captured?

The RGBD images received during the USB live streaming are not stored on the disk — each newly received frame is stored in RAM, it is displayed and then discarded. If you want to save the received images, you will have to do it yourself (e.g. using OpenCV).

lamhoson commented 3 years ago

Noted with thanks and i will study the code in detail on how to save the files.

In regarding to the intrinsic matrix, any example of using it to creat point clouds? I will use open3D as the tool.

marek-simonik commented 3 years ago

In this C++ library, you can see how I generate point cloud out of the RGBD data.

lamhoson commented 3 years ago

Thank you very much. I am using Python for this project. Any Python function API interface I could call to this C++ function?

marek-simonik commented 3 years ago

No problem. I think that instead of using the C++ library, it might be better if you implemented something similar using numpy. Or you can take a look at this project, which likely does what you need.

lamhoson commented 3 years ago

Thanks!

取得 iOS 版 Outlookhttps://aka.ms/o0ukef


寄件者: Marek Šimoník @.> 寄件日期: Monday, August 9, 2021 10:32:06 PM 收件者: marek-simonik/record3d @.> 副本: Big Horse @.>; Author @.> 主旨: Re: [marek-simonik/record3d] usbmuxd_get_device_list: error opening socket! (#21)

No problem. I think that instead of using the C++ library, it might be better if you implemented something similar using numpy. Or you can take a look at this projecthttps://github.com/kentaroy47/ipad-lidar-stream, which likely does what you need.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/marek-simonik/record3d/issues/21#issuecomment-895274563, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AIFL7YT6HQ7X4QJDCMGUC2LT37RGNANCNFSM5BZWWGPA.

lamhoson commented 3 years ago

Any documentation about the captured depth map data format, say 8-bit, floating point or else etc?

I just see pure dark image from the depth map jpg file capture.

marek-simonik commented 3 years ago

The depth frames received via USB streaming are 32bit floats. They are in the range of approx. 0-3 meters, which explains why you see black image when you save it into a JPEG file (the pixel values will be mostly 0-3 out of 255 for an 8bit JPEG). You will need to normalize the depth image if you want to see a grayscale visualization.

lamhoson commented 3 years ago

Noted with thanks. Then how about the RGB image, same 32bits float?

取得 iOS 版 Outlookhttps://aka.ms/o0ukef


寄件者: Marek Šimoník @.> 寄件日期: Tuesday, August 10, 2021 6:21:51 PM 收件者: marek-simonik/record3d @.> 副本: Big Horse @.>; Author @.> 主旨: Re: [marek-simonik/record3d] usbmuxd_get_device_list: error opening socket! (#21)

The depth frames received via USB streaming are 32bit floats. They are in the range of approx. 0-3 meters, which explains why you see black image when you save it into a JPEG file (the pixel values will be mostly 0-3 out of 255 for an 8bit JPEG). You will need to normalize the depth image if you want to see a grayscale visualization.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/marek-simonik/record3d/issues/21#issuecomment-895911379, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AIFL7YUAQES6S2FYNC4YJETT4D4T7ANCNFSM5BZWWGPA.

marek-simonik commented 3 years ago

The RGB image is ordinary 3-channel image (R, G, B). Each channel is 8bit uint8 (so together 3x8 = 24 bits).

Both the depth map and the RGB image are numpy arrays, so you can see their resolution and number of channels by printing image.shape. To see their datatype, print image.dtype.