Transitioning to Ladybug6 from Ladybug5+
Applicable Products
Ladybug®6
Application Note Description
The purpose of this application note is to:
- Answer some frequently-asked questions about transitioning to Ladybug6 from Ladybug5+.
- Outline the primary similarities and differences between the two cameras.
- Offer suggestions and pointers to users for migrating their custom applications to Ladybug6 from Ladybug5+.
Questions about Upgrading to Ladybug6 from Ladybug5+
Is Ladybug5+ being discontinued?
No.
What hardware is required to use Ladybug6?
- Interface Card—The Ladybug6 requires a USB 3.1 Gen 1 PCIe host controller compliant with the SuperSpeed USB Specification and the xHCI Specification.
- Cable—The Ladybug6 requires a USB 3.1 Gen 1 Type-A to M12 X-coded connector cable with locking screws.
- Power supply—Power must be provided through the 12-pin GPIO interface. The required input voltage is 12-24 V.
- GPIO—In addition to power, the 12-pin GPIO connector is used for external trigger input, strobe output, power, and PPS.
There is a development kit (DEVKIT-01-0008) offered to support the Ladybug6 which includes:
- Interface Card—USB 3.1 Gen 1 Host Controller Card (Dual port) (ACC-01-1201)
- Cable—1 m USB 3.1 Gen 1, Type A-male locking to M12-male (ACC-01-2308)
- Cable—3 m USB 3.1 Gen 1, Type A-male locking to M12-male (ACC-01-2309)
- Cable—5 m USB 3.1 Gen 1, Type A-male locking to M12-male (ACC-01-2310)
- Power Supply (ACC-01-9001)
- GPIO—Hirose to DC barrel connector + pigtails (6 m) (ACC-01-3012)
- Mount—Desktop tripod mount combination (ACC-02-0001)
- Hub—USB 3.1 Gen 1 Hub VIA VL812 1-port screw locks (ACC-01-6001)
All items in the development kit can be purchased separately by individual part numbers.
Can I run Ladybug6 with my existing application?
The Ladybug SDK version 1.18 (or newer) is required to run Ladybug6.
API changes are minimal but you will have to rebuild your application with the latest library.
Image Processing Pipeline
Image Processing
For both Ladybug5+ and Ladybug6, when using the JPEG8 pixel format, some image processing is done on the camera during capture before being output to the PC. Additional post processing is then performed on the PC.
For Ladybug6 there is a new format - JPEG12Processed - which operates like JPEG8 with higher bit depth.
When using the JPEG12 (unprocessed) pixel format, most of the image processing is done on the PC. This processing is done as part of ladybugConvertImage(). This allows users to fine tune the output settings independently from image capture.
User access to adjusting the parameters for image processing is available in LadybugCapPro or via CSRs.
Pixel Format | On Camera Processing | Post Processing on PC |
---|---|---|
JPEG8 JPEG12Processed* |
Gain Black level Pixel correction White balance Gamma |
Stitching Fall off correction Sharpening Tone mapping |
JPEG12 (unprocessed) |
Pixel correction | Stitching Falloff correction Sharpening Tone mapping Bayer decoding Gain Black level White balance Gamma EV compensation |
Frame Rates
Panoramic Image (Full Height Acquisition Mode) | Ladybug6 | Ladybug5+ |
Resolution (MP) | 72 | 30 |
Dimensions (WxH) | 12,288 x 6,144 | 8,192 x 4,096 |
Frame Rate (FPS) | 15 | 30 |
Frame Rate in Standard External Trigger Mode 0 (FPS) | 13.9 | 25.6 |
Frame Rate in Overlapped Exposure Readout Trigger Mode 14 (FPS) | 14.9 | 30 |
Panoramic Image (Half Height Acquisition Mode) | Ladybug6 | Ladybug5+ |
Resolution (MP) | 36 | 15 |
Dimensions (WxH) | 6,144 x 6,144 | 4,096 x 4,096 |
Frame Rate (FPS) | 29.9 | 60 |
Frame Rate in Standard External Trigger Mode 0 (FPS) | 25 | 45 |
Frame Rate in Overlapped Exposure Readout Trigger Mode 14 (FPS) | 28.7 | 60 |
Shutter Range
Both Ladybug6 and Ladybug5+ offer four preset shutter range modes to set the maximum shutter value:
- Drive Highway—maximum shutter is set to as short as possible to prevent motion blur. Best used outdoors at high speeds or images may be too dark. This is the default.
- Drive City—maximum shutter is slightly longer than highway mode, suitable for slower speeds (~45 km/hour or 25 mph).
- Indoor—maximum shutter is slightly longer than the drive modes, for use in indoor applications.
- Low Noise—maximum shutter is not restricted.
Auto Exposure Modes
Both Ladybug6 and Ladybug5+ offer three preset modes for the auto exposure algorithm:
- Bottom 50%—uses only the bottom 50% of the five side cameras and excludes the top camera from its calculations.
- Top 50%—uses only top 50% of the five side cameras and includes the top camera in its calculations. This is the upside down version of the first mode, used when the camera is mounted upside down (for example, on a helicopter).
- Full Image—uses the entire image of all six cameras for its calculations. This is the default.
For 8-bit and JPEG12Processed pixel formats, the auto exposure modes are set for image capture. For JPEG12 (unprocessed), the auto exposure modes are set both for image capture and post processing on the PC.
Software Workflow
Image Acquisition
The Ladybug6 can be started and controlled in the same way as Ladybug5+.
However, there are some changes to your source code that should be made.
- Auto buffer usage should be enabled in JPEG data formats, instead of using a fixed JPEG quality value. This allows the camera to adjust the JPEG compression quality in order to fit the image into the available buffer size. The camera clamps the maximum quality value used to 80%. You can control the feature using ladybugSetAutoJPEGQualityControlFlag(), and control the buffer usage using ladybugSetAutoJPEGBufferUsage(). A buffer usage value between 90% to 95% is suggested.
- The default SDK settings when starting the camera are designed to allocate the appropriate frame buffer sizes in order to support 15 FPS or 30 FPS acquisition via an Intel host controller. If the desired frame rate or bandwidth is lower, the default SDK settings may be inadequate. Please see Using Packet and Buffer Size to Adjust Frame Rate on Ladybug for further information on how to optimally tune your settings.
Stream Recording
The Ladybug6 has the same maximum bandwidth and the amount of data written to disk per second is the same as Ladybug5+. It is possible to greatly reduce the amount of data sent in JPEG modes by reducing the compression quality.
Image Processing and Stitching
The workflow for data formats with on-camera image processing remains the same. See the LadybugPanoStitch example for an example.
For data formats that do not perform image processing on-camera, see ladybugImageAdjustment.h in the \include directory for image processing parameters as well as usage instructions. In addition, the LadybugCapPro application provides a graphical interface to these parameters.
In both cases, ladybugConvertImage() prepares the image for output purposes, including JPEG decompression, Bayer demosaicing as well as image post processing.
Image Output
The image output functionality remains the same as previous LadybugCapPro versions. If a full resolution panoramic image is desired, it is recommended that an output size of 12288 x 6144 (pixels) is used.
Ladybug SDK release 1.18 supports the following formats:
Image output formats: | Video output formats: |
|
|
HDR, FLV, and WMV are no longer supported.
Image Size
For Ladybug6, the size of a single sensor image after image conversion is 4096 x 2992.
For Ladybug5+, the size of a single sensor image after image conversion is 2464 x 2048.
If your software allocates its own memory for image conversion and texture updating, the amount of memory to be allocated should be 6 x W x H x (bytes per channel), where bytes per channel is 1 for 8‑bit modes and 2 for 12-bit modes.
For example, the memory size required to contain a JPEG8 image after conversion is:
Ladybug6: 6 x 4096 x 2992 x 1 = 73,531,392 bytes | Ladybug5+: 6 x 2464 x 2048 x 1 = 30,277,632 bytes |
Detailed Comparison between the Ladybug6 and Ladybug5+
Mechanical Properties
Description | Ladybug6 | Ladybug5+ |
---|---|---|
Digital Interface | M12 X-coded 8-pin USB 3.1 Gen 1 for camera control and video data | Micro-B USB 3.1 Gen 1 for camera control and video data, with locking screws for secure connection |
General Purpose I/O Ports | 12-pin GPIO connector for external trigger input, strobe output, power, and PPS | |
IR Filter | The infrared cut-off filter used has the same transmittance properties | |
Dimensions | 198 mm x 269 mm | 197 mm x 160 mm |
Optics | Six high quality 6.94 mm focal length lenses | Six high quality 4.4 mm focal length lenses |
Angular FOV (per rotatated sensor) | Vertical: ~117.4° / Horizontal: ~85.9° | Vertical: ~113.4° / Horizontal: ~94.8° |
Case | Machined aluminum housing, anodized red or black; single unit, IP65 water resistant | |
Mass | 5.2 kg | 3 kg |
Mounting | The case is equipped with five M4-0.7 x 8 mm mounting holes on the bottom that can be used to attach the camera directly to the desktop mount, tripod adapter, or a custom mount. |
|
Desiccant | Desiccant plug to minimize moisture in the enclosure and prevent lens fogging | |
Transfer Rates | 5 Gbit/s |
GPIO Properties
The GPIO pinout is the same between Ladybug6 and Ladybug5+.
Ladybug6 has enhanced noise immunity protection on the bi-directional GPIO IO2 and IO3.
Diagram | Color | Pin | Function | Description | |
---|---|---|---|---|---|
Green | 1 | OPTO_GND | Ground for opto-isolated IO pins | ||
Blue | 2 | I0 | Opto-isolated input (default Trigger in) | ||
Brown | 3 | O1 | Opto-isolated output | ||
Orange | 4 | IO2 | Input/Output / GPS data | ||
White | 5 | +3.3 V | Power external circuitry up to 150 mA | ||
Black | 6 | GND | Ground for bi-directional IO, VEXT, +3.3 V pins | ||
Red | 7 | VEXT | Allows the camera to be powered externally | ||
Red | 8 | VEXT | Allows the camera to be powered externally | ||
Red | 9 | VEXT | Allows the camera to be powered externally | ||
Green | 10 | OPTO_GND | Ground for opto-isolated IO pins | ||
Yellow | 11 | IO3 | Input/Output / PPS signal | ||
Black | 12 | GND | Ground for bi-directional IO, VEXT, +3.3 V pins |
Hardware/Electronics
Description | Ladybug6 | Ladybug5+ |
---|---|---|
Power Interface | via GPIO only, not via USB3 interface | |
Power Consumption | 12-24 V, 13 W | |
A/D Converter | 12-bit | |
Environmental Sensors | Temperature, Humidity | |
LED | One general purpose status LED for monitoring camera power, initialization, and USB3 activity | |
Operating Temperature | -30° to 50°C | -20° to 50°C |
Storage Temperature | -30° to 60°C | |
Relative humidity Operating | 20 to 80% (no condensation) | |
Relative humidity Storage | 20 to 95% (no condensation) | |
Field of view | ~90% of full sphere | |
Spherical Distance | Calibrated from 2 m to infinity | |
Focus Distance | ~200 cm. Objects have an acceptable sharpness from ~100 cm to infinity | ~200 cm. Objects have an acceptable sharpness from ~60 cm to infinity |
Firmware
Both Ladybug6 and Ladybug5+ adhere to the IIDC v1.32 specification and the firmware operates similarly in both cameras.
Description | Ladybug6 | Ladybug5+ |
---|---|---|
High Dynamic Range | Cycle 4 gain and exposure presets | |
External Trigger Modes | Trigger Modes 0, 3, 14, 15 | |
Gain | 0 dB to 18 dB | |
Gamma | 0.50 to 4.00 | |
Shutter Speed | 0.02 ms to 2 seconds (extended shutter mode) |
|
Shutter Type | Global Shutter | |
Memory Channels | 2 memory channels for custom camera settings | |
Flash Memory | 1 MB |
Software, Driver, and System Support
Description | Ladybug6 | Ladybug5+ |
---|---|---|
Ladybug SDK versions | 1.18 or newer | 1.15 or newer |
Recommended Operating Systems | Windows 10, 64‑bit / Ubuntu 20.04 64-bit for capture and recording ARM64 for capture only |
Windows 10, 64‑bit Ubuntu 16.04 64-bit, for capture and recording only |
Software Requirements for Ladybug SDK | Microsoft Visual Studio 2015, or newer g++ 9.3.0, or newer |
Microsoft Visual Studio 2010, or newer g++ 5.4.0, or newer |
CPU (recommended) | 11th Gen Intel® Core™ i7 Processor | |
RAM (recommended) | 8 GB for capture and recording / 16 GB for post processing |
Dimensions
Ladybug6 Dimensional Diagram
Ladybug5+ Dimensional Diagram