0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用AI及OpenVINO™寻找失落的侏罗纪

英特尔物联网 来源:英特尔物联网 2023-01-06 09:45 次阅读

在世界各地,当你走进博物馆,看到巨大的恐龙标本展示,你有没有想过古生物学家是如何发现它们的?

有趣的是,我们的一位好朋友兼同事,英特尔的技术布道师 Bob Chesebrough,在闲暇时间和他的儿子们一起出去寻找尚未被发现的恐龙化石。他向我们展示了如何做到这一点,以及我们如何使用 AI 和 OpenVINO 来明显简化这一过程

Bob 向我们解释说,古生物学家和考古学家必须首先找到这些地点,其地质历史不仅揭示了化石的创造过程,而且还表明了发现化石的机会。传统上,这是通过扫描航拍图像来发现特定的地形纹理,或岩层的颜色和方向,然后构建像这样的“可能性地图”来完成(如图1所示)。

d47c4e7c-8d5d-11ed-bfe3-dac502259ad0.png

图1. 恐龙化石可能性地图示例

你可以在图片中看到可能发现恐龙化石的所有位置。你可以想象的是,即使是由专家亲自完成,绘制这样一张地图也需要花费大量的时间和精力。但是,由于 Bob 已经了解了 AI 的力量,他想知道是否可以开发一种能够自动创建这些地图的 AI 模型。他做到了!

在他的最初尝试中,他发现 AI 软件运行良好,但在野外创建地图花费了太长时间,而当你在野外并依赖笔记本电脑电池时,这是一个问题。然后,他想知道如果他使用无人机拍摄高分辨率航拍照片是否会有所帮助,但不幸的是,这也行不通,因为这仍然需要他回家上传这些照片。

因此,他与我们(Raymond Lo 和武卓博士)以及英特尔的其他 AI 布道师一起提出了一个解决方案,使他能够在几分钟内(通常这需要几个小时)从任意组合的视频中创建这样的可能性地图。

我们很高兴向你展示我们做了什么以及如何使用OpenVINO,但在我们继续之前,请注意,虽然狩猎恐龙化石听起来是一种有趣和令人兴奋的爱好,但在美国和大多数其它地方,恐龙化石的实际采集受到严格监管,如果不是完全禁止的话。因此,如果你亲自尝试,而且你确实发现了化石的话,我们强烈建议你拍照并向当地有关部门报告你的这一发现。

狩猎开始了!

现在让我们开始吧!首先,我们将解释寻找恐龙化石的不同阶段,然后我们将深入了解具体的步骤是怎么做的。

具体的创建可能性地图的步骤可以参考这里:

https://www.intel.com/content/www/us/en/developer/articles/technical/intel-ai-step-by-step-guide-for-hunting-dinosaurs.html#gs.cg9z4m

(如图2所示),包括:

d4ba2274-8d5d-11ed-bfe3-dac502259ad0.png

图2. 创建恐龙化石可能性地图的一般步骤

第一阶段和第二阶段:收集数据并对其进行分类,包括获取已知恐龙骨床(示例中为新墨西哥州)化石的实际发现的 GPS 坐标,并根据它们之间的接近程度对它们进行聚类。我们使用 Intel机器学习库 Scikit learn 做到了这一点。

第三阶段:标记数据。我们将聚类的结果和 Intel Deep Neural Network Library 应用于标记为“无化石”、“极有可能找到化石”或“可能找到化石”的相同位置的航拍图像,并将这些图像合并起来,得到该区域的化石可能性地图。

第四阶段和第五阶段:训练数据并通过将标记的航拍图像转换为张量来构建模型,每个张量都具有与概率分数或置信水平相对应的类名(例如,0表示“绝对没有化石”,1表示“有可能找到化石”,2表示“发现化石”),以使用 PyTorch 构建残差神经网络(ResNet)。

