KWIVER example pipelines are broken
It was reported on the mailing list by a user that the KWIVER example pipelines are broken. Specifically, running this pipe: examples/pipelines/images_to_kwa.pipe results in this error
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:189] Could not find implementation "ocv" for "detect_features"
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:189] Could not find implementation "ocv" for "extract_descriptors"
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:189] Could not find implementation "" for "feature_descriptor_io"
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:189] Could not find implementation "ocv" for "match_features"
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:189] Could not find implementation "" for "match_features"
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:189] Could not find implementation "" for "filter_features"
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:189] Could not find implementation "ocv" for "match_features"
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:189] Could not find implementation "" for "match_features"
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:189] Could not find implementation "" for "filter_features"
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:189] Could not find implementation "ocv" for "match_features"
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:189] Could not find implementation "" for "match_features"
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:189] Could not find implementation "" for "filter_features"
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:239] Configuration Failure: invalid option
feature_detector:type =
valid options are
ocv_BRISK
ocv_FAST
ocv_GFTT
ocv_MSER
ocv_ORB
ocv_simple_blob
ocv_AGAST
ocv_MSD
ocv_SIFT
ocv_STAR
ocv_SURF
WARN [2019-01-31 11:51:32 vital.algorithm /home/kwiver/kwiver/vital/algo/algorithm.cxx:253] Configuration Failure Backtrace: track_features:core
Exception caught: The process 'stabilize' has a configuration issue: Configuration check failed.
The reason for this error is that the algorithm configuration for OpenCV detectors changed when we moved to OpenCV 3. These old examples were never updated to match. Previously we had type=ocv and then a nested parameter to pick which kind of descriptor (e.g. SIFT). Now these are all independent algorithms and must be specified at the top level as type=ocv_SIFT as described in the error message above.
Someone needs to update the examples and test them.
@chetnieter Hey, can you give any advice on how to resolve this. I understand that the error was due to the changes in algorithm configuration for OpenCV 3, requiring an update from type=ocv to type=ocv_SIFT.
However, I'm facing other errors like: Could not find implementation "" for "feature_descriptor_io", which does not appear to be directly related to the OpenCV configuration change. This error persists even after updating the ocv references. The issue seems to be that the .pipe file does not include an implementation for feature_descriptor_io.
Could this mean that the solution involves more than just updating the OpenCV references? Is there a possibility that certain parts of the pipeline need to be rewritten from scratch to fully resolve this issue?
I'm also trying to understand the execution context of these types in the KWIVER pipeline. Specifically, I've been attempting to locate where exactly these types are executed within the pipeline.
@chetnieter Hey, can you give any advice on how to resolve this. I understand that the error was due to the changes in algorithm configuration for OpenCV 3, requiring an update from
type=ocvtotype=ocv_SIFT.However, I'm facing other errors like:
Could not find implementation "" for "feature_descriptor_io", which does not appear to be directly related to the OpenCV configuration change. This error persists even after updating theocvreferences. The issue seems to be that the.pipefile does not include an implementation forfeature_descriptor_io.Could this mean that the solution involves more than just updating the OpenCV references? Is there a possibility that certain parts of the pipeline need to be rewritten from scratch to fully resolve this issue?
I'm also trying to understand the execution context of these types in the KWIVER pipeline. Specifically, I've been attempting to locate where exactly these types are executed within the pipeline.
Many of the KWIVER algorithms are nested, where one algorithm makes use of other algorithms with some of these assuming default values or in some cases the additional algorithms are optional. The fact that there is no configuration block for feature_descriptor_io is not necessarily an error. I was able to eliminate the original error with the type=ocv to type=ocv_SIFT change. This unfortunately revealed additional errors and warnings like the one you mentioned. Unfortunately, I am not very familiar with this example so I am unsure what the resolution is for the new errors and warnings.