Comments (12)
For the time being, I recommend to use Lyli in conjunction with plenopticam.
from plenopticam.
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.
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.
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.
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.
@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.
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".
from plenopticam.
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.
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.
Thank you! That might be exactly what's needed. I currently have limited time, but will look into it asap.
from plenopticam.
I found that the Lytro 1 generation (The cuboid one) isn't conneting the Lytro desktop. Fail to get calibration data.
from plenopticam.
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:
- 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)
- sub-apertures data format HOT 1
- Upgrade SciPy from version 1.4.1 HOT 3
- About the use of the Lytro Illum camera HOT 3
- how to get the correct parameters in the disp2pts function HOT 6
- Use for LFM HOT 5
- White image file not found. Revise calibration path settings HOT 18
- Unable to solve dependencies on latest Ubuntu HOT 4
- Futur ?
- White image file not found. HOT 2
- white image file not present error HOT 4
- Problem running Plenopticam on Ubuntu HOT 2
- Depth of Field Control HOT 4
- Why didn't Lytro Desktop use the more accurate/primitive refocusing algorithm? HOT 1
- How to save the results in a different directory? HOT 1
- White image file not found. Revise calibration path settings. 0.9.3 HOT 11
- Original Lytro unlock
- bug whith slycing to get the bay_img in lfp_decoder HOT 1
- how to convert depth map to absolute distance HOT 1
- Getting problem at white image calibration at 0.9.3 version
- contents of dmg release "corrupted" HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from plenopticam.