![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F235259%2F459cd3c8-c207-fa94-0acf-b2f66ee07aea.jpeg?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=cde4b2e499b9cf1935ed8978d7349fa6)
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F235259%2Fa8a5e5cd-1d56-da30-76e4-6a0d363a0b4a.jpeg?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=8ac0b5f52d4da360a3eba0d51237e59c)
easyportraitというデータセットを学習したモデルを使います。
インストール
リポジトリで提供されているいくつかのモデルの中で、segformerが使いやすいと思うのでダウンロードします。
git clone https://github.com/hukenovs/easyportrait.git
cd easyportrait/pipelines/
pip install torch==1.13.1 torchvision==0.14.1
pip install -U openmim
mim install mmengine
mim install mmcv==1.7.1
mim install mmcv-full==1.7.1
pip install mmsegmentation==0.30.0
pip install ftfy
wget https://n-ws-620xz-pd11.s3pd11.sbercloud.ru/b-ws-620xz-pd11-jux/easyportrait/experiments/models/segformer-fp-1024.pth
mmseg/datasets/pipelines/formatting.pyの281行目を以下のように書き換えます。
formatting.py
# img_meta[key] = results[key]
img_meta[key] = results.get(key,None)
実行
from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot
from mmseg.core.evaluation import get_palette
device = 'cuda:0'
checkpoint = "segformer-fp-1024.pth"
config = "local_configs/easyportrait_experiments_v2/segformer-fp/segformer-fp.py"
model = init_segmentor(config, checkpoint, device=device)
img = 'image.jpg'
out = "result.jpg"
# test a single image
result = inference_segmentor(model, img)
show_result_pyplot(
model,
img,
result,
None,
opacity=0.5,
out_file=out)
結果のクラスインデックスは以下
['background',
'person',
'skin',
'left brow',
'right brow',
'left eye',
'right eye',
'lips',
'teeth']
歯もとれるのが良い。
🐣
フリーランスエンジニアです。
AIについて色々記事を書いていますのでよかったらプロフィールを見てみてください。
もし以下のようなご要望をお持ちでしたらお気軽にご相談ください。
AIサービスを開発したい、ビジネスにAIを組み込んで効率化したい、AIを使ったスマホアプリを開発したい、
ARを使ったアプリケーションを作りたい、スマホアプリを作りたいけどどこに相談したらいいかわからない…
いずれも中間コストを省いたリーズナブルな価格でお請けできます。
お仕事のご相談はこちらまで
rockyshikoku@gmail.com
機械学習やAR技術を使ったアプリケーションを作っています。
機械学習/AR関連の情報を発信しています。