add tfm
change archive
This commit is contained in:
parent
aaf988df53
commit
8b2883625d
@ -1,11 +1,13 @@
|
|||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
|
import traceback
|
||||||
|
|
||||||
import cupy as cp
|
import cupy as cp
|
||||||
import zmq
|
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.dist import direct_dist
|
||||||
|
from flandre.beamformer.kernels import dist_mat_to_yids
|
||||||
from flandre.config import C
|
from flandre.config import C
|
||||||
from flandre.nodes.Node import Node
|
from flandre.nodes.Node import Node
|
||||||
from flandre.utils.Config import DeviceConfig
|
from flandre.utils.Config import DeviceConfig
|
||||||
@ -22,6 +24,7 @@ class Beamformer(Node):
|
|||||||
def __init__(self, level=logging.INFO):
|
def __init__(self, level=logging.INFO):
|
||||||
super(Beamformer, self).__init__(level=level)
|
super(Beamformer, self).__init__(level=level)
|
||||||
self.muxer_req_socket: zmq.Socket = None
|
self.muxer_req_socket: zmq.Socket = None
|
||||||
|
self.tfm = None
|
||||||
|
|
||||||
def custom_setup(self):
|
def custom_setup(self):
|
||||||
self.muxer_req_socket: zmq.Socket = self.c.ctx.socket(zmq.REQ)
|
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(RfMatMsg(d2))
|
||||||
# self.send(RGB888Msg(d2.__bytes__(), d2.w, d2.h))
|
# 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):
|
def loop(self):
|
||||||
dc = DeviceConfig()
|
dc = DeviceConfig()
|
||||||
pwi, _, mm = gen_pwi(direct_dist(dc), dc)
|
pwi, _, mm = gen_pwi(direct_dist(dc), dc)
|
||||||
@ -84,6 +104,7 @@ class Beamformer(Node):
|
|||||||
arg_msg: ImageArgMsg = Msg.decode_msg(r[:id2])
|
arg_msg: ImageArgMsg = Msg.decode_msg(r[:id2])
|
||||||
rf_frame_msg: RfFrameMsg = 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')
|
mat = RfMat.from_rf_frame(rf_frame_msg.rf_frame, 'gpu')
|
||||||
|
logger.info(mat.frame_meta.blake2b)
|
||||||
if mat is None:
|
if mat is None:
|
||||||
continue
|
continue
|
||||||
if arg_msg.v2 != last_v2 or arg_msg.f_rows != last_f_rows:
|
if arg_msg.v2 != last_v2 or arg_msg.f_rows != last_f_rows:
|
||||||
@ -95,5 +116,12 @@ class Beamformer(Node):
|
|||||||
try:
|
try:
|
||||||
if mat.seq_meta.mode == RfSequenceMeta.RfSequenceMode.PWI:
|
if mat.seq_meta.mode == RfSequenceMeta.RfSequenceMode.PWI:
|
||||||
self.process_pwi(mat, arg_msg, 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:
|
except Exception as e:
|
||||||
logger.warning(e)
|
logger.warning(e)
|
||||||
|
traceback.print_exc()
|
||||||
|
|||||||
@ -510,6 +510,12 @@ class Adv(QMainWindow, Ui_MainWindow):
|
|||||||
self.arg.v2 = v
|
self.arg.v2 = v
|
||||||
self.p.send(self.arg)
|
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)
|
@pyqtSlot(int)
|
||||||
def on_s_beta_valueChanged(self, v):
|
def on_s_beta_valueChanged(self, v):
|
||||||
if self.s_beta.sender() is None:
|
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):
|
def zip_to_bytes(file: Path, name: int):
|
||||||
return zstd.loads(zipfile.ZipFile(file).open(f'{name}.zst').read())
|
return zstd.loads(zipfile.ZipFile(file).open(f'{name}.zst').read())
|
||||||
|
|
||||||
|
|
||||||
def zip_to_bytes2(file: Path, name: str):
|
def zip_to_bytes2(file: Path, name: str):
|
||||||
return zstd.loads(zipfile.ZipFile(file).open(name).read())
|
return zstd.loads(zipfile.ZipFile(file).open(name).read())
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
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
|
# pass
|
||||||
# cli()
|
# cli()
|
||||||
# folder_to_zip(Path('/mnt/16T/private_dataset/us/R1,U=30,M=PWI,S=(256 1502)'))
|
# 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.RfMeta import RfFrameMeta, RfSequenceMeta
|
||||||
from flandre.utils.archive import to_zip
|
from flandre.utils.archive import to_zip
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
|
def f1():
|
||||||
# rr = RfSequenceMeta
|
# rr = RfSequenceMeta
|
||||||
tempdst = Path('/mnt/16T/private_dataset/ustemp')
|
tempdst = Path('/mnt/16T/private_dataset/ustemp')
|
||||||
arr = []
|
arr = []
|
||||||
@ -28,3 +29,19 @@ if __name__ == '__main__':
|
|||||||
arg.append((file, meta, farr))
|
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'))
|
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