Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.1.3 #24

Merged
merged 115 commits into from
Jul 10, 2023
Merged
Changes from 1 commit
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
aa076d1
v0.0.1 of DepthaiViewer, WIP (#1)
zrezke May 3, 2023
dba1ddb
Fix rerun lints
zrezke May 3, 2023
893a8f7
rename binary, always start with memory-limit, pin depthai dependenci…
zrezke May 3, 2023
4f63bd8
remove compiler warnings
zrezke May 3, 2023
9d40325
fix memory leak when app is in background
zrezke May 4, 2023
9d85e10
Custom viewport UI (#4)
zrezke May 8, 2023
cd44a4b
MJPEG encode image frames if connected to a PoE device. Only add magn…
zrezke May 9, 2023
93383b4
Styling (#6)
zrezke May 11, 2023
fb52075
Tabify all panels (except for blueprint) (#7)
zrezke May 18, 2023
15bd4f0
pass lint checks and bugfixes
zrezke May 18, 2023
cfccd48
forgot to sort imports
zrezke May 18, 2023
ed8217e
Fix mypy lint (TODO: Proper typing, especially in the comms from back…
zrezke May 18, 2023
b7e2e42
pylints and fix Queue typehinting
zrezke May 18, 2023
60849c9
fix doc build
zrezke May 18, 2023
4860bfd
try to pass pylints with py.typed
zrezke May 18, 2023
8b084bd
ignore misc mypy errors
zrezke May 18, 2023
6dba2a8
forgot to run black formatter
zrezke May 18, 2023
dc6d8ed
switch back to old ci
zrezke May 18, 2023
524ad91
change version to 0.0.1
zrezke May 18, 2023
5d355b4
format pyproject.toml
zrezke May 18, 2023
acd6c73
add back check_version to version_util.py
zrezke May 18, 2023
5872427
switch to normal runners
zrezke May 18, 2023
5f3b4dd
try cache-apt-pkgs-action@1.2.4
zrezke May 19, 2023
b127706
Merge branch 'release-0.0.1' of github.com:luxonis/depthai-viewer int…
zrezke May 19, 2023
257c7ef
sync mono camera settings
zrezke May 19, 2023
f192bcb
fix web build
zrezke May 19, 2023
51a6330
Update scripts/version_util.py
zrezke May 19, 2023
a772a03
Some fixes (#11)
zrezke May 19, 2023
408d125
install depthai_viewer instead of rerun-sdk for pytest
zrezke May 19, 2023
565cf46
Updated design and improvements
zrezke May 19, 2023
8e9617e
get rid of rerun_sdk and rerun_bindings, now just depthai_viewer and …
zrezke May 19, 2023
9cb6556
hopefuly fix ci
zrezke May 19, 2023
03a821e
hopefuly fix ci
zrezke May 19, 2023
f92813c
a bunch of fixes and improvements
zrezke May 19, 2023
73684ec
disable smart layout updater for now
zrezke May 19, 2023
52cf1a1
bugfixes
zrezke May 19, 2023
ee8d7e2
Update README.md
zrezke May 19, 2023
7172e26
Patches
zrezke May 19, 2023
cf0132c
WIP moving away from relying on board sockets. This will enable us to…
zrezke May 24, 2023
7f8ac78
Merge branch 'release-0.0.2' of github.com:luxonis/depthai-viewer int…
zrezke May 24, 2023
0bd8fdd
fix merge error
zrezke May 24, 2023
9b64915
LR fixes, and other stuff
zrezke May 25, 2023
e3852c9
a few fixes, viewer seems pretty stable on any device
zrezke May 25, 2023
8f18b96
auto layout
zrezke May 25, 2023
d701f4b
Make blueprint work
zrezke May 25, 2023
ecf6a0e
bigfixes for adding and removing space views, ai model board socket c…
zrezke May 26, 2023
5b8b731
bump version, fixes, Install deps in venv and use the deps from venv …
zrezke May 26, 2023
30f0cf9
Fix for windows (and linux)
zrezke May 26, 2023
f595f39
fixes
zrezke May 26, 2023
33be2e4
Changelog
zrezke May 26, 2023
06128d9
Merge branch 'main' of github.com:luxonis/depthai-viewer into release…
zrezke May 27, 2023
5964055
ci checks
zrezke May 27, 2023
d711152
clear by cutoff only when not targeting wasm
zrezke May 27, 2023
ea3dbc2
Use sysconfig instead of site for getting site-packages, change app icon
zrezke May 29, 2023
424d83a
No more (ignored) exceptions on startup
zrezke May 29, 2023
5440e35
Fix pylints, bump depthai_sdk to latest develop
zrezke May 29, 2023
7cb60f6
disable depth if no legit stereo pairs are available
zrezke May 29, 2023
54e01be
Merge branch 'release-0.0.3' of github.com:luxonis/depthai-viewer int…
zrezke May 29, 2023
7183c17
Bump version
zrezke May 29, 2023
e7c7725
remove unused variable
zrezke May 29, 2023
ebb20cc
Fix duplicate resolutions, improve first startup virtual environment …
zrezke May 30, 2023
2bdc633
Fix xlink plots a bit
zrezke May 30, 2023
beade58
disable playback commands
zrezke May 30, 2023
3514ee5
focus on camera by default
zrezke May 30, 2023
0423bbe
Changelog
zrezke May 30, 2023
1d62858
bump version
zrezke May 30, 2023
ea7390c
Improved first time startup stability
zrezke May 31, 2023
d930b99
Prioritize camera images over depth image when creating albedo texture
zrezke May 31, 2023
ab01b31
Changed logos and get depthai_sdk from the artifactory
zrezke Jun 1, 2023
1ea21b9
changelog
zrezke Jun 1, 2023
28652b1
forgot to run pylints
zrezke Jun 1, 2023
ab73ae7
Improved tensor logging performance
zrezke Jun 1, 2023
3eb0369
Don't show 2D image if the 3d view has a pointcloud
zrezke Jun 5, 2023
ad8662b
fix memory leak, loose a bit of performance because of tobytes
zrezke Jun 5, 2023
5dbbd58
NV12 support! (#18)
zrezke Jun 14, 2023
eeee92e
Backend refactor
zrezke Jun 14, 2023
0aa9180
Better layout
zrezke Jun 15, 2023
ec54fc0
Nicer behavior on device select
zrezke Jun 15, 2023
c0acec4
Fix Depth and Image spawning in seperate tabs
zrezke Jun 16, 2023
1a4df0e
refactor, use sdk create_queue to get better performance
zrezke Jun 16, 2023
a1e4402
add sdk dependency
zrezke Jun 16, 2023
f23ed70
moved back to callbacks
zrezke Jun 18, 2023
5fb363a
sync cameras and depth, decode jpeg on the backend using turbojpeg (s…
zrezke Jun 19, 2023
55b3b8d
prerelease build to test on multiple platforms
zrezke Jun 19, 2023
4652d26
rerun lints
zrezke Jun 19, 2023
995418d
mypy lints
zrezke Jun 19, 2023
5a3d984
mypy lints
zrezke Jun 19, 2023
75838dc
imports
zrezke Jun 19, 2023
be4abda
match alpha and beta version tags
zrezke Jun 19, 2023
7b647a4
remove openh264 for now
zrezke Jun 19, 2023
7d02c27
- Fixed mono depth cloud albedo textures sampling.
zrezke Jun 20, 2023
52b4833
fixes
zrezke Jun 20, 2023
52e0c6e
Merge branch 'main' of github.com:luxonis/depthai-viewer into release…
zrezke Jun 20, 2023
d59b14f
ISP scaled resolutions, better UX, handled depthai errors
zrezke Jun 20, 2023
a191ad6
Delayed drag values, start filling in the readme
zrezke Jun 21, 2023
3c59b56
Nicer auto layout. Split the depth image and (aligned) image into two…
zrezke Jun 21, 2023
4cc0664
Remove point depth picking outline for now
zrezke Jun 21, 2023
51da11c
Warnings for USB2 and PoE modes
zrezke Jun 21, 2023
232c42c
Removed turbo jpeg dependency, fill in changelog
zrezke Jun 21, 2023
b2fc360
mypy lint
zrezke Jun 21, 2023
1eecba5
Fix shader compilation for metal
zrezke Jun 22, 2023
41d2555
Added sentry sdk
zrezke Jun 27, 2023
a4f6389
Merge branch 'main' of github.com:luxonis/depthai-viewer into release…
zrezke Jun 27, 2023
288436c
Updated windows and mac icons
zrezke Jun 28, 2023
1ac3d38
use sentry
zrezke Jun 28, 2023
8c18ace
Only create the camera nodes that are actually needed
zrezke Jun 30, 2023
0651bb7
don't build web for now
zrezke Jul 3, 2023
4eec6c0
Fix Pydantic
zrezke Jul 3, 2023
d71fb36
changelog
zrezke Jul 3, 2023
3294f57
- Fix stereo depth creation for OAK-D-Pro-W 97, and potentially others
zrezke Jul 6, 2023
049c6c2
Make the pypi readme a bit nicer
zrezke Jul 6, 2023
453e699
Merge branch 'main' into release-0.1.2
zrezke Jul 6, 2023
48a4190
Fix for OAK-1 MAX
zrezke Jul 7, 2023
74e295f
Add from String match arms for new board sockets
zrezke Jul 10, 2023
80a9fd2
Merge branch 'main' into release-0.1.3
zrezke Jul 10, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
a few fixes, viewer seems pretty stable on any device
  • Loading branch information
zrezke committed May 25, 2023
commit e3852c999fdc233bfe40de9e5b00193e03caa923
1 change: 1 addition & 0 deletions crates/re_ui/src/lib.rs
Original file line number Diff line number Diff line change
@@ -171,6 +171,7 @@ impl ReUi {
egui::ComboBox::from_id_source(label)
.selected_text(selected_text)
.width(Self::box_width())
.wrap(true)
.show_ui(ui, menu_contents)
.response
},
2 changes: 1 addition & 1 deletion crates/re_viewer/src/app.rs
Original file line number Diff line number Diff line change
@@ -851,7 +851,7 @@ impl App {
}

for log_db in self.log_dbs.values_mut() {
log_db.clear_by_cutoff(1e9 as i64);
log_db.clear_by_cutoff(2e9 as i64);
}

use re_format::format_bytes;
78 changes: 51 additions & 27 deletions crates/re_viewer/src/depthai/depthai.rs
Original file line number Diff line number Diff line change
@@ -35,14 +35,14 @@ impl Default for CameraConfig {
impl CameraConfig {
pub fn left() -> Self {
Self {
board_socket: CameraBoardSocket::LEFT,
board_socket: CameraBoardSocket::CAM_B,
..Default::default()
}
}

pub fn right() -> Self {
Self {
board_socket: CameraBoardSocket::RIGHT,
board_socket: CameraBoardSocket::CAM_C,
..Default::default()
}
}
@@ -73,8 +73,13 @@ impl Default for CameraBoardSocket {
}

impl CameraBoardSocket {
pub fn depth_align_options() -> Vec<Self> {
return vec![Self::RGB, Self::LEFT, Self::RIGHT];
pub fn display_name(&self, camera_features: &[CameraFeatures]) -> String {
if let Some(cam) = camera_features.iter().find(|cam| cam.board_socket == *self) {
if !cam.name.is_empty() {
return format!("{} ({self:?})", cam.name);
}
}
format!("{self:?}")
}
}

@@ -157,16 +162,8 @@ pub struct DeviceProperties {
}

impl DeviceProperties {
pub fn has_right_camera(&self) -> bool {
self.has_cam_with_name("right")
}

pub fn has_left_camera(&self) -> bool {
self.has_cam_with_name("left")
}

fn has_cam_with_name(&self, name: &str) -> bool {
self.cameras.iter().any(|cam| cam.name == name)
pub fn has_stereo_pairs(&self) -> bool {
!self.stereo_pairs.is_empty()
}
}

@@ -237,16 +234,23 @@ impl Default for DepthConfig {
}

impl DepthConfig {
pub fn from_camera_features(camera_features: &[CameraFeatures]) -> Option<Self> {
let mut config = Self::default();
let Some(cam_with_stereo_pair) = camera_features.iter().find(|feat| !feat.stereo_pairs.is_empty()) else {
return None
};
let stereo_pair = cam_with_stereo_pair.stereo_pairs[0];
config.stereo_pair = (cam_with_stereo_pair.board_socket, stereo_pair);
config.align = cam_with_stereo_pair.board_socket;
Some(config)
}

pub fn default_as_option() -> Option<Self> {
Some(Self::default())
}

pub fn only_runtime_configs_differ(&self, other: &DepthConfig) -> bool {
self.lr_check == other.lr_check
&& self.align == other.align
&& self.extended_disparity == other.extended_disparity
&& self.subpixel_disparity == other.subpixel_disparity
&& self != other
self.align == other.align && self != other
}
}

@@ -272,15 +276,21 @@ impl Default for DeviceConfig {
}

impl DeviceConfig {
pub fn create_device_config_from_camera_features(
camera_features: &Vec<CameraFeatures>,
) -> DeviceConfig {
pub fn from_camera_features(camera_features: &Vec<CameraFeatures>) -> DeviceConfig {
let mut config = DeviceConfig::default();
for features in camera_features {
config.cameras.push(CameraConfig {
name: features.name.clone(),
fps: 30, // TODO(filip): Do performance improvements to allow higher fps
resolution: features.resolutions.last().unwrap().clone(),
resolution: *features
.resolutions
.iter()
.filter(|res| {
res != &&CameraSensorResolution::THE_4_K
&& res != &&CameraSensorResolution::THE_12_MP
})
.last()
.unwrap_or(&CameraSensorResolution::THE_800_P),
board_socket: features.board_socket,
stream_enabled: true,
kind: if features.supported_types.contains(&CameraSensorKind::COLOR) {
@@ -290,6 +300,8 @@ impl DeviceConfig {
},
});
}
config.depth = DepthConfig::from_camera_features(camera_features);
config.ai_model = AiModel::from_camera_features(camera_features);
config
}
}
@@ -416,6 +428,14 @@ impl AiModel {
camera: CameraBoardSocket::CAM_B,
}
}

pub fn from_camera_features(camera_features: &[CameraFeatures]) -> Self {
let mut model = Self::default();
if let Some(cam) = camera_features.iter().find(|cam| cam.name == "color") {
model.camera = cam.board_socket;
}
model
}
}

impl PartialEq for AiModel {
@@ -572,6 +592,7 @@ impl State {
self.subscriptions = subscriptions.clone();
}

/// Returns available devices
pub fn get_devices(&mut self) -> Vec<DeviceId> {
// Return stored available devices or fetch them from the api (they get fetched every 30s via poller)
if let Some(devices) = self.devices_available.clone() {
@@ -580,6 +601,11 @@ impl State {
Vec::new()
}

/// Returns cameras connected to the selected device
pub fn get_connected_cameras(&self) -> &Vec<CameraFeatures> {
&self.selected_device.cameras
}

pub fn shutdown(&mut self) {
self.backend_comms.shutdown();
}
@@ -651,9 +677,7 @@ impl State {
self.selected_device = device;
self.backend_comms.set_subscriptions(&self.subscriptions);
self.modified_device_config =
DeviceConfig::create_device_config_from_camera_features(
&self.selected_device.cameras,
);
DeviceConfig::from_camera_features(&self.selected_device.cameras);
// self.backend_comms
// .set_pipeline(&self.applied_device_config.config, false);
self.set_update_in_progress(false);
@@ -705,7 +729,7 @@ impl State {
config.depth = None;
}

if !self.selected_device.has_left_camera() || !self.selected_device.has_right_camera() {
if !self.selected_device.has_stereo_pairs() {
config.depth = None;
}

44 changes: 20 additions & 24 deletions crates/re_viewer/src/ui/device_settings_panel.rs
Original file line number Diff line number Diff line change
@@ -161,7 +161,12 @@ impl DeviceSettingsPanel {
) {
let primary_700 = ctx.re_ui.design_tokens.primary_700;
egui::CollapsingHeader::new(
egui::RichText::new(format!("{:?}", camera_features.board_socket)).color(primary_700),
egui::RichText::new(
camera_features
.board_socket
.display_name(ctx.depthai_state.get_connected_cameras()),
)
.color(primary_700),
)
.default_open(true)
.show(ui, |ui| {
@@ -206,6 +211,7 @@ impl DeviceSettingsPanel {
fn device_configuration_ui(ctx: &mut ViewerContext<'_>, ui: &mut egui::Ui) {
let mut device_config = ctx.depthai_state.modified_device_config.clone();
let primary_700 = ctx.re_ui.design_tokens.primary_700;
let connected_cameras = ctx.depthai_state.get_connected_cameras().clone();

ctx.re_ui
.styled_scrollbar(ui, re_ui::ScrollAreaDirection::Vertical, [false; 2], |ui| {
@@ -217,8 +223,7 @@ impl DeviceSettingsPanel {
.show(ui, |ui| {
ui.horizontal(|ui| {
ui.vertical(|ui| {
// for cam in ctx.depthai_state
for cam in ctx.depthai_state.selected_device.cameras.clone() {
for cam in connected_cameras.clone() {
let Some(config) = device_config.cameras.iter_mut().find(|conf| conf.board_socket == cam.board_socket) else {
continue;
};
@@ -245,9 +250,9 @@ impl DeviceSettingsPanel {
}
},
);
ctx.re_ui.labeled_combo_box(ui, "Run on", format!("{:?}", device_config.ai_model.camera), true, |ui| {
for cam in &ctx.depthai_state.selected_device.cameras {
ui.selectable_value(&mut device_config.ai_model.camera, cam.board_socket, format!("{:?}", cam.board_socket));
ctx.re_ui.labeled_combo_box(ui, "Run on", device_config.ai_model.camera.display_name(&connected_cameras), false, |ui| {
for cam in &connected_cameras {
ui.selectable_value(&mut device_config.ai_model.camera, cam.board_socket, cam.board_socket.display_name(&connected_cameras));
}
});
});
@@ -260,24 +265,22 @@ impl DeviceSettingsPanel {
depth.align = depthai::CameraBoardSocket::AUTO;
}

let has_left_cam = ctx.depthai_state.selected_device.has_left_camera();
let has_right_cam = ctx.depthai_state.selected_device.has_left_camera();
ui.add_enabled_ui(has_right_cam && has_left_cam, |ui| {
ui.add_enabled_ui(ctx.depthai_state.selected_device.has_stereo_pairs(), |ui| {
egui::CollapsingHeader::new(
egui::RichText::new("Depth Settings").color(primary_700),
)
.open(if !(has_right_cam && has_left_cam) {
.open(if !ctx.depthai_state.selected_device.has_stereo_pairs() {
Some(false)
} else {
None
})
.show(ui, |ui| {
ui.vertical(|ui| {
ui.set_width(CONFIG_UI_WIDTH);

ctx.re_ui.labeled_combo_box(ui, "Camera Pair", format!("{:?}", depth.stereo_pair), true, |ui| {
let (cam1, cam2) = depth.stereo_pair;
ctx.re_ui.labeled_combo_box(ui, "Camera Pair", format!("{}, {}", cam1.display_name(&connected_cameras), cam2.display_name(&connected_cameras)), false, |ui| {
for pair in &ctx.depthai_state.selected_device.stereo_pairs {
ui.selectable_value(&mut depth.stereo_pair, *pair, format!("{pair:?}"));
ui.selectable_value(&mut depth.stereo_pair, *pair, format!("{} {}", pair.0.display_name(&connected_cameras), pair.1.display_name(&connected_cameras)));
}
});
ctx.re_ui.labeled_checkbox(
@@ -288,22 +291,15 @@ impl DeviceSettingsPanel {
ctx.re_ui.labeled_combo_box(
ui,
"Align to",
format!("{:?}", depth.align),
depth.align.display_name(ctx.depthai_state.get_connected_cameras()),
false,
|ui| {
for align in
depthai::CameraBoardSocket::depth_align_options(
)
for align in &connected_cameras
{
if align == depthai::CameraBoardSocket::CENTER
&& !depth.lr_check
{
continue;
}
ui.selectable_value(
&mut depth.align,
align,
format!("{align:?}"),
align.board_socket,
align.board_socket.display_name(&connected_cameras),
);
}
},
1 change: 0 additions & 1 deletion rerun_py/depthai_viewer/_backend/config_api.py
Original file line number Diff line number Diff line change
@@ -149,7 +149,6 @@ async def ws_api(websocket: WebSocketServerProtocol) -> None:
print("Device props is non!")
await websocket.send(error("Unknown error", ErrorAction.FULL_RESET))
continue
print("Sending device props!")
device_properties = result.get("device_properties", None)
await websocket.send(
json.dumps({"type": MessageType.DEVICE, "data": device_properties.dict() if device_properties else DeviceProperties(id="").dict()}) # type: ignore[union-attr]
1 change: 1 addition & 0 deletions rerun_py/depthai_viewer/_backend/device_configuration.py
Original file line number Diff line number Diff line change
@@ -256,6 +256,7 @@ def dict(self, *args, **kwargs) -> Dict[str, Any]: # type: ignore[no-untyped-de
(640, 400): CameraSensorResolution.THE_400_P,
(1280, 720): CameraSensorResolution.THE_720_P,
(1280, 800): CameraSensorResolution.THE_800_P,
(1920, 1080): CameraSensorResolution.THE_1080_P,
(1920, 1200): CameraSensorResolution.THE_1200_P,
(3840, 2160): CameraSensorResolution.THE_4_K,
(4056, 3040): CameraSensorResolution.THE_12_MP,
2 changes: 1 addition & 1 deletion rerun_py/depthai_viewer/_backend/main.py
Original file line number Diff line number Diff line change
@@ -107,7 +107,7 @@ def get_device_properties(self) -> DeviceProperties:
resolutions=[resolution_to_enum[(conf.width, conf.height)] for conf in cam.configs],
supported_types=cam.supportedTypes,
stereo_pairs=self._get_possible_stereo_pairs_for_cam(cam, connected_cam_features),
name=cam.name,
name=cam.name.capitalize(),
)
)
device_properties.stereo_pairs = list(
10 changes: 5 additions & 5 deletions rerun_py/depthai_viewer/_backend/sdk_callbacks.py
Original file line number Diff line number Diff line change
@@ -99,7 +99,7 @@ def build_callback(
return lambda packet: callback(packet, args) # type: ignore[arg-type]

def _on_camera_frame(self, packet: FramePacket, args: CameraCallbackArgs) -> None:
viewer.log_rigid3(f"{args.board_socket.name}", child_from_parent=([0, 0, 0], self.ahrs.Q), xyz="RDF")
viewer.log_rigid3(f"{args.board_socket.name}/transform", child_from_parent=([0, 0, 0], self.ahrs.Q), xyz="RDF")
h, w = packet.frame.shape[:2]
child_from_parent: NDArray[np.float32]
try:
@@ -108,7 +108,7 @@ def _on_camera_frame(self, packet: FramePacket, args: CameraCallbackArgs) -> Non
f_len = (w * h) ** 0.5
child_from_parent = np.array([[f_len, 0, w / 2], [0, f_len, h / 2], [0, 0, 1]])
viewer.log_pinhole(
f"{args.board_socket.name}/camera/",
f"{args.board_socket.name}/transform/camera/",
child_from_parent=child_from_parent,
width=w,
height=h,
@@ -118,7 +118,7 @@ def _on_camera_frame(self, packet: FramePacket, args: CameraCallbackArgs) -> Non
if args.image_kind == dai.CameraSensorType.MONO
else cv2.cvtColor(packet.frame, cv2.COLOR_BGR2RGB)
)
viewer.log_image(f"{args.board_socket.name}/camera/image", img_frame)
viewer.log_image(f"{args.board_socket.name}/transform/camera/image", img_frame)

def on_imu(self, packet: IMUPacket) -> None:
for data in packet.data:
@@ -137,7 +137,7 @@ def _on_stereo_frame(self, frame: DepthPacket, args: DepthCallbackArgs) -> None:
if Topic.DepthImage not in self.store.subscriptions:
return
depth_frame = frame.frame
path = f"{args.alignment_camera.board_socket.name}/camera" + "/Depth"
path = f"{args.alignment_camera.board_socket.name}/transform/camera" + "/Depth"
if not self.store.pipeline_config or not self.store.pipeline_config.depth:
# Essentially impossible to get here
return
@@ -146,7 +146,7 @@ def _on_stereo_frame(self, frame: DepthPacket, args: DepthCallbackArgs) -> None:
def _on_detections(self, packet: DetectionPacket, args: AiModelCallbackArgs) -> None:
rects, colors, labels = self._detections_to_rects_colors_labels(packet, args.labels)
viewer.log_rects(
f"{args.camera.board_socket.name}/camera/Detections",
f"{args.camera.board_socket.name}/transform/camera/Detections",
rects,
rect_format=RectFormat.XYXY,
colors=colors,
4 changes: 2 additions & 2 deletions rerun_py/pyproject.toml
Original file line number Diff line number Diff line change
@@ -9,8 +9,8 @@ dependencies = [
"pyarrow==10.0.1",
"setuptools",
"ahrs",
"depthai", # Atm python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/ depthai==2.21.2.0.dev0+5004cc71950e6786feb36147b7919e146f4ef8da --force-reinstall # is required
"depthai-sdk>=1.10.1", # Atm latest develop is required
# "depthai", # Atm python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/ depthai==2.21.2.0.dev0+5004cc71950e6786feb36147b7919e146f4ef8da --force-reinstall # is required
# "depthai-sdk>=1.10.1", # Atm latest develop is required
"websockets",
"pydantic",
]