Skip to content

Instantly share code, notes, and snippets.

View s1ddok's full-sized avatar

Andrey Volodin s1ddok

View GitHub Profile
class Checkpoint {
/// ...
var userInfo: [String: Codable] = [:]
}
protocol Checkpointable {
init(checkpoint: Checkpoint)
@s1ddok
s1ddok / vfd.swift
Last active December 28, 2018 15:33
Vision Face Detector
public class VisionFaceDetector {
private var faceRectangleRequest: VNDetectFaceRectanglesRequest!
public var boundingBoxes: [CGRect] = []
public init() {
self.faceRectangleRequest = VNDetectFaceRectanglesRequest(completionHandler: { [weak self] (request, error) in
self?.handleFaces(request: request, error: error)
})
self.faceRectangleRequest.preferBackgroundProcessing = false
DebugMenu.sharedManager.set(options:
[BoolOption(name: "Show feature points",
initialValue: false)
{ (showFeatures: Bool) in
if showFeatures {
self.sceneView.debugOptions.formUnion(ARSCNDebugOptions.showFeaturePoints)
} else {
self.sceneView.debugOptions.remove(ARSCNDebugOptions.showFeaturePoints)
}
},
@s1ddok
s1ddok / dct-snippet4.swift
Last active May 29, 2018 11:23
dct-snippet4
import UIKit
class UserOptionsViewController: UITableViewController {
// 1
var options: [Option] = []
// 2
fileprivate var registeredTypes: [ObjectIdentifier: UITableViewCell.Type] = [:]
@s1ddok
s1ddok / dct-snippet3.swift
Last active May 29, 2018 11:19
dct-snippet3
// Declare model class for the option
public class BoolOption: Option {
public typealias Handler = (Bool) -> Void
public var name: String
public internal(set) var value: Bool {
didSet {
self.onChangeHandler?(self.value)
}
public protocol OptionCell {
func configure(for option: Option)
}
@s1ddok
s1ddok / dct-snippet1.swift
Last active May 29, 2018 10:50
dct-snippet1
public protocol Option: class {
var name: String { get }
}
// Retrieve results
guard let outputFeatures = featureProvider.featureValue(for: selectedModel.outputLayerName)?.multiArrayValue else {
fatalError("Couldn't retrieve features")
}
// Calculate total buffer size by multiplying shape tensor's dimensions
let bufferSize = outputFeatures.shape.lazy.map { $0.intValue }.reduce(1, { $0 * $1 })
// Get data pointer to the buffer
let dataPointer = UnsafeMutableBufferPointer(start: outputFeatures.dataPointer.assumingMemoryBound(to: Double.self),
import coremltools
coreml_model = coremltools.converters.caffe.convert(('hed_pretrained_bsds.caffemodel', 'deploy_main.prototxt'),
image_input_names='data',
is_bgr=True,
red_bias=122.67891434, green_bias=116.66876762, blue_bias=104.00698793)
coreml_model.author = 'Original paper: Xie, Saining and Tu, Zhuowen. Caffe implementation: Yangqing Jia. CoreML port: Andrey Volodin'
coreml_model.license = 'Unknown'
coreml_model.short_description = "Holistically-Nested Edge Detection"