Coder Social home page Coder Social logo

1st Gen Lytro Camera Support about plenopticam HOT 12 OPEN

hahnec avatar hahnec commented on August 15, 2024
1st Gen Lytro Camera Support

from plenopticam.

Comments (12)

hahnec avatar hahnec commented on August 15, 2024 1

For the time being, I recommend to use Lyli in conjunction with plenopticam.

from plenopticam.

hahnec avatar hahnec commented on August 15, 2024

There is only limited support for the first generation Lytro cameras. Before going to details, were you able to retrieve the calibration data files (e.g. data.C.3) from your device?

from plenopticam.

koenkooi avatar koenkooi commented on August 15, 2024

The first gen cameras don't have a real menu, is there another way to generate calibration data, like taking pictures of a known object?

from plenopticam.

hahnec avatar hahnec commented on August 15, 2024

From a theoretical standpoint, it is an interesting thought to use a known geometric scene to calibrate a plenoptic camera. AFAIK, this would require information about the relative position of the camera with respect to the environment.

From experience, the probably most straightforward calibration approach is to use a so-called white image. In case of Lytro's cameras, white images are stored on the camera's internal memory (e.g. as data.C.3) for a variety of optical settings. Since it appears to be quite cumbersome to retrieve these images from Lytro's 1st generation cameras, one may generate such a white image him- or herself. We can hold the camera into sufficiently bright white light source, take a photo and then pass that file to PlenoptiCam as a calibration image. So, yes: There might be a feasible workaround. Thanks @koenkooi !

Note that each change in optical parameters (e.g. focal length and focal position) would require a corresponding white image and a re-calibration.

from plenopticam.

lonetech avatar lonetech commented on August 15, 2024

I'm pretty sure I have some ancient test code lying around that could read calibration data from the original Lytro. I'll spend a little time trying to revive it.

from plenopticam.

hahnec avatar hahnec commented on August 15, 2024

@lonetech thatβ€˜s great news! let me know if i can assist you with the integration, once you get things running on your side.

from plenopticam.

lonetech avatar lonetech commented on August 15, 2024

Well, just because I can read it out doesn't mean I understand it! Part of it is JSON, and a bunch of chunks are clearly for varied parameters, but they're not the raw images one might have expected. The entire calibration data is only 84K, while containing something like 30 reference sets. With some luck perhaps it's arrays with information like centers and sizes of the lenslets.

This doesn't really mean this is the only calibration data. We might well be able to find white images too.

As for the code revival, I have basic communication over Linux SG, libusb and Wifi TCP working now, and my Lytro is functioning (though I'll want to find the set date function).

The thumbnails are 4:2:2 YCbCr, not 16-bit grayscale as guessed at https://ljirkovsky.wordpress.com/2015/03/16/lytro-protocol/

I do believe the lyli project has some code that uses parts of this calibration data.

By the way, it appears this original model calls itself "F01", if we want another identifier than "that original cuboid one".

lytro.zip

from plenopticam.

hahnec avatar hahnec commented on August 15, 2024

Sounds all reasonable to me. I got familiar with Lytro's JSON schema once I wrote decoders for the binary image files for both generations of Lytro cameras (see lfp_decoder.py). I just didn't find a quick way for data transfer of the F01 so far. So, by integration I was rather referring to the calibration image retrieval and some required early data preparation. The calibration itself can be covered by PlenoptiCam's generic micro image processing.

Can you share some insights on your sg commands, libusb and Wifi TCP usage? If your procedure is lengthy or involves different tools and languages, it might be worth to open a separate repo at this stage?

This thread proves that there will be developers like me appreciating a way to use the raw data of the first generation camera. Until then, I use mine as a paper weight.

from plenopticam.

lonetech avatar lonetech commented on August 15, 2024

The F01 doesn't know about LFPs or calibration images, AFAICT. It does provide access to raws, thumbnails, and a calibration set. The protocol is a few custom SCSI commands, wrapped in either USB bulk mass storage or TCP. I put up a repo at https://github.com/lonetech/pyly but it may well be less useful than lyli, though it has fewer strict dependencies.

It's just proof of concept test code at the moment. Needs a little bit of restructuring to become a usable package, and some more features like directory parsing.

lyli: https://github.com/martin-pr/lyli

More protocol information, including stuff I haven't implemented: http://optics.miloush.net/lytro/Default.aspx

from plenopticam.

hahnec avatar hahnec commented on August 15, 2024

Thank you! That might be exactly what's needed. I currently have limited time, but will look into it asap.

from plenopticam.

asking1125 avatar asking1125 commented on August 15, 2024

I found that the Lytro 1 generation (The cuboid one) isn't conneting the Lytro desktop. Fail to get calibration data.

from plenopticam.

asking1125 avatar asking1125 commented on August 15, 2024

Hi,
I found that the Lytro 1 generation (The cuboid one) isn't conneting the Lytro desktop. Fail to get calibration data.
So my question is following:

  1. How to obtain the calibration data of Lytro 1 generation.
    2)How to perform Pairing Process in Lytro desktop software.
    Looking forward to your reply.

from plenopticam.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.