官方网站建设有限公司,网站 页面风格 建设,一个网站开发环境是什么,百度博客收录提交入口前言:利用NVIDIA NIM平台提供的大模型进行编辑,通过llama-3.2-90b-vision-instruct模型进行初步的图片检测
step1:
部署大模型到本地,引用所需要的库
import os
import requests
import base64
import cv2
import time
from datetime import datetimestep2:
观看官方使用文…前言:利用NVIDIA NIM平台提供的大模型进行编辑,通过llama-3.2-90b-vision-instruct模型进行初步的图片检测
step1:
部署大模型到本地,引用所需要的库
import os
import requests
import base64
import cv2
import time
from datetime import datetime
step2:
观看官方使用文档:
import requests, base64
invoke_url
stream True
with open(image.png, rb) as f:image_b64 base64.b64encode(f.read()).decode()
assert len(image_b64) 180_000, \To upload larger images, use the assets API (see docs)
headers {Authorization: ,Accept: text/event-stream if stream else application/json
}payload {model: meta/llama-3.2-90b-vision-instruct,messages: [{role: user,content: fWhat is in this image? img srcdata:image/png;base64,{image_b64} /}],max_tokens: 512,temperature: 1.00,top_p: 1.00,stream: stream
}
response requests.post(invoke_url, headersheaders, jsonpayload)
if stream:for line in response.iter_lines():if line:print(line.decode(utf-8))
else:print(response.json())
其原理为将图片转换为base64后传入大模型进行识别,以及一系列参数
step3:
引入摄像头模块,并且时时进行推理,将模型的初步推理结果传入文本中,为后期的朗读进行预警
# 创建摄像头对象
cap cv2.VideoCapture(0) # 0 是默认摄像头索引# 输出文件路径
output_file_path output.txtdef save_text_to_file(text):with open(output_file_path, a, encodingutf-8) as f: # 以追加模式打开文件timestamp datetime.now().strftime(%Y-%m-%d %H:%M:%S) # 获取当前时间戳f.write(f[{timestamp}] {text}\n) # 写入时间戳和文本换行while True:ret, frame cap.read()if not ret:print(无法获取图像)break# 将图像编码为 PNG 格式并转换为 Base64_, buffer cv2.imencode(.png, frame)image_b64 base64.b64encode(buffer).decode()# 构建请求负载确保输入中文payload {model: meta/llama-3.2-90b-vision-instruct,messages: [{role: user,content: f请告诉我这张图片中有什么内容。img srcdata:image/png;base64,{image_b64} /}],max_tokens: 512,temperature: 1.00,top_p: 1.00,stream: stream}# 发送请求response requests.post(invoke_url, headersheaders, jsonpayload)if response.status_code 200:result response.json()# 根据返回的结果处理输出print(result) # 可以进一步提取所需的信息# 获取结果中的文本内容if choices in result and len(result[choices]) 0:description result[choices][0][message][content]print(description) # 打印描述# 保存文本到文件save_text_to_file(description)else:print(f请求失败状态码{response.status_code})time.sleep(3) # 每秒捕获一帧# 释放摄像头
cap.release()
cv2.destroyAllWindows()原理十分简单,让我们来看一下初步的结果: 在我加入翻译模块后,发现其输出结果:
id: chat-51e2e604fd944de393136f7433919ad5, object: chat.completion, created: 1730471625, model: meta/llama-3.2-90b-vision-instruct, choices: [{index: 0, message: {role: assistant, content: 这里有一张中年亚洲男性 frontal director 照片。照片截图自远程视频会议ूच意识。\n\n/ Ψ οδ HistogramDescriptionBlack / 97% Colorsunnedove Gray66BetaBLUE209peach29dark brown अपन Nogran8023825444098364103281213183791565308314594581053713508413533mntileyelo \n\n., tool_calls: []}, logprobs: None, finish_reason: stop, stop_reason: None}], usage: {prompt_tokens: 20, total_tokens: 99, completion_tokens: 79}, prompt_logprobs: None}
这里有一张中年亚洲男性 frontal director 照片。照片截图自远程视频会议ूच意识。存在乱码的情况,后续我将进行优化,加入其他大模型进行处理,并且在考虑时时状态下进行最优化解决.