EXTERNAL ARROW
This repository is an example for registering external plugins with kwiver and diva wheel
REQUIREMENTS
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)
| File | Reset | |||
|---|---|---|---|---|
| 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
|