first opti render
This commit is contained in:
parent
2393a5cb0f
commit
0760f92064
@ -63,6 +63,17 @@ class SherpaNcnnAsr(AsrBase):
|
||||
logger.info(f'_recognize_loop')
|
||||
print(f'_recognize_loop')
|
||||
|
||||
while self._stop_event.is_set():
|
||||
logger.info(f'_recognize_loop000')
|
||||
self._notify_complete('介绍中国5000年历史文学')
|
||||
logger.info(f'_recognize_loop111')
|
||||
segment_id += 1
|
||||
time.sleep(150)
|
||||
logger.info(f'_recognize_loop222')
|
||||
logger.info(f'_recognize_loop exit')
|
||||
|
||||
|
||||
'''
|
||||
with sd.InputStream(channels=1, dtype="float32", samplerate=self._sample_rate) as s:
|
||||
while self._stop_event.is_set():
|
||||
samples, _ = s.read(self._samples_per_read) # a blocking read
|
||||
@ -83,15 +94,6 @@ class SherpaNcnnAsr(AsrBase):
|
||||
self._notify_complete(result)
|
||||
segment_id += 1
|
||||
self._recognizer.reset()
|
||||
'''
|
||||
|
||||
while self._stop_event.is_set():
|
||||
logger.info(f'_recognize_loop000')
|
||||
self._notify_complete('介绍中国5000年历史文学')
|
||||
logger.info(f'_recognize_loop111')
|
||||
segment_id += 1
|
||||
time.sleep(150)
|
||||
logger.info(f'_recognize_loop222')
|
||||
logger.info(f'_recognize_loop exit')
|
||||
|
||||
'''
|
||||
|
||||
|
@ -48,7 +48,7 @@ class HumanRender(AudioHandler):
|
||||
logging.info('human render run')
|
||||
while self._exit_event.is_set() and self._is_running:
|
||||
self._run_step()
|
||||
delay = 0.04
|
||||
delay = 0.02
|
||||
time.sleep(delay)
|
||||
|
||||
logging.info('human render exit')
|
||||
|
@ -17,14 +17,53 @@ logger = logging.getLogger(__name__)
|
||||
current_file_path = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
|
||||
def cal_box(inv_m, p):
|
||||
x = inv_m[0][0] * p[0] + inv_m[0][1] * p[1] + inv_m[0][2]
|
||||
y = inv_m[1][0] * p[0] + inv_m[1][1] * p[1] + inv_m[1][2]
|
||||
return x, y
|
||||
|
||||
|
||||
def img_warp_back_inv_m(img, img_to, inv_m):
|
||||
h_up, w_up, c = img_to.shape
|
||||
mask = np.ones_like(img).astype(np.float32)
|
||||
h_up, w_up, c = img.shape
|
||||
# mask = np.ones_like(img).astype(np.float32)
|
||||
# inv_mask = cv2.warpAffine(mask, inv_m, (w_up, h_up))
|
||||
# inv_img = cv2.warpAffine(img, inv_m, (w_up, h_up))
|
||||
# mask_indices = inv_mask == 1
|
||||
# if 4 == c:
|
||||
# img_to[:, :, :3][mask_indices] = inv_img[mask_indices]
|
||||
# else:
|
||||
# img_to[inv_mask == 1] = inv_img[inv_mask == 1]
|
||||
# return img_to
|
||||
cv2.imwrite('./face.png', img)
|
||||
tx = inv_m[0][2]
|
||||
ty = inv_m[1][2]
|
||||
|
||||
inv_m[0][2] = 0
|
||||
inv_m[1][2] = 0
|
||||
|
||||
p0 = cal_box(inv_m, (0, 0))
|
||||
p1 = cal_box(inv_m, (w_up, 0))
|
||||
p2 = cal_box(inv_m, (w_up, h_up))
|
||||
p3 = cal_box(inv_m, (0, h_up))
|
||||
lp = (min(p0[0], p3[0]), min(p0[1], p1[1]))
|
||||
rp = (max(p2[0], p1[0]), min(p2[1], p3[1]))
|
||||
|
||||
w_up = int(rp[0] - lp[0])
|
||||
h_up = int(rp[1] - lp[1])
|
||||
|
||||
print(f'src_x:{w_up}, src_y:{h_up}')
|
||||
inv_m[0][2] = 0
|
||||
inv_m[1][2] = 0
|
||||
|
||||
mask = np.ones_like(img, dtype=np.float32)
|
||||
inv_mask = cv2.warpAffine(mask, inv_m, (w_up, h_up))
|
||||
inv_img = cv2.warpAffine(img, inv_m, (w_up, h_up))
|
||||
mask_indices = inv_mask == 1
|
||||
if 4 == c:
|
||||
img_to[:, :, :3][mask_indices] = inv_img[mask_indices]
|
||||
cv2.imwrite('./combine_frame.png', inv_img[inv_mask == 1])
|
||||
cv2.imwrite('./combine_frame-1.png', img_to)
|
||||
|
||||
if c == 4:
|
||||
# img_to[30:h, 30:w][:, :, :3] = img
|
||||
img_to[:, :, :3][inv_mask == 1] = inv_img[inv_mask == 1]
|
||||
else:
|
||||
img_to[inv_mask == 1] = inv_img[inv_mask == 1]
|
||||
return img_to
|
||||
@ -58,13 +97,13 @@ class PyGameUI:
|
||||
def __init__(self):
|
||||
self._human_context = None
|
||||
self._queue = None
|
||||
self.screen_ = pygame.display.set_mode((1920, 1080), HWSURFACE | DOUBLEBUF | RESIZABLE)
|
||||
self.screen_ = pygame.display.set_mode((920, 860), HWSURFACE | DOUBLEBUF | RESIZABLE)
|
||||
self.clock = pygame.time.Clock()
|
||||
|
||||
background = os.path.join(current_file_path, '..', 'data', 'background', 'background.jpg')
|
||||
logger.info(f'background: {background}')
|
||||
self._background = pygame.image.load(background).convert()
|
||||
self.background_display_ = pygame.transform.scale(self._background, (1920, 1080))
|
||||
self.background_display_ = pygame.transform.scale(self._background, (920, 860))
|
||||
self._human_image = None
|
||||
self.running = True
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user