Ejemplo n.º 1
0
def qt():
    import django
    sys.path.append(os.path.dirname(__file__))
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dva.settings")
    django.setup()
    from django.core.files.uploadedfile import SimpleUploadedFile
    from dvaapp.views import handle_uploaded_file
    from dvaapp.models import Video, TEvent
    from dvaapp.tasks import extract_frames, perform_face_detection, perform_indexing, segment_video
    for fname in glob.glob('tests/ci/*.mp4'):
        name = fname.split('/')[-1].split('.')[0]
        f = SimpleUploadedFile(fname,
                               file(fname).read(),
                               content_type="application/mp4")
        v = handle_uploaded_file(f, name)
        arguments_json = json.dumps({'sync': True})
        segment_video(
            TEvent.objects.create(video=v, arguments_json=arguments_json).pk)
        perform_face_detection(TEvent.objects.create(video=v).pk)
        args = json.dumps({
            'index': 'facenet',
            'target': 'regions',
            'filter': {
                'object_name__startswith': 'MTCNN_face'
            }
        })
        perform_indexing(
            TEvent.objects.create(video=v, arguments_json=args).pk)
Ejemplo n.º 2
0
def qt():
    import django
    sys.path.append(os.path.dirname(__file__))
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dva.settings")
    django.setup()
    from django.core.files.uploadedfile import SimpleUploadedFile
    from dvaapp.views import handle_uploaded_file
    from dvaapp.models import Video, TEvent
    from dvaapp.tasks import extract_frames,perform_face_detection,perform_face_indexing
    for fname in glob.glob('tests/example*.zip'):
        name = fname.split('/')[-1].split('.')[0]
        f = SimpleUploadedFile(fname, file(fname).read(), content_type="application/zip")
        v = handle_uploaded_file(f, name)
        extract_frames(TEvent.objects.create(video=v).pk)
        perform_face_detection(TEvent.objects.create(video=v).pk)
        perform_face_indexing(TEvent.objects.create(video=v).pk)
Ejemplo n.º 3
0
def ci():
    """
    Used in conjunction with travis for Continuous Integration testing
    :return:
    """
    import django
    sys.path.append(os.path.dirname(__file__))
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dva.settings")
    django.setup()
    import base64
    from django.core.files.uploadedfile import SimpleUploadedFile
    from dvaapp.views import handle_uploaded_file, handle_youtube_video, pull_vdn_list\
        ,import_vdn_dataset_url
    from dvaapp.models import Video, Clusters,IndexEntries,TEvent,VDNServer
    from django.conf import settings
    from dvaapp.operations.query_processing import QueryProcessing
    from dvaapp.tasks import extract_frames, inception_index_by_id, perform_ssd_detection_by_id,\
        perform_yolo_detection_by_id, inception_index_regions_by_id, export_video_by_id, import_video_by_id,\
        execute_index_subquery, perform_clustering, assign_open_images_text_tags_by_id, perform_face_detection,\
        perform_face_indexing
    for fname in glob.glob('tests/ci/*.mp4'):
        name = fname.split('/')[-1].split('.')[0]
        f = SimpleUploadedFile(fname, file(fname).read(), content_type="video/mp4")
        handle_uploaded_file(f, name, False)
    for fname in glob.glob('tests/*.mp4'):
        name = fname.split('/')[-1].split('.')[0]
        f = SimpleUploadedFile(fname, file(fname).read(), content_type="video/mp4")
        handle_uploaded_file(f, name, False)
    for fname in glob.glob('tests/*.zip'):
        name = fname.split('/')[-1].split('.')[0]
        f = SimpleUploadedFile(fname, file(fname).read(), content_type="application/zip")
        handle_uploaded_file(f, name)
    # handle_youtube_video('world is not enough', 'https://www.youtube.com/watch?v=P-oNz3Nf50Q') # Temporarily disabled due error in travis
    for i,v in enumerate(Video.objects.all()):
        extract_frames(TEvent.objects.create(video=v).pk)
        inception_index_by_id(TEvent.objects.create(video=v).pk)
        if i ==0: # save travis time by just running detection on first video
            perform_ssd_detection_by_id(TEvent.objects.create(video=v).pk)
            perform_face_detection(TEvent.objects.create(video=v).pk)
            inception_index_regions_by_id(TEvent.objects.create(video=v).pk)
            assign_open_images_text_tags_by_id(TEvent.objects.create(video=v).pk)
        fname = export_video_by_id(TEvent.objects.create(video=v,event_type=TEvent.EXPORT).pk)
        f = SimpleUploadedFile(fname, file("{}/exports/{}".format(settings.MEDIA_ROOT,fname)).read(), content_type="application/zip")
        vimported = handle_uploaded_file(f, fname)
        import_video_by_id(TEvent.objects.create(video=vimported).pk)
    dc = Clusters()
    dc.indexer_algorithm = 'inception'
    dc.included_index_entries_pk = [k.pk for k in IndexEntries.objects.all().filter(algorithm=dc.indexer_algorithm)]
    dc.components = 32
    dc.save()
    clustering_task = TEvent()
    clustering_task.clustering = dc
    clustering_task.event_type = TEvent.CLUSTERING
    clustering_task.operation = 'perform_clustering'
    clustering_task.save()
    perform_clustering(clustering_task.pk)
    query_dict = {
        'image_data_b64':base64.encodestring(file('tests/query.png').read()),
        'indexers':[
            {
                'algorithm':'inception',
                'count':10,
                'approximate':False
            }
        ]
    }
    qp = QueryProcessing()
    qp.create_from_json(query_dict)
    execute_index_subquery(qp.indexer_queries[0].pk)
    query_dict = {
        'image_data_b64':base64.encodestring(file('tests/query.png').read()),
        'indexers':[
            {
                'algorithm':'inception',
                'count':10,
                'approximate':True
            }
        ]
    }
    qp = QueryProcessing()
    qp.create_from_json(query_dict)
    execute_index_subquery(qp.indexer_queries[0].pk)
    server, datasets, detectors = pull_vdn_list(1)
    for k in datasets:
        if k['name'] == 'MSCOCO_Sample_500':
            print 'FOUND MSCOCO SAMPLE'
            import_vdn_dataset_url(VDNServer.objects.get(pk=1),k['url'],None)
    test_backup()