BLIP2源码阅读-LAVIS/app/__init__.py

本文介绍了如何使用Python的PIL、requests和streamlit库从网络加载图像,将其转换为RGB格式,并通过streamlit构建Web可视化。还讨论了如何利用GPU加速和缓存技术优化性能。
摘要由CSDN通过智能技术生成
from PIL import Image
import requests

import streamlit as st
import torch


@st.cache()
def load_demo_image():
    img_url = (
        "https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg"
    )
    raw_image = Image.open(requests.get(img_url, stream=True).raw).convert("RGB")
    return raw_image


device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

cache_root = "/export/home/.cache/lavis/"

PIL中的Image库可以对图像进行操作。

requests用于发起网页请求

streamlit用于傻瓜式构建python web可视化网页。

image-url是用于进行示例的demo图片,如下所示,是一只狗和一个女人在沙滩上玩耍


raw_image这行代码使用Image库加载该图像,比较复杂,以下是gpt4的解释
 

这行代码是用于从网络上加载一张图片并将其转换为RGB格式的Python代码。具体步骤如下:

  1. requests.get(img_url, stream=True): 这部分代码使用requests库从网络上获取一个图片。img_url是图片的网址。stream=True参数表示以流的形式下载,这对于下载大文件很有用,因为它不会立即将整个文件加载到内存中。

  2. .raw: 这是requests.Response对象的一个属性,它提供了原始的响应内容(在这个情况下是图片的数据)。

  3. Image.open(...): 这里使用了Pillow库(通常以PILImage导入)来打开从网络获取的原始图片数据。

  4. .convert("RGB"): 这个方法将图片转换为RGB格式。RGB代表红色、绿色和蓝色,这是一种常用的颜色模式,适用于屏幕显示。这个转换确保图片在不同的环境下(尤其是在不同类型的设备上)保持一致的外观。

综上所述,这行代码的作用是从给定的网址下载图片,并将其转换为RGB模式,以便于进一步处理或显示。

最后返回转换后的demo图片,供后续展示使用。

device定义了模型在gpu上运行(如果gpu可用的话,即torch.cuda.is_available()),否则模型在cpu上运行,运行的速度会变慢。

cache_root类似于一个缓存文件夹的路径,缓存就是有些事物如“图书馆里所有的书”不便整体取用,但是又希望去使用。可以把使用频率较高的一部分,如你最喜欢的那本或者你平时最常使用的那本,保存到一个触手可及的地方,如身边书架上,这样使用起来就会节省时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值