齐齐哈尔城市建设档案馆网站,wordpress主题 html,郯城做网站,做网站策划营销推广编辑#xff1a;OAK中国 首发#xff1a;oakchina.cn 喜欢的话#xff0c;请多多#x1f44d;⭐️✍ 内容可能会不定期更新#xff0c;官网内容都是最新的#xff0c;请查看首发地址链接。 ▌前言
Hello#xff0c;大家好#xff0c;这里是OAK中国#xff0c;我是助手… 编辑OAK中国 首发oakchina.cn 喜欢的话请多多⭐️✍ 内容可能会不定期更新官网内容都是最新的请查看首发地址链接。 ▌前言
Hello大家好这里是OAK中国我是助手君。
最近朋友们有几条共性的问题比如
为啥检测框在深度图位置不对啊能不能将本地视频流作为输入啊能不能加上测距啊
这篇博客总结了所有这些问题的参考代码欢迎三连食用~ 使用 oak 的 LEFTRIGHT 和 RGB 相机和视频流VIDEO进行 YOLO 检测 ▌RGB
使用 RGB 相机作为输入源
...
camRgb pipeline.create(dai.node.ColorCamera)
detectionNetwork pipeline.create(dai.node.YoloDetectionNetwork)
...
camRgb.setPreviewSize(W, H)
...
camRgb.preview.link(detectionNetwork.input)
...详见yolov6-rgb.py
▌RGB DEPTH
使用 RGB 相机作为输入源并附加深度信息
...
camRgb pipeline.create(dai.node.ColorCamera)
spatialDetectionNetwork pipeline.create(dai.node.YoloSpatialDetectionNetwork)
monoLeft pipeline.create(dai.node.MonoCamera)
monoRight pipeline.create(dai.node.MonoCamera)
stereo pipeline.create(dai.node.StereoDepth)
...
camRgb.setPreviewSize(W, H)
...
monoLeft.setBoardSocket(dai.CameraBoardSocket.LEFT)
monoRight.setBoardSocket(dai.CameraBoardSocket.RIGHT)
...
# 将深度图与 RGB 相机的视角对齐在其上进行推理
stereo.setDepthAlign(dai.CameraBoardSocket.RGB)
stereo.setOutputSize(monoLeft.getResolutionWidth(), monoLeft.getResolutionHeight())
...
monoLeft.out.link(stereo.left)
monoRight.out.link(stereo.right)camRgb.preview.link(spatialDetectionNetwork.input)
stereo.depth.link(spatialDetectionNetwork.inputDepth)
...详见yolov6-rgb-spatial.py
▌RIGHT
使用 RIGHT 相机作为输入源
...
monoRight pipeline.create(dai.node.MonoCamera)
detectionNetwork pipeline.create(dai.node.YoloDetectionNetwork)
imageManip pipeline.create(dai.node.ImageManip)
...
monoRight.setBoardSocket(dai.CameraBoardSocket.RIGHT)
...
# NN 模型需要 BGR 输入。默认情况下 ImageManip 输出类型与输入相同在本例中为灰色
imageManip.initialConfig.setFrameType(dai.ImgFrame.Type.BGR888p)
imageManip.initialConfig.setResize(W, H)
imageManip.setMaxOutputFrameSize(W * H * 3)
...
monoRight.out.link(imageManip.inputImage)
imageManip.out.link(detectionNetwork.input)
...详见yolov6-right.py
▌RIGHT DEPTH
使用 RIGHT 相机作为输入源并附加深度信息
...
monoLeft pipeline.create(dai.node.MonoCamera)
monoRight pipeline.create(dai.node.MonoCamera)
spatialDetectionNetwork pipeline.create(dai.node.YoloSpatialDetectionNetwork)
stereo pipeline.create(dai.node.StereoDepth)
imageManip pipeline.create(dai.node.ImageManip)
...
monoLeft.setBoardSocket(dai.CameraBoardSocket.LEFT)
monoRight.setBoardSocket(dai.CameraBoardSocket.RIGHT)
...
# NN 模型需要 BGR 输入。默认情况下 ImageManip 输出类型与输入相同在本例中为灰色
imageManip.initialConfig.setFrameType(dai.ImgFrame.Type.BGR888p)
imageManip.initialConfig.setResize(W, H)
imageManip.setMaxOutputFrameSize(W * H * 3)
...
# 将深度图与 RIGHT 相机的视角对齐在其上进行推理
stereo.setDepthAlign(dai.RawStereoDepthConfig.AlgorithmControl.DepthAlign.RECTIFIED_RIGHT
)
stereo.setOutputSize(monoLeft.getResolutionWidth(), monoLeft.getResolutionHeight())
...
monoLeft.out.link(stereo.left)
monoRight.out.link(stereo.right)imageManip.out.link(spatialDetectionNetwork.input)stereo.rectifiedRight.link(imageManip.inputImage)
stereo.depth.link(spatialDetectionNetwork.inputDepth)
...详见yolov6-right-spatial.py
▌LEFT
使用 LEFT 相机作为输入源
...
monoLeft pipeline.create(dai.node.MonoCamera)
detectionNetwork pipeline.create(dai.node.YoloDetectionNetwork)
imageManip pipeline.create(dai.node.ImageManip)
...
monoLeft.setBoardSocket(dai.CameraBoardSocket.LEFT)
...
# NN 模型需要 BGR 输入。默认情况下 ImageManip 输出类型与输入相同在本例中为灰色
imageManip.initialConfig.setFrameType(dai.ImgFrame.Type.BGR888p)
imageManip.initialConfig.setResize(W, H)
imageManip.setMaxOutputFrameSize(W * H * 3)
...
monoLeft.out.link(imageManip.inputImage)
imageManip.out.link(detectionNetwork.input)
...详见yolov6-left.py
▌LEFT DEPTH
使用 LEFT 相机作为输入源并附加深度信息
...
monoLeft pipeline.create(dai.node.MonoCamera)
monoRight pipeline.create(dai.node.MonoCamera)
spatialDetectionNetwork pipeline.create(dai.node.YoloSpatialDetectionNetwork)
stereo pipeline.create(dai.node.StereoDepth)
imageManip pipeline.create(dai.node.ImageManip)
...
monoLeft.setBoardSocket(dai.CameraBoardSocket.LEFT)
monoRight.setBoardSocket(dai.CameraBoardSocket.RIGHT)
...
# NN 模型需要 BGR 输入。默认情况下 ImageManip 输出类型与输入相同在本例中为灰色
imageManip.initialConfig.setFrameType(dai.ImgFrame.Type.BGR888p)
imageManip.initialConfig.setResize(W, H)
imageManip.setMaxOutputFrameSize(W * H * 3)
...
# 将深度图与 LEFT 相机的视角对齐在其上进行推理
stereo.setDepthAlign(dai.RawStereoDepthConfig.AlgorithmControl.DepthAlign.RECTIFIED_LEFT
)
stereo.setOutputSize(monoLeft.getResolutionWidth(), monoLeft.getResolutionHeight())
...
monoLeft.out.link(stereo.left)
monoRight.out.link(stereo.right)
imageManip.out.link(spatialDetectionNetwork.input)
stereo.rectifiedLeft.link(imageManip.inputImage)
stereo.depth.link(spatialDetectionNetwork.inputDepth)
...详见yolov6-left-spatial.py
▌VIDEO
使用 VIDEO 作为输入源
...
xinFrame pipeline.create(dai.node.XLinkIn)
detectionNetwork pipeline.create(dai.node.YoloDetectionNetwork)
...
xinFrame.setStreamName(inFrame)
...
xinFrame.out.link(detectionNetwork.input)
...
# 输入队列将用于将视频帧发送到设备。
inFrameQueue device.getInputQueue(nameinFrame)
...
img dai.ImgFrame()
img.setData(to_planar(frame, (W, H)))
img.setTimestamp(monotonic())
img.setWidth(W)
img.setHeight(H)
inFrameQueue.send(img)
...详见yolov6-video.py
▌参考资料
https://docs.oakchina.cn/en/latest/ https://www.oakchina.cn/selection-guide/ OAK中国 | OpenCV AI Kit在中国区的官方代理商和技术服务商 | 追踪AI技术和产品新动态
戳「关注」获取最新资讯↗↗