Skip to main content

EXTERNAL ARROW

This repository is an example for registering external plugins with kwiver and diva wheel

REQUIREMENTS

  1. libgl1-mesa-dev
  2. libexpat1-dev
  3. libgtk2.0-dev
  4. liblapack-dev
  5. libpython3-dev
  6. kwiver
  7. diva-framework

INSTALLATION

EXTERNAL ARROW

pip install external-arrow

VERIFYING REGISTRATION

plugin_explorer --algo image_object_detector

Plugins that implement type "image_object_detector"
---------------------
Info on algorithm type "image_object_detector" implementation "TestObjectDetector"
  Plugin name: TestObjectDetector
        Test to verify if a python algorithm can be registered externally
---------------------
Info on algorithm type "image_object_detector" implementation "external_arrow.arrow.test_object_detector"
  Plugin name: external_arrow.arrow.test_object_detector
        Version: 1.0
        Test to verify if a cpp algorithm can be registered externall
---------------------
Info on algorithm type "image_object_detector" implementation "create_detection_grid"
  Plugin name: create_detection_grid
	    Create a grid of detections across the input image.
---------------------
Info on algorithm type "image_object_detector" implementation "example_detector"
  Plugin name: example_detector
	    Simple example detector that just creates a user-specified bounding box.
---------------------
Info on algorithm type "image_object_detector" implementation "hough_circle"
  Plugin name: hough_circle
        Hough circle detector
---------------------
Info on algorithm type "image_object_detector" implementation "detect_heat_map"
  Plugin name: detect_heat_map
	    OCV implementation to create detections from heatmaps

TestObjectDetector and external_arrow.arrow.test_object_detector are python and c++ arrows registered by external_arrow

REGISTERING ARROW/PROCESSES FROM EXTERNAL PACKAGE

Kwiver uses entrypoints to register vital arrows and sprokit processes.

Language Entrypoint
C++ kwiver.cpp_search_paths
python kwiver.python_plugin_registration

PYTHON ARROW/PROCESS

The python process and arrows are registered using kwiver.python_plugin_registration in setup.py. Every process and arrows in the external package must be registered individually by specifying a unique key-value pair associated with the entrypoint . For example

'kwiver.python_plugin_registration':
[ 'simple_detector=external_arrow.arrow.test_object_detector']

where external_arrow.arrow.test_object_detector is python arrow containing __vital_algorithm_register__

C++ ARROW/PROCESS

The c++ process and arrows are registered using kwiver.cpp_search_paths in setup.py. For registering c++ libraries, kwiver requires absolute path to the directory where the c++ libraries are present in the package. For example

'kwiver.cpp_search_paths':
['simple_detector=external_arrow.register_cpp_arrow:get_cpp_path']

where external_arrow.register_cpp_arrow:get_cpp_path is a python function that returns the directory where c++ libraries for external_arrow are present in the package.

Note: Kwiver wheel does not provide the development environment for c++ extension that depend on kwiver. A c++ vital arrow and sprokit process based extension would be built against the static build of fletch and kwiver.

Release files for external-arrow 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for external-arrow 0.0.2
File
external_arrow-0.0.2-cp38-cp38-manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
external_arrow-0.0.2-cp37-cp37m-manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
external_arrow-0.0.2-cp36-cp36m-manylinux2014_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64 Details
external_arrow-0.0.2-cp35-cp35m-manylinux2014_x86_64.whl CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.17+ x86-64 Details

Total release size: 484.8 kB

Release files / external_arrow-0.0.2-cp38-cp38-manylinux2014_x86_64.whl

Download URL external_arrow-0.0.2-cp38-cp38-manylinux2014_x86_64.whl
Size 121.2 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2474bf1f69a5a8b9a5046e9fae366a8472f18e371d0b7f27e566f2781e67b688
BLAKE2b-256 checksum
How to use checksums
314dd9bfeedaa156b36ae0a754bfda9bf17424819ccdd744564b82b97c93e56d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.8.0

Release files / external_arrow-0.0.2-cp37-cp37m-manylinux2014_x86_64.whl

Download URL external_arrow-0.0.2-cp37-cp37m-manylinux2014_x86_64.whl
Size 121.2 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0754d65bb38c14f29451cee2e7c779acf2a7a87bcf5bcb75117bfee373809700
BLAKE2b-256 checksum
How to use checksums
0c117874be8c1463cc0ee245a4ac0657036174f301800380bd2cef509ca7e90f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.7.0

Release files / external_arrow-0.0.2-cp36-cp36m-manylinux2014_x86_64.whl

Download URL external_arrow-0.0.2-cp36-cp36m-manylinux2014_x86_64.whl
Size 121.2 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
64e83c73bd9a1a44d1ad3992eaa4301956936a2aaaeadd22b8fc986f1981ccdd
BLAKE2b-256 checksum
How to use checksums
b4730048e8603c6c26e2751f22f0fec402d3698fa10bf5fc77258a223c8c9293
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.6.0

Release files / external_arrow-0.0.2-cp35-cp35m-manylinux2014_x86_64.whl

Download URL external_arrow-0.0.2-cp35-cp35m-manylinux2014_x86_64.whl
Size 121.2 kB
Tags CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
096dc2252448e88528d3b077a94dd7c5837560531e9617993ceb85ddd0f07074
BLAKE2b-256 checksum
How to use checksums
1e205a2fe08018717c9db0b01a47d5e8777b5d715f5f02f51363cbfa962183ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.5.0
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page