-
Surely this will save many bytes of source code.
-
…rom ground truth bounding boxes.
-
Only verification mode evaluation is supported. The main issue is to avoid loading potentially very large similarity and mask matrices into main memory.
-
Defaulting to ClusterID did not make much sense, since the key being indexed is in fact the ground truth, not the cluster labels (cluster labels are stored as indices in a csv file, not a gallery). Also, use Format to read similarity matrices instead of assuming mtx is in use.
-
Instead of returning references to static memory (which are invalidated by subsequent or concurrent calls to the function), require users to input string buffers to functions that return strings. Affected functions: br_get_filename br_get_metadata_string br_scratch_path br_objects br_most_recent_message In some GUI functions, use C++ functions instead of going through the c api add a c++ method correspondign to br_objects (which returns a stringlist instead of merging the lines) br_read_pipe and br_get_header also use static memory in a similar way, but are not addressed in this commit.
-
…-gui is specified as the first argument
-
The primary addition is ProcessWrapperTransform, which takes a transform as a child, and creates a worker process that runs that transform. The main point of this is to handle cases where we interface with non-threadsafe code, and need to isolate transforms in their own processes if we want to use multiple copies of them. Inter-process communication is handled using QLocalServer/QLocalSocket, the actual worker processes are additional instance of br, which does mean this bleeds out to the public API to an unfortunate extent. Initial trvial tests seem promising, but generally we can expect performance to degrade if larger amounts of data are transfered, ideally we should do ProcessWrapper(Open+FeatureExtraction), so the data transfered to the worker is an image name, and the data transfered from the worker is a feature vector.
-
Resolved conflicts: app/br/br.cpp openbr/core/bee.cpp openbr/plugins/output.cpp
-
resolved conflicts: app/br/br.cpp openbr/core/bee.cpp openbr/core/classify.cpp openbr/core/cluster.cpp openbr/core/eval.h openbr/openbr.cpp openbr/openbr.h openbr/plugins/algorithms.cpp openbr/plugins/independent.cpp openbr/plugins/output.cpp openbr/plugins/svm.cpp
-
If just the first property name argument is specified, use that for both the gt and predicted files. Use empty strings to indicate when the gt/predicted property names are not supplied to facilitate the above change. Fix argument count checks for eval regression/classification.
-
Change default label name from Subjet to Label (since label is a more general term). Use different default variable names for classification (label), regression (regressor/regressand), and clustering (ClusterID) Update some (far from all) transforms to accept arguments specifying their input/output variables. Update eval classification to optionally take target variable names as arguments