大模型工业场景使用

背景介绍

使用AI大模型进行焊缝缺陷检测,替代人力实现质检;使用AI大模型进行图像的识别,优缺点分别为:1.具有很好的泛化能力,很多场景都能够使用;2.速度慢:整体感觉速度太慢,比较吃硬件。

以焊缝识别为例,工业电脑将图片传递给大模型,能够对黑色缺陷点进行识别,但是每张图片大概2-3s,整体效率较低。

具体采用的代码为:

import requests
import json
import base64
from PIL import Image
import io
import os

def detect_face_orientation(image_data, site_url="", site_name=""):
    """识别图像中人脸朝向(1=朝左,0=朝右)"""
    try:
        # 1. 读取图像数据并转换为 base64
        image = Image.open(io.BytesIO(image_data))
        
        # 2. 将图像转换为 JPEG 格式
        buffered = io.BytesIO()
        image.save(buffered, format="JPEG")
        base64_image = base64.b64encode(buffered.getvalue()).decode('utf-8')
        
        # 从环境变量获取API密钥
        api_key = os.getenv("OPENROUTER_API_KEY", "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")
        
        # 3. 调用 OpenRouter API
        response = requests.post(
            url="https://openrouter.ai/api/v1/chat/completions",
            headers={
                "Authorization": f"Bearer {api_key}",
                "Content-Type": "application/json",
                "HTTP-Referer": site_url,
                "X-Title": site_name,
            },
            json={
                "model": "qwen/qwen2.5-vl-3b-instruct:free",  # 使用支持视觉的模型
                "messages": [
                    {
                        "role": "user",
                        "content": [
                            {
                                "type": "text",
                                "text": "请分析这张图片中的人脸朝向。如果人脸朝左返回0,朝右返回1。只返回数字,不要任何解释或额外文字。"
                            },
                            {
                                "type": "image_url",
                                "image_url": {
                                    "url": f"data:image/jpeg;base64,{base64_image}"
                                }
                            }
                        ]
                    }
                ],
                "max_tokens": 1
            },
            timeout=30
        )
        
        # 4. 解析 API 响应
        response.raise_for_status()
        result = response.json()
        answer = result['choices'][0]['message']['content'].strip()
        
        if answer not in ['0', '1']:
            return None
        
        return int(answer)
    
    except requests.exceptions.RequestException:
        return None
    except (KeyError, ValueError, json.JSONDecodeError):
        return None
    except Exception:
        return None

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

在线客服
联远智维
我们将24小时内回复。
2026-02-08 10:23:35
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
[注意事项]
208300320
取消

选择聊天工具:

滚动至顶部