def get_random_image(request): # we can change this N_CAT = 2 cats = anns.distinct('category_id') img_ids = [] while len(img_ids) == 0: # sample N_CAT categories sample_cats = sample(cats, N_CAT) # image ids with either combination of the N_CAT categories img_pool = [] for cat in sample_cats: img_ids = anns.find({'category_id': cat}, {'image_id': 1, '_id': 0}) img_ids = [img_id['image_id'] for img_id in img_ids] img_pool.append(set(img_ids)) img_ids = set(img_pool[0]) # print img_ids for i, k in enumerate(img_pool): if i == 0: continue img_ids = img_ids.intersection(img_pool[i]) # print img_ids img_ids = list(img_ids) # pick a random images rand_image_id = sample(img_ids, 1)[0] img = build_img_dict(rand_image_id, anns, ocr, images, categories) return HttpResponse(json.dumps(img))
def get_random_ocr(request): # sample OCR ocr_imgs = ocr.distinct('image_id') rand_image_id = sample(ocr_imgs, 1)[0] img = build_img_dict(rand_image_id, anns, ocr, images, categories) return HttpResponse(json.dumps(img))
def get_img(request, img_id): iid = int(img_id) img_out = build_img_dict(iid, anns, ocr, images, categories) return HttpResponse(json.dumps(img_out))