-
Notifications
You must be signed in to change notification settings - Fork 120
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
Fixes and improvements for StereoDepth, ColorCamera #82
Merged
Merged
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
db02740
ColorCamera: add `isp`, `raw` outputs
alex-luxonis ea9a98b
ColorCamera: add setIspScale/setIspScaleFull API
alex-luxonis 0431b74
StereoDepth: deprecate setOutputDepth/Rectified
alex-luxonis 5f2f312
ColorCamera: add API to get 'isp' scaled output size
alex-luxonis e04b257
`make clangformat`
alex-luxonis 2f9ad0a
Update FW: stereo fixes, stereo/ColorCamera improvements
alex-luxonis f22ca12
Add API to configure disparity/depth alignment: left/right/center.
alex-luxonis 4fc1433
Merge remote-tracking branch 'origin/develop' into stereo_fixes
alex-luxonis 974dc98
StereoDepth: add overloaded setDepthAlign(CameraBoardSocket)
alex-luxonis 4ec7f1f
StereoDepth: remove for now 'setBaselineOverrideCm', 'setFovOverrideD…
alex-luxonis ca3784b
Merge remote-tracking branch 'origin/develop' into stereo_fixes
alex-luxonis 69726b3
Update FW: disparity (U8) aligning to RGB works.
alex-luxonis f809bb6
Address review comments:
alex-luxonis d4338e2
CameraControl: add ranges for extra controls,
alex-luxonis 8c3a8e6
Add rgb_depth_aligned example
alex-luxonis 29ca1c5
Fix conversion of YUV420p frames to OpenCV BGR,
alex-luxonis 757d830
Merge remote-tracking branch 'origin/develop' into stereo_fixes
alex-luxonis 3964a7e
Examples: remove deprecated API setOutputDepth/Rectified
alex-luxonis fefb4b0
GitHub CI: limit cmake --parallel to 8 threads,
alex-luxonis 878e4a6
README build snippets: limit `cmake --parallel` to 8
alex-luxonis b72bb07
Cleanup, remove some unused variables
alex-luxonis 7df7402
Update FW: optimize depth align, make it work with subpixel/U16
alex-luxonis df43775
Merge remote-tracking branch 'origin/develop' into stereo_fixes
alex-luxonis b0dd5d6
stereo_example: rectified flip no longer needed with LR-check on,
alex-luxonis 6e11c1f
spatial_object_tracker example: remove deprecated setOutputDepth
alex-luxonis 1e05f8c
fixed getting size of video/still when setting isp scaling
Erol444 3f2fb9d
Address review comments. Note:
alex-luxonis 6d84ac9
clangformat cleanup
alex-luxonis f62304d
Update FW: fix still capture with scaling, add FPS capping (with warn…
alex-luxonis 2e25a1e
Merge remote-tracking branch 'origin/develop' into stereo_fixes
alex-luxonis bf1cbdd
Update FW: fix ImageManip U16 crop (for depth/subpixel disparity)
alex-luxonis bffa915
Update FW, fix CI build: depthai-shared PR merged
alex-luxonis File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule depthai-shared
updated
1 files
+10 −0 | include/depthai-shared/properties/StereoDepthProperties.hpp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we use
CameraBoardSocket
to which to align to, instead of newDepthAlign
enum?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently
DepthAlign
contains:{ AUTO = -1, RIGHT, LEFT, CENTER, RGB }
RIGHT
(default) andLEFT
would map to the respective 'rectified' streams.CENTER
would just displace the disparity map (each pixel by its disparity_value / 2), whileRGB
(not yet implemented, defaulting with a warning to CENTER) would need an additional 'warp' step (extrinsics alignment / resolution scaling). For boards like BW1092 where the RGB camera is not centered, the disparity displacement would need to be done by a different amount.Mapping to the real LEFT and RIGHT (from
CameraBoardSocket
), we would need to do and inverse homography transform, which should be easily doable with the mechanism for RGB in place. But it incurs the additional warp overhead, and in many cases it's not needed (as could be used directly with the rectified streams).Should then we extend
DepthAlign
as:{ AUTO = -1, RECTIFIED_RIGHT, RECTIFIED_LEFT, CENTER, RGB, LEFT, RIGHT }
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about if we separate this two to:
I think we'd cover all cases with this, without too much repetition.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Definitely adding a separate config with
CameraBoardSocket
is good, I will add it.But one case where combining these two might be confusing is with e.g. CameraBoardSocket::RGB and mode: RECTIFIED.
Or with images from host, or running Stereo on OAK-1: one input from the RGB camera, the other from host (actually forwarded by another OAK-1), as one customer wants to use. Actually I think here we should have a way to pass a minimal StereoCalibration structure to StereoDepth, that won't refer to CameraBoardSocket entries, but simply to the 'left' and 'right' inputs to the node. We can discuss further on luxonis/depthai-shared#19
So I was thinking to reference based on the I/Os of the StereoDepth node. Something like
DepthAlign: RECTIFIED_RIGHT, RECTIFIED_LEFT, RECTIFIED_CENTER, INPUT_LEFT, INPUT_RIGHT, OTHER_CAMERA
.When
OTHER_CAMERA
is set, will specify it byCameraBoardSocket
. And for example running standard stereo on OAK-D,INPUT_RIGHT
would be equivalent toOTHER_CAMERA
+CameraBoardSocket::RIGHT
.Thoughts on that? Also how to have the API, two separate functions, one with two parameters, or an overloaded function (pass either DepthAlign or CameraBoardSocket, and then remove
OTHER_CAMERA
)?CC @saching13
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What martin suggested works best if we ignore the concept that left, and right are our two global shutter cameras.
In stereo node we set left camera and right camera using
CameraBoardSocket
and we haveIn DepthAlign mode let's have only RECTIFIED_LEFT, RECTIFIED_RIGHT and CENTER.
And
setAlignment(cameraBoardSocket)
will make sure to align to any camera's that we have.And another overload function or something like
setExtendedAlignment
takesDepthAlign
mode. But in this caseRECTIFIED_LEFT
will be therectified_left
frame of the camera/image passed to the stereo left. andRECTIFIED_RIGHT
will be therectified_right
frame of the camera/image passed as the right image to the stereo node.One such case is where rgb camera can be stereo left and right camera can be stereo right.
And CENTER would not be the center of the device but the center of the stereo baseline.
Thoughts ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any resolution here? I think I've understood, and a lot of these are sounding good to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed as an overloaded function, as the options (
DepthAlign
andCameraBoardSocket
) cannot be combined, and would be confusing to set both.