C# .net ai Agent AI视觉应用 写代码 改作业 识别屏幕 标注等

C# net deepseek RAG AI开发 全流程 介绍_c# 向量处理 deepseek-CSDN博客

视觉多模态大模型 通义千问2.5-VL-72B

AI大模型能看懂图 看懂了后能干啥呢

如看懂图 让Agent 写代码 ,改作业,识别屏幕 标注等等。。。

据说是目前最好的免费图片识别框架 通义千文 免费开源大模型

GitHub - QwenLM/Qwen2.5-VL: Qwen2.5-VL is the multimodal large language model series developed by Qwen team, Alibaba Cloud.

食谱

食谱 描述 打开
普遍认可 不仅可以识别动物、植物、人和景点,还可以识别汽车和商品等各种物体。
强大的文档解析能力 文档的解析已经达到了更高的水平,不仅包括文本,还包括布局位置信息和我们的 Qwen HTML 格式。
跨格式的精确对象接地 它使用绝对位置坐标,同时支持方框和点,允许定位和标记任务的多样化组合。
通用 OCR 和关键信息提取 在自然场景和多种语言下提供更强的文本识别能力,支持多样化的关键信息提取需求。
视频理解 更好的视频 OCR、长视频理解和视频接地。
移动代理 定位并思考手机控制。
计算机使用代理 定位和思考控制计算机和 Web。

文本+视图 理解

cs 复制代码
public async Task<IEnumerable<FaceItem>?> GetAnnotationAsync(string imagePath)
{
    var bytes = await File.ReadAllBytesAsync(imagePath);
    
    var chatHistory = new ChatHistory();
    chatHistory.AddSystemMessage("作为一名图像检测专家,你擅长精确的图像对象检测,以纯文本格式'x1,y1,x2,y2'提供坐标。");
    chatHistory.AddUserMessage([
            new TextContent("框出每一个人脸的位置(不包括身体),以json格式输出所有的坐标,只输出纯json字符,不要夹杂其它字符,并且标注性别(男/女)。"),
            new ImageContent(bytes, "image/jpeg")
        ]
    );
    var reply = await chatCompletionService.GetChatMessageContentAsync(chatHistory);
    if (reply.Content is null) return [];
    var jsonStr = Regex.Replace(reply.Content, @"^\s*```json|```\s*$", "", RegexOptions.Multiline).Trim();
    Console.WriteLine(jsonStr);
    return reply.Content is null ? [] : JsonSerializer.Deserialize<IEnumerable<FaceItem>>(jsonStr);
}

结果

cs 复制代码
[
    {"bbox_2d": [608, 79, 654, 130], "label": "女"},
    {"bbox_2d": [700, 74, 748, 130], "label": "女"},
    {"bbox_2d": [837, 74, 876, 128], "label": "女"},
    {"bbox_2d": [916, 68, 956, 128], "label": "男"},
    {"bbox_2d": [1110, 162, 1174, 224], "label": "女"},
    {"bbox_2d": [707, 338, 813, 438], "label": "女"},
    {"bbox_2d": [918, 424, 988, 512], "label": "男"},
    {"bbox_2d": [1002, 398, 1072, 512], "label": "女"},
    {"bbox_2d": [1080, 382, 1140, 464], "label": "女"},
    {"bbox_2d": [1116, 362, 1205, 512], "label": "女"},
    {"bbox_2d": [590, 578, 678, 672], "label": "女"},
    {"bbox_2d": [721, 584, 774, 646], "label": "女"},
    {"bbox_2d": [797, 622, 874, 672], "label": "女"}
]

代码

cs 复制代码
public class FaceCheckAgentWorker(FaceCheckAgent faceCheckAgent) : BackgroundService
{
    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        var imagePath = "Images/human1.jpg";
        var faceItems = await faceCheckAgent.GetAnnotationAsync(imagePath);
        if (faceItems == null) return;

        using var image = Image.FromFile(imagePath);
        using var bitmap = new Bitmap(image);
        foreach (var faceItem in faceItems)
        {
            var color = faceItem.Label == "女" ? Color.Red : Color.Blue;
            MyDraw.DrawAnnotationBox(bitmap, faceItem.Box, faceItem.Label, color, 3);
        }
        
        var sampleDir = Path.Combine(Directory.GetCurrentDirectory(), "Output");
        var outputPath = Path.Combine(sampleDir, Path.GetFileName(imagePath));
        bitmap.Save(outputPath, ImageFormat.Jpeg);
        Console.WriteLine($"标注完成,已保存到: {outputPath}");
    }
}

效果

AI 改作业 并标注

cs 复制代码
 public async Task<IEnumerable<HomeworkItem>?> GetAnnotationAsync(string imagePath)
 {
     var bytes = await File.ReadAllBytesAsync(imagePath);
     
     var chatHistory = new ChatHistory();
     chatHistory.AddSystemMessage(
         """
         你是一个作业批改助手,请你标注出图片中的所有题(包括回答),并通过JSON返回批改结果。
         
         JSON格式的批改结果需要包含以下内容:
         - "q_box": 题目的bbox_2d边界框
         - "qc": 题目内容
         - "a_box": 回答的bbox_2d边界框
         - "ac": 回答内容
         - "is": 回答是否正确(布尔值,true或false)
         - 如果回答错误 在 "er"中详细说明错误情况
           
         示例如下:
         [
           {
             "q_box": [0, 0, 0, 0],
             "qc": "题目内容",
             "a_box": [0, 0, 0, 0],
             "ac": "回答内容",
             "is": false,
             "er": "如果回答错误,这里详细说明错误情况,没有错误可以不要该字段"
           }
         ]
         """);
     chatHistory.AddUserMessage([
             new TextContent("批改作业"),
             new ImageContent(bytes, "image/png")
         ]
     );
     var reply = await chatCompletionService.GetChatMessageContentAsync(chatHistory);
     if (reply.Content is null) return [];
     var jsonStr = Regex.Replace(reply.Content, @"^\s*```json|```\s*$", "", RegexOptions.Multiline).Trim();
     Console.WriteLine(jsonStr);
     return reply.Content is null ? [] : JsonSerializer.Deserialize<IEnumerable<HomeworkItem>>(jsonStr);
 }

小老板们都表示 功能很牛逼。。。

C# net deepseek RAG AI开发 全流程 介绍_c# 向量处理 deepseek-CSDN博客

相关推荐
界面开发小八哥31 分钟前
界面组件DevExpress WPF中文教程:网格视图数据布局 - 数据单元格
.net·wpf·界面控件·devexpress·ui开发
tonydf1 小时前
安利一下Blazor:.NET开发者的全栈“优”选项
.net·全栈
程序猿不脱发22 小时前
【MQ】kafka同步和异步的区别
c#·linq
_Meilinger_4 小时前
论文研读|基于图像修复的AI生成图像检测(CVPR 2025)
人工智能·深度学习·计算机视觉·ai·aigc·图像取证·生成图像检测
DHclly4 小时前
Gpustack 运行一段时间后出现 Failed to initialize NVML: Unknown Error 解决办法
linux·ai
测试蔡坨坨6 小时前
Trae Plus 让没有编程基础的女朋友也用上了 AI Coding
ai
SEO-狼术8 小时前
Red Gate .NET Developer Crack
.net
xiaopengbc8 小时前
[Windows] 微软.Net运行库离线合集包 Microsoft .Net Packages AIO v13.05.25
windows·microsoft·.net
向宇it8 小时前
【unity实战】简易的车辆控制系统
游戏·unity·c#·游戏引擎