Kitware / kwiver

Pulls Together Computer Vision Algorithms into Highly-Modular Run-Time Configurable Systems
Other
190 stars 83 forks source link

KWIVER example pipelines are broken #746

Open mleotta opened 5 years ago

mleotta commented 5 years ago

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.
mleotta commented 5 years ago

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.

aramSofthenge commented 11 months ago

@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 commented 10 months ago

@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.

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.