add tfm
change archive
This commit is contained in:
parent
aaf988df53
commit
8b2883625d
@ -1,11 +1,13 @@
|
||||
import logging
|
||||
import time
|
||||
import traceback
|
||||
|
||||
import cupy as cp
|
||||
import zmq
|
||||
|
||||
from flandre.beamformer.das import gen_pwi
|
||||
from flandre.beamformer.das import gen_pwi, TFM
|
||||
from flandre.beamformer.dist import direct_dist
|
||||
from flandre.beamformer.kernels import dist_mat_to_yids
|
||||
from flandre.config import C
|
||||
from flandre.nodes.Node import Node
|
||||
from flandre.utils.Config import DeviceConfig
|
||||
@ -22,6 +24,7 @@ class Beamformer(Node):
|
||||
def __init__(self, level=logging.INFO):
|
||||
super(Beamformer, self).__init__(level=level)
|
||||
self.muxer_req_socket: zmq.Socket = None
|
||||
self.tfm = None
|
||||
|
||||
def custom_setup(self):
|
||||
self.muxer_req_socket: zmq.Socket = self.c.ctx.socket(zmq.REQ)
|
||||
@ -61,6 +64,23 @@ class Beamformer(Node):
|
||||
self.send(RfMatMsg(d2))
|
||||
# self.send(RGB888Msg(d2.__bytes__(), d2.w, d2.h))
|
||||
|
||||
def process_tfm(self, data: RfMat, arg: ImageArgMsg, tfm):
|
||||
d2 = (data
|
||||
.dct_center(arg.dct_center, arg.dct_bandwidth)
|
||||
# .filter_max_persent(icfg.bscan_max / 1000, bid=True)
|
||||
.call(lambda m: m.astype(cp.int16))
|
||||
.call(tfm)
|
||||
.call(cp.asarray, order='C')
|
||||
.argrelextrema(axis=1)
|
||||
.conv_guass(b=arg.beta * 0.01)
|
||||
.crop_center(arg.t_start, arg.t_end)
|
||||
.time_gain_compensation_global((1 - arg.g8 * (1.0 / 128)) ** 2)
|
||||
.rotate90()
|
||||
.grey()
|
||||
.cpu()
|
||||
)
|
||||
self.send(RfMatMsg(d2))
|
||||
|
||||
def loop(self):
|
||||
dc = DeviceConfig()
|
||||
pwi, _, mm = gen_pwi(direct_dist(dc), dc)
|
||||
@ -84,6 +104,7 @@ class Beamformer(Node):
|
||||
arg_msg: ImageArgMsg = Msg.decode_msg(r[:id2])
|
||||
rf_frame_msg: RfFrameMsg = Msg.decode_msg(r[id2:])
|
||||
mat = RfMat.from_rf_frame(rf_frame_msg.rf_frame, 'gpu')
|
||||
logger.info(mat.frame_meta.blake2b)
|
||||
if mat is None:
|
||||
continue
|
||||
if arg_msg.v2 != last_v2 or arg_msg.f_rows != last_f_rows:
|
||||
@ -95,5 +116,12 @@ class Beamformer(Node):
|
||||
try:
|
||||
if mat.seq_meta.mode == RfSequenceMeta.RfSequenceMode.PWI:
|
||||
self.process_pwi(mat, arg_msg, pwi)
|
||||
if mat.seq_meta.mode == RfSequenceMeta.RfSequenceMode.TFM:
|
||||
if self.tfm is None:
|
||||
dc = DeviceConfig(v2=arg_msg.v2, rows=arg_msg.f_rows)
|
||||
self.tfm = TFM(dc)
|
||||
self.tfm.load_yids(dist_mat_to_yids(direct_dist()))
|
||||
self.process_tfm(mat, arg_msg, self.tfm)
|
||||
except Exception as e:
|
||||
logger.warning(e)
|
||||
traceback.print_exc()
|
||||
|
||||
@ -510,6 +510,12 @@ class Adv(QMainWindow, Ui_MainWindow):
|
||||
self.arg.v2 = v
|
||||
self.p.send(self.arg)
|
||||
|
||||
@pyqtSlot(int)
|
||||
def on_sp_f_rows_valueChanged(self, v):
|
||||
if self.sp_f_rows.sender() is None:
|
||||
self.arg.f_rows = v
|
||||
self.p.send(self.arg)
|
||||
|
||||
@pyqtSlot(int)
|
||||
def on_s_beta_valueChanged(self, v):
|
||||
if self.s_beta.sender() is None:
|
||||
|
||||
@ -54,11 +54,26 @@ def to_zip(li: list[tuple[Path, 'RfFrameMeta', list[tuple[Path, str]]]], temp_ds
|
||||
def zip_to_bytes(file: Path, name: int):
|
||||
return zstd.loads(zipfile.ZipFile(file).open(f'{name}.zst').read())
|
||||
|
||||
|
||||
def zip_to_bytes2(file: Path, name: str):
|
||||
return zstd.loads(zipfile.ZipFile(file).open(name).read())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
to_zip()
|
||||
from flandre.utils.RfMeta import RfFrameMeta
|
||||
|
||||
# folder_to_zip()
|
||||
arr = []
|
||||
for i, f in enumerate(Path('/mnt/16T/private_dataset/New Folder/T1,U=30,M=FMC,S=(256 256 4502)').glob('*')):
|
||||
m = RfFrameMeta.from_path(f)
|
||||
m.encoder = 0
|
||||
arr.append((Path(f), m, []))
|
||||
arr.sort(key=lambda item: item[1].robot_x)
|
||||
for i, e in enumerate(arr):
|
||||
e[1].sequence_id = i
|
||||
|
||||
to_zip(arr, TEMP_FOLDER, Path('/mnt/16T/private_dataset/T1,U=30,M=TFM,S=(256 256 4502)'))
|
||||
# to_zip()
|
||||
# pass
|
||||
# cli()
|
||||
# folder_to_zip(Path('/mnt/16T/private_dataset/us/R1,U=30,M=PWI,S=(256 1502)'))
|
||||
|
||||
@ -3,7 +3,8 @@ from pathlib import Path
|
||||
from flandre.utils.RfMeta import RfFrameMeta, RfSequenceMeta
|
||||
from flandre.utils.archive import to_zip
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
def f1():
|
||||
# rr = RfSequenceMeta
|
||||
tempdst = Path('/mnt/16T/private_dataset/ustemp')
|
||||
arr = []
|
||||
@ -28,3 +29,19 @@ if __name__ == '__main__':
|
||||
arg.append((file, meta, farr))
|
||||
|
||||
to_zip(arg, tempdst, Path('/mnt/16T/private_dataset/us/steel-top,U=30,M=PWI,S=(256 1502).zip'))
|
||||
|
||||
def f2():
|
||||
tempdst = Path('/mnt/16T/private_dataset/ustemp')
|
||||
src = Path('/mnt/16T/private_dataset/New Folder/T1,U=30,M=FMC,S=(256 256 1502)/')
|
||||
arr = []
|
||||
for (i,
|
||||
file) in enumerate(Path('/mnt/16T/private_dataset/New Folder/steel-top/').glob('*pwi.bin')):
|
||||
file = Path(file)
|
||||
x, _ = file.name.split('_')
|
||||
r = RfFrameMeta(encoder=0, robot_x=int(x) * 100, robot_y=int(y) * 100)
|
||||
arr.append((file, r))
|
||||
arr.sort(key=lambda item: (item[1].robot_y, item[1].robot_x))
|
||||
print(arr)
|
||||
|
||||
if __name__ == '__main__':
|
||||
f2()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user