LoginSignup
0
1

More than 1 year has passed since last update.

動画を超解像してみたい iOSでやってみた

Last updated at Posted at 2022-01-28

CoreMLで動画を超解像してみました

動画を超解像したらおもしろいんじゃないか

動画をCoreMLの超解像モデルにかけてみる

今回は1フレームずつ超解像にかけてみるという力技に挑戦します。

Step

1、CoreML-Modelsから超解像モデルをダウンロード

lazy var srrequest: VNCoreMLRequest = {
    let model = srmodel().model
    let vnModel = try! VNCoreMLModel(for: model)
    let request = VNCoreMLRequest(model: vnModel)
    request.imageCropAndScaleOption = .scaleFill
    return request
}()

2、SemanticImageで動画フレームを処理

semanticImage.applyProcessingOnVideo(videoURL: url, { ciImage in
    let handler = VNImageRequestHandler(ciImage: ciImage, options: [:])
    try! handler.perform([self.request])
    let result = request.results?.first as! VNPixelBufferObservation
    let pixelBuffer = result.pixelBuffer
    let srImage = CIImage(cvPixelBuffer: pixelBuffer)
    return srImage.resize(as: ciImage.extent.size)
}, { err, processedURL in

})

結果

今回は元動画サイズにリサイズしていますが、超解像モデルは画像サイズも大きくしてくれるので、4Kのような動画を作ることも可能かと思います。

🐣


フリーランスエンジニアです。
お仕事のご相談こちらまで
rockyshikoku@gmail.com

Core MLやARKitを使ったアプリを作っています。
機械学習/AR関連の情報を発信しています。

Twitter
Medium

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1