GenICam is a standard of the European Machine Vision Association (EMVA).
The GenICam module provides access to GigE compliant cameras. The module will connect directly to the
camera over an ethernet connection. The module assumes that the genicam.org (7 MB download) 32x runtime
is installed which provides functionality to interpret the camera's configurations. The camera's native
drivers need not be installed as communication functions over ethernet.
As this module communicates directly with the camera additional DirectShow drivers are not needed as
with other cameras such as webcams. Using the RoboRealm Virtual Webcam driver you can expose a GigE
camera as a webcamera by utilizing this module and then activating the virtual webcam functionality
The GenICam standard includes the communication structure to GigE cameras but it does NOT enforce
naming of custom features (such as setting exposure levels) which can differ in each camera implementation.
The module attempts to make some assumptions about how to set exposure, black levels and gain but
this may not function for your specific camera. If this is the case, see the Advanced Tab which shows
all the possible settings for your camera and look for exposure related features. Typically you need
to enable the manual setting and then adjust a 'raw' value to accomplish the change.
The GenICam standard utilizes UDP packets as its ethernet communication mechanism. While this is more
efficient than TCP/IP (more common protocol) some routers and switches may not relay those
messages over a wider area network. If your camera is not discovered your network may not be
relaying UDP packets. You should connect the camera directly to a machine to verify that the network
is not an issue when attempting to connect.
1. Camera - Press the circular yellow arrow button to send a discovery request to all cameras
on your network. Any connected cameras will appear in the Camera dropdown list after a
couple seconds. Selecting one of these cameras and pressing the Start button will
initiate a connection to that camera and start capturing images. Please note that the module
assumes an exclusive use of the camera such that if any other applications are connected
to the camera this will cause an error.
2. Port - The standard GenICam port used to communicate to cameras. Unless your cameras have
been configured to work on different ports this should remain the default 3956.
3. Pixel Format - Once connected, the current Pixel Format is displayed as part of
a dropdown that lists all formats supported by your camera. You can change the
format by selecting a different dropdown from this list. Note that RoboRealm works
with 24 bit images, one byte for red, green and blue. Formats that are a higher
bit resolution (10, 12, 16) will be downsampled to 8 bits. If possible, use a maximum
of 8 bits per channel to avoid unecessary network overhead.
While the module supports many formats natively, there may be some that are unknown
to the module. When this happens you will be presented with an interface to send
us information about this format such that it can be incorporated into those
4. Packet Size - The packet size option specifies how large each piece of information
sent from the camera is. The larger the packet the less overhead is incurred but
the more information might be lost at any given time (based on the UDP protocol).
1500 is the largest recommended packet size as anything larger will cause many routers
and switches to ingore the packet.
5. Allow Jumbo Packets - Select Allow Jumbo Packets if you have allowed jumbo packets
on your network. Note, this does NOT enable Jumbo packets but just allows you to specify
packet sizes larger than the default 1500 which is not permitted unless Jumbo packets are
enabled from the OS point of view.
5. Frame Rate - This specifies in micro seconds the time per image frame. This can be
changed to decrease or increase the frames per second (fps) that the camera attempts
to send images at. This can help to reduce the network consumption from cameras if
only a few images per second are needed.
6. Image Faults - An indication of how many frames are being dropped by the module
due to incomplete frame information. Because each frame is being sent using UDP packets
are not guaranteed and can go missing. When this happens, a frame update may be missing
part of the image information and thus not be a valid complete image frame. This causes the
image to be skipped and not presented to the pipeline (unless Ignore Faults checkbox
in the Image tab is selected). If you get many image faults your network might be overloaded
since packets are going missing.
7. Pause Pipeline Till Connected - To ensure that on first run of the pipeline that the GenICam module
is sending an image, you can select the "Pause Pipeline" checkbox. This will prevent the pipeline
from continuining until an image has been received from the camera. Note, this will cause the program to
during this time period so it should only be used when your configuration requires that the first
iteration of the pipeline has an image to work with. We instead, recommend that you configure your
pipeline to allow for image capture failure by checking the GENICAM_IMAGE_COUNT for a non-zero value.
7. First Image Timeout - The first time the module attempts to connect to a GenICam module
can cause signficant delays as the network connection is established and configuration
information is downloaded and parsed. Because of this the first frame may take much longer
than normal to acquire. This timeout ensures that the first frame is given more time to be returned
than subsequant frames.
8. Image Timeout - The time between frame grabs. If an image takes too long to be sent to the
module from the GenICam camera, it will be assumed an error has happeneded and will attempt to
restart the connection. Normally, most cameras will send many images per second so this timeout
can be made very small if you know your network connection to your camera is very stable. If you
find that you are getting too many re-connections to the camera and small pauses in the image
stream, you may want to increase the timeout.
6. Scan Area - You can use the Width, Height, Left, and Top parameters to change
what portion of the sensor pixels you want to capture. This allows one to specify
a global AOI (Area of Interest) which helps to reduce processing requirements
and network consumption. Note that changing the Width and Height does NOT scale
the image content accordingly as in many other consumer cameras.
7. Binning - Should you not need the maximum resolution that the camera can
provide but still need the full field of view you can specify a binning amount.
This will combine pixels in the appropriate direction (horizontal or vertical)
in order to effectively reduce the image dimensions, i.e. scaling. Binning
will reduce the image width and height by the binning factor. The default of
1 causes no change, the value 2 will effectively reduce the image width or
height by a factor of 2, the value 3 by a factor of 4, etc.
8. Black Level, Exposure, Gain - To set specific camera settings, check
the checkboxes to switch the camera into manual mode for those settings and
change the values accordinly. It is not uncommon for the image to
immediately become all black or white when these settings are activated. If this
is the case, the manual settings may not be appropriate for the current
lighting settings and can be changed to improve the image quality.
9. Advanced Tree - All camera settings are displayed in the Advanced tab. You
can explore the tree by expanding the categories as appropriate to view the
underlying features. When you click on one of the features you will see the
description along with an interface that has the ability to change the
value if allowed. In this way you can set camera features directly. Note
that some features cannot be changed while the camera is operational. To change
these features you will beed to stop streaming before they will be accepted.
10. Higher Bit Images - RoboRealm operates on 24 bits RGB per pixel for performance reasons. When loading
in images with higher bit depths RoboRealm needs to know how to process the image into a
24 bit image. There are many ways this can be accomplished:
- High - Uses the upper 8 bits of the image
- Low - Uses the lower 8 bits of the image
- Sqrt - Square root's the image pixel to the 8 bit range
- Inv Sqrt - The Sqrt function will favor darker pixels, the Inv Sqrt favors lighter
- Center Mean - Forces the high bit range to be centered at the image mean
- Below Mean - Shows only pixel below the image mean compressed into 24 bits
- Above Mean - Shows only pixel above the image mean compressed into 24 bits
- Around Mean - Similar to Center Mean but thresholds values on either side to improve contrast
- Normalize - Determines image low and high values and scales to 24 bit
- Pseudo X - Translates image intensity into a higher color range for improved visibility
- Reinhard/Drago - DISABLED - High Dynamic Range reduction techniques as specified in the FreeImage.dll but are too slow
for live image processing.
- Logarithm - Takes the logarithm of the image pixel and then stretches to 8 bit range
- G->RGB - Spreads all bits of the single green channel into all RGB channels such that the true value
of that single channel can be processed.
- Range Min / Max - Scales the specified range into 0 to 255 with clamping below min and above max values.
11. Process Color Channels Together - Specifies that color channels will be considered a single
channel such that the relative color amounts will not change. Unselected, each color channel
will be processed independently which can improve or worsen an images overall appearance.
GENICAM_ALERT - a variable set with the current (seconds) timestamp when the
last communication failure was detected. This can be used to send alerts to
staff to investigate image acquisition failures.
GENICAM_IMAGE_COUNT - the number of images the module has presented to the
pipeline. This is reset to zero on connection failure.
- Genicam Download - The module implements a lot of the Genicam communiation protocol but does need additional packages
as part of the Genicam download. You can get the 32bit version here and the 64
bit version here. A message will
also alert you to these missing packages when attempting to add the module to the pipeline.
- 32 or 64 Bit - When using either the 32 bit or 64 bit version of RoboRealm, be SURE to download the right
Genicam package that is of the same bit size. 32 bit programs CANNOT use 64 bit drivers, and vice versa. The
additional DLLs need to match the same bit size otherwise it can appear that the module is NOT finding the
- Jumbo Packets - Some cameras assume that the PC is configured to accept Jumbo Packets. Its likely your PC is not
configured for this which is a reason the GenICam module will not be able to read any information form
the camera as the packet is being ignored by the Windows OS and never passed to the module. You can see how
to enable Jumbo packets on the PC by
following How to enable jumbo frames
- Windows Firewall - To increase speed and reduce network traffic the Genicam protocol uses UDP packages that are
sent from the camera to the PC. It is not uncommon that your Windows Firewall is preventing those UDP packets
from reaching RoboRealm. If you are able to receive the XML configuration from your camera after pressing the
Start button (you can verify that something is present in the XML tab) but receive no images, check that the
default port (54321) has a rule in your Windows Firewall to allow UDP packets to be received on that port.
- All else - If the above checks do not solve the issues, copy the XML from the XML tab (if any), copy
the Log tab (if any) and send us a message with the pasted contents of those two tabs that we can help review
what the issue might be.
For more information
|GenICam Related Forum Posts||Last post||Posts||Views|
Rectangular DataMatrix barcode
I just purchase a commercial license of roborealm to test the possibility of using it in our pr...
GigE Point Grey Blackfly in external trigger mode
I'm having trouble with GigE Ptgrey BFLY-PGE-50S5M camera.
GenICam XML Parse error
I'm using a 30 day trial of RR 2.76.3. I've installed the GenICam module but I'm having an error when it goes to grab frames fro...
Can not connect to Basler acA640-120
Can not connect to Basler acA640-120.
Module is used GenlCam.
Barcode decode anomaly
I'm seeing something when using the barcode decode module. What I have is an...
Is there a way to set either gain or exposure on the camera when using the GenICam modul...
Basler Camera II
Hi STeven, it has been awhile. This is a continuation from a post from last year (see post Basler Camera).  ...