第六阶段:最后,评分阶段,通过使用前面步骤中准备的模型,利用 OpenVINO推理引擎分析航拍照片,创建其它地方的化石可能性地图!

放“码”过来!

实现上述过程的代码由一系列 Jupyter Notebook 提供:

https://github.com/IntelSoftware/Jurassic/blob/main/09_Dino_bone_find_OpenVINO.ipynb

这里,我们描述了最重要的部分,如图3所示,将 PyTorch 模型转换为 OpenVINO中间表示(IR)格式并分析图像。

d500a88e-8d5d-11ed-bfe3-dac502259ad0.png

图3. PyTorch 模型转换为 OpenVINO IR 格式

加载OpenVINO推理引擎只需要一条指令:

from openvino.runtime import Core

向右滑动查看完整代码

加载所有必要的库后,Notebook 定义了先前以 PyTorch 格式训练得到的化石寻找模型的路径,并定义了两个新模型的位置,以创建一个以 ONNX 格式,另一个以 OpenVINOIR 格式的模型,原因我们稍后将解释。

DIRECTORY_NAME = “models”


BASE_MODEL_NAME = DIRECTORY_NAME + f”/bc_resnet18_simple_NOIPEX_6Epochs_StateDict_gold”


# Paths where PyTorch, ONNX and OpenVINO IR models will be stored
model_path = Path(BASE_MODEL_NAME).with_suffix(“.pt”)
onnx_path = model_path.with_suffix(“.onnx”)
ir_path = model_path.with_suffix(“.xml”)

向右滑动查看完整代码

生成 ONNX 模型后,再使用 OpenVINO模型优化器(MO)构建命令,将其转换为 FP16 精度的OpenVINOIR 格式:

# Construct the command for Model Optimizer
mo_command = f”””mo
   --input_model “{onnx_path}”
   --input_shape “[1,3, {IMAGE_HEIGHT}, {IMAGE_WIDTH}]”
   --data_type FP16
   --output_dir “{model_path.parent}”
   “””
   
mo_command = “ “.join(mo_command.split())

向右滑动查看完整代码

在使用 ONNX 模型对测试图像运行推理(此处未显示)后,在同一图像上重复该过程,但使用 OpenVINO IR 格式模型,因为在 OpenVINO推理引擎上执行两个模型显示了如何在 CPUGPU 设备上可互换地运行模型推理。

# Load the network in Inference Engine
core = Core()
model_ir = core.read_model(model=ir_path)
compiled_model_ir = core.compile_model(model=model_ir, device_name=”CPU”)


# Get input and output layers
output_layer_ir = compiled_model_ir.output(0)


# Run inference on the input image
res_ir = compiled_model_ir([x_test2])[output_layer_ir]

向右滑动查看完整代码

上面的前几行代码加载OpenVINO推理引擎,将OpenVINOIR 模型传递给它,然后提取其输入和输出层。最后一行代码是在先前使用 ONNX 模型分析的同一图像(“x_test2”)上实际运行推理引擎的代码。

接下来,程序打印出模型推理的结果;即该图像所属的类(0、1或2),然后继续使用 PyTorch 模型重复该过程。

代码的最后部分做了两件事:

1)它运行 OpenVINO和 PyTorch 模型,对几百张图像进行分类,并对所使用的三种模型的性能进行近似比较。

2)它将所有这些图像合并到一张地图中,如图1所示,并通过将 PyTorch 结果与 OpenVINO 结果进行比较得出结论,以验证准确性没有损失。为了简洁起见,这里我们只包含一段不言自明的片段:

if “GPU” in core.available_devices:
 num_images = 2000


compiled_model_onnx_gpu = core.compile_model(model=model_onnx, device_name=”GPU”)
#warm up
compiled_model_onnx_gpu([input_image])

向右滑动查看完整代码

使用 OpenVINO的好处不仅在于我们可以获得加速,还在于能够根据你选择的硬件优化模型,并充分利用你手边可用的硬件!

后续步骤

整个的步骤就是这样!现在你是一个现代寻宝者,能够使用 OpenVINO为你的寻找侏罗纪之旅创建和更新可能性地图。

这是一个很好的例子,说明 OpenVINO如何让每个人无论做什么都能更容易地使用人工智能

你可以轻松地将此方法用于任何需要从航拍照片中检测某些区域的情况,例如防火、可再生能源发电等关键领域,甚至其它星球上的生命!

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    30095

    浏览量

    268363
  • 模型
    +关注

    关注

    1

    文章

    3160

    浏览量

    48703
  • pytorch
    +关注

    关注

    2

    文章

    803

    浏览量

    13143

原文标题:用 AI 及OpenVINO™ 寻找失落的侏罗纪 | 开发者实战

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AI项目管理平台怎么

    AI项目管理平台是一种集成了项目管理工具、AI开发环境和数据分析能力的综合性平台。接下来,AI部落小编为您梳理AI项目管理平台怎么
    的头像 发表于 11-13 09:38 127次阅读

    使用OpenVINO Model Server在哪吒开发板上部署模型

    OpenVINO Model Server(OVMS)是一个高性能的模型部署系统,使用C++实现,并在Intel架构上的部署进行了优化,使用OpenVINO 进行推理,推理服务通过gPRC或REST
    的头像 发表于 11-01 14:19 177次阅读
    使用<b class='flag-5'>OpenVINO</b> Model Server在哪吒开发板上部署模型

    使用OpenVINO GenAI API在C++中构建AI应用程序

    许多桌面应用程序是使用 C++ 开发的,而将生成式AI(GenAI)功能集成到这些应用程序中可能会很具有挑战性,尤其是因为使用像 Hugging Face 这样的 Python 库的复杂性。C++
    的头像 发表于 10-12 09:36 296次阅读
    使用<b class='flag-5'>OpenVINO</b> GenAI API在C++中构建<b class='flag-5'>AI</b>应用程序

    三行代码完成生成式AI部署

    OpenVINO2024.2版本跟之前版本最大的不同是OpenVINO2024.2分为两个安装包分别是基础包与生成式AI支持包,新发布的GenAI开发包支持C++与Python语言接口调用,支持多种
    的头像 发表于 08-30 16:49 377次阅读
    三行代码完成生成式<b class='flag-5'>AI</b>部署

    OpenVINO2024 C++推理使用技巧

    很多人都使用OpenVINO新版的C++ 或者Python的SDK,都觉得非常好用,OpenVINO2022之后的版本C++ SDK做了大量的优化与整理,已经是非常贴近开发的使用习惯与推理方式。与OpenCV的Mat对象对接方式更是几乎无缝对接,非常的方便好用。
    的头像 发表于 07-26 09:20 772次阅读

    OpenVINO C# API在intel平台部署YOLOv10目标检测模型

    的模型设计策略,从效率和精度两个角度对YOLOs的各个组成部分进行了全面优化,大大降低了计算开销,增强了性能。在本文中,我们将结合OpenVINO C# API使用最新发布的OpenVINO 2024.1部署YOLOv10目标检测模型。
    的头像 发表于 06-21 09:23 937次阅读
    <b class='flag-5'>用</b><b class='flag-5'>OpenVINO</b> C# API在intel平台部署YOLOv10目标检测模型

    华擎推出AI QuickSet软件,支持英特尔锐炫Arc A系列显卡

    今日,华擎宣布将AI QuickSet软件工具扩展至英特尔锐炫Arc A系列显卡,使其能够便捷地安装Stable Diffusion web UI OpenVINO,结合英特尔OpenVINO套件,充分发挥Arc显卡的计算能力,
    的头像 发表于 05-11 10:58 602次阅读

    简单两步使用OpenVINO™搞定Qwen2的量化与部署任务

    英特尔 OpenVINO™ 工具套件是一款开源 AI 推理优化部署的工具套件,可帮助开发人员和企业加速生成式人工智能 (AIGC)、大语言模型、计算机视觉和自然语言处理等 AI 工作负载,简化深度学习推理的开发和部署,便于实现从
    的头像 发表于 04-26 09:39 1551次阅读
    简单两步使用<b class='flag-5'>OpenVINO</b>™搞定Qwen2的量化与部署任务

    研扬携手英特尔,联合举办创AI百城行(武汉站):OpenVINO™赋能AI于边缘计算平台

    边缘计算作为实现智能化、高效化数据处理的关键技术,日益受到业界的广泛关注。为了进一步推动AI边缘计算技术的发展与应用,3月27日研扬科技与英特尔在武汉共同举办了以“OpenVINO赋能AI
    的头像 发表于 04-04 08:05 210次阅读
    研扬携手英特尔,联合举办创<b class='flag-5'>AI</b>百城行(武汉站):<b class='flag-5'>用</b><b class='flag-5'>OpenVINO</b>™赋能<b class='flag-5'>AI</b>于边缘计算平台

    简单三步使用OpenVINO™搞定ChatGLM3的本地部署

    英特尔 OpenVINO™ 工具套件是一款开源 AI 推理优化部署的工具套件,可帮助开发人员和企业加速生成式人工智能 (AIGC)、大语言模型、计算机视觉和自然语言处理等 AI 工作负载,简化深度学习推理的开发和部署,便于实现从
    的头像 发表于 04-03 18:18 2002次阅读
    简单三步使用<b class='flag-5'>OpenVINO</b>™搞定ChatGLM3的本地部署

    OpenVINO添加对Paddle 2.5的支持

    我是飞桨黑客马拉松第五期 OpenVINO 赛题获奖者——为 OpenVINO 添加了对 Paddle 2.5 的支持。在此记录下来贡献的过程,希望有更多的同学可以参与到 OpenVINO 的社区
    的头像 发表于 01-19 09:20 603次阅读

    基于OpenVINO™和AIxBoard的智能安检盒子设计

    公共安全问题日益凸显,传统安检手段面临挑战。为提高安检效率和保障公共安全,基于 OpenVINO™ 和 AIxBoard 的智能安检盒子应运而生。
    的头像 发表于 01-18 17:31 786次阅读
    基于<b class='flag-5'>OpenVINO</b>™和AIxBoard的智能安检盒子设计

    如何在MacOS上编译OpenVINO C++项目呢?

    英特尔公司发行的模型部署工具 OpenVINO 模型部署套件,可以实现在不同系统环境下运行,且发布的 OpenVINO 2023 最新版目前已经支持 MacOS 系统并同时支持在苹果 M 系列芯片上部署模型。
    的头像 发表于 01-11 18:07 847次阅读
    如何在MacOS上编译<b class='flag-5'>OpenVINO</b> C++项目呢?

    快速下载OpenVIN Notebooks中的AI大模型

    OpenVINO Notebooks 是 Jupyter Notebook 形式的 OpenVINO 范例程序大集合,方便开发者快速学习并掌握 OpenVINO 推理程序,并通过 Copy&Paste 方式将范例中的关键程序应用
    的头像 发表于 12-16 10:22 1030次阅读
    快速下载OpenVIN Notebooks中的<b class='flag-5'>AI</b>大模型

    如何快速下载OpenVINO Notebooks中的AI大模型

    OpenVINO Notebooks是Jupyter Notebook形式的OpenVINO范例程序大集合,方便开发者快速学习并掌握OpenVINO推理程序,并通过Copy&Paste方式将范例中的关键程序应用到自己的
    的头像 发表于 12-12 14:40 1070次阅读
    如何快速下载<b class='flag-5'>OpenVINO</b> Notebooks中的<b class='flag-5'>AI</b>大模型