Skip to content

hazemabdelkawy/CoreML-Models

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 

Repository files navigation

CoreML-Models

Converted CoreML Model Zoo.

CoreML is a machine learning framework by Apple. If you are iOS developer, you can easly use machine learning models in your Xcode project.

How to use

Take a look this model zoo, and if you found the CoreML model you want, download the model from google drive link and bundle it in your project. Or if the model have sample project link, try it and see how to use the model in the project. You are free to do or not.

Section Link

How to get the model

You can get the model converted to CoreML format from the link of Google drive. See the section below for how to use it in Xcode. The license for each model conforms to the license for the original project.

Image Classifier

Efficientnet

スクリーンショット 2021-12-27 6 34 43

Google Drive Link Size Dataset Original Project License
Efficientnetb0 22.7 MB ImageNet TensorFlowHub Apache2.0

Efficientnetv2

スクリーンショット 2021-12-31 4 30 22

Google Drive Link Size Dataset Original Project License Year
Efficientnetv2 85.8 MB ImageNet Google/autoML Apache2.0 2021

VisionTransformer

An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale.

スクリーンショット 2022-01-07 10 37 05

Google Drive Link Size Dataset Original Project License Year
VisionTransformer-B16 347.5 MB ImageNet google-research/vision_transformer Apache2.0 2021

Conformer

Local Features Coupling Global Representations for Visual Recognition.

スクリーンショット 2022-01-07 11 34 33

Google Drive Link Size Dataset Original Project License Year
Conformer-tiny-p16 94.1 MB ImageNet pengzhiliang/Conformer Apache2.0 2021

DeiT

Data-efficient Image Transformers

スクリーンショット 2022-01-07 11 50 25

Google Drive Link Size Dataset Original Project License Year
DeiT-base384 350.5 MB ImageNet facebookresearch/deit Apache2.0 2021

RepVGG

Making VGG-style ConvNets Great Again

スクリーンショット 2022-01-08 5 00 53

Google Drive Link Size Dataset Original Project License Year
RepVGG-A0 33.3 MB ImageNet DingXiaoH/RepVGG MIT 2021

RegNet

Designing Network Design Spaces

スクリーンショット 2022-02-23 7 38 23

Google Drive Link Size Dataset Original Project License Year
regnet_y_400mf 16.5 MB ImageNet TORCHVISION.MODELS MIT 2020

Object Detection

YOLOv5s

スクリーンショット 2021-12-29 6 17 08

Google Drive Link Size Output Original Project License Note Sample Project
YOLOv5s 29.3MB Confidence(MultiArray (Double 0 × 80)), Coordinates (MultiArray (Double 0 × 4)) ultralytics/yolov5 GNU Non Maximum Suppression has been added. CoreML-YOLOv5

YOLOv7

スクリーンショット 2021-12-29 6 17 08

Google Drive Link Size Output Original Project License Note Sample Project Conversion Script
YOLOv7 147.9MB Confidence(MultiArray (Double 0 × 80)), Coordinates (MultiArray (Double 0 × 4)) WongKinYiu/yolov7 GNU Non Maximum Suppression has been added. CoreML-YOLOv5 Open In Colab

Segmentation

Google Drive Link Size Output Original Project License
U2Net 175.9 MB Image(GRAYSCALE 320 × 320) xuebinqin/U-2-Net Apache
U2Netp 4.6 MB Image(GRAYSCALE 320 × 320) xuebinqin/U-2-Net Apache

face-Parsing

Google Drive Link Size Output Original Project License Sample Project
face-Parsing 53.2 MB MultiArray(1 x 512 × 512) zllrunning/face-parsing.PyTorch MIT CoreML-face-parsing

Segformer

Simple and Efficient Design for Semantic Segmentation with Transformers

Google Drive Link Size Output Original Project License year
SegFormer_mit-b0_1024x1024_cityscapes 14.9 MB MultiArray(512 × 1024) NVlabs/SegFormer NVIDIA 2021

BiSeNetV2

Bilateral Network with Guided Aggregation for Real-time Semantic Segmentation

Google Drive Link Size Output Original Project License year
BiSeNetV2_1024x1024_cityscapes 12.8 MB MultiArray ycszen/BiSeNet Apache2.0 2021

DNL

Disentangled Non-Local Neural Networks

Google Drive Link Size Output Dataset Original Project License year
dnl_r50-d8_512x512_80k_ade20k 190.8 MB MultiArray[512x512] ADE20K yinmh17/DNL-Semantic-Segmentation Apache2.0 2020

ISANet

Interlaced Sparse Self-Attention for Semantic Segmentation

Google Drive Link Size Output Dataset Original Project License year
isanet_r50-d8_512x512_80k_ade20k 141.5 MB MultiArray[512x512] ADE20K openseg-group/openseg.pytorch MIT ArXiv'2019/IJCV'2021

FastFCN

Rethinking Dilated Convolution in the Backbone for Semantic Segmentation

Google Drive Link Size Output Dataset Original Project License year
fastfcn_r50-d32_jpu_aspp_512x512_80k_ade20k 326.2 MB MultiArray[512x512] ADE20K wuhuikai/FastFCN MIT ArXiv'2019

