ディープラーニングで解像度を上げることができるみたいです。学習済みモデルが公開されているので、試してみたいと思います。X線の写真の解像度をあげて、診断に役に立てることはできるでしょうか。

  • EDSR: Enhanced Deep Residual Network

こちらのモデルは、Xavier Weberさんのgithubに公開されています。

  • LapSRN: Laplacian Pyramid Super-Resolution Network

こちらのモデルは、Fanny Monoriさんのgithubに公開されています。

上記のサイトから、モデルを1つダウンロードしてください。x2とかx4とかは、解像度を上げる強さです。大きい方が重いです。どれかを選んでダウンロードしてください。

必要なパッケージは、opencv-contrib-pythonです。pip install opencv-contrib-pythonをしてください。

LapSRNを使った場合のサンプルコードです。

import cv2

#1 写真をセット
img=cv2.imread("IMGP5166.jpg")

#2 モデルのセット
sr = cv2.dnn_superres.DnnSuperResImpl_create()
path = "LapSRN_x8.pb"
sr.readModel(path)

#3 2つめのパラメータは、x8とかの数字に合わせる
sr.setModel("lapsrn", 8) 
result = sr.upsample(img) 

#4 保存
cv2.imwrite("IMGP5166_lapsrnx4.jpg",result)

#1 写真のセット

必要に応じて写真のフルパスをセットしてください

#2 モデルのセット

必要に応じてモデルのフルパスをセットしてください。この場合、pyファイル、モデル、写真がすべて同一のフォルダに入っています。モデルの名前はダウンロードしたものにしてください。

#3 2つめのパラメータは、x8とかの数字に合わせる

#4 保存

日本語パスを設定してつまずかないように気を付けてください。cv2は日本語を嫌います。

やってみました

10年以上前にタンザニアに行った際、きれいなトカゲをみつけました。だいぶ前のデジカメなので解像度が悪いです。

うーん、、気持ち変わった気もしますが、あんまり変わらなかったです。

X線写真はどうでしょうか

レントゲン写真はこのサイトより取得:https://pixabay.com/photos/radiography-bone-medical-picture-2010129/

Free for commercial use
No attribution required

Pixabay License

若干解像度は上がりますが、診断に役に立つところまでは到達できていないと思います。

Categories:

category