当前位置: 首页 > 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),是一种传达材料和混合物安全相关信息的工具,包括来自供应链和下游用户相关材料安全报告的信息。它们旨在为专业用户提供使用这些物质和制剂的必要信息和处理建议,…...

实战演练:基于Next.js与快马AI接口,构建可交互的qoderwork官网演示版

今天想和大家分享一个实战项目&#xff1a;用Next.js模拟搭建qoderwork官网&#xff0c;并集成快马AI的代码生成能力。这个项目特别适合想学习全栈开发的朋友&#xff0c;既能练手Next.js&#xff0c;又能体验AI接口的集成。 项目整体设计思路 这个模拟官网主要包含两大核心功…...

锁相双极性PWM电机驱动原理与STM32实现

1. 项目概述Motor_LockedAntiphase是一个面向嵌入式电机控制的轻量级驱动库&#xff0c;专为实现锁相双极性PWM&#xff08;Locked Antiphase PWM&#xff09;控制模式而设计。该模式广泛应用于直流有刷电机&#xff08;DC Brushed Motor&#xff09;的双向调速与精确力矩控制场…...

ModTheSpire终极指南:5个技巧让杀戮尖塔模组加载零烦恼

ModTheSpire终极指南&#xff1a;5个技巧让杀戮尖塔模组加载零烦恼 【免费下载链接】ModTheSpire External mod loader for Slay The Spire 项目地址: https://gitcode.com/gh_mirrors/mo/ModTheSpire 厌倦了每次想体验新模组都要手动修改游戏文件的繁琐操作吗&#xff…...

VLAN配置避坑指南:为什么你的Trunk接口加了PVID还是不通?

VLAN配置避坑指南&#xff1a;为什么你的Trunk接口加了PVID还是不通&#xff1f; 刚接触企业网络的新手工程师们&#xff0c;是否经常遇到这样的困惑&#xff1a;明明按照文档配置了Trunk接口的PVID&#xff0c;设备间的VLAN通信却依然无法建立&#xff1f;这背后往往隐藏着对P…...

【数据结构与算法】第29篇:红黑树原理与C语言模拟

一、红黑树的定义1.1 五大性质红黑树是一种自平衡二叉查找树&#xff0c;每个节点增加一个颜色属性&#xff08;红或黑&#xff09;&#xff0c;必须满足&#xff1a;性质说明性质1每个节点是红色或黑色性质2根节点是黑色性质3所有叶子节点&#xff08;NIL&#xff09;是黑色性…...

League Akari:基于LCU API的模块化游戏自动化框架深度解析

League Akari&#xff1a;基于LCU API的模块化游戏自动化框架深度解析 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在现代竞技游戏生态中&a…...

YOLO X Layout实战案例:政务公文自动识别Title/Section-header/Page-footer三级结构

YOLO X Layout实战案例&#xff1a;政务公文自动识别Title/Section-header/Page-footer三级结构 1. 项目背景与价值 政务公文处理是政府日常工作中的重要环节&#xff0c;每天都有大量的公文需要整理、归档和数字化。传统的人工处理方式效率低下&#xff0c;容易出错&#xf…...

从仿真到焊板:手把手教你用741运放和Multisim搞定一个1kHz文氏电桥振荡器

从仿真到焊板&#xff1a;用741运放构建1kHz文氏电桥振荡器的工程实践指南 当你第一次尝试将课本上的振荡电路理论转化为实际可工作的电路时&#xff0c;往往会发现仿真完美的设计在实际搭建时问题百出。文氏电桥振荡器作为经典的RC正弦波发生器&#xff0c;是理解振荡原理和掌…...

jsTree终极问题排查指南:10个开发者必须掌握的实用技巧

jsTree终极问题排查指南&#xff1a;10个开发者必须掌握的实用技巧 【免费下载链接】jstree jquery tree plugin 项目地址: https://gitcode.com/gh_mirrors/js/jstree jsTree是一款功能强大的jQuery树形插件&#xff0c;广泛应用于Web开发中构建交互式树形结构。本文将…...

Windows 11上运行Android应用的3大核心优势:WSA完全指南

Windows 11上运行Android应用的3大核心优势&#xff1a;WSA完全指南 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 想在Windows电脑上直接使用你最喜欢的An…...