iOS使用CoreML运用小型深度神经网络架构对图像进行解析
查找一个图片选择器
我用的是ImagePicker
项目有点老了,需要做一些改造,下面是新的仓库
platform :ios, '16.0'use_frameworks!target 'learnings' dosource 'https://github.com/CocoaPods/Specs.git'pod 'ImagePicker', :git => 'https://github.com/KevinSnoopy/ImagePicker.git'end
接下来就是使用图片选择器输出图片了
func wrapperDidPress(_ imagePicker: ImagePicker.ImagePickerController, images: [UIImage]) {}func doneButtonDidPress(_ imagePicker: ImagePicker.ImagePickerController, images: [UIImage]) {if !images.isEmpty, let _ = images.first {/**在这里输出图片,可以调用模型进行解析*/}}func cancelButtonDidPress(_ imagePicker: ImagePicker.ImagePickerController) {imagePicker.dismiss(animated: true)}
当前我使用了几个公开的模型
FCRN:
/**深度估计根据一幅图像来预测深度。*/func fcrnDepthPrediction(image: UIImage?) {let config = MLModelConfiguration()config.computeUnits = .allif let img = image?.cgImage, let fcrn = try? FCRN(contentsOf: FCRN.urlOfModelInThisBundle, configuration: config) {if let input = try? FCRNInput(imageWith: img), let output = try? fcrn.prediction(input: input) {print(output.depthmapShapedArray)}}}
MNISTClassifier:
/**涂鸦分类对单个手写数字进行分类 (支持数字 0-9)。*/func mnistClassifier(image: UIImage?) {if let img = image?.cgImage, let mnist = try? MNISTClassifier(contentsOf: MNISTClassifier.urlOfModelInThisBundle, configuration: MLModelConfiguration()) {if let input = try? MNISTClassifierInput(imageWith: img), let output = try? mnist.prediction(input: input) {print(output.classLabel)print(output.labelProbabilities)}}}
UpdatableDrawingClassifier:
/**涂鸦分类基于 K-最近邻算法(KNN)模型来学习识别新涂鸦的涂鸦分类器。*/func updatableDrawingClassifier(image: UIImage?) {if let img = image?.cgImage, let updatable = try? UpdatableDrawingClassifier(contentsOf: UpdatableDrawingClassifier.urlOfModelInThisBundle, configuration: MLModelConfiguration()) {if let input = try? UpdatableDrawingClassifierInput(drawingWith: img), let output = try? updatable.prediction(input: input) {print(output.label)print(output.labelProbs)}}}
MobileNetV2:
/**图像分类MobileNetv2 架构经过训练,可对相机取景框内或图像中的主要对象进行分类。*/func mobileNetV2(image: UIImage?) {if let img = image?.cgImage, let netv2 = try? MobileNetV2(contentsOf: MobileNetV2.urlOfModelInThisBundle, configuration: MLModelConfiguration()) {if let input = try? MobileNetV2Input(imageWith: img), let output = try? netv2.prediction(input: input) {print(output.classLabel)print(output.classLabelProbs)}}}
Resnet50:
/**图像分类一种残差神经网络,它能对相机取景框内或图像中的主要对象进行分类。*/func resnet50(image: UIImage?) {if let img = image?.cgImage, let resnet = try? Resnet50(contentsOf: Resnet50.urlOfModelInThisBundle, configuration: MLModelConfiguration()) {if let input = try? Resnet50Input(imageWith: img), let output = try? resnet.prediction(input: input) {print(output.classLabel)print(output.classLabelProbs)}}}
SqueezeNet:
/**图像分类一种小型深度神经网络架构,它能对相机取景框内或图像中的主要对象进行分类。*/func squeezeNet(image: UIImage?) {if let img = image?.cgImage, let net = try? SqueezeNet(contentsOf: SqueezeNet.urlOfModelInThisBundle, configuration: MLModelConfiguration()) {if let input = try? SqueezeNetInput(imageWith: img), let output = try? net.prediction(input: input) {print(output.classLabel)print(output.classLabelProbs)}}}
相关文章:
iOS使用CoreML运用小型深度神经网络架构对图像进行解析
查找一个图片选择器 我用的是ImagePicker 项目有点老了,需要做一些改造,下面是新的仓库 platform :ios, 16.0use_frameworks!target learnings dosource https://github.com/CocoaPods/Specs.gitpod ImagePicker, :git > https://github.com/KevinS…...
使用Python打造微信高效自动化操作教程
引言 在如今数字化时代,人们对于效率的追求越来越强烈,尤其是在工作和学习中。自动化操作成为了提高生产力的有效途径之一,而PyAutoGUI和Pyperclip作为Python中的两个强大库,为我们实现自动化操作提供了便利。本文将向大家介绍如…...
怎么在爬虫中使用ip代理服务器,爬虫代理IP的好处有哪些?
随着互联网的快速发展,网络爬虫已经成为数据采集、分析和整理的重要工具。然而,随着网络技术的不断发展,许多网站都会采取反爬虫措施,以避免数据被恶意获取。在这种情况下,代理IP服务器就成为了爬虫们的必本备文工将具…...
Typora的相关配置(Typora主题、字体、快捷键、习惯)
Typora的相关配置(Typora主题、字体、快捷键、习惯) 文章目录 Typora的相关配置(Typora主题、字体、快捷键、习惯)[toc]一、主题配置二、字体配置查看字体名称是否可以被识别:如果未能正确识别: 三、习惯配置四、快捷键配置更改提供的功能的快捷键&#…...
守护进程深度分析
思考 代码中创建的会话,如何关联控制终端? 新会话关联控制终端的方法 会话首进程成功打开终端设备 (设备打开前处于空闲状态) 1、关闭标准输入输出和标准错误输出2、将 stdin 关联到终端设备:STDIN_FILENO > 03、将 stdout 关联到终端设…...
SpringAMQP
SpringAMQT RabbitMQ安装与部署RabbitMQ结构简单队列模型 SpringAMQP依赖引入配置RabbitMQ连接信息基本模型简单队列模型WorkQueue模型 发布订阅模型FanoutExchangeDirectExchangeTopicExchange 消息转换器 消息队列是实现异步通讯的一种方式,我们将从RabbitMQ为例开…...
深入探索Sharding JDBC:分库分表的利器
随着互联网应用的不断发展和用户量的不断增加,传统的数据库在应对高并发和大数据量的场景下面临着巨大的挑战。为了解决这一问题,分库分表成为了一个非常流行的方案。分库分表主流的技术包括MyCat和Sharding JDBC。我们来通过一张图来了解这两者有什么区…...
Java后端模拟面试 题集④
1.你先作个自我介绍吧 面试官您好,我叫张睿超,来自湖南长沙,大学毕业于湖南农业大学,是一名智能科学与技术专业的统招一本本科生。今天主要过来面试贵公司的Java后端开发工程师岗位。 大学里面主修的课程是Java、Python、数字图…...
中国5G产业全景图谱报告2022_挚物AIoT产业研究院
中国5G产业全景图谱报告2022_挚物AIoT产业研究院 产业结构 5G 产业结构主要包括接入网、传输网、核心网、电信运营商、网络配套服务商、5G 应用生态及产业服务 7 个主要板块。根据各版块中主要市场参与者提供的产品和服务,又下分子版块。 (1ÿ…...
设计链表复习
设计链表 class ListNode {int val;ListNode next;public ListNode() {}public ListNode(int val) {this.val val;}public ListNode(int val, ListNode next) {this.val val;this.next next;}}class MyLinkedList {//size存储链表元素的个数int size;//虚拟头节点ListNode…...
在 Visual Studio Code (VS Code) 中设置
在 Visual Studio Code (VS Code) 中设置代理服务器的详细教程如下: 打开 Visual Studio Code。 在顶部菜单栏中,点击 "File"(文件) > "Preferences"(首选项) > "Settings…...
2023年拼多多双11百亿补贴新增单件立减玩法介绍
2023年拼多多双11百亿补贴新增单件立减玩法介绍 拼多多启动了11.11大促活动,主题为“天天11.11,天天真低价”。消费者享受多重优惠,包括满减、百亿补贴和单件立减等。百亿补贴新增玩法,有超过20000款品牌商品参与单件立减活动。 …...
面试题 01.06. 字符串压缩
题目来源: leetcode题目,网址:面试题 01.06. 字符串压缩 - 力扣(LeetCode) 解题思路: 计算压缩后的字符串长度,如果该长度小于原字符串长度,返回压缩后的字符串,否则…...
那些你面试必须知道的webpack知识点
目录 1、webpack介绍和简单使用1.1 什么是webpack?1.2 安装webpack1.3 简单使用一下webpack 2、webpack的入口与输出2.1 入口(entry)2.2 输出(output) 3、入口多种配置方法3.1 多文件打包成一个文件3.2 多文件打包成多文件 4、loader的概念5、压缩打包HTML5.1 使用步…...
十四、队列函数
1、概述 (1)使用队列的流程:创建队列、写队列、读队列、删除队列。 2、创建 队列的创建有两种方法:动态分配内存、静态分配内存。 2.1、动态分配内存 (1)函数:xQueueCreate,队列的内存再函数内部动态分配。 (2)函数原型如下&…...
使用高防服务器有什么好处?103.216.155.x
为什么建议租用高防服务器 第一,高防服务器由于业务的特殊性,本身机器的配置要求高,服务器的价格相比普通的贵,而且,机器还有维护费、托管费等,这会让运营的成本上升。 第二,租用高防服务器&a…...
Android笔记(七)Android JetPack Compose组件搭建Scaffold脚手架
在去年2022年曾发布一篇关于脚手架的文章:“Android JetPack Compose组件中Scaffold的应用” 。但是Android的版本从12变更到13及以上版本,导致一些细节的实现存在不同。在本文中,将从头开始介绍整个脚手架的搭建过程。 一、新建项目模块 在…...
Git合并某个分支上的某个提交
1. 首先,确保你当前所在的分支是你要合并分支的父分支。你可以使用以下命令切换到父分支: git checkout <父分支名称> 2. 确保你要合并的分支是可用的。你可以使用以下命令查看所有可用的分支: git branch -a 这将显示所有本地和远程…...
在pytorch中对于张量维度的理解
原文参考链接: https://blog.csdn.net/qq_36930921/article/details/121670945. https://zhuanlan.zhihu.com/p/356951418 张量的计算:https://zhuanlan.zhihu.com/p/140260245 学习过程中对知识的补充学习,谨防原文失效,请大家支…...
JAVA高级教程Java HashMap表达式(7)
目录 7、HashMap的使用students类 7、HashMap的使用 students类 package Map01;import java.util.Objects ;public class Students implements Comparable<Students>{private String name;private int stuNO;public Students() {}public Students(String age, int stuN…...
告别串口调试器:用STM32F407的USB CDC打造高速数据通道(实测500KB/s+)
STM32F407 USB CDC高速通信实战:突破传统串口的性能瓶颈 在嵌入式设备与PC通信的传统方案中,UART转USB芯片(如CH340、CP2102)几乎是标配。但当我们面对需要高速数据传输的物联网设备、工业传感器或数据采集系统时,这种…...
OmenSuperHub深度解析:3步解锁惠普游戏本隐藏性能
OmenSuperHub深度解析:3步解锁惠普游戏本隐藏性能 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度,自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub OmenSuperHub是一款专为惠普OMEN系列游戏本设…...
.NET开发者集成指南:在C#项目中调用Qwen3-0.6B-FP8对话服务
.NET开发者集成指南:在C#项目中调用Qwen3-0.6B-FP8对话服务 如果你是一名.NET开发者,最近想在自己的C#应用里加点AI对话能力,比如做个智能客服、聊天助手或者内容生成工具,那这篇文章就是为你准备的。现在大模型很火,…...
WPS AI写公式 vs 手工推导:以提取最后一个‘-’前文本为例,聊聊哪种方式更适合你
WPS AI写公式 vs 手工推导:以提取最后一个‘-’前文本为例,聊聊哪种方式更适合你 在数据处理工作中,文本提取是最常见的需求之一。面对"南漳世纪名都-ZFH-1"这类包含多个分隔符的字符串,如何准确提取最后一个分隔符前的…...
Audio Annotator:如何用免费开源工具3分钟完成专业音频标注?[特殊字符]
Audio Annotator:如何用免费开源工具3分钟完成专业音频标注?🚀 【免费下载链接】audio-annotator A JavaScript interface for annotating and labeling audio files. 项目地址: https://gitcode.com/gh_mirrors/au/audio-annotator 还…...
讯为IMX6Q开发板TF卡启动踩坑记:手把手教你修复‘MMC: no card present’报错
讯为IMX6Q开发板TF卡启动异常全解析:从硬件原理到uboot调试实战 最近在调试讯为IMX6Q开发板的TF卡启动功能时,遇到了经典的"MMC: no card present"报错。这个看似简单的提示背后,其实隐藏着硬件设计、引脚映射、uboot驱动配置等一系…...
智能体的商业化困境
随着AI技术从“大模型狂欢”迈入“智能体争艳”的新阶段,智能体被寄予厚望,成为连接大模型能力与产业需求、实现技术商业化变现的核心载体。然而现实中,多数智能体项目停留在POC(概念验证)阶段,难以实现规模…...
树莓派5到手后第一件事:用Pi Imager v1.8.5烧录Raspberry Pi OS Bookworm的完整流程与隐藏功能
树莓派5到手后第一件事:用Pi Imager v1.8.5烧录Raspberry Pi OS Bookworm的完整流程与隐藏功能 树莓派5的发布让开发者们再次兴奋起来——更快的CPU、更强的GPU、更高的内存带宽,这些硬件升级意味着更流畅的多任务处理和更复杂的项目可能性。但无论硬件…...
别再只跑分数了!手把手教你用VMAF Python库分析视频质量(附实战代码)
深度实战:用Python玩转VMAF视频质量分析 视频质量评估一直是多媒体处理领域的重要课题。在众多评估指标中,VMAF(视频多方法评估融合)因其接近人类视觉感知的特性而备受推崇。但很多开发者仅仅停留在跑分阶段,未能充分发挥VMAF的分析潜力。本文…...
Hunyuan-MT-7B真实案例:某边境县医院门诊处方双语打印系统输出
Hunyuan-MT-7B真实案例:某边境县医院门诊处方双语打印系统输出 1. 项目背景与需求 某边境县医院面临着特殊的语言服务需求。由于地处多民族聚居区,医院每天需要接待大量使用不同语言的患者。门诊处方需要同时使用汉语和当地少数民族语言打印࿰…...
