Source code for wbia.control.manual_lblimage_funcs

# -*- coding: utf-8 -*-
import logging
import uuid
from wbia import constants as const
from wbia.control.accessor_decors import (
    adder,
    getter_1to1,
    getter_1toM,
)
import utool as ut

# from wbia.other import ibsfuncs
from wbia.control.controller_inject import make_ibs_register_decorator

print, rrr, profile = ut.inject2(__name__)
logger = logging.getLogger('wbia')


CLASS_INJECT_KEY, register_ibs_method = make_ibs_register_decorator(__name__)


# ADDERS::IMAGE->IMAGESET

#
# GETTERS::GLR


[docs]@register_ibs_method @getter_1to1 def get_glr_confidence(ibs, glrid_list): """ Returns: list_ (list): confidence in an image relationship """ glr_confidence_list = ibs.db.get( const.GL_RELATION_TABLE, ('glr_confidence',), glrid_list ) return glr_confidence_list
[docs]@register_ibs_method @getter_1to1 def get_glr_lblimage_rowids(ibs, glrid_list): """get the lblimage_rowid belonging to each relationship""" lblimage_rowids_list = ibs.db.get( const.GL_RELATION_TABLE, ('lblimage_rowid',), glrid_list ) return lblimage_rowids_list
[docs]@register_ibs_method @getter_1to1 def get_glr_image_rowids(ibs, glrid_list): """get the image_rowid belonging to each relationship""" image_rowids_list = ibs.db.get(const.GL_RELATION_TABLE, ('image_rowid',), glrid_list) return image_rowids_list
# ADDERS::LBLIMAGE
[docs]@register_ibs_method @adder def add_lblimages( ibs, lbltype_rowid_list, value_list, note_list=None, lblimage_uuid_list=None ): """Adds new lblimages (labels of imageations) creates a new uuid for any new pair(type, value) #TODO: reverse order of rowid_list value_list in input """ if note_list is None: note_list = [''] * len(value_list) # Get random uuids if lblimage_uuid_list is None: lblimage_uuid_list = [uuid.uuid4() for _ in range(len(value_list))] colnames = ['lblimage_uuid', 'lbltype_rowid', 'lblimage_value', 'lblimage_note'] params_iter = list(zip(lblimage_uuid_list, lbltype_rowid_list, value_list, note_list)) get_rowid_from_superkey = ibs.get_lblimage_rowid_from_superkey superkey_paramx = (1, 2) lblimage_rowid_list = ibs.db.add_cleanly( const.LBLIMAGE_TABLE, colnames, params_iter, get_rowid_from_superkey, superkey_paramx, ) return lblimage_rowid_list
# # GETTERS::LBLIMAGE_TABLE
[docs]@register_ibs_method @getter_1to1 def get_lblimage_rowid_from_superkey(ibs, lbltype_rowid_list, value_list): """ Returns: list_ (list): lblimage_rowid_list from the superkey (lbltype, value) """ colnames = ('lblimage_rowid',) params_iter = zip(lbltype_rowid_list, value_list) lblimage_rowid_list = ibs.db.get_where_eq( const.LBLIMAGE_TABLE, colnames, params_iter, ('lbltype_rowid', 'lblimage_value') ) return lblimage_rowid_list
[docs]@register_ibs_method @getter_1to1 def get_lblimage_rowid_from_uuid(ibs, lblimage_uuid_list): """ Returns: list_ (list): lblimage_rowid_list from the superkey (lbltype, value) """ colnames = ('lblimage_rowid',) params_iter = lblimage_uuid_list id_colname = 'lblimage_uuid' lblimage_rowid_list = ibs.db.get( const.LBLIMAGE_TABLE, colnames, params_iter, id_colname=id_colname ) return lblimage_rowid_list
[docs]@register_ibs_method @getter_1to1 def get_lblimage_uuids(ibs, lblimage_rowid_list): lblimageuuid_list = ibs.db.get( const.LBLIMAGE_TABLE, ('lblimage_uuid',), lblimage_rowid_list ) return lblimageuuid_list
[docs]@register_ibs_method @getter_1to1 def get_lblimage_lbltypes_rowids(ibs, lblimage_rowid_list): lbltype_rowid_list = ibs.db.get( const.LBLIMAGE_TABLE, ('lbltype_rowid',), lblimage_rowid_list ) return lbltype_rowid_list
[docs]@register_ibs_method @getter_1to1 def get_lblimage_notes(ibs, lblimage_rowid_list): lblimagenotes_list = ibs.db.get( const.LBLIMAGE_TABLE, ('lblimage_note',), lblimage_rowid_list ) return lblimagenotes_list
[docs]@register_ibs_method @getter_1to1 def get_lblimage_values(ibs, lblimage_rowid_list, _lbltype=None): """ Returns: list_ (list): text lblimages """ # TODO: Remove keyword argument # ibsfuncs.assert_lblimage_rowids_are_type(ibs, lblimage_rowid_list, ibs.lbltype_ids[_lbltype]) lblimage_value_list = ibs.db.get( const.LBLIMAGE_TABLE, ('lblimage_value',), lblimage_rowid_list ) return lblimage_value_list
[docs]@register_ibs_method def get_lblimage_gids(ibs, lblimage_rowid_list): # verbose = len(lblimage_rowid_list) > 20 # TODO: Optimize IF POSSIBLE # FIXME: SLOW # if verbose: # logger.info(ut.get_caller_name(N=list(range(0, 20)))) params_iter = [(lblimage_rowid,) for lblimage_rowid in lblimage_rowid_list] gids_list = ibs.db.get_where_eq( const.GL_RELATION_TABLE, ('image_rowid',), params_iter, ('lblimage_rowid',), unpack_scalars=False, ) return gids_list
# ADDERS::GLR
[docs]@register_ibs_method @adder def add_image_relationship_one( ibs, gid_list, lblimage_rowid_list, glr_confidence_list=None ): """ Adds a relationship between images and lblimages (imageations and labels of imageations) """ if glr_confidence_list is None: glr_confidence_list = [0.0] * len(gid_list) colnames = ( 'image_rowid', 'lblimage_rowid', 'glr_confidence', ) params_iter = list(zip(gid_list, lblimage_rowid_list, glr_confidence_list)) get_rowid_from_superkey = ibs.get_glrid_from_superkey superkey_paramx = (0, 1) # TODO HAVE SQL GIVE YOU THESE NUMBERS glrid_list = ibs.db.add_cleanly( const.GL_RELATION_TABLE, colnames, params_iter, get_rowid_from_superkey, superkey_paramx, ) return glrid_list
[docs]@register_ibs_method @getter_1to1 def get_glrid_from_superkey(ibs, gid_list, lblimage_rowid_list): """ Args: gid_list (list): list of image row-ids lblimage_rowid_list (list): list of lblimage row-ids Returns: glrid_list (list): image-label relationship id list """ colnames = ('image_rowid',) params_iter = zip(gid_list, lblimage_rowid_list) glrid_list = ibs.db.get_where_eq( const.GL_RELATION_TABLE, colnames, params_iter, ('image_rowid', 'lblimage_rowid') ) return glrid_list
[docs]@register_ibs_method @getter_1toM def get_image_glrids(ibs, gid_list): """FIXME: __name__ Get all the relationship ids belonging to the input images if lblimage lbltype is specified the relationship ids are filtered to be only of a specific lbltype/category/type """ params_iter = ((gid,) for gid in gid_list) glrids_list = ibs.db.get_where_eq( const.GL_RELATION_TABLE, ('glr_rowid',), params_iter, ('image_rowid',), unpack_scalars=False, ) return glrids_list