谷歌发布了 mediapipe,这是一种用于移动终端的对象检测模型,在没有 GPU 的情况下仍然很快

小夏 科技 更新 2024-02-22

最广为人知的目标检测模型是Yolo系列,现已更新为V8系列,但现有的Yolo模型面临量化支持不足、精度延迟权衡不足等局限性。

Yolo-NAS 模型在 Coco、Objects365 和 RoboFlow 100 等知名数据集上进行了预训练,非常适合生产环境中的下游对象检测任务。 YOLO-NAS的发布代表了目标检测模型推理性能和效率的重大飞跃,解决了传统模型的局限性,并为各种任务和硬件提供了前所未有的适应性。 全新 YOLO-NAS 提供最先进的 (SOTA) 性能和无与伦比的精度速度性能,性能优于 YOLO5、YOLOX6、YOLOXV7 和 YOLO8 等其他型号。

然而,其主流的目标检测模型,为了快速运行,需要使用强大的GPU作为后端算力。 随着移动终端的普及,移动终端对大型机型的需求越来越大。 谷歌发布的MediaPipe系列已经成功在移动终端上运行目标检测模型,运行速度在ms级。

mediapipe 对象检测模型可以对 ** 或实时实时流执行对象检测任务。 mediapipe 目标检测模型包含三种不同大小的模型,您可以根据自己的任务选择相关模型。

型号 1:efficientdet-lite0

EfficientDet-Lite0 模型使用具有 320x320 输入大小和 bifpn 特征网络的 EfficientNet-Lite0 骨干网络模型。 该模型使用 COCO 数据集进行训练,COCO 数据集是一个包含 150 万个对象实例和 80 个对象标签的大规模对象检测数据集。 EfficientDet-Lite0 模型使用三种不同的大小:int8、float16 或 float32。 该模型在延迟和准确性之间取得了平衡。 对于许多任务来说,它既准确又轻巧。 是大多数对象检测任务的首选模型。

模型 2:efficientdet-lite2

EfficientDet-Lite2 模型使用输入大小为 448x448 的 EfficientNet-Lite2 骨干网络模型和 BIFPN 特征网络。 该模型还使用 COCO 数据集进行训练,EfficientDet-Lite2 还提供三种尺寸:INT8、FLOAT16 和 FLOAT32。 该模型通常比 EfficientDet-Lite0 更准确,但它也更慢且更占用内存。

型号 3:SSD MobileNetv2

SSD MobileNetv2 模型使用具有 256x256 输入大小和 SSD 签名网络的 MobileNetv2 骨干网络模型。 该模型使用 COCO 数据集进行训练,SSD MobileNetv2 提供了 2 种大小的模型,INT8 和 FLOAT 32。 该模型比 EfficientDet-Lite0 更快、更轻,但通常也不太准确。

无论是输入,还是**,其模型最终都会转换为**进行目标检测,对于**,在目标检测完成后,将每一帧的**连接在一起,再次转换为**,最终实现**或**流的目标检测。 其模型输出 4 个参数:

检测框:用于目标检测的框的位置检测类:目标检测的分类检测分数:目标检测的置信度数框数:框数

对于没有GPU的移动终端,其EfficientDet-Lite 0 INT8型号只有29延迟为 31 毫秒,其最大型号仅为 198延迟77ms,速度也相当快。

实现 MediaPipe 对象检测模型

若要实现 MediaPipe 对象检测模型,首先需要设置相关环境。 安装 mediapipe 010个版本,以及**相关的目标检测模型,这里可以**3种任意尺寸模型的模型。

pip install -q mediapipe==0.10.0!wget -q -o efficientdet.tflite -q -q -o efficientdet.tflite -q -q -o efficientdet.tflite -q

然后,创建一个可视化函数,该函数的主要目的是在对象检测完成后可视化目标检测的结果。

