sciveo 0.1.83__tar.gz → 0.1.85__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sciveo-0.1.83 → sciveo-0.1.85}/PKG-INFO +1 -1
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/cli.py +8 -2
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/gst_server.py +47 -3
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/rpi.py +7 -4
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/evaluation/object_detection.py +11 -5
- sciveo-0.1.85/sciveo/version.py +2 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo.egg-info/PKG-INFO +1 -1
- sciveo-0.1.83/sciveo/version.py +0 -2
- {sciveo-0.1.83 → sciveo-0.1.85}/README.md +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/api/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/api/base.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/api/predictors.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/api/server.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/api/upload.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/common/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/common/configuration.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/common/model.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/common/optimizers.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/common/sampling.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/content/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/content/dataset.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/content/experiment.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/content/project.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/content/runner.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/db/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/db/read_table.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/cam.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/draw.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/games/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/games/asteroids/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/games/asteroids/asteroid.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/games/asteroids/base_move.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/games/asteroids/circle.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/games/asteroids/game.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/games/asteroids/geometrics.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/games/asteroids/gravity_ball.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/games/asteroids/laser.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/games/asteroids/rocket.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/games/asteroids/space_asteroids.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/games/asteroids/volume_bar.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/motion_detection.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/nvr.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/readers.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/capture/rtsp.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/ml/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/ml/base.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/ml/encoders/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/ml/encoders/base.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/ml/encoders/normalizer.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/ml/nlp/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/ml/nlp/search.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/ml/time_series/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/ml/time_series/dataset.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/ml/time_series/predictor.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/ml/time_series/trainer.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/ml/time_series/window_generator.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/base.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/job_daemon.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/layouts/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/layouts/base.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/pipeline.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/postprocessors/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/postprocessors/base.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/postprocessors/default.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/audio/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/audio/audio.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/audio/audio_extractor_process.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/aws.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/base.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/file/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/file/archive.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/image/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/image/album.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/image/album_in_image.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/image/depth_esimation.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/image/embeddings.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/image/filters.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/image/generators.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/image/histogram.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/image/mask.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/image/object_detection.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/image/resize.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/image/segmentation.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/image/watermark.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/media_info.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/nlp/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/nlp/address.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/qr.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/sci/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/sci/base.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/sci/dataset.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/sci/time_series/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/sci/time_series/predictor.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/sci/time_series/trainer.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/tpu_base.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/video/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/video/generators.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/video/motion_detection.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/video/resize.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/video/video_album.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/video/video_frames.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/video/video_resample.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/queues.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/server.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/web/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/web/server.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/tools/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/tools/video_interactive.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/base.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/dataset/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/dataset/object_detection.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/evaluation/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/evaluation/markdown.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/images/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/images/base.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/images/description.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/images/embeddings.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/images/object_detection.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/images/tools.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/images/transformers.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/nlp/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/nlp/embeddings.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/nlp/tokenizers/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/nlp/tokenizers/bpe.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/video/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/ml/video/description.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/monitoring/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/monitoring/monitor.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/monitoring/power/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/monitoring/power/ems300.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/monitoring/power/sim.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/monitoring/power/tools.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/monitoring/start.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/monitoring/watchdog/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/monitoring/watchdog/base.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/monitoring/watchdog/process.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/network/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/network/camera.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/network/sniffer.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/network/tools.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/array.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/aws/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/aws/priority_queue.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/aws/s3.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/common.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/complexity.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/compress.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/configuration.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/crypto.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/daemon.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/draw/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/draw/contours.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/formating.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/hardware.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/http.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/logger.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/os.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/queue.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/random.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/remote.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/simple_counter.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/synchronized.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/timers.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/tools/totp.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/web/__init__.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo/web/common.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo.egg-info/SOURCES.txt +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo.egg-info/dependency_links.txt +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo.egg-info/entry_points.txt +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo.egg-info/requires.txt +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/sciveo.egg-info/top_level.txt +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/setup.cfg +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/setup.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/test/test_complexity.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/test/test_compress.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/test/test_configuration.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/test/test_crypto.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/test/test_eval_markdown.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/test/test_ml_datasets.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/test/test_monitoring.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/test/test_runner.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/test/test_sampling.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/test/test_tokenizers.py +0 -0
- {sciveo-0.1.83 → sciveo-0.1.85}/test/test_totp.py +0 -0
|
@@ -61,6 +61,7 @@ def main():
|
|
|
61
61
|
parser.add_argument('--pid', type=int, default=None, help='Process PID')
|
|
62
62
|
parser.add_argument('--serial', type=str, default=None, help='Serial Name')
|
|
63
63
|
parser.add_argument('--data-json', type=str, default="{}", help='Json Data')
|
|
64
|
+
parser.add_argument('--display', type=int, default=None, help='Display number')
|
|
64
65
|
|
|
65
66
|
args = parser.parse_args()
|
|
66
67
|
|
|
@@ -113,7 +114,7 @@ def main():
|
|
|
113
114
|
player = RTSPVideoPlayer(url)
|
|
114
115
|
player.run()
|
|
115
116
|
else:
|
|
116
|
-
from sciveo.media.capture.gst_server import CamFactory, ColorBarFactory
|
|
117
|
+
from sciveo.media.capture.gst_server import CamFactory, ColorBarFactory, CamDisplayDaemon
|
|
117
118
|
data = json.loads(args.data_json)
|
|
118
119
|
if args.src_id is not None:
|
|
119
120
|
server = CamFactory(args.src_id, args.width, args.height, args.fps, configuration=data)
|
|
@@ -123,7 +124,12 @@ def main():
|
|
|
123
124
|
else:
|
|
124
125
|
# warning("RTSP src", args.src, "not recognised")
|
|
125
126
|
server = CamFactory(args.src, args.width, args.height, args.fps, configuration=data)
|
|
126
|
-
|
|
127
|
+
if args.display is not None:
|
|
128
|
+
display_daemon = CamDisplayDaemon(server, host=args.host, port=args.port, stream=args.stream, display=args.display)
|
|
129
|
+
display_daemon.start()
|
|
130
|
+
display_daemon.display()
|
|
131
|
+
else:
|
|
132
|
+
server.serve(host=args.host, port=args.port, stream=args.stream)
|
|
127
133
|
elif args.command == 'media-server':
|
|
128
134
|
from sciveo.media.pipelines.server import __START_SCIVEO_MEDIA_SERVER__
|
|
129
135
|
__START_SCIVEO_MEDIA_SERVER__()
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
#
|
|
11
11
|
|
|
12
12
|
import numpy as np
|
|
13
|
+
import time
|
|
14
|
+
import cv2
|
|
13
15
|
|
|
14
16
|
import gi
|
|
15
17
|
gi.require_version('Gst', '1.0')
|
|
@@ -18,6 +20,7 @@ from gi.repository import Gst, GObject, GstRtspServer, GLib
|
|
|
18
20
|
Gst.init(None)
|
|
19
21
|
|
|
20
22
|
from sciveo.tools.logger import *
|
|
23
|
+
from sciveo.tools.daemon import DaemonBase
|
|
21
24
|
from sciveo.tools.timers import FPSCounter
|
|
22
25
|
from sciveo.media.capture.draw import *
|
|
23
26
|
from sciveo.media.capture.cam import CameraDaemon
|
|
@@ -145,19 +148,60 @@ class CamFactory(ColorBarFactory):
|
|
|
145
148
|
else:
|
|
146
149
|
self.cam = CameraDaemon(cam_id=self.cam_id)
|
|
147
150
|
|
|
151
|
+
def read_cam_frame(self):
|
|
152
|
+
try:
|
|
153
|
+
frame = self.cam.read()
|
|
154
|
+
except Exception as e:
|
|
155
|
+
exception(e, "CAM frame read FAIL")
|
|
156
|
+
frame = None
|
|
157
|
+
return frame
|
|
158
|
+
|
|
148
159
|
def next_frame(self):
|
|
149
|
-
frame = self.
|
|
160
|
+
frame = self.read_cam_frame()
|
|
161
|
+
|
|
150
162
|
if frame is None:
|
|
151
163
|
frame = super().next_frame()
|
|
152
164
|
|
|
153
|
-
|
|
154
|
-
self.
|
|
165
|
+
try:
|
|
166
|
+
for k, v in self.configuration.get("draw", {}).items():
|
|
167
|
+
self.list_draw_processors.get(k, DrawNone())(frame, v)
|
|
168
|
+
except Exception as e:
|
|
169
|
+
exception(e, "DRAW FAIL")
|
|
155
170
|
|
|
156
171
|
self.fps_next_frame.update()
|
|
157
172
|
|
|
158
173
|
return frame
|
|
159
174
|
|
|
160
175
|
|
|
176
|
+
class CamDisplayDaemon(DaemonBase):
|
|
177
|
+
def __init__(self, cam_factory, host="0.0.0.0", port=8554, stream="test", display=0):
|
|
178
|
+
super().__init__()
|
|
179
|
+
self.cam_factory = cam_factory
|
|
180
|
+
self.host = host
|
|
181
|
+
self.port = port
|
|
182
|
+
self.stream = stream
|
|
183
|
+
self.display = display
|
|
184
|
+
self.fps_display = FPSCounter(period=10, tag=f"display", round_value=1)
|
|
185
|
+
|
|
186
|
+
def loop(self):
|
|
187
|
+
self.cam_factory.serve(host=self.host, port=self.port, stream=self.stream)
|
|
188
|
+
|
|
189
|
+
def display(self):
|
|
190
|
+
while(True):
|
|
191
|
+
frame = self.cam_factory.read_cam_frame()
|
|
192
|
+
if frame is None:
|
|
193
|
+
time.sleep(0.1)
|
|
194
|
+
continue
|
|
195
|
+
|
|
196
|
+
if self.display == 0:
|
|
197
|
+
cv2.imshow(f"cam {self.cam_factory.cam_id} {frame.shape}", frame)
|
|
198
|
+
if cv2.waitKey(1) & 0xFF == ord('q'):
|
|
199
|
+
break
|
|
200
|
+
|
|
201
|
+
self.fps_display.update()
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
161
205
|
if __name__ == "__main__":
|
|
162
206
|
|
|
163
207
|
# server = ColorBarFactory(640, 480, 10)
|
|
@@ -46,10 +46,13 @@ class RPICamera(CameraDaemon):
|
|
|
46
46
|
self.picam2.stop()
|
|
47
47
|
|
|
48
48
|
def read_frame(self):
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
self.
|
|
49
|
+
try:
|
|
50
|
+
frame = self.picam2.capture_array()
|
|
51
|
+
cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
|
|
52
|
+
with self.lock_frame:
|
|
53
|
+
self.frame = frame
|
|
54
|
+
except Exception as e:
|
|
55
|
+
exception(e, "CAM frame read FAIL")
|
|
53
56
|
|
|
54
57
|
|
|
55
58
|
class RPICameraFactory(CamFactory):
|
|
@@ -105,7 +105,6 @@ class EvalObjectDetection:
|
|
|
105
105
|
count_labels = 0
|
|
106
106
|
true_positives = []
|
|
107
107
|
false_positives = []
|
|
108
|
-
detected = []
|
|
109
108
|
|
|
110
109
|
for i, prediction in enumerate(self.converted_predictions):
|
|
111
110
|
current_predictions = prediction.get(class_name, [])
|
|
@@ -113,6 +112,8 @@ class EvalObjectDetection:
|
|
|
113
112
|
|
|
114
113
|
count_labels += len(current_labels)
|
|
115
114
|
|
|
115
|
+
detected = set()
|
|
116
|
+
|
|
116
117
|
for prediction_box in current_predictions:
|
|
117
118
|
if prediction_box[4] < confidence_threshold:
|
|
118
119
|
continue
|
|
@@ -126,10 +127,12 @@ class EvalObjectDetection:
|
|
|
126
127
|
max_iou = iou
|
|
127
128
|
gt_match = label_box
|
|
128
129
|
|
|
129
|
-
if gt_match is not None
|
|
130
|
+
gt_match_key = tuple([round(x, 6) for x in gt_match]) if gt_match is not None else None
|
|
131
|
+
|
|
132
|
+
if gt_match is not None and gt_match_key not in detected:
|
|
130
133
|
true_positives.append(1)
|
|
131
134
|
false_positives.append(0)
|
|
132
|
-
detected.
|
|
135
|
+
detected.add(gt_match_key)
|
|
133
136
|
else:
|
|
134
137
|
true_positives.append(0)
|
|
135
138
|
false_positives.append(1)
|
|
@@ -143,7 +146,8 @@ class EvalObjectDetection:
|
|
|
143
146
|
FP = np.sum(false_positives) / (count_labels + 1e-20)
|
|
144
147
|
|
|
145
148
|
# Compute AP using the trapezoidal rule (integrating precision over recall)
|
|
146
|
-
|
|
149
|
+
order = np.argsort(recall)
|
|
150
|
+
ap = np.trapezoid(precision[order], recall[order])
|
|
147
151
|
return ap, FP
|
|
148
152
|
|
|
149
153
|
# TODO: Use simple gradient-based threshold optimisation instead of current grid search.
|
|
@@ -199,13 +203,15 @@ class EvalObjectDetection:
|
|
|
199
203
|
|
|
200
204
|
def evaluate(self, confidence_thresholds={"default": 0.0}):
|
|
201
205
|
"""
|
|
202
|
-
|
|
206
|
+
Non-classical AP-related FP-constrained AP@IoU=0.5 calculation
|
|
203
207
|
"""
|
|
204
208
|
|
|
205
209
|
aps = []
|
|
206
210
|
class_ap = {}
|
|
207
211
|
class_FP = {}
|
|
208
212
|
|
|
213
|
+
info("Evaluating non-classical FP-constrained AP@IoU=0.5")
|
|
214
|
+
|
|
209
215
|
for class_name in self.class_names:
|
|
210
216
|
ap, FP = self.compute_ap(class_name, confidence_thresholds.get(class_name, confidence_thresholds["default"]))
|
|
211
217
|
aps.append(ap)
|
sciveo-0.1.83/sciveo/version.py
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/audio/audio_extractor_process.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/sci/time_series/__init__.py
RENAMED
|
File without changes
|
{sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/sci/time_series/predictor.py
RENAMED
|
File without changes
|
{sciveo-0.1.83 → sciveo-0.1.85}/sciveo/media/pipelines/processors/sci/time_series/trainer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|