見出し画像

スマホ写真から猫だけを切り出し白黒画像を作るシステムを作ってみた


トレーナーやTシャツで見るあれ

トレーナーやTシャツに、ペットの犬や猫の写真を印刷するサービスがありますね。あの画像を全自動で作るシステムを作ってみました。
こういうものです。(ちなみに我が家の猫です)

入力写真(いろいろなものが映っている・・・)
出力画像(猫だけになって、適切に白黒になってる)

使った技術の概要

Windows 10
python 3.10.9 (conda)
Tensorflow (cpu)
DeepLabv3

処理の概要

大きく3ステップです。
1. 写真を適切な大きさに切り出す(前処理)
2. 機械学習を使って、猫だけを取り出す
3. 白と黒の2色だけにする(後処理)



説明の仕方

下記の順に説明します。
① 環境構築方法
② 前処理のキモ
③ 機械学習
④ 後処理のキモ


作った関数

唐突な気もしますが、初めに全体イメージをつかむために、作った関数を最初にしておきます。全体としては、これらを順番に呼び出しているだけです。(上では猫とだけ書きましたが、犬と猫と人を抽出しています)

②前処理用に
・画像を拡大/縮小して返す関数
・Exif情報を見て、写真の縦横を補正して返す関数
・色を標準化して返す関数

③機械学習用に
・画像から犬と猫と人のピクセル位置を返す関数

④後処理用に
・機械学習の結果から、マスクを作る関数
・マスクを使って犬と猫と人だけを抽出する関数
・画像を2値化して返す関数


では次から、環境構築方法と、キモとなる部分のコードの目的内容の説明をします。
説明の粒度感は、pythonは少しできるから、グダグダ長く書かずに要所要所だけ教えてくれればーというくらいのレベル感です。機械学習のところはコピペで動くようにコード付きで説明するので、内容はわからなくても大丈夫です。

ここから先は

5,027字 / 5画像

¥ 2,000

期間限定!PayPayで支払うと抽選でお得

この記事が気に入ったらチップで応援してみませんか?