def _getdata(self):
     _, mq_name = mq_dataset.build_key(None, out_queue)
     data_list = mq_dataset.get_jobs(mq_name, job_batch_size=batch_size)
     if data_list is None or len(data_list) <= 0:
         return []
     data_list = [(msg_id, None, data) for msg_id, data in data_list]
     return data_list
Beispiel #2
0
        def test_02_listen_result_exist(self):
            _listen_result_exist()
            ###
            #build disk fn
            exist_list = [os.path.basename(x) for x in os.listdir(save_dir)]
            build_list = [
                x.split("source_id:")[-1] + "_final_res.jpg"
                for x, _ in self.msg_list
            ]

            self.assertTrue(set(exist_list) == set(build_list))
            ## assert save success
            for msg_id, _ in self.msg_list:
                msg_id_redis, _ = mq_dataset.build_key(msg_id, in_queue)
                self.assertTrue(Jconfig.redis_handle.exists(msg_id_redis))
Beispiel #3
0
def _listen_result_exist():
    def _post_process(msg_id, info_path):
        if os.path.isfile(info_path):
            data = cv2.imread(info_path)
            info_x = (msg_id, data)
            msg_save_list = mq_dataset.intermediate_job_finish(
                in_queue, [info_x])

    ##scan ....
    #0_final_res.jpg
    ls_list = [(x.replace("_final_res.jpg", ""), os.path.join(save_dir, x))
               for x in os.listdir(save_dir)]
    #[msg_id ,path ]
    for msg_id, path_info in ls_list:

        msg_id_redis, _ = mq_dataset.build_key(msg_id, in_queue)
        if not Jconfig.redis_handle.exists(msg_id_redis):
            _post_process(msg_id_redis, path_info)
Beispiel #4
0
def _process(data_list):
    #data is combine [navice ,mask1.mask2 ,backgrd]
    #cmd_list = []
    for msg_id_c, _, data in data_list:
        msg_id, _ = mq_dataset.build_key(msg_id_c, "tmp")
        msg_id = msg_id.replace("type:image,job:tmp,source_id:", "")
        fn_1_list = [
            os.path.join(scan_dir, msg_id + "_" + x) for x in
            ["c_mask.jpg", "c_mask_dilated.jpg", "naive.jpg", "target.jpg"]
        ]

        x1 = 0
        print("total find ..", len(fn_1_list), data.shape)
        for fn in fn_1_list:
            data_x = data[x1:x1 + 1]
            assert len(data_x.shape) == 4
            data_x = np.squeeze(data_x, axis=0)
            assert data_x.shape[2] == 3
            cv2.imwrite(fn, data_x)
            x1 += 1
Beispiel #5
0
        def test_mmq(self):
            import sys ,os 
            p=sys.argv[1]
            if not os.path.isfile(p) :
                raise Exception("not exist")
            
            print ("will read",p)
#             image=cv2.imread("./images/295b37832c0db6470a855640d6510c04.jpg")
            image=cv2.imread(p)
#             target_image=cv2.imread("./images/19064748793_bb942deea1_k.jpg")
            print ("send...")
            msg_id_list = mq_dataset.intermediate_job_finish("detectron", [image])
             
            msg_id = msg_id_list[0]
            furture_id , _= mq_dataset.build_key(msg_id,"detectron_result")
             
             
            print (furture_id,"222")
            while True :
                if mq_dataset.is_exist(furture_id):
                    get_data=mq_dataset.get_msg_info(furture_id)
                    _,matting_list = get_data
                    
                    bl=[np.zeros(matting_list.shape[1:],dtype=np.uint8)]
                    for i,m in enumerate(matting_list):
                        m=(m//255)*(i+1)
                        bl.append(m)
                        mm=m.copy()
                        mm[m!=0]=255
                    print (len(bl),len(matting_list))
                    print (np.unique(np.array(bl)))
                    ###cover mask
                    source_img = image.copy()
                    new_img = util_cover_mask(image,bl) 
                    img,mask = choice_mask_floors(new_img,np.array(bl) )
                    
                    cv2.imwrite("t1_img.jpg",image)
                    cv2.imwrite("t1_img_mask.png",mask)
                    print ("save success")
                    break