[Viame] VIAME build error
Linus Sherrill
linus.sherrill at kitware.com
Tue Sep 6 18:10:39 EDT 2016
David,
I will address items 1, 2, 3 and leave the others for Matt.
1) We have Python bindings for some classes, but we have not yet had the
time to wrap the image detection related classes.
2) One way to test the system is to see if you can run a pipelined
application. There are some environment variables that need to be set up
before you can run. Most of these are set up by the install/setup_KWIVER.sh
script.
You will need to manually set SPROKIT_MODULE_PATH to point to the
VIAME/build/install/lib/sprokit directory. I hope to add this to the setup
script soon.
A good initial test is to run the VIAME/build/bin/plugin_explorer program.
It will generate a prodigious number of log messages and then list all the
loadable algorithms. The output should look as follows:
---- Algorithm search path
/disk2/projects/NOAA/VIAME/build/install/lib/modules:
---- Registered module names:
kwiver_algo_matlab_plugin
kwiver_algo_ocv_plugin
kwiver_algo_plugin
kwiver_algo_vxl_plugin
viame_scallop_tk_plugin
---- registered algorithms (type_name:impl_name)
analyze_tracks:ocv
bundle_adjust:hierarchical
bundle_adjust:vxl
close_loops:bad_frames_only
close_loops:exhaustive
close_loops:keyframe
close_loops:multi_method
close_loops:vxl_homography_guided
compute_ref_homography:core
convert_image:bypass
detect_features:ocv_BRISK
detect_features:ocv_FAST
detect_features:ocv_GFTT
detect_features:ocv_MSER
detect_features:ocv_ORB
detect_features:ocv_SIFT
detect_features:ocv_STAR
detect_features:ocv_SURF
detect_features:ocv_simple_blob
draw_tracks:ocv
estimate_canonical_transform:core_pca
estimate_canonical_transform:vxl_plane
estimate_essential_matrix:vxl
estimate_fundamental_matrix:ocv
estimate_fundamental_matrix:vxl
estimate_homography:ocv
estimate_homography:vxl
estimate_similarity_transform:vxl
extract_descriptors:ocv_BRIEF
extract_descriptors:ocv_BRISK
extract_descriptors:ocv_FREAK
extract_descriptors:ocv_ORB
extract_descriptors:ocv_SIFT
extract_descriptors:ocv_SURF
filter_features:magnitude
image_filter:matlab
image_io:ocv
image_io:vxl
image_object_detector:hough_circle_detector
image_object_detector:matlab
image_object_detector:scallop_tk_detector
initialize_cameras_landmarks:core
match_features:fundamental_matrix_guided
match_features:homography_guided
match_features:ocv_brute_force
match_features:ocv_flann_based
match_features:vxl_constrained
optimize_cameras:vxl
track_features:core
triangulate_landmarks:core
triangulate_landmarks:vxl
video_input:vxl
These loadable algorithms are located using the KWIVER_PLUGIN_PATH which is
listed in the output. The modules loaded list represent the shared objects
that have been detected and loaded. Each shared object can contain multiple
algorithms. The algorithm list shows each concrete algorithm that could be
loaded. Check the log messages to see if there are any libraries that could
not be located.
The highlighted loadable algorithms are the sample detectors and matlab
support. You should see these in your output.
If you don't see the matlab entries, check to see if the Matlab libraries
are in your LD_LIBRARY_PATH.
Each algorithm listed consists of two names. The first name is the type of
algorithm and the second is the actual implementation type. For example the
entry image_object_detector:hough_circle_detector
indicates that it implements the image_object_detector interface and it is
a hough_circle_detector.
Algorithms can be instantiated in any program and use a configuration based
approach to select which concrete implementation to instantiate.
The next thing to check is to verify the process loading environment by
running VIAME/install/bin/processopedia. This program will search for and
load sprokit processes.
The output should appear as follows (omitting the log messages)
collate: Collates data from multiple worker processes
compute_homography: Compute a frame to frame homography based on tracks
detect_features: Detect features in an image that will be used for
stabilization
distribute: Distributes data to multiple worker processes
draw_detected_object_boxes: Draw detected object boxes on images.
draw_tracks: Draw feature tracks on image
extract_descriptors: Extract descriptors from detected features
feature_matcher: Match extracted descriptors and detected features
frame_list_input: Reads a list of image file names and generates stream of
images and associated time stamps
image_filter: Apply selected image filter algorithm to incoming images.
image_object_detector: Apply selected image object detector algorithm to
incoming images.
image_viewer: Display input image and delay
image_writer: Write image to disk.
input_adapter: Source process for pipeline. Pushes data items into pipeline
ports.
kw_archive_writer: Write kw archives
matlab_bridge: Bridge to process written in Matlab
output_adapter: Sink process for pipeline. Accepts data items from pipeline
ports.
pass: Pass a data stream through
read_d_vector: Read vector of doubles
sink: Ignores incoming data
stabilize_image: Generate current-to-reference image homographies
template: Description of process. Make as long as necessary to fully
explain what the process does and how to use it. Explain specific
algorithms used, etc.
view_image: Display input image and delay. Legacy process and will be
removed in a future release. Convert to use "image_viewer" before it is too
late.
The highlighted process types should be in your list. The program has other
options, so feel free to experiment.
We will be using the image_object_detector process type in a pipeline to
apply a detector to a stream of images. This process wraps the
image_object_detector algorithm interface in a process. The process can be
configured to instantiate any available detector implementation.
For a simple pipeline test, go to -
$ cd VIAME/source/packages/kwiver/sprokit/pipelines/examples/hough_detector
Unfortunately there are some minor problems that have to be fixed before
this example can be run. This patch is in the process of being included in
the master version, but for now, apply the following patch.
diff --git
a/sprokit/pipelines/examples/hough_detector/detect_circles_list.txt
b/sprokit/pipelines/examples/hough_detector/detect_circles_list.txt
index 177599c..3a6005e 100644
--- a/sprokit/pipelines/examples/hough_detector/detect_circles_list.txt
+++ b/sprokit/pipelines/examples/hough_detector/detect_circles_list.txt
@@ -1 +1 @@
-images/detect_circles_soda.jpg
+detect_circles_soda.jpg
diff --git a/sprokit/pipelines/examples/hough_detector/hough_detector.pipe
b/sprokit/pipelines/examples/hough_detector/hough_detector.pipe
index f757e80..58d6d7b 100644
--- a/sprokit/pipelines/examples/hough_detector/hough_detector.pipe
+++ b/sprokit/pipelines/examples/hough_detector/hough_detector.pipe
@@ -1,8 +1,7 @@
# ================================================================
process input
:: frame_list_input
- #:image_list_file images/image_list_1.txt
- :image_list_file images/detect_circles_list.txt
+ :image_list_file detect_circles_list.txt
:frame_time .3333
:image_reader:type ocv
This patch just removes the directory name from the image file and image
list file.
In that directory, run the following command (or look at run_pipe.sh)
$ pipeline_runner -p hough_detector.pipe
The results should be an image displayed with a box around each can end.
This is a good checkout of the underlying components.
Let me know if you have any problems.
-Linus
On Tue, Sep 6, 2016 at 4:14 PM, David Zhang <david.zhang at sri.com> wrote:
> Matt and Linus:
>
>
>
> First of all, thanks for all the emails. I had a successful build today
> based on the latest version. This is good news. Next are the few questions
> to move on:
>
>
>
> 1) Is the build so far work for both c++ and python?
>
> 2) What test codes can I run to reflect my build?
>
> 3) I assume my code will be used as “plugin”, and VIAME has a
> sub-folder. I have used python as APIs to wrap around a bunch of lower
> level c++ libraries.
>
> 4) How do I change caffe settings from cmake? For example, to
> disable cuDNN, disable GPU, etc.
>
> 5) We start to build VIAME on a desktop with Nvidia GPU K20. It has
> Cuda SDK 7.5 and CuDNN 5.05 installed. So far, the build was broken in
> caffe that complains about cuDNN type definitions. (I did not build caffe
> with cuDNN on my laptop). What is the caffe version you are using in the
> build? Is it from BLVC /caffe?
>
>
>
> Thanks,
>
>
>
> David
>
--
*Linus Sherrill - *Staff R&D Engineer
Kitware, Inc.
28 Corporate Drive
Clifton Park, NY 12065-8662
E: linus.sherrill at kitware.com
P: 518.881.4400
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/viame/attachments/20160906/cb3f973b/attachment-0001.html>
More information about the Viame
mailing list