Skip to content

Instantly share code, notes, and snippets.

@JhoLee
Created April 17, 2020 18:45
Show Gist options
  • Save JhoLee/31411bf2b29fe936d3fbc1d382f7afe9 to your computer and use it in GitHub Desktop.
Save JhoLee/31411bf2b29fe936d3fbc1d382f7afe9 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Change pixel values...\n",
"### Example dataset is 'CelebA mask'\n",
"\n",
"20.04.18 jho.lee@kakao.com; git.8080.kr; blog.jholee.kr\n",
"\n",
"Made just for my own needs.\n",
"\n",
"---\n",
"\n",
"There are unexpected labels at the boundary lines of the mask.\n",
"(like 254, 174, ...)\n",
"\n",
"0 ~ 63 -> 0; 64 ~ 190 -> 1; 191 ~ 255 -> 2\n",
"\n",
"0: Background / \n",
"1: skin(face) / \n",
"2: hair"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import sys\n",
"\n",
"ROOT_DIR = os.path.join(os.getcwd(), '..')\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"DATA_DIR = os.path.join(ROOT_DIR, 'dataset/celeba')\n",
"TRAIN_MASK_DIR = os.path.join(DATA_DIR, 'train/mask')\n",
"VAL_MASK_DIR = os.path.join(DATA_DIR, 'val/mask')\n",
"\n",
"TRAIN_OUT_DIR = os.path.join(DATA_DIR, 'train/mask_')\n",
"VAL_OUT_DIR = os.path.join(DATA_DIR, 'val/mask_')\n",
"\n",
"if not os.path.exists(TRAIN_OUT_DIR):\n",
" os.makedirs(TRAIN_OUT_DIR)\n",
"if not os.path.exists(VAL_OUT_DIR):\n",
" os.makedirs(VAL_OUT_DIR)\n",
"\n",
"train_masks = os.listdir(TRAIN_MASK_DIR)\n",
"val_masks = os.listdir(VAL_MASK_DIR)"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [],
"source": [
"from PIL import Image\n",
"import numpy as np\n",
"\n",
"def modify(images=[], in_dir=\"\", out_dir=\"\", values=[]):\n",
" count = 0\n",
" for image in images:\n",
" im = Image.open(os.path.join(in_dir, image))\n",
" ima = np.asarray(im)\n",
"\n",
" for i, v in enumerate(values):\n",
" ima = np.where(ima==v, i, ima)\n",
" \n",
" im = Image.fromarray(ima)\n",
" im.save(os.path.join(out_dir, image))\n",
"\n",
" count += 1\n",
" print(count) \n",
" \n",
"def modify2(images=[], in_dir=\"\", out_dir=\"\", in_val=[], out_val=[]):\n",
" count = 0\n",
" for image in images:\n",
" im = Image.open(os.path.join(in_dir, image))\n",
" ima = np.asarray(im)\n",
" \n",
" for iv, ov in zip(in_val, out_val):\n",
" if type(iv) == type([]):\n",
" for v in iv:\n",
" ima = np.where(ima==v, ov, ima)\n",
" else:\n",
" ima = np.where(ima==iv, ov, ima)\n",
" \n",
" im = Image.fromarray(ima)\n",
" im.save(os.path.join(out_dir, image))\n",
" \n",
" count += 1\n",
" print(count)\n",
" \n",
"def down_the_max(images=[], in_dir=\"\", out_dir=\"\", max_val=0):\n",
" bads = []\n",
" count = 0\n",
" for image in images:\n",
" im = Image.open(os.path.join(in_dir, image))\n",
" ima = np.asarray(im)\n",
" \n",
"\n",
" mx = np.max(ima[:, :])\n",
" if mx > max_val:\n",
" ima = np.where(ima==mx, max_val, ima)\n",
"# print(\"{} mx: {} max_val: {}\".format(image, mx, max_val))\n",
" if image not in bads:\n",
" bads.append(image)\n",
" im = Image.fromarray(ima)\n",
" im.save(os.path.join(out_dir, image))\n",
" \n",
" count += 1\n",
" print(\"{} / {}\".format(len(bads), count))\n",
" \n",
" return bads\n"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3200\n"
]
}
],
"source": [
"modify(train_masks, TRAIN_MASK_DIR, TRAIN_OUT_DIR, [0, 128, 255])"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"355\n"
]
}
],
"source": [
"modify(val_masks, VAL_MASK_DIR, VAL_OUT_DIR, [0, 128, 255])"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3200\n"
]
}
],
"source": [
"modify2(train_masks, TRAIN_MASK_DIR, TRAIN_OUT_DIR, [0, 128, list(range(255, 256))], [0, 1, 2])"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"355\n"
]
}
],
"source": [
"modify2(val_masks, VAL_MASK_DIR, VAL_OUT_DIR, [0, 128, list(range(255, 256))], [0, 1, 2, 2])"
]
},
{
"cell_type": "code",
"execution_count": 127,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"316 / 3200\n",
"355 / 355\n"
]
}
],
"source": [
"bts = down_the_max(train_masks, TRAIN_OUT_DIR, TRAIN_OUT_DIR, max_val=2)\n",
"bvs = down_the_max(val_masks, VAL_OUT_DIR, VAL_OUT_DIR, max_val=2)"
]
},
{
"cell_type": "code",
"execution_count": 165,
"metadata": {},
"outputs": [],
"source": [
"import random\n",
"rbtn = os.path.join(TRAIN_MASK_DIR, random.choice(bts))\n",
"rbt = np.asarray(Image.open(rbtn))\n"
]
},
{
"cell_type": "code",
"execution_count": 169,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/home/jho/projects/image-segmentation-keras/train_faces/../dataset/celeba/train/mask/121208.bmp\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"print(rbtn)\n",
"sns.heatmap(rbt[70:80, 70:80], annot=True, fmt=\"d\", cmap=plt.cm.bone)\n",
"plt.axis(\"off\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 172,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f1b2984e160>"
]
},
"execution_count": 172,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.heatmap(rbt[50:100, 50:100], fmt=\"d\", cmap=plt.cm.bone)"
]
},
{
"cell_type": "code",
"execution_count": 218,
"metadata": {},
"outputs": [],
"source": [
"def modify3(images=[], in_dir=\"\", out_dir=\"\", in_val=[], out_val=[]):\n",
" count = 0\n",
" \n",
" in_val_ = []\n",
" for i in range(0, len(in_val)-1):\n",
" in_val_.append((in_val[i]+in_val[i+1])//2)\n",
" in_val_.insert(0, 0)\n",
" in_val_.append(in_val[-1])\n",
" # [0, 128, 255] => [0, 64, 191, 255]\n",
" \n",
" _in_val = []\n",
" for i in range(len(in_val_)-1):\n",
" _in_val.append(list(range(in_val_[i], in_val_[i+1])))\n",
" # [0, 128, 255] => [ [0,1,...,62,63], [64,65,...,189,190], [191,192,...,254,255] ]\n",
" \n",
" \n",
" \n",
" for image in images:\n",
" im = Image.open(os.path.join(in_dir, image))\n",
" ima = np.asarray(im)\n",
" \n",
" for iv, ov in zip(_in_val, out_val):\n",
" if type(iv) == type([]):\n",
" for v in iv:\n",
" ima = np.where(ima==v, ov, ima)\n",
" else:\n",
" ima = np.where(ima==iv, ov, ima)\n",
" \n",
" im = Image.fromarray(ima)\n",
" im.save(os.path.join(out_dir, image))\n",
" \n",
" count += 1\n",
" print(count)"
]
},
{
"cell_type": "code",
"execution_count": 222,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3200\n"
]
}
],
"source": [
"modify3(train_masks, TRAIN_MASK_DIR, TRAIN_OUT_DIR, [0, 128, 256], [0, 1, 2])"
]
},
{
"cell_type": "code",
"execution_count": 219,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"355\n"
]
}
],
"source": [
"modify3(val_masks, VAL_MASK_DIR, VAL_OUT_DIR, [0, 128, 256], [0, 1, 2])"
]
},
{
"cell_type": "code",
"execution_count": 223,
"metadata": {},
"outputs": [],
"source": [
"import random\n",
"\n",
"val_list = os.listdir(VAL_OUT_DIR)\n",
"rand_val_path = os.path.join(VAL_OUT_DIR, random.choice(val_list))"
]
},
{
"cell_type": "code",
"execution_count": 224,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/home/jho/projects/image-segmentation-keras/train_faces/../dataset/celeba/val/mask_/135827.bmp\n",
"(218, 178)\n"
]
}
],
"source": [
"rand_val_im = np.asarray(Image.open(rand_val_path))\n",
"\n",
"print(rand_val_path)\n",
"print(rand_val_im.shape)\n"
]
},
{
"cell_type": "code",
"execution_count": 225,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.heatmap(rand_val_im[0:218, 0:178], annot=False, fmt=\"d\", cmap=plt.cm.bone)\n",
"plt.axis(\"off\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "tf10-py36",
"language": "python",
"name": "tf10-py36"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment