This packages uses VisiLibity1 through visilibity (LGPL) to comptue the visibility of MovingObjects of omega-prime-Recordings. For every object it computes the visibilty as a float (1.0
for fully visible and 0.0
for not visible) (assuming 2D-brids-eye-view geometries) from the point of view of one object (assumed as a point in the center of the object). In addition the objects occluding the view (occluders) are computed.
This package also provides the computation of visibility as an omega-prime Metric: from omega_prime_visibility import visibility
.
The example file highway_merge.mcap is taken from omega-prime and derived from esmini and is under MPL-2.0 license.
This python package is distributed under MIT license but the linked libraries visilibity and VisiLibity1 are under the GNU Lesser General Public License (LGPL).
You need to have installed swig
, boost
and cython
to be able to install visilibity
On windows you need to additonally install Buildtools:
- Download Buildtools für Visual Studio 2022
- Select
C++ Tools for Linux Development
and install
pip install omega-prime-visibility
See ./tutorial.ipynb for detailed instructions.
from omega_prime_visibility import get_visibility_df
import omega_prime
import shapely
r = omega_prime.Recording.from_file('highway_merge.mcap', compute_polygons=True)
obstruction_poly = shapely.Polygon([
[-220,10],
[-120,10],
[-120,-0],
[-220,-0],
])
df = get_visibility_df(r._df, ego_idx=0, static_occluder_polys=[obstruction_poly])
returns
frame | idx | occluder_idxs | static_occluder_idxs | visibility |
---|---|---|---|---|
0 | 1 | [] | [0] | 0.42 |
0 | 2 | [] | [0] | 0 |
0 | 3 | [] | [0] | 0 |
0 | 4 | [] | [0] | 0 |
0 | 5 | [3] | [0] | 0 |
1 | 1 | [] | [0] | 0.53 |
1 | 2 | [] | [0] | 0 |
1 | 3 | [] | [0] | 0 |
1 | 4 | [] | [0] | 0 |
1 | 5 | [3] | [0] | 0 |
2 | 1 | [] | [0] | 0.63 |
2 | 2 | [] | [0] | 0 |
2 | 3 | [] | [0] | 0 |
2 | 4 | [] | [0] | 0 |
2 | 5 | [3] | [0] | 0 |
3 | 1 | [] | [0] | 0.74 |
... | ... | ... | ... | ... |
432 | 3 | [] | [] | 1 |
432 | 4 | [1 2 5] | [] | 0 |
432 | 5 | [1 2] | [] | 0 |