def alexnet_query_by_image(query_id):
    dq = Query.objects.get(id=query_id)
    start = TEvent()
    start.task_id = alexnet_query_by_image.request.id
    start.video_id = Video.objects.get(parent_query=dq).pk
    start.started = True
    start.operation = alexnet_query_by_image.name
    start.save()
    start_time = time.time()
    alexnet_query_by_image.refresh_index('alexnet')
    alexnet = alexnet_query_by_image.visual_indexer['alexnet']
    Q = entity.WQuery(dquery=dq,
                      media_dir=settings.MEDIA_ROOT,
                      visual_index=alexnet)
    results = Q.find(10)
    dq.results = True
    dq.results_metadata = json.dumps(results)
    for algo, rlist in results.iteritems():
        for r in rlist:
            qr = QueryResults()
            qr.query = dq
            qr.frame_id = r['frame_primary_key']
            qr.video_id = r['video_primary_key']
            qr.algorithm = algo
            qr.rank = r['rank']
            qr.distance = r['dist']
            qr.save()
    dq.save()
    start.completed = True
    start.seconds = time.time() - start_time
    start.save()
    return results
Beispiel #2
0
def facenet_query_by_image(query_id):
    dq = Query.objects.get(id=query_id)
    start = TEvent()
    start.video_id = Video.objects.get(parent_query=dq).pk
    start.started = True
    start.operation = facenet_query_by_image.name
    start.save()
    start_time = time.time()
    facenet_query_by_image.refresh_index('facenet')
    facenet = facenet_query_by_image.visual_indexer['facenet']
    Q = entity.WQuery(dquery=dq, media_dir=settings.MEDIA_ROOT,visual_index=facenet)
    results = Q.find(10)
    for algo,rlist in results.iteritems():
        for r in rlist:
            qr = QueryResults()
            qr.query = dq
            dd = Detection.objects.get(pk=r['detection_primary_key'])
            qr.detection = dd
            qr.frame_id = dd.frame_id
            qr.video_id = r['video_primary_key']
            qr.algorithm = algo
            qr.rank = r['rank']
            qr.distance = r['dist']
            qr.save()
    dq.results = True
    dq.save()
    start.completed = True
    start.seconds = time.time() - start_time
    start.save()
    return results
Beispiel #3
0
def query_by_image(query_id):
    dq = Query.objects.get(id=query_id)
    start = TEvent()
    start.video_id = Video.objects.get(parent_query=dq).pk
    start.started = True
    start.operation = query_by_image.name
    start.save()
    start_time = time.time()
    Q = entity.WQuery(dquery=dq,
                      media_dir=settings.MEDIA_ROOT,
                      frame_indexers=perform_indexing.frame_indexer,
                      detection_indexers=perform_indexing.detection_indexer)
    index_entries = IndexEntries.objects.all()
    results = Q.find(10, index_entries)
    dq.results = True
    dq.results_metadata = json.dumps(results)
    for algo, rlist in results.iteritems():
        for r in rlist:
            qr = QueryResults()
            qr.query = dq
            qr.frame_id = r['frame_primary_key']
            qr.video_id = r['video_primary_key']
            qr.algorithm = algo
            qr.rank = r['rank']
            qr.distance = r['dist']
            qr.save()
    dq.save()
    start.completed = True
    start.seconds = time.time() - start_time
    start.save()
    return results
Beispiel #4
0
def query_by_image(query_id):
    dq = Query.objects.get(id=query_id)
    Q = entity.WQuery(dquery=dq, media_dir=settings.MEDIA_ROOT)
    results = Q.find()
    dq.results = True
    for algo,rlist in results.iteritems():
        for r in rlist:
            qr = QueryResults()
            qr.query = dq
            qr.frame_id = r['frame_primary_key']
            qr.video_id = r['video_primary_key']
            qr.algorithm = algo
            qr.distance = r['dist']
            qr.save()
    dq.results_metadata = json.dumps(results)
    dq.save()
    return results
Beispiel #5
0
def inception_query_by_image(query_id):
    dq = Query.objects.get(id=query_id)
    start = TEvent()
    start.task_id = inception_query_by_image.request.id
    start.video_id = Video.objects.get(parent_query=dq).pk
    start.started = True
    start.operation = inception_query_by_image.name
    start.save()
    start_time = time.time()
    inception = inception_query_by_image.visual_indexer['inception']
    # if settings.MEDIA_BUCKET:
    #     ensure_query(dq)
    Q = entity.WQuery(dquery=dq,
                      media_dir=settings.MEDIA_ROOT,
                      visual_index=inception)
    exact = True  # by default run exact search
    if dq.approximate:
        if inception_query_by_image.clusterer['inception'] is None:
            inception_query_by_image.load_clusterer('inception')
        clusterer = inception_query_by_image.clusterer['inception']
        if clusterer:
            results = query_approximate(Q, dq.count, inception, clusterer)
            exact = False
    if exact:
        inception_query_by_image.refresh_index('inception')
        results = Q.find(dq.count)
    dq.results = True
    dq.results_metadata = json.dumps(results)
    for algo, rlist in results.iteritems():
        for r in rlist:
            qr = QueryResults()
            qr.query = dq
            if 'detection_primary_key' in r:
                qr.detection_id = r['detection_primary_key']
            qr.frame_id = r['frame_primary_key']
            qr.video_id = r['video_primary_key']
            qr.algorithm = algo
            qr.rank = r['rank']
            qr.distance = r['dist']
            qr.save()
    dq.save()
    start.completed = True
    start.seconds = time.time() - start_time
    start.save()
    return results
Beispiel #6
0
def facenet_query_by_image(query_id):
    dq = Query.objects.get(id=query_id)
    start = TEvent()
    start.task_id = facenet_query_by_image.request.id
    start.video_id = Video.objects.get(parent_query=dq).pk
    start.started = True
    start.operation = facenet_query_by_image.name
    start.save()
    start_time = time.time()
    # if settings.MEDIA_BUCKET:
    #     ensure_query(dq)
    facenet = facenet_query_by_image.visual_indexer['facenet']
    Q = entity.WQuery(dquery=dq,
                      media_dir=settings.MEDIA_ROOT,
                      visual_index=facenet)
    exact = True
    if dq.approximate:
        if facenet_query_by_image.clusterer['facenet'] is None:
            facenet_query_by_image.load_clusterer('facenet')
        clusterer = facenet_query_by_image.clusterer['facenet']
        if clusterer:
            results = query_approximate(Q, dq.count, facenet, clusterer)
            exact = False
    if exact:
        facenet_query_by_image.refresh_index('facenet')
        results = Q.find(dq.count)
    for algo, rlist in results.iteritems():
        for r in rlist:
            qr = QueryResults()
            qr.query = dq
            dd = Region.objects.get(pk=r['detection_primary_key'])
            qr.detection = dd
            qr.frame_id = dd.frame_id
            qr.video_id = r['video_primary_key']
            qr.algorithm = algo
            qr.rank = r['rank']
            qr.distance = r['dist']
            qr.save()
    dq.results = True
    dq.save()
    start.completed = True
    start.seconds = time.time() - start_time
    start.save()
    return results