查找一个图片选择器
我用的是ImagePicker
项目有点老了,须要做一些改造,下面是新的仓库
- platform :ios, '16.0'
- use_frameworks!
- target 'learnings' do
- source '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 = .all
- if 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)
- }
- }
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |