鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    [FishBotCamera]3.结合YOLO实现检测

    已定时 已固定 已锁定 已移动
    FishBot二驱机器人
    fishbotcamera yolo 检测
    17
    65
    14.4k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • L
      lingzhiying @小鱼
      最后由 编辑

      @小鱼
      我在编译的时候发生了这样的警告

      Starting >>> yolov5_ros2
      [0.309s] WARNING:colcon.colcon_ros.task.ament_python.build:Package 'yolov5_ros2' doesn't explicitly install a marker in the package index (colcon-ros currently does it implicitly but that fallback will be removed in the future)
      Finished <<< yolov5_ros2 [0.66s]          
      
      Summary: 1 package finished [0.75s]
      
      
      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小鱼小
        小鱼 技术大佬 @lingzhiying
        最后由 编辑

        @lingzhiying 可以忽略,直接测试看看能不能用。

        新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

        1 条回复 最后回复 回复 引用 0
        • D
          daleandfire @小鱼
          最后由 编辑

          此回复已被删除!
          小鱼小 1 条回复 最后回复 回复 引用 0
          • 小鱼小
            小鱼 技术大佬 @daleandfire
            最后由 编辑

            @daleandfire https://fishros.org.cn/forum/topic/151/提问前必看-不符合要求的问题拒绝回答

            新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

            1 条回复 最后回复 回复 引用 0
            • 28267785952
              无处在 ROS2开发者
              最后由 编辑

              小鱼,我想用自己训练的模型。将模型放入config文件夹,在程序中修改选取的模型名字,可以运行我自己的模型吗?有哪些要注意的?

              小鱼小 1 条回复 最后回复 回复 引用 0
              • 小鱼小
                小鱼 技术大佬 @2826778595
                最后由 编辑

                @2826778595 可以的,没什么要注意的,注意版本即可

                新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

                28267785952 1 条回复 最后回复 回复 引用 0
                • 28267785952
                  无处在 ROS2开发者 @小鱼
                  最后由 编辑

                  @小鱼 自己训练的yolo5模型确实可以。之前测试不知道用的是yolo8模型,发现不行,才有此一问。

                  1 条回复 最后回复 回复 引用 0
                  • 28267785952
                    无处在 ROS2开发者
                    最后由 编辑

                    @小鱼 大佬您好,我想订阅/yolo_result话题中的分类结果,
                    c6671f00-1e02-4b10-91e4-3faa3955e4d2-图片.png
                    例如:header.detections.id中的值person,但是仔细研究发现您是把Detection2D接口信息嵌入到了Detection2DArray的detections[ ]中,我不知道该如何获取嵌入到detections[ ]的id的值,能否给些提示,或者更新一个案例。
                    😊 我这是属于喂到嘴边不知道怎么下口去吃,尴尬。

                    28267785952 1 条回复 最后回复 回复 引用 0
                    • 28267785952
                      无处在 ROS2开发者 @2826778595
                      最后由 编辑

                      @2826778595 这里有一个递归读取的方式,读取header.detections.id中的值person。
                      代码如下:
                      import rclpy
                      from rclpy.node import Node
                      from vision_msgs.msg import Detection2DArray

                      class DetectionSubscriber(Node):
                      def init(self):
                      super().init('detection_subscriber')
                      self.subscription = self.create_subscription(
                      Detection2DArray, # 消息类型
                      'yolo_result', # 订阅的话题名称
                      self.listener_callback, # 回调函数
                      10 # 队列大小
                      )
                      self.subscription # prevent unused variable warning

                      def listener_callback(self, msg: Detection2DArray):
                          self.get_logger().info('Received a Detection2DArray message')
                          for detection in msg.detections:
                              # 打印出每个检测到的对象的ID
                              self.get_logger().info(f"Detected object ID: {detection.id}")
                      

                      def main(args=None):
                      rclpy.init(args=args)
                      detection_subscriber = DetectionSubscriber()
                      rclpy.spin(detection_subscriber)
                      # 关闭和清理ROS 2节点
                      detection_subscriber.destroy_node()
                      rclpy.shutdown()

                      if name == 'main':
                      main()
                      我个人觉得比较呆,期待有更好的方法。

                      28267785952 1 条回复 最后回复 回复 引用 0
                      • 28267785952
                        无处在 ROS2开发者 @2826778595
                        最后由 编辑

                        @2826778595

                        import rclpy
                        from rclpy.node import Node
                        from vision_msgs.msg import Detection2DArray
                        
                        class DetectionSubscriber(Node):
                            def __init__(self):
                                super().__init__('detection_subscriber')
                                self.subscription = self.create_subscription(
                                    Detection2DArray,    # 消息类型
                                    'yolo_result',       # 订阅的话题名称
                                    self.listener_callback,  # 回调函数
                                    10                  # 队列大小
                                )
                                self.subscription  # prevent unused variable warning
                        
                            def listener_callback(self, msg: Detection2DArray):
                                self.get_logger().info('Received a Detection2DArray message')
                                for detection in msg.detections:
                                    # 打印出每个检测到的对象的ID
                                    self.get_logger().info(f"Detected object ID: {detection.id}")
                        
                        def main(args=None):
                            rclpy.init(args=args)
                            detection_subscriber = DetectionSubscriber()
                            rclpy.spin(detection_subscriber)
                            # 关闭和清理ROS 2节点
                            detection_subscriber.destroy_node()
                            rclpy.shutdown()
                        
                        if __name__ == '__main__':
                            main()
                        
                        
                        小鱼小 1 条回复 最后回复 回复 引用 0
                        • 小鱼小
                          小鱼 技术大佬 @2826778595
                          最后由 编辑

                          @2826778595 既然是数组,遍历读取就好,这个做法没啥问题

                          新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

                          28267785952 1 条回复 最后回复 回复 引用 0
                          • 28267785952
                            无处在 ROS2开发者 @小鱼
                            最后由 编辑

                            @小鱼 好嘞,谢谢。

                            1 条回复 最后回复 回复 引用 0
                            • 28267785952
                              无处在 ROS2开发者
                              最后由 编辑

                              新问题:
                              1、pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple yolov5 我把这行换成yolo8,代码里导入的包也是yolo8,可以运行yolo8的模型吗?
                              2、同时安装yolo5和8在Linux会产生冲突吗?
                              担心冲突,所以先问问。

                              1 条回复 最后回复 回复 引用 2
                              • 2
                                萌新
                                最后由 编辑

                                64e8b8ba-ea10-4dc3-b7e9-f6921b74cbe2-image.png
                                小鱼,我在这一节里启动yolov5的时候提示警告不匹配版本该怎么解决呀,这个不匹配了在rqt里也看不到图像

                                10044615811 1 条回复 最后回复 回复 引用 0
                                • 10044615811
                                  班超 @2431039560
                                  最后由 编辑

                                  @2431039560 我也遇到这个问题 请问你是如何解决的呢

                                  2 1 条回复 最后回复 回复 引用 0
                                  • 2
                                    萌新 @1004461581
                                    最后由 编辑

                                    @1004461581 摄像头和小车和电脑在同一个子网下就可以了,改一下IP最后面的那个数字

                                    10044615811 1 条回复 最后回复 回复 引用 0
                                    • 10044615811
                                      班超 @2431039560
                                      最后由 编辑

                                      @2431039560是udpserver_ip吗,改了这个还是不行哎

                                      小鱼小 2 2 条回复 最后回复 回复 引用 0
                                      • 小鱼小
                                        小鱼 技术大佬 @1004461581
                                        最后由 编辑

                                        @1004461581 发一下网络结构看看

                                        新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

                                        10044615811 1 条回复 最后回复 回复 引用 0
                                        • 10044615811
                                          班超 @小鱼
                                          最后由 编辑

                                          @小鱼 感谢已经解决

                                          小鱼小 1 条回复 最后回复 回复 引用 0
                                          • 小鱼小
                                            小鱼 技术大佬 @1004461581
                                            最后由 编辑

                                            @1004461581 👍

                                            新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

                                            1 条回复 最后回复 回复 引用 0
                                            • 第一个帖子
                                              最后一个帖子
                                            皖ICP备16016415号-7
                                            Powered by NodeBB | 鱼香ROS