当前位置: 首页 > news >正文

iOS 18(macOS 15)Vision 中新增的任意图片智能评分功能试玩

在这里插入图片描述

概述

在 WWDC 24 中库克“大厨”除了为 iOS 18 等平台重磅新增了 Apple Intelligence 以外,苹果也利用愈发成熟的机器学习引擎扩展了诸多内置框架,其中就包括 Vision。

在这里插入图片描述

想用本机人工智能自动为我们心仪的图片打一个“观赏分”吗?“如意如意,就如你心意吧”。

在本篇博文中,您将学到如下内容:

  • 概述
  • 1. Vision 框架简介
  • 2. 图片“令人愉悦”的美学属性
  • 3. 拒绝临渊羡鱼,撸起袖子上手实验!
  • 总结

Apple Intelligence 的大幕正徐徐拉开,那小伙伴们还等什么呢?

让我们先来品尝点 AI 甜点吧!Let’s go!!!😉


1. Vision 框架简介

Vision 是苹果在 iOS 11(macOS 10.13)引入的一款将计算机视觉算法应用在图片和视频上以便完成各种任务的框架。

在这里插入图片描述

Vision 框架结合了机器学习(ML,Machine Learning)技术和 Swift 新并发特性,可以出色的在应用程序中执行计算机视觉任务。

在这里插入图片描述

Vision 特别擅长下面几种任务:

  • 跟踪人和动物的身体姿势或对象的轨迹;
  • 识别 18 种不同语言的文本;
  • 检测人脸和人脸标志,如眼睛、鼻子和嘴巴等;
  • 执行手动跟踪以启用新设备交互;
  • 计算图片的美学评分以确定它们到底有多么让人“流连忘返”;

在这里插入图片描述

要开始使用 Vision 框架,一般的流程是:

  • 为对应的分析类型创建一个请求(有 25 个以上的请求可供选择),每个请求都符合 VisionRequest 协议;
  • 执行请求以获得观察结果或观察结果数组,以及请求的详细分析信息;
  • 将定制的 Core ML 模型用于分类或对象检测等任务;

从 iOS 18(macOS 15)开始,苹果利用最新的 Swift 6 编译器大大简化了 Vision 的调用方式并且开始全面支持 Swift 现代化并发模型。

在这里插入图片描述

在这里插入图片描述

接下来,我们就从 Vision 众多 Request 中挑一个来看看它到底有多么强大、使用起来又是多么的方便吧!

2. 图片“令人愉悦”的美学属性

从 iOS 18(macOS 15)开始,苹果为 Vision 新增了一个 CalculateImageAestheticsScoresRequest 请求类型:

在这里插入图片描述

使用它我们可以轻而易举的分析任意图片的“美学分数”(Image Aesthetics Scores)。

虽然目前苹果开发官网对于 CalculateImageAestheticsScoresRequest 的介绍还“寥若晨星”,不过通过 WWDC 24 相关视频释放出的信号来看 —— 这个新请求主要目的是用来“评判”我们所拍摄相片在将来会有多么的令人“回味无穷”。

在这里插入图片描述

除了图片的“品质(quality)”以外,我们还可以使用 CalculateImageAestheticsScoresRequest 来分析图片是否为一张功能图片(Utility Image)。至于到底何为“功能图片”,请大家在观赏 WWDC 24 中对应的视频时“细细品味”吧。


想要进一步了解 WWDC 2024 中对于 Vision 的全新和增强功能,请小伙伴们猛戳如下链接观赏官方视频:

  • Discover Swift enhancements in the Vision framework

现在,我们对 CalculateImageAestheticsScoresRequest 的所有了解都只是“纸上谈兵”。小伙伴们何不同我一起“御驾亲征”,来亲自感受一下它的高强本领呢!

3. 拒绝临渊羡鱼,撸起袖子上手实验!

目前 CalculateImageAestheticsScoresRequest 请求需要 iOS 18(iPadOS 18)或 macOS 15 系统,并且无法通过模拟器来执行。

虽然我的手机还未更新至 iOS 18 beta,但好在 mac 已经“捷足先登”升级至 macOS 15 beta3 了,所以最简单的方法就是在 mac 的 playground 中运行测试代码。

用 Xcode 16 新建一个 Playground 项目,并输入如下内容:

import AppKit
import Visionlet imageNames = ["1.jpeg", "2.JPG"]for imageName in imageNames {if let image = NSImage(named: imageName), let cgImage = image.cgImage(forProposedRect: nil, context: nil, hints: nil) {let request = CalculateImageAestheticsScoresRequest()Task {do {let observation = try await request.perform(on: cgImage)let desc = observation.descriptionlet score = observation.overallScoreprint("[\(imageName)] desc: \(desc), score: \(score.formatted(.number.precision(.fractionLength(2))))")} catch {print(error.localizedDescription)}}}
}

随后我们需要将几张测试图片放入 Playground 中:

在这里插入图片描述

值得注意的是,我们必须利用 mac 本机 macOS 15 的“原生力量”,所以 Playground 的运行平台需要设置为 macOS:

在这里插入图片描述

最后,用不同图片测试一下它们的“艺术美感”吧:

在这里插入图片描述

[1.jpeg] desc: ImageAestheticsScoresObservation(overallScore: 0.52685547, isUtility: true, uuid: 22EBF9CD-2FBE-42F7-9D20-ED883EE024F4, confidence: 1.0), score: 0.53
[2.JPG] desc: ImageAestheticsScoresObservation(overallScore: 0.7636719, isUtility: false, uuid: B34CEA6E-8E1F-498A-AE42-7F301BE905D5, confidence: 1.0), score: 0.76

可以看到风景图片得分会远高于“垃圾箱”图片的得分,正应了那句古话:“银烛秋光冷画屏,轻罗小扇扑流萤;停车坐爱枫林晚,霜叶红于二月花”,棒棒哒!💯

总结

在本篇博文中,我们讨论了苹果开发中的 Vision 框架,并介绍 iOS 18(macOS 15)其新增的为任意图片“观赏度”恣意评分的功能,这是通过本地机器学习来实现的。

感谢观赏,再会啦 😎

相关文章:

iOS 18(macOS 15)Vision 中新增的任意图片智能评分功能试玩

概述 在 WWDC 24 中库克“大厨”除了为 iOS 18 等平台重磅新增了 Apple Intelligence 以外,苹果也利用愈发成熟的机器学习引擎扩展了诸多内置框架,其中就包括 Vision。 想用本机人工智能自动为我们心仪的图片打一个“观赏分”吗?“如意如意&…...

如何实现若干子任务一损俱损--浅谈errgroup

errgroup 是 Go 语言官方扩展库 x/sync 中的一个包,它提供了一种方式来并行运行多个 goroutine,并在所有 goroutine 都完成时返回第一个发生的错误(如果有的话)。这对于需要并行处理多个任务并等待它们全部完成,同时需…...

并查集的基础题

## 洛谷p1196 绿 35m 点到祖先的距离 代码&#xff1a; #include<bits/stdc.h> using namespace std; const int N3e510; int f[N],dist[N],num[N];//num计算祖先有多少儿子 &#xff0c;dist计算距离祖先有几个 int zx(int x){ if(f[x]x)return x;//x没爸爸 e…...

[论文翻译] LTAChecker:利用注意力时态网络基于 Dalvik 操作码序列的轻量级安卓恶意软件检测

LTAChecker: Lightweight Android Malware Detection Based on Dalvik Opcode Sequences using Attention Temporal Networks 摘要&#xff1a; Android 应用程序已成为黑客攻击的主要目标。安卓恶意软件检测是一项关键技术&#xff0c;对保障网络安全和阻止异常情况至关重要。…...

HTTPS链接建立的过程

HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff09;建立链接的过程主要是通过TLS&#xff08;Transport Layer Security&#xff09;协议来实现的。HTTPS的链接建立过程可以分为以下几个步骤&#xff1a; 1. **客户端发起请求** - 客户端向服务器发送一个请求&…...

文档控件DevExpress Office File API v24.1 - 支持基于Unix系统的打印

DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员提供的非可视化.NET库。有了这个库&#xff0c;不用安装Microsoft Office&#xff0c;就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CS…...

IP地址封装类(InetAddress类)

文章目录 前言一、IP地址是什么&#xff1f;二、IP地址封装类 1.常用方法2.实操展示总结 前言 当我们想要获取到通信对方的IP地址、主机地址等信息时&#xff0c;我们可以使用InetAddress类。InetAddress类在java的net包中。 一、IP地址是什么&#xff1f; IP地址 (Internet Pr…...

数据库设计规范化

在数据库设计中&#xff0c;尤其是在关系型数据库管理系统中&#xff0c;规范化&#xff08;Normalization&#xff09;是一种通过减少数据冗余和依赖关系来优化数据库表结构的过程。规范化可以确保数据的完整性和减少数据更新时的问题。规范化的过程通常遵循一系列标准或范式&…...

预约咨询小程序搭建教程,源码获取,从0到1完成开发并部署上线

目录 一、明确需求与规划功能 二、选择开发工具与模板 三、编辑小程序内容 四、发布与运营 五、部分代码展示 制作一个预约咨询小程序&#xff0c;主要可以分为以下几个步骤&#xff1a; 一、明确需求与规划功能 明确需求&#xff1a; 1.确定小程序的服务对象&#xf…...

leetcode217. 存在重复元素,哈希表秒解

leetcode217. 存在重复元素 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 &#xff0c;返回 true &#xff1b;如果数组中每个元素互不相同&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3,1] 输出&#xff1a;true 示例 2&#x…...

QT:QString 支持 UTF-8 编码吗?

在 Qt 中&#xff0c;字符串的处理主要依赖于 QString 类。QString 内部并不是直接使用 UTF-8 编码来存储数据的。相反&#xff0c;QString 使用 Unicode&#xff08;特别是 UTF-16&#xff09;来存储文本&#xff0c;以支持多语言环境的国际化应用。这种设计使得 QString 能够…...

我主编的电子技术实验手册(13)——电磁元件之继电器

本专栏是笔者主编教材&#xff08;图0所示&#xff09;的电子版&#xff0c;依托简易的元器件和仪表安排了30多个实验&#xff0c;主要面向经费不太充足的中高职院校。每个实验都安排了必不可少的【预习知识】&#xff0c;精心设计的【实验步骤】&#xff0c;全面丰富的【思考习…...

odoo from样式更新

.xodoo_form {.o_form_sheet {padding-bottom: 0 !important;border-style: solid !important;border-color: white;}.o_inner_group {/* 线框的样式 *//*--line-box-border: 1px solid #666;*//*box-shadow: 0 1px 0 #e6e6e6;*/margin: 0;}.grid {display: grid;gap: 0;}.row …...

Oracle(52)分区表有哪些类型?

分区表在Oracle数据库中主要分为以下几种类型&#xff1a; 范围分区&#xff08;Range Partitioning&#xff09;列表分区&#xff08;List Partitioning&#xff09;哈希分区&#xff08;Hash Partitioning&#xff09;组合分区&#xff08;Composite Partitioning&#xff0…...

大黄蜂能飞的起来吗?

Bumblebee argument 虽然早期的空气动力学证明大黄蜂不能飞行——因为体重太重&#xff0c;翅膀太薄&#xff0c;但大黄蜂并不知道&#xff0c;所以照飞不误。 背景 在20世纪初&#xff0c;‌科学家们通过研究发现&#xff0c;‌大黄蜂的身体与翼展的比例失调&#xff0c;‌按照…...

虹科新品 | PDF记录仪新增蓝牙®接口型号HK-LIBERO CL-Y

新品发布&#xff01;HK-LIBERO CE / CH / CL产品家族新增蓝牙接口型号HK-LIBERO CL-Y&#xff01; PDF记录仪系列新增蓝牙接口型号 HK-LIBERO CL-Y HK-LIBERO CE、HK-LIBERO CH和HK-LIBERO CL&#xff0c;虹科ELPRO提供了一系列高品质的蓝牙&#xff08;BLE&#xff09;多用途…...

Bytebase 2.22.1 - SQL 编辑器展示更丰富的 Schema 信息

&#x1f680; 新功能 SQL 编辑器直接展示表&#xff0c;视图&#xff0c;函数&#xff0c;存储过程等各种 Schema 详情。OpenAI 功能进入社区版&#xff08;免费&#xff09;&#xff0c;现在您可以通过配置自有 OpenAI key 在 SQL 编辑器中启用自然语言转 SQL 功能。支持在 …...

SQL Server Management Studio的使用

之前在 https://blog.csdn.net/fengbingchun/article/details/140961550 介绍了在Windows10上安装SQL Server 2022 Express和SSMS&#xff0c;这里整理下SSMS的简单使用&#xff1a; SQL Server Management Studio(SSMS)是一种集成环境&#xff0c;提供用于配置、监视和管理SQL…...

Python 爬虫项目实战一:抖音视频下载与网易云音乐下载

一、项目背景 随着互联网的发展&#xff0c;爬虫技术在数据采集和资源获取中发挥着重要作用。本文将以实际案例为例&#xff0c;使用Python语言实现两个热门的爬虫项目&#xff1a;抖音视频文件下载和网易云音乐下载。通过这些实例&#xff0c;读者可以了解如何利用Python编写…...

CAMDS=中国汽车MDS

1、定义和缩写 MSDS(材料安全数据表, Material Safety Data Sheets),德语为SDB(Sicherheitsdatenbltter),是一种传达材料和混合物安全相关信息的工具,包括来自供应链和下游用户相关材料安全报告的信息。它们旨在为专业用户提供使用这些物质和制剂的必要信息和处理建议,…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...