GCNet

Non-local Networks Meet Squeeze-Excitation Networks and Beyond

Google Drive Link Size Output Dataset Original Project License year
gcnet_r50-d8_512x512_20k_voc12aug 189 MB MultiArray[512x512] PascalVOC xvjiarui/GCNet Apache License 2.0 ICCVW'2019/TPAMI'2020

DANet

Dual Attention Network for Scene Segmentation(CVPR2019)

Google Drive Link Size Output Dataset Original Project License year
danet_r50-d8_512x1024_40k_cityscapes 189.7 MB MultiArray[512x1024] CityScapes junfu1115/DANet MIT CVPR2019

Semantic-FPN

Panoptic Feature Pyramid Networks

Google Drive Link Size Output Dataset Original Project License year
fpn_r50_512x1024_80k_cityscapes 108.6 MB MultiArray[512x1024] CityScapes facebookresearch/detectron2 Apache License 2.0 2019

cloths_segmentation

Code for binary segmentation of various cloths.

Google Drive Link Size Output Dataset Original Project License year
clothSegmentation 50.1 MB Image(GrayScale 640x960) fashion-2019-FGVC6 facebookresearch/detectron2 MIT 2020

Super Resolution

Google Drive Link Size Output Original Project License year
Real ESRGAN4x 66.9 MB Image(RGB 2048x2048) xinntao/Real-ESRGAN BSD 3-Clause License 2021
Real ESRGAN Anime4x 66.9 MB Image(RGB 2048x2048) xinntao/Real-ESRGAN BSD 3-Clause License 2021

Google Drive Link Size Output Original Project License year
BSRGAN 66.9 MB Image(RGB 2048x2048) cszn/BSRGAN 2021

Google Drive Link Size Output Original Project License year Conversion Script
A-ESRGAN 63.8 MB Image(RGB 1024x1024) aesrgan/A-ESRGANN BSD 3-Clause License 2021 Open In Colab

Best-Buddy GANs for Highly Detailed Image Super-Resolution

Google Drive Link Size Output Original Project License year
Beby-GAN 66.9 MB Image(RGB 2048x2048) dvlab-research/Simple-SR MIT 2021

The Residual in Residual Dense Network for image super-scaling.

Google Drive Link Size Output Original Project License year
RRDN 16.8 MB Image(RGB 2048x2048) idealo/image-super-resolution Apache2.0 2018

Fast-SRGAN.

Google Drive Link Size Output Original Project License year
Fast-SRGAN 628 KB Image(RGB 1024x1024) HasnainRaz/Fast-SRGAN MIT 2019

Enhanced-SRGAN.

Google Drive Link Size Output Original Project License year
ESRGAN 66.9 MB Image(RGB 2048x2048) xinntao/ESRGAN Apache 2.0 2018

Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network.

Google Drive Link Size Output Original Project License year
SRGAN 6.1 MB Image(RGB 2048x2048) dongheehand/SRGAN-PyTorch 2017

Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network.

Google Drive Link Size Output Original Project License year
SRResNet 6.1 MB Image(RGB 2048x2048) dongheehand/SRGAN-PyTorch 2017

Low Light Enhancement

StableLLVE

Learning Temporal Consistency for Low Light Video Enhancement from Single Images.

Google Drive Link Size Output Original Project License Year
StableLLVE 17.3 MB Image(RGB 512x512) zkawfanx/StableLLVE MIT 2021

Zero-DCE

Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement

Google Drive Link Size Output Original Project License Year Conversion Script
Zero-DCE 320KB Image(RGB 512x512) Li-Chongyi/Zero-DCE See Repo 2021 Open In Colab

Image Restoration

MPRNet

Multi-Stage Progressive Image Restoration.

Debluring

Denoising

Deraining

Google Drive Link Size Output Original Project License Year
MPRNetDebluring 137.1 MB Image(RGB 512x512) swz30/MPRNet MIT 2021
MPRNetDeNoising 108 MB Image(RGB 512x512) swz30/MPRNet MIT 2021
MPRNetDeraining 24.5 MB Image(RGB 512x512) swz30/MPRNet MIT 2021

MIRNetv2

Learning Enriched Features for Fast Image Restoration and Enhancement.

Denoising

Super Resolution

Contrast Enhancement

Low Light Enhancement

Google Drive Link Size Output Original Project License Year Conversion Script
MIRNetv2Denoising 42.5 MB Image(RGB 512x512) swz30/MIRNetv2 ACADEMIC PUBLIC LICENSE 2022 Open In Colab
MIRNetv2SuperResolution 42.5 MB Image(RGB 512x512) swz30/MIRNetv2 ACADEMIC PUBLIC LICENSE 2022 Open In Colab
MIRNetv2ContrastEnhancement 42.5 MB Image(RGB 512x512) swz30/MIRNetv2 ACADEMIC PUBLIC LICENSE 2022 Open In Colab
MIRNetv2LowLightEnhancement 42.5 MB Image(RGB 512x512) swz30/MIRNetv2 ACADEMIC PUBLIC LICENSE 2022 Open In Colab

Image Generation

Google Drive Link Size Output Original Project License Sample Project
MobileStyleGAN 38.6MB Image(Color 1024 × 1024) bes-dev/MobileStyleGAN.pytorch Nvidia Source Code License-NC CoreML-StyleGAN

Google Drive Link Size Output Original Project
DCGAN  9.2MB MultiArray TensorFlowCore

Image2Image

Google Drive Link Size Output Original Project License Usage
Anime2Sketch 217.7MB Image(Color 512 × 512) Mukosame/Anime2Sketch MIT Drop an image to preview

Google Drive Link Size Output Original Project Conversion Script
AnimeGAN2Face_Paint_512_v2 8.6MB Image(Color 512 × 512) bryandlee/animegan2-pytorch Open In Colab

Google Drive Link Size Output Original Project License Note
Photo2Cartoon 15.2 MB Image(Color 256 × 256) minivision-ai/photo2cartoon MIT The output is little bit different from the original model. It cause some operations were converted replaced manually.

Google Drive Link Size Output Original Project
AnimeGANv2_Hayao  8.7MB Image(256 x 256) TachibanaYoshino/AnimeGANv2

Google Drive Link Size Output Original Project
AnimeGANv2_Paprika  8.7MB Image(256 x 256) TachibanaYoshino/AnimeGANv2

Google Drive Link Size Output Original Project
WarpGAN Caricature  35.5MB Image(256 x 256) seasonSH/WarpGAN

スクリーンショット 2021-12-27 8 18 33 スクリーンショット 2021-12-27 8 28 11

Google Drive Link Size Output Original Project
UGATIT_selfie2anime 266.2MB(quantized) Image(256x256) taki0112/UGATIT

CartoonGAN

Google Drive Link Size Output Original Project
CartoonGAN_Shinkai  44.6MB MultiArray mnicnc404/CartoonGan-tensorflow
CartoonGAN_Hayao  44.6MB MultiArray mnicnc404/CartoonGan-tensorflow
CartoonGAN_Hosoda  44.6MB MultiArray mnicnc404/CartoonGan-tensorflow
CartoonGAN_Paprika  44.6MB MultiArray mnicnc404/CartoonGan-tensorflow

Google Drive Link Size Output Original Project License Year
fast-neural-style-transfer-cuphead 6.4MB Image(RGB 960x640) eriklindernoren/Fast-Neural-Style-Transfer MIT 2019
fast-neural-style-transfer-starry-night 6.4MB Image(RGB 960x640) eriklindernoren/Fast-Neural-Style-Transfer MIT 2019
fast-neural-style-transfer-mosaic 6.4MB Image(RGB 960x640) eriklindernoren/Fast-Neural-Style-Transfer MIT 2019

How to use in a xcode project.

Option 1,implement Vision request.


import Vision
lazy var coreMLRequest:VNCoreMLRequest = {
   let model = try! VNCoreMLModel(for: modelname().model)
   let request = VNCoreMLRequest(model: model, completionHandler: self.coreMLCompletionHandler)
   return request
   }()

let handler = VNImageRequestHandler(ciImage: ciimage,options: [:])
   DispatchQueue.global(qos: .userInitiated).async {
   try? handler.perform([coreMLRequest])
}

If the model has Image type output:

let result = request?.results?.first as! VNPixelBufferObservation
let uiimage = UIImage(ciImage: CIImage(cvPixelBuffer: result.pixelBuffer))

Else the model has Multiarray type output:

For visualizing multiArray as image, Mr. Hollance’s “CoreML Helpers” are very convenient. CoreML Helpers

Converting from MultiArray to Image with CoreML Helpers.

func coreMLCompletionHandler(request:VNRequest?、error:Error?){
   let = coreMLRequest.results?.first as!VNCoreMLFeatureValueObservation
   let multiArray = result.featureValue.multiArrayValue
   let cgimage = multiArray?.cgImage(min:-1、max:1、channel:nil)

Option 2,Use CoreGANContainer. You can use models with dragging&dropping into the container project.

Make the model lighter

You can make the model size lighter with Quantization if you want. https://coremltools.readme.io/docs/quantization

The lower the number of bits, more the chances of degrading the model accuracy. The loss in accuracy varies with the model.

import coremltools as ct
from coremltools.models.neural_network import quantization_utils

# load full precision model
model_fp32 = ct.models.MLModel('model.mlmodel')

model_fp16 = quantization_utils.quantize_weights(model_fp32, nbits=16)
# nbits can be 16(half size model), 8(1/4), 4(1/8), 2, 1
quantized sample (U2Net)
InputImage / nbits=32(original) / nbits=16 / nbits=8 / nbits=4

Thanks

Cover image was taken from Ghibli free images.

On YOLOv5 convertion, dbsystel/yolov5-coreml-tools give me the super inteligent convert script.

And all of original projects

Auther

Daisuke Majima Freelance engineer. iOS/MachineLearning/AR I can work on mobile ML projects and AR project. Feel free to contact: [email protected]

GitHub Twitter Medium

About

Converted CoreML Model Zoo.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published