2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战解题全过程文档及程序
2024年认证杯SPSSPRO杯数学建模
D题 AI绘画带来的挑战
原题再现:
2023 年开年,ChatGPT 作为一款聊天型AI工具,成为了超越疫情的热门词条;而在AI的另一个分支——绘图领域,一款名为Midjourney(MJ)的软件,热度完全不亚于ChatGPT。AI绘画技术可以模仿设计师的风格和技巧,自动生成类似于人类设计师的设计作品。AI绘画技术可以应用于各种领域,包括绘画、插画、平面设计等,具有较高的效率和精度,能够大大提高创作效率和创作质量。然而,AI绘画技术也带来了一些挑战和风险。比如对于一些传统的美术设计类赛事组织方来说,AI绘画技术就带来了评奖公平性的挑战,由于一些设计作品很难快速判断出究竟是由AI设计的,还是由人类设计师设计的,所以赛事评奖工作变得异常复杂,当参赛作品较多的时候,很难保证最终的结果公平性,附图就是几幅由MJ软件设计的建筑图片,即使业内人士也不能保证做出准确的判断。请你和你的团队建立合理的数学模型以解答如下问题。
第一阶段问题:
1. 从简单的几何角度,是否可以找到AI绘画中不符合逻辑的地方?
2. 请尝试建立数学模型对图片进行打分,评估这幅图片是由AI绘图软件生成的可能性。
整体求解过程概述(摘要)
在数字时代,人工智能(AI)的发展使得图像生成技术日益成熟,特别是在建筑设计领域,AI绘制的图像能够迅速并准确地呈现设计概念。然而,这也带来了一些挑战,尤其是如何验证一个图像是否为 AI 生成,以及这些图像在几何逻辑上是否符合现实世界的物理和建筑规范。鉴于此,开发一种能够准确识别并评估 AI 生成图像的方法变得尤为重要。
针对问题一:从几何角度分析由MJ软件设计的建筑图片,查找不符合逻辑的地方。本团队首先进行视觉检查,对于每幅图片,寻找比例失调,结构问题。然后进行几何分析,测量角度,比例计算。基于视觉检查和几何分析的结果,发现图1,2,3中均存在较多不合理的地方如下:图1中的多处结构均不合理,一侧窗户显示为拱形顶部,而另一侧则是平顶,这种差异在同一建筑的相同层面上是不常见的。图2中可以看出有多处影子,但是仔细观察可以发现,影子的形状,方向等均不合理。图3中的烟囱,其设计同样违反了常规建筑和结构原则。烟囱的形状和位置在视觉上显得不协调,不符合实用性和安全性的标准。
针对问题二:本团队开发了一个数学模型,以评估图像是否可能由AI绘图软件生成。搜集多张真实图片并通过精心定义和提取真实图像与AI生成的图像特征,如线条的直线度、角度的精确度和透视点的一致性,纹理,光照一致性等特征,设立了一个详尽的评分系统。这些特征通过应用Canny边缘检测算法和霍夫变换进行量化,从而准确识别和评估图像中的直线和角度。建立的打分机制基于透视偏差、结构违规、纹理一致性和光照一致性等关键参数,最终得到AI生成图片的得分为97,真实图片的得分为67.通过对AI生成和真实图像的详细比较分析,发现AI生成的图像在光照和纹理处理上的表现通常较差,而结构和透视点则显示出更高的偏差。通过实际图像与AI图像的对比,深入了解两者在特征表现上的相似之处和差异。这种综合评分和分析方法为自动化图像来源验证提供了一个有效的技术途径。
问题重述:
随着人工智能技术的飞速发展,AI在各个领域的应用日益广泛,其中AI绘画技术成为了近年来的一个热点。2023年,AI绘画软件,尤其是名为Midjourney(MJ)的软件,与聊天型AI工具ChatGPT一样,成为了公众和媒体关注的焦点。AI绘画技术能够模仿人类设计师的风格和技巧,自动生成与人类设计师作品风格相似的设计作品。这种技术在绘画、插画、平面设计等多个领域都显示出了巨大的应用潜力,因为它不仅能够以较高的效率和精度完成设计任务,还能够显著提升创作的质量。
然而,随着AI 绘画技术的广泛应用,也出现了一系列挑战和风险。特别是在美术设计类比赛中,AI绘画技术的应用引发了关于评奖公平性的广泛讨论。问题在于,一些由AI 设计的作品与人类设计师的作品在视觉上几乎没有区别,使得评委难以判断作品的真正作者,从而影响了比赛的公平性和结果的准确性。此外,当参赛作品数量众多时,确保评审过程的公正性和有效性变得更加困难。
鉴于这一背景,数学建模比赛提出了一个紧密关联实际应用的问题:如何建立一个合理的数学模型,从简单的几何角度找出 AI 绘画中可能存在的不符合逻辑之处,并评估一幅图片是否由AI 绘图软件生成的可能性。这个问题不仅涉及数学、计算机视觉和机器学习领域的知识,还需要参赛者理解AI绘画技术的基本原理和应用场景。 通过解决这一问题,参赛者将为识别和评估 AI 绘画作品提供新的思路和方法,为确保艺术和设计类比赛的公平性贡献自己的力量。此外,这也有助于进一步探索 AI 技术在创意设计领域的应用潜力及其带来的社会、伦理挑战。
问题要求
➢ 从简单的几何角度,是否可以找到 AI 绘画中不符合逻辑的地方?
➢ 请尝试建立数学模型对图片进行打分,评估这幅图片是由 AI 绘图软件生成的可能性。
模型假设:
假设一:透视准确性的一致性
所有真实的建筑图片在透视方面都是准确的,其透视线将准确汇聚于正确的消失点。任何与此相悖的表现都可以被视为AI生成图片的潜在标志。
假设二:结构一致性的物理可行性
真实世界的建筑结构必须遵循物理和建筑规则,如重力法则和力的均衡。AI生成的图像可能无视这些规则,导致出现物理上不可行的结构。
假设三:纹理和材料的逼真度
在真实的建筑图片中,不同材质的纹理应该看起来自然并且过渡合理。AI生成的图像在纹理过渡和材料表现上可能表现出不自然或突兀的特征。
假设四:光影一致性与环境匹配度
真实图片中的光影效果将与环境中的光源位置、强度和颜色相一致。AI生成图像可能在光线投射、阴影长度和方向上存在不一致性。
假设五:比例和尺寸的准确性
真实建筑图片的建筑元素,如门窗、柱子等,其比例和尺寸与现实世界的建筑规范一致。AI生成的图像可能忽略这些比例规则,产生比例失衡的结果。
完整论文缩略图
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
部分程序代码:
image = imread('1.jpg');
imshow(image);
>> % 转换为灰度图像
grayImage = rgb2gray(image); % 边缘检测
edges = edge(grayImage, 'canny'); % 显示边缘
figure;
imshow(edges);
title('Edge Detection'); % Hough 变换检测直线
[H, theta, rho] = hough(edges); % 显示标准 Hough 变换的结果
figure;
imshow(imadjust(rescale(H)), 'XData', theta, 'YData', rho, 'InitialMagnification',
'fit');
xlabel('\theta (degrees)'), ylabel('\rho');
axis on, axis normal, hold on;
colormap(gca,hot); % 查找 Hough 变换的峰值
peaks = houghpeaks(H, 5, 'threshold', ceil(0.3 * max(H(:)))); % 超过 Hough 变换峰值的直线
lines = houghlines(edges, theta, rho, peaks, 'FillGap', 5, 'MinLength', 7); % 显示原图及检测到的直线
figure, imshow(grayImage), hold on
max_len = 0;
for k = 1:length(lines) xy = [lines(k).point1; lines(k).point2]; plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green'); % 绘制开始点 plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow'); % 绘制结束点 plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
end
hold off; % 读取图像
image = imread(imgPath); % 显示图像
figure;
imshow(image);
title('Original Image');
>> % 转换图像为灰度
grayImage = rgb2gray(image); % 应用 Canny 边缘检测
edges = edge(grayImage, 'canny'); % 显示边缘检测结果
figure;
imshow(edges);
title('Canny Edge Detection');
>> % 执行霍夫变换
[H, theta, rho] = hough(edges); % 查找霍夫变换的峰值
peaks = houghpeaks(H, 5, 'threshold', ceil(0.3*max(H(:)))); % 提取直线
lines = houghlines(edges, theta, rho, peaks, 'FillGap', 20, 'MinLength', 40); % 显示原图及检测到的直线
figure, imshow(grayImage), hold on
for k = 1:length(lines) xy = [lines(k).point1; lines(k).point2]; plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green'); % 标记线条端点 plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow'); plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
end
title('Detected Lines');
hold off;
% 定义Excel文件路径 files = { 'D:\认证杯\ 真实图片1_Data.xlsx', 'D:\认证杯\ 真实图片2_Data.xlsx', 'D:\认证杯\真实图片3_Data.xlsx' }; % 初始化空cell array来存储数据 allData = {}; % 循环读取每个文件 for i = 1:length(files) % 读取Excel文件 data = readtable(files{i}); % 检查并显示数据的大小 disp(['Data from ', files{i}, ':']); disp(size(data)); % 将数据存储在cell array中 allData{end+1} = data; end % 检查所有数据表是否具有相同的列数 numCols = size(allData{1}, 2); consistent = all(cellfun(@(x) size(x, 2) == numCols, allData)); % 如果所有数据表列数一致,则合并它们 if consistent mergedData = vertcat(allData{:}); disp('All data tables have the same number of columns.'); else error('Not all data tables have the same number of columns.'); end % 显示合并后的数据的一些信息 disp('Merged data size:'); disp(size(mergedData)); % 保存合并后的数据到新的Excel文件 writetable(mergedData, 'D:\认证杯\\Merged_Data.xlsx'); disp('Merged data saved to D:\认证杯\\Merged_Data.xlsx');
end
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
相关文章:

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战解题全过程文档及程序
2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现: 2023 年开年,ChatGPT 作为一款聊天型AI工具,成为了超越疫情的热门词条;而在AI的另一个分支——绘图领域,一款名为Midjourney(MJÿ…...
Qt 设置QLineEdit控件placeholderText颜色
Qt 会根据QLineEdit控件显示文本的颜色自动设置placeholderText颜色,如果想自定义placeholderText颜色,可以通过以下方法。 在样式文件中增加以下设置: QLineEdit#lineEdit_userName, QLineEdit#lineEdit_password{border: none;padding: 6…...
麒麟 V10 系统(arm64/aarch64)离线安装 docker 和 docker-compose
前期准备 查看操作系统版本,跟本文标题核对一下 uname -a查看操作系统架构 uname -m下载离线包 下载 docker 离线包 地址:https://download.docker.com/linux/static/stable/ 选择系统架构对应的文件目录:aarch64,我目前使用…...

Windows基线自动化检查脚本
本批处理脚本的主要目的是对Windows系统进行安全性检查。检查了多个安全参数和设置,以确保系统符合特定的安全标准。当然也可能有些检查项不是很准确,需要根据实际环境再调试一下,以下是该脚本的详细描述和功能分析: 1. 脚本初始…...

离谱的梯形滤波器——增加过渡点
增加过渡点 频率采样法(Frequency Sampling Method)是一种设计FIR滤波器的方法,通过在频域中指定希望的频率响应,然后利用逆离散傅里叶变换(IDFT)来获得滤波器的脉冲响应。然而,这种方法容易导…...
tauri下的两个常用rust web框架:Leptos和Trunk
tauri下有两个常用rust web框架,就是Leptos和Trunk Leptos Leptos 是一个基于 Rust 的 Web 框架。您可以在他们的官方网站上了解更多关于 Leptos 的信息。本指南适用于 Leptos 的 0.6 版本。 Leptos Leptos 是一个用 Rust 编写的现代、高效且安全的 Web 框架。它…...

pubmed关键词搜索技能1:待更新
1,白话变为领域内学术词: 例如,我想要做蛋白质糖基化修饰以功能,这个领域课题,则 第一性原理,首先是拆分词汇:糖基化(一般比蛋白质、修饰、功能要在title中更常见,或者是…...

【技巧】Mac上如何显示键盘和鼠标操作
在制作视频教程时,将键盘和鼠标的操作在屏幕上显示出来,会帮助观众更容易地理解。 推荐Mac上两款开源的小软件。 1. KeyCastr 这款工具从2009年至今一直在更新中。 https://github.com/keycastr/keycastr 安装的话,可以从Github上下载最…...
ISO26262-(Timing Monitoring)在多核MCU的TPU上功能安全ASILB与ASILD有什么区别
在多核微控制器(MCU)的时间保护方面,针对功能安全ASIL B与ASILD等级的设计和实施存在显著差异,这些差异主要体现在系统对时间关键性操作的保障程度、故障检测能力、以及系统响应的严格性上。 ASIL B 级别: 时间关键性:在ASIL B等级,系统设计注重于识别并处理大部分可能…...
图像处理插件:让小程序焕发视觉新生的秘密武器
在小程序开发中,图像处理是一个重要的环节,它涉及到图片的加载、显示、裁剪、压缩等多个方面。为了简化这一复杂过程,开发者通常会使用图像处理插件。这些插件不仅提供了丰富的图像处理功能,还封装了底层的图像操作逻辑࿰…...

项目代码第2讲:从0实现LoginController.cs,UsersController.cs、User相关的后端接口对应的前端界面
一、User 1、使用数据注解设置主键和外键 设置主键:在User类的U_uid属性上使用[Key]注解。 设置外键:在Order类中,创建一个表示外键的属性(例如UserU_uid),并使用[ForeignKey]注解指定它引用User类的哪个…...
【linux 查看网卡设备信息命令记录】
查看设备信息命令 查看网卡芯片相关platform类型网卡(gmac网卡为例)PCI网卡(rtl8125为例) 查看网卡芯片相关 platform类型网卡(gmac网卡为例) gmac 属于CPU资源的一部分,属于平台设备。下面以FT2004 的CPU为例,自带GMAC0和GMAC1。 1、通过平台设备查看…...

springboot事务手动回滚报错
捕捉异常之后手动标记回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 没有嵌套事务,还是报Transaction rolled back because it has been marked as rollback-only异常错误 查看错误堆栈,service调用的方法外层还套…...
SQL 算术运算符:加法、减法、乘法、除法和取模的用法
什么是存储过程? 存储过程是一段预先编写好的 SQL 代码,可以保存在数据库中以供反复使用。它允许将一系列 SQL 语句组合成一个逻辑单元,并为其分配一个名称,以便在需要时调用执行。存储过程可以接受参数,使其更加灵活…...

C#是Unity 3D的默认语言,Unity 3D是一种领先的游戏引擎
C#或C-Sharp是一种比C更现代和灵活的编程语言,它也在游戏开发中广受欢迎。C#是Unity 3D的默认语言,Unity 3D是一种领先的游戏引擎,它为各种游戏提供动力,例如《口袋妖怪围棋》、《超级马里奥跑》和《神庙跑》。 Unity 3D也在虚拟…...

[创业之路-173]:《BLM战略规划》- 战略洞察 (战略能力中最最核心的能力) - 市场洞察 -3- 看竞争对手-要比你的竞争对手跟了解他们自己
目录 一、五看三定 二、看竞争 2.1 概述 1、分析竞争对手 2、进行价值链分析 3、紧盯标杆对手 4、关注新进入者和替代产品 5、制定竞争策略 2.2 看竞争的主要内容:背景信息、战略、价值定位、价值链、价值交付、组织架构、财务绩效 1、背景信息 2、战略 …...

Spark实训
实训目的: 介绍本实训的基本内容,描述知识目标、,以及本实训的预期效果等。 1、知识目标 (1)了解spark概念、基础知识、spark处理的全周期,了解spark技术是新时代对人才的新要求。 (2)掌握Linux、hadoop、spark、hive集群环境的搭建、HDFS分布文件系统的基础知识与应用…...
Linux之信号集基础
目录 前言一、信号集基础API浅析1.1 sigemptyset1.2 sigfillset1.3 sigaddset1.4 sigdelset1.5 signismember1.6 sigprocmask1.7 sigpending1.8 sigwait 二、demo演练2.1 sigismember检查信号2.2 主线程pthread_sigmask阻塞后无法捕捉到特定信号2.3 主线程pthread_sigmask阻塞后…...

unity3d—demo(实现给出图集名字和图片名字生成对应的图片)
目录 实现给出图集名字和图片名字生成对应的图片: 代码示例: dic: 键 是图集名称 值是一个字典 该字典键是图片名称 值是图片,结构如图: 测试代码: 结果: SpriteRenderer 讲解: Resour…...

烟草行业通过Profinet转EthernetIP网关打通数据壁垒
在工业自动化领域,Profinet转Ethernet/IP是两种广泛应用的工业以太网协议。它们各自具有独特的特点和优势,而在实际应用中,经常需要实现这两种协议之间的互通,这时就需要使用到开疆智能Profinet转Ethernet/IP网关KJ-EIP-108。同时…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
TJCTF 2025
还以为是天津的。这个比较容易,虽然绕了点弯,可还是把CP AK了,不过我会的别人也会,还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...
文件上传漏洞防御全攻略
要全面防范文件上传漏洞,需构建多层防御体系,结合技术验证、存储隔离与权限控制: 🔒 一、基础防护层 前端校验(仅辅助) 通过JavaScript限制文件后缀名(白名单)和大小,提…...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...