import cv2import numpy as npmargin = 10 row_size = 10 font_size = 1font_thickness = 1text_color = (255, 0, 0) # reddef visualize(image, detection_result) -np.ndarray: for detection in detection_result.detections: bbox = detection.bounding_box start_point = bbox.origin_x, bbox.origin_y end_point = bbox.origin_x + bbox.width, bbox.origin_y + bbox.height cv2.rectangle(image, start_point, end_point, text_color, 3) category = detection.categories[0] category_name = category.category_name probability = round(category.score, 2) result_text = category_name + ' (' + str(probability) +')' text_location = (margin + bbox.origin_x, margin + row_size + bbox.origin_y) cv2.puttext(image, result_text, text_location, cv2.font_hershey_plain,font_size, text_color, font_thickness) return image

现在我们可以加载一个需要对象检测的**,并执行对象检测任务。

import numpy as npimport mediapipe as mpfrom mediapipe.tasks import pythonfrom mediapipe.tasks.python import visionimage_file = '12.jpg'base_options = python.baseoptions(model_asset_path='efficientdet.tflite')options = vision.objectdetectoroptions(base_options=base_options,score_threshold=0.5)detector = vision.objectdetector.create_from_options(options)image = mp.image.create_from_file(image_file)detection_result = detector.detect(image)image_copy = np.copy(image.numpy_view())annotated_image = visualize(image_copy, detection_result)rgb_annotated_image = cv2.cvtcolor(annotated_image, cv2.color_bgr2rgb)cv2_imshow(rgb_annotated_image)

当然,在目标检测的类别和目标检测的准确性方面,MediaPipe 与其他基于 GPU 系列的目标检测模型还是有差距的,但 MediaPipe 并不使用 GPU 进行加速,如果在移动端使用其他目标检测模型,效果不如 Mediapipe, 而且它的对象检测模型也非常相关。

YOLO模型系列。

相似文章

    谷歌推出 Cloud TPU v5p 和 AI 超级计算机

    谷歌周四 月 日 发布了新的张量处理单元 TPU VP 超级计算机架构的 AI Hypercomputer 和资源管理工具 Dynamic Workload Scheduler,以帮助组织执行和处理 AI 任务。谷歌于今年 月开始推出 Cloud TPU VE,本周发布了强调性价比的 Cloud T...

    谷歌发布了最强大的AI模型Gemini,超越了GPT 4!

    当地时间月日,谷歌CEO桑达尔 皮查伊 Sundar Pichai 正式宣布双子座号版本 正式上线。据报道,这是人工智能模型的巨大飞跃,最终将影响几乎所有谷歌产品。Gemini 型号包括三个数量级 最强大的 Gemini Ultra 可扩展的多任务 Gemini Pro 和用于特定任务和移动设备的 ...

    用于生产上报的PDA移动端 整机小巧方便,易于掌握

    在现代制造业中,生产报告是一个至关重要的环节,它直接关系到生产过程的效率和准确性。为了提高生产报表的效率和准确性,以及方便操作人员的使用,选择功能齐全 方便轻量化的PDA移动终端非常重要。首先,这款PDA移动终端具有强大的数据采集功能,可以高效扫描识别条码 等信息,确保数据在生产和工作过程中的准确性...

    Designwerk 推出移动兆瓦充电站 Mega Charger

    增加特斯拉Cybertruck续航里程的方法是增加一个内置移动电源 官方名称是 Extender 那么卡车呢?DesignWerk对商用车充电的回应 超大外置移动电源 MCS兆瓦充电。此前, 年 月,沃尔沃集团签署了一项最终协议,收购瑞士工程公司 Designwerk Technologies AG...

    接管华为!另一个卫星移动终端在这里

    众所周知,多亏了麒麟s芯片和G网络的回归,今年Mate 系列引爆了整个网络。因为这意味着,时隔年,华为终于成功突破了外界的封锁。但严格来说,不管是麒麟芯片还是。g,这两者都很难称得上遥遥领先。毕竟麒麟S处理器的性能只相当于两年前高通骁龙的水平,而G早已是手机行业的标配。如果不得不说遥遥领先,卫星通话...