Designing a low-cost "bullet-time" camera rig
HTML-код
- Опубликовано: 11 сен 2024
- Discussion on design details for a bullet-time (as in "The Matrix") camera rig out of cheap phone camera modules.
EEVBLOG forum thread for discussion :www.eevblog.com...
Personally i find this an extremely interesting project. The way in which you explain your design considerations/choices amazes me each time i watch one of your videos!
I love the way you think, Mike.I've spent a good portion of my career as a one-off solution engineer and really enjoy these cerebral chats. Thanks for the video and of course the inspiration. Retired. Lucent Bell Labs, "Jack of all trades, master of none"
An interesting project would be an high-dynamic-range welding helmet (someone posted one of these on Hackaday a year ago.) A bunch of cameras capture at a range of exposures, a small computer aligns the images and selects video sources for parts of the image that are neither over or under exposed. The final processed image is displayed on a screen inside the helmet. Optics focus this at infinity.
I watched the whole thing, I watch every one of your videos, I am not into electronics engineering at all but I find your content incredibly interesting regardless.
I love watching your videos mostly because you have so many nice ideas about how to design and implement things. They should make some of your videos a part of electronics engineering curriculum, so we would see more good designs in the consumer products.
Usually bullet time sequences are used to "stop" an action sequence and rotate around it. For example a subject leaps into the air and is frozen in space while the camera array pans around. One problem I see with this idea is the slow shutter speed on these cheap cameras. Rather than getting a nice "frozen" image of a person mid leap, you'd probably wind up with a blurred mess
Mike, I really appreciate you taking the time to do this case study. Masters level stuff here. Awesome!
This is the most interesting thing I've watched in forever. Please consider doing more project design videos in the future.
This is way above my mental capacity...I would love to do this for my photogramettry project. Im thinking of using Raspberry Pis and Raspberry Pi Cameras. Why didnt I take electrical engineering in college?
As for bullet time, one problem is the physical alignment and uniformity of the cameras to make the frames look like they came from the same camera. It usually involves a lot of manual post processing to keep it from flickering and jerking. Also the camera chips need a minimum of image quality or it will have a distinct less than desirable webcam look.
I suppose you could overscan the picture to allow for a percentage of alignment variance. Then the software could be used to line the images up after capture. Similar to RUclips removing shaking from videos. Another option would be setting up a target for alignment or at least so the software could center itself. In industrial robotics there are frequently several alignment points in the build cell that all the robots can calibrate themselves to.
really enjoyed that mike more like this please, can we see your pic and place machine in operation thanks
SATA is a great high speed bus, there are some six figure oscilloscopes that use it to shuffle data around, but you’re really constrained by the very limited length of the cable and the protocol itself has no provisions for power as far as I know of, even tiny low power hard drives or SSDs have to be powered externally, but that limitation is offset by the fact that you can just give it a single 5v supply and away you go.
I think there would be more applications than bullet-time setups for cheap camera nodes on a bus.. multiple cameras on a quad copter driven by a single pi or beaglebone, multiple cameras for big model railway setups etc.
Love the concept - wish I knew more about fpga coding but it seems totally doable.
In order to deal with delay could the boards tell the master after the fact how many boards exist on the system, then the master could ping each board, and each board could have a "insert ping divide by x delay based on how far down the chain I am"
a long flat flex cable would be great for linking the cameras. although it would be expensive. it would be versatile and easy to store.
For the trigger, why not run a second switchable power line to increase power to things during flash, image transfer, etc. Maybe just the flash?
This would then act as the trigger point for all the cameras. You could set up your delays for effects prior to the signal.
Hey Mike, you have video blackout at 1:35
oh good i thought i was having a stroke
It is for thinking a bit about your life
Nice video mike, its already #4 on "bullet time" search
Excellent video! I love these type of ideas and you're obviously experienced in the problem domain. But why not make a bus architecture - why through the FPGA? Thanx!
The problem will not be the electronics - although depending on the number of lenses you want to incorporate, it may be somewhat of an issue - but it will always boil down to the lens mount & it's ability to have the correct X, Y, Z location & X, Y, Z orientation.
Having said that, I did see an Arduino project online about a month ago, where a school, or a student, was making a "bullet time" camera array.
The JPEG phone cameras I've looked at (admittedly 5 yearsish ago) had a 'proper' JPEG compressor inside - but they had no internal framebuffer. They require you to take several frames to get the codec 'stable' and then read out at high speed as the exposure happens.
Mount a bunch inside a globe facing out?
you are a great teacher, thank you for this.
Was this actually built?
I recently came across a holographic display called the „Looking Glass“ and thought that a cheap bullet time camera setup would be perfect for it, as you could take interesting hologram images with just one shot.
It would need 48 Cameras so i have no idea if thats even possible or easy enough to do.
Hi Mike. Great idea. Bit of a blank bit at the start!
what software did you use for that block diagram style isslustration in the middle of the video? Looks pretty nice
mike, why not a cheap sync trick: broadcast a 'brightness detect' message then physically fire a camera flash at the target- regardless of bus position, each node will be watching simultaneously and set their local timestamp as time zero
I had an idea, admittedly not as developed; for a similar array of cameras and accelerometer mounted into a large hula hoop for fast motion stabilize 3D image capture. Though most of my speculation was about the software implementation to map and process the capture. Alas, interesting in conception, but not something I really need.
Did this happen?
I think this would be great for low cost full body 3D scanning rigs.
btw, where can i find these cheap camera modules?
slap_my_hand bit late but alibaba/aliexpress is probably a good way to go.
Interesting I was thinking about the same thing yesterday. Are you going to use this project for shots of Destruct-O-Tron or Jacob's ladder? I would love to see a "bullet-time" shot of a large spark before and during plasma formation. I am not sure if anyone ever tried that.
Watched till 16:16 only
If memory serves me well, only one or two dozen cams were used in Matrix shots (2 or 3 frames per cam)
P.S.: I have to watch again Dave's EEVblog #595 - World’s Shittiest Camcorder: Teardown. Maybe it would be possible to hack them to sync the frames. Only $7.5 per cam. Everything else in software.
How about mounting every other camera upside down so the lenses can be packed as close together as possible?
Many of the cameras have voltage regulation in them as they expect 4.8 to 6 volts at the input due to battery differences. www.arducam.com/
Perhaps you could persuade a client that this would make a good project. I could see this as some sort of interactive art thing.
Hi Mike, have one question.
Since you know about cameras, i have project where i need to read light position ( like laser sopt with ~10um resolution ). I need simple interface CMOS camera, that would have larger than 4x4mm active area, can you give any model or something ? i want to use STM32F4XX with camera interface to get raw data and store to sram for processing.
For coherent light you will have interference rings if your camera sensor has protective glass over it. Most do, so you will want to remove the glass. Older sensors that use wire bonding (vs flip chips) have glass that can be removed. Newer sensors tend to be flip chips, and I'm not sure about whether the glass can be removed from them.
Could you use SATA connectors for interboard connects? PCB connectors and cables are both very cheap and connectors are designed for hot plug.
Watched the whole thing, absolutely agree, can't fault (or really improve on) all your suggestions. I think I'd use RJ45 but they are pretty physically chunky. If the camera were relatively close together (and with 100 cams they would be) might be cost-effective to try to run multiple modules off one controller board (e.g. 4) using a beefier FPGA rig.
Love it
I am trying to develop a camera project, but I am struggling with I2C protocol.
Can you make a tutorial on I2C? Thank you.
I've been developing one for my Frozen Electronics channel... maybe I'll actually do it some day
Hey! What do u called to that green chip that u used?
Bable-On Mike!
interesting idea.
what about some powerful atmeg will it work ?? one like samd 21 32-bit ARM Cortex-M0+ processor clocked at 96MHz ??
how about experimenting with cooled ccd,s to lower noise????
hi its good to made a 3d scanner booth
can you show more how to set up a booth scanner?
There are all kinds of cheap Car Cameras with full HD. Many are less then $20.
If your going to design hardware to control a bunch of cameras, why not NOT re-invent the camera interface.
All these Car Cameras have the Camera, an SD card interface and a USB interface and a battery.
USB software could be used to control 100 cameras without the hardware design.
+public nonsense at 27:00 he covers this - it's impossible to sync them properly; you'll have huge (many milliseconds) random difference between the frames shot by each camera, which gives very poor results for bullet-time. People have made arrays from RPi's and they have this problem. Not having the camera frame start synced just right (and the exposure matched, and everything else) gives surprisingly bad results and it's not fixable with software tweaks etc, it's a fundamental design issue.
Does anyone of these cams work with the RasPi?
hundreds on a wall would be amazing
Blackfin 609 is made for this.
Make a good design and create a standard, publish it and say you will prosecute anyone that copies it, sell units in sample quantities for US$16 each and some Chinese supplier will rip off the design and sell them at half the price. :-)
I think i got lost in middle of your video. Too technical for me ..:)