4
4

More than 1 year has passed since last update.

暗い場所で撮影された動画をくっきりあかるくする 機械学習で数行のコードで

Posted at

暗い場所で撮影された動画を、明るくする方法です

かんたんに機械学習モデルをつかって実行します。

暗くて不明瞭な動画から情報をとりたい

個人のスマホだけでなく、夜間の車載カメラや監視カメラなど、暗くて不明瞭な動画だけど、そこから情報をとりたい場合などあると思います。

動画用の軽量明るさ強化モデルStableLLVEがすごい

StableLLVEという2021年に発表されたモデルは、軽量で高速ながら、きれいに明るくしてくれます。

これで動画を処理すれば、明瞭な動画が得られます。

動画への使用方法

CoreMLモデルを使ってiPhoneで実行してみます。

CoreML-Modelsからモデルをダウンロード。

初期化。

guard let model = try? VNCoreMLModel(for: StablLLVEImage(configuration: MLModelConfiguration()).model) else { return nil }
let request = VNCoreMLRequest(model: model)

SemanticImageで動画にモデルをアプライ。

SemanticImage().applyProcessingOnVideo(videoURL: url, { ciImage in
     let handler = VNImageRequestHandler(ciImage: ciImage, options: [:])
     try? handler.perform([request])
     guard let result = self!.animeRequest!.results?.first as? VNPixelBufferObservation else { return ciImage }
     let newImage = CIImage(cvPixelBuffer: result.pixelBuffer)
     return newImage
}, {  err, editedVideoURL in
   // handle editedVideo in here.
}

動画の再生時間の2〜3倍程度の時間で処理できます。

処理が高速なので、スマホのカメラフィードをモデルに与えれば、リアルタイムで明るくすることもできます。
今回はスマホでやってみましたが、もちろん、PythonとOpenCVでオリジナルモデルを実行することもできます。

決定的瞬間を逃さずに

モバイル用のモデルを使うことでスマホでも使えますし、モデル自体が軽量なのでさまざまな状況で使えます。
暗闇にさまたげられずに、必要な瞬間を取得できると良いですね。

🐣


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

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

Twitter
Medium

4
4
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
4
4