Movement Strobe
The Movement Strobe module is similar to the Light Strobe module but instead of using light as a trigger to indicate a new sample is in view, the Movement Strobe assumes this after the image stops moving to present a stable view of the product sample. This is typical when using a live camera to monitor a production line that moves in quick steps. During the movement of the line the image will typically appear blurred and change quickly from image to image. The Movement Strobe module provides two image descriptors, texture and difference, that can be used to detect when such a movement has occurred to indicate that a new sample is in view and needs to be processed.The functionality of the Movement Strobe module is typically implemented using a hardware trigger that indicates that the production line has advanced a step and the current image view should be processed. As interfacing hardware triggers into a PC typically requires additional hardware and interface logic, providing a purely visual trigger can accomplish the same task without the additional complexity of hardware interfacing.
The module's main purpose is to set or clear a MOVEMENT_STROBE_TRIGGER variable that is typically used with an If Statement module to exclude parts of the pipeline from executing unless the variable is set which indicates that a good stable image is present and ready to be processed.
This module is NOT appropriate for continuous movement.
Interface
Instructions
1. Texture Graph - Shows the current texture amount present in the current image. This helps to indicate when the scene is in motion since quick motion will cause motion blurry which significantly reduces texture within an image. Because of motion blur this value will decrease when movement is present.
2. Difference Graph - Shows the amount of difference between the current image and its previous image. This number will increase when movement occurs (or if an image is vibrating strongly) and can be used to determine if the image in view is stable with respect to the previous image.
3. Activate Variable - There are times when you need to disable/enable the Movement Strobe module perhaps through some button press to disable its functionality during maintenance. By selecting a variable you can turn on/off this module by specifying the variable's value as "on" or "off" (without quotes).
4. Texture Threshold - The threshold value below which the image is determined to be moving. This can be empirically determined by watching the associated graph. The value should change significantly when movement is occurring versus when an image is stable. Chose a value that is between these two levels. Note, it is important to perform this calibration action within the actual setup as values will be different for different environments and conveyor speeds.
The threshold value can be seen as the dotted line in the graph. In this case, movement should be *below* the threshold.
Note, depending on your setup, this value may also not trigger if a product sample is missing from the conveyor. I.e. if the product in view is very detailed but when absent the background of the conveyor belt is very smooth this may create a false reading. If this is the case, you should set this value to zero which will cause the module to ignore the texture attribute.
5. Difference Threshold - The threshold value above which the image is determined to be moving. This can be empirically determined by watching the associated graph. The value should change significantly when movement is occurring versus when an image is stable. Chose a value that is between these two levels. Note, it is important to perform this calibration action within the actual setup as values will be different for different environments and conveyor speeds.
The threshold value can be seen as the dotted line in the graph. In this case, movement should be *above* the threshold.
6. Timeout - If detection fails a timeout can be specified to trigger the module regardless of image content. This is useful when a conveyor movement is being tied to the results of the camera system and an infinite pause in the process will create problems. This value assumes that after X milliseconds the image can be considered stable and should be analyzed regardless of what the texture or difference measures indicate.
The trigger variable is latched in that it will only pulse once when a new image is available. After processing a single image, the variable will be cleared until movement is detected and a stable image is again presented. Thus it is important to process when the variable is set as it will only be set once for a pipeline iteration to ensure that only one image is processed per conveyor movement.
Example
The following robofile will freeze the image that is anticipated to be processed. This example shows how to use the results of this module to save to memory (using the Marker module) the image to be processed. This example will appear to freeze a good image as you either move the camera around or simulate movement by waving your hand directly across the camera.
Click Here to download this example.
Variables
MOVEMENT_STROBE_TRIGGER - 1 when triggered, 0 otherwise
See Also
Light Strobe
Detecting Movement
New Post |
Movement_Strobe Related Forum Posts | Last post | Posts | Views |
Movement Strobe use
When I run a robo file (such as the example file) roborealm shuts down immediately. I'm on version 2.83.17... |
7 year | 2 | 1750 |