-
Notifications
You must be signed in to change notification settings - Fork 2
FireREST CV
Originally designed for pick-and-place use cases, FireREST CV is a computer vision (CV) REST service used in networked manufacturing. FireREST CV integrates smart camera nodes (SCN) into a factory network. Each smart camera node is a single board computer (SBC) with one or more dedicated cameras. A smart camera node handles multiple computer vision use cases (e.g., "recognize part", "calculate image offset"). Each use case is implemented as a computer vision endpoint (CVE) having REST commands for that use case.
Although most SBC's will have one camera, some SBC's such as Raspberry Pi Compute Module support two cameras.
The first segment of a FireREST-CV URL specifies a camera by its index. In most cases, the camera index will be 1:
- Example: http://firepick:8080/firerest/cv/1/...
Following the camera index is the name of the camera profile. The gray profile is standard. The bgr profile (i.e., Blue/Green/Red) is available for color cameras. Other profiles may be added in the future.
- Example: http://firepick:8080/firerest/cv/1/gray/...
Following the camera profile is the name of a camera resource.
| Resource | Camera Operation |
|---|---|
| camera.jpg | Return current camera image. |
| monitor.jpg | Return monitoring image for operator. |
| output.jpg | Return pipeline image from last pipeline invocationg triggered by save.fire. |
| cve | computer vision endpoints. |
Although not required, cameras will normally have one or more computer vision endpoints.
Each CVE handles a single use case. For example, to locate a part in the camera's field of view, we might use the following CVE resource:
The returned JSON object gives us the part's location and orientation:
{
...
"part":{
"rects":[
{
"x":62.514705657958984,
"y":127.30883026123047,
"width":43.560646057128906,
"height":27.268278121948242,
"angle":-59.036239624023438
}
],
"points":796
},
...
}
Each CVE provides one or more of the resources. Resource availability depends on CVE design and implementation.
| Resource | CVE Operation |
|---|---|
| process.fire | Process the current camera image and return the resulting JSON data model. (Required) |
| save.fire | Save current camera image for later use only by the given CVE. CVE's have individual image storage, which is useful for FireSight pipelines that compare current and prior camera images. (Required for some CVEs) |
| firesight.json | Return/update FireSight JSON pipeline that implements a vision recognition use case. (If supported) |
| properties.json | Return/update JSON CVE properties for FireSight pipeline. (If supported) |
| saved.png | Return saved camera image. (If supported) |
- FireREST-CV-PnP Pick-and-place CVEs
- FireREST-Implementation