OpenShift 4 - 在 OpenShift 上运行物体检测 AI 应用

《OpenShift / RHEL / DevSecOps 汇总目录》
说明:本文已经在 OpenShift 4.14 + RHODS 2.5.0 的环境中验证

说明:请先根据《OpenShift 4 - 部署 OpenShift AI 环境,运行 AI/ML 应用(视频)》一文完成 OpenShift AI 环境的安装。
注意:如无特殊说明,和 OpenShift AI 相关的 Blog 均无需 GPU。

文章目录

  • 部署后端模型
    • 运行后端模型
    • 将后端模型部署为 REST 服务
  • 部署前端应用
  • 参考

部署后端模型

在 Jupyter Notebook 中我们先用本地图片测试一个预先训练好的机器学习模型,然后将该模型的功能封装为一个 REST 服务。在完成本地测后再将物体识别模块部署到 OpenShift 上。

运行后端模型

  1. 在 OpenShift AI 中启动 notebook server 环境,notebook 镜像使用 TensorFlow 2023.2 即可。
  2. 在 Jupyter Notebook 界面中导入 https://github.com/rh-aiservices-bu/object-detection-rest.git 仓库。
  3. 在 Launcher 中进入 Terminal,然后执行以下命令安装 Pillow。
(app-root) (app-root) pip install Pillow==9.5.0
Collecting Pillow==9.5.0
  Downloading Pillow-9.5.0-cp39-cp39-manylinux_2_28_x86_64.whl (3.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4/3.4 MB 84.0 MB/s eta 0:00:00
Installing collected packages: Pillow
  Attempting uninstall: Pillow
    Found existing installation: Pillow 10.1.0
    Uninstalling Pillow-10.1.0:
      Successfully uninstalled Pillow-10.1.0
Successfully installed Pillow-9.5.0

[notice] A new release of pip available: 22.2.2 -> 23.3.2
[notice] To update, run: pip install --upgrade pip
  1. 打开 1_explore.ipynb 文件,然后点击 Run > Run All Cells 菜单。
  2. 运行完成后会识别并标记出 twodogs.jpg 图片的 dog。
    在这里插入图片描述

将后端模型部署为 REST 服务

  1. 根据 Notebook 的说明依次运行 2_predict.ipynb、3_run_flask.ipynb、4_test_flask.ipynb。其中 3_run_flask.ipynb 会在 http://127.0.0.1:5000 提供运行物体识别的 REST 服务。
  2. 在 OpenShift 中创建 object-detect 项目。
  3. 在 OpenShift 的开发者视图中进入 “+添加” > "从 Github 导入”,在 Git Repo URL 中填入 https://github.com/rh-aiservices-bu/object-detection-rest.git。在按下图完成配置后点击 “创建”。
    在这里插入图片描述
  4. 部署完成后可以打开下图 object-detect-rest 路由的地址,将显示 {“status”:“ok”},说明 REST 服务正常运行。
    在这里插入图片描述
  5. 打开 4_test_flask.ipynb 文件,将 my_route 变量的内容改为上图的路由地址,然后再运行该文件并确认可以正常识别图片中的物体。

部署前端应用

  1. 再次使用 “从 Git 导入” 功能部署 https://github.com/rh-aiservices-bu/object-detection-app.git。
    其中需要在部署中增加一个环境变量 OBJECT_DETECTION_URL=http://object-detection-rest:8080/predictions
    在这里插入图片描述
  2. 完成部署后打开下图 object-detect-ui 路由的地址。
    在这里插入图片描述
  3. 用带有摄像头的电脑打开 object-detect-ui 路由的地址,然后可拍摄图片确认物体识别结果。
    在这里插入图片描述

参考

https://redhat-scholars.github.io/rhods-od-workshop/rhods-od-workshop/index.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/309931.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python爬虫实战(8)--获取虎pu热榜

1. 需要的类库 import requests from bs4 import BeautifulSoup import pandas as pd2. 请求地址 def fetch_data():url "https://bbs.xxx.com/" # Replace with the actual base URLresponse requests.get(url)if response.status_code 200:return response.c…

2024年最火爆的本地生活服务商平台推荐!

随着互联网的发展,本地生活团购服务市场逐渐成为各大平台争夺的焦点。视频号、DY等短视频平台纷纷入局,希望通过本地生活团购的形式吸引更多的用户,提高平台的活跃度和黏性。对于想要成为本地生活团购服务商的创业者来说,都不想放…

web期末作业网页设计——JavaScript

目录 一.作品简介 二.网页效果 首页 花语 登录界面 注册界面 三.网页代码 首页 登录界面 注册界面 视频界面 一.作品简介 网站系统文件种类包含:html网页结构文件、css网页样式文件、js网页特效文件、images网页图片文件。 网页作品代码简单&#xff…

2024 年 10 款最佳 Android 手机数据恢复软件榜单

当您因某些不合时宜的事故而丢失 Android 设备上的重要数据时,这真是一场灾难。如果您遇到这样的情况,请不要担心。我们列出了一些最好的 Android 数据恢复软件,可以帮助您使用 PC 检索手机丢失的数据。 在用于存储重要数据的各种存储设备中…

你真的掌握了“C语言分支循环”吗

目录 前言 1. if语句 1.1 if 1.2 else 1.3 分支中包含多条语句 1.4 嵌套if 1.5 悬空else问题 2. 关系操作符 3. 条件操作符 4. 逻辑操作符:&& , || , ! 4.1 逻辑取反运算符 4.2 与运算符 4.3 或运算符 4.4 练习:闰年的判…

【一周年创作总结】人生是远方的无尽旷野呀

那一眼瞥见的伟大的灵魂,却似模糊的你和我 文章目录 📒各个阶段的experience🔎大一寒假🔎大一下学期🔎大一暑假🔎大二上学期(现在) 🍔相遇CSDN🛸自媒体&#…

uniapp使用wxml-to-canvas开发小程序保存canvas图片

微信小程序官方解决方案:wxml-to-canvas 使用wxml-to-canvas要知道一些前提条件 1、只能画view,text,image 2、每个元素必须要设置宽高 3、默认是flex布局,可以通过flexDirection: "column"来改变排列方式 4、文字 必…

云服务器搭建GitLab

经验总结: 1、配置需求:云服务器内存最低4G 2、内存4G的云服务器,在运行容器后,会遇到云服务器操作卡顿问题,这里有解决方案 转载:服务器搭建Gitlab卡顿解决办法-CSDN博客 3、云服务器的操作系统会影响…

ROS建图之ROS标准REP-105(官方搬运翻译+个人理解)

REP-105 是一个由 Wim Meeussen 于 2010年10月27日 创建并维护的,名为 "Coordinate Frames for Mobile Platforms"(移动平台的坐标系框架)的 ROS Enhancement Proposal(REP)。ROS官方教程:REP 10…

Page 251~254 Win32 GUI项目

win32_gui 源代码&#xff1a; #if defined(UNICODE) && !defined(_UNICODE)#define _UNICODE #elif defined(_UNICODE) && !defined(UNICODE)#define UNICODE #endif#include <tchar.h> #include <windows.h>/* Declare Windows procedure */…

【Vue2】一个数组按时间分割为【今年】和【往年】俩个数组

一. 需求 后端返回一个数组&#xff0c;前端按时间维度将该数组的分割为【今年】和【往年】俩个数组后端返回的数组格式如下 timeList:[{id:1,billTime:"2024-01-10",createTime:"2024-01-10 00:00:00",status:0},{id:2,billTime:"2022-05-25"…

EVE-NG初次启动及WEB客户端访问来了

本章从虚拟机Eve模拟器启动、模拟器的启动配置、浏览器访问三个步骤讲解EVE-NG的首次启动。 1.启动模拟器 打开虚拟机环境&#xff0c;启动安装好的EVE-NG虚拟机&#xff0c;进入如下界面。 登录时输入社区版默认账户是root&#xff0c;密码是eve&#xff0c;完成登陆。 1.配置…

00后网文作家年入百万,跻身“十二天王”之列!

各位书友们&#xff0c;有没有觉得现在网文界越来越风起云涌&#xff1f;最近&#xff0c;2023年网络文学榜样作家“十二天王”出炉&#xff0c;其中一位00后作家季越人引起了广泛关注&#xff01;这位公共管理系的大四学生凭借他的第一部网文小说《玄鉴仙族》一鸣惊人&#xf…

Ubuntu系统中指定端口防火墙状态查询与操作

浏览器访问&#xff1a; 如果遇到如山图所示的情况&#xff0c;既有可能是防火墙的问题。具体解决方案参照如下&#xff1a; 1.指定端口的防火墙状态查询 &#xff08;1&#xff09;查询命令 sudo ufw status | grep 8081/tcp #其中8081为要查询的端口号 如果端口是打开的…

达梦数据库的使用

文章目录 一、安装程序介绍1.dm管理工具2.dm服务查看器3.数据迁移工具 二、达梦数据库联机备份与还原操作1.配置归档2.备份1.归档备份 3.备份还原 一、安装程序介绍 官网文档&#xff1a;https://eco.dameng.com/docs/zh-cn/faq/faq-import-export.html 达梦数据库安装成功后…

windows安装RabbitMq,修改数据保存位置

1、先安装Erlang&#xff0c; Erlang和RabbitMQ有版本对应关系。 官网RabbitMQ与Erlang版本对应RabbitMQ Erlang Version Requirements — RabbitMQ 2、安装RabbitMQ。 3、修改数据保存地址。找到安装目录下的sbin文件夹&#xff0c;找到rabbitmq-env.bat&#xff0c;编辑文件…

免费简单好用的 webshell 在线检测:支持 php、jsp、asp等多格式文件

话不多说&#xff0c;直接上图上链接&#xff1a;https://rivers.chaitin.cn/?share3d4f2e8aaec211eea5550242c0a8170c 还是比较好用的&#xff0c;支持 PHP、JSP 文件 webshell 检测&#xff0c;看官方解释文档&#xff0c;引擎使用静态文本特征、骨架哈希、静态语义分析、动…

广告投放场景中ABtest分析的评价、优化和决策建议

写在开头 在当今数字化的商业环境中&#xff0c;广告投放是企业获取客户和推动销售的重要手段。然而&#xff0c;随着市场竞争的加剧&#xff0c;制定有效的广告策略变得愈发复杂。在这个背景下&#xff0c;AB测试成为了广告主们不可或缺的工具之一。本文将深入探讨广告投放中…

TDengine 时序数据库 研究学习以及实战

下载地址&#xff1a;TDengine 发布历史及下载链接 | TDengine 文档 | 涛思数据 下载客户端和服务端 服务端和客户端的安装后 TDengine 客户端连接工具地址&#xff1a;Archive Files | DBeaver Community 添加驱动 新增 》 设置 选择驱动类后 设置里的类名就自动填写了&…

Vs2019安装教程

1、下载链接&#xff1a;Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 (microsoft.com)https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/2、下载 而后跟进安装&#xff1a;&#xff08;虽然这是2022的&#xff0c;但是和2022和2019基本差不多&am…
最新文章