暗い場所で撮影された動画を、明るくする方法です
かんたんに機械学習モデルをつかって実行します。

暗くて不明瞭な動画から情報をとりたい
個人のスマホだけでなく、夜間の車載カメラや監視カメラなど、暗くて不明瞭な動画だけど、そこから情報をとりたい場合などあると思います。
動画用の軽量明るさ強化モデル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関連の情報を発信しています。