1 #ifndef TURI_ANNOTATIONS_IMAGE_CLASSIFICATION_HPP 2 #define TURI_ANNOTATIONS_IMAGE_CLASSIFICATION_HPP 4 #include <core/export.hpp> 11 #include <visualization/annotation/annotation_base.hpp> 12 #include <model_server/lib/variant.hpp> 13 #include <toolkits/nearest_neighbors/unity_nearest_neighbors.hpp> 15 #include "build/format/cpp/annotate.pb.h" 16 #include "build/format/cpp/data.pb.h" 21 class ImageClassification :
public AnnotationBase {
23 ImageClassification() : AnnotationBase(){};
24 ImageClassification(
const std::shared_ptr<unity_sframe> &data,
25 const std::vector<std::string> &data_columns,
26 const std::string &annotation_column);
28 ~ImageClassification() {};
30 annotate_spec::MetaData metaData()
override;
32 annotate_spec::Data getItems(
size_t start,
size_t end)
override;
34 annotate_spec::Annotations getAnnotations(
size_t start,
size_t end)
override;
36 bool setAnnotations(
const annotate_spec::Annotations &annotations)
override;
38 void cast_annotations()
override;
40 void background_work()
override;
42 void addAnnotationColumn()
override;
44 void checkDataSet()
override;
46 annotate_spec::Similarity get_similar_items(
size_t index,
47 size_t k = 7)
override;
55 size_t m_feature_batch_size = 16;
56 image_deep_feature_extractor::image_deep_feature_extractor_toolkit m_extractor;
58 gl_sarray m_feature_sarray;
59 variant_map_type m_nn_model;
60 std::shared_ptr<std::thread> featurizer_thread;
61 gl_sarray m_image_feature_extraction_sarray;
62 std::shared_ptr<gl_sarray_writer> m_writer;
65 void _addAnnotationToSFrame(
size_t index, std::string label);
66 void _addAnnotationToSFrame(
size_t index,
int label);
67 void _create_nearest_neighbors_model();
68 void _createFeaturesExtractor();
69 bool _stepFeaturesExtractor();
71 std::shared_ptr<unity_sarray> _filterDataSFrame(
size_t &start,
size_t &end);
72 std::shared_ptr<unity_sarray> _filterAnnotationSFrame(
size_t &start,
76 std::shared_ptr<ImageClassification> create_image_classification_annotation(
77 const std::shared_ptr<unity_sframe> &data,
78 const std::vector<std::string> &data_columns,
79 const std::string &annotation_column);
#define BEGIN_CLASS_MEMBER_REGISTRATION(python_facing_classname)
#define IMPORT_BASE_CLASS_REGISTRATION(base_class)
#define END_CLASS_MEMBER_REGISTRATION