{
"cells": [
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [],
"source": [
"from fastai.vision.all import *\n",
"import numpy\n",
"import gradio as gr\n",
"import PIL\n",
"from PIL import Image, ImageEnhance\n",
"import torchvision.transforms as T\n",
"\n",
"# import pathlib\n",
"# plt = platform.system()\n",
"# if plt == 'Linux': pathlib.WindowsPath = pathlib.PosixPath\n",
"\n",
"def name_to_hrs (r): return float(round(float(os.path.basename(r)[0:-4].split(\"_\")[1][1:])*(minutes/60)+5,2))\n",
"def validation_split (r): return os.path.basename(r)[0:-4].split(\"_\")[3] == \"R0003\" or os.path.basename(r)[0:-4].split(\"_\")[3] == \"R0006\"\n",
"def get_label_filename(name): return path/'labels'/f'{name.stem}_annotationLabels.tif'\n",
"\n",
"#zebrafish_age_predictor= vision_learner().load('zebrafish_age_20220726.pkl')\n",
"#zebrafish_classifier = unet_learner().load('fish_yolk_segmentation_20220726.pkl')\n",
"\n",
"zebrafish_age_predictor = load_learner('zebrafish_age_20220726.pkl')\n",
"zebrafish_classifier = load_learner('fish_yolk_segmentation_20220726.pkl')\n",
"\n",
"title = \"Zebrafish segmenter and age predictor\"\n",
"description = \"An rgb grayscale zebrafish fluorescence image segmenter and age predictor created with fastai. Created as a demo for Gradio and HuggingFace Spaces. Gradio does not display .tif files - those will only show up in the output. The input will be blank unless the file is .jpg or .png.\"\n",
"\n",
"examples = [\"early1.png\",\"early2.png\",\"early3.png\", \"late1.png\", \"late2.png\", \"late3.png\", \"mid1.png\", \"mid2.png\",\"mid3.png\"]\n",
"def process_zebrafish_image(img):\n",
"\n",
" age,tensor, tensor=zebrafish_age_predictor.predict(img)\n",
" \n",
" pred,pred_idx,probs=zebrafish_classifier.predict(img)\n",
" img = img*10\n",
" img = PILImage.create(img)\n",
" #img = PILImage.create('24hr.tif')\n",
" _,axs = plt.subplots(1,3, figsize=(12,3))\n",
" img.show(ctx=axs[0], title='image')\n",
" pred.show(alpha=1, ctx=axs[1], vmin=0, vmax=3, title='mask')\n",
" img.show(ctx=axs[2], title='superimposed')\n",
" pred.show(ctx=axs[2], vmin=0, vmax=3);\n",
" fig = plt.gcf()\n",
" fig.canvas.draw()\n",
" image_out = PIL.Image.frombytes('RGB', fig.canvas.get_width_height(),fig.canvas.tostring_rgb())\n",
" \n",
" text_out = \"Age prediction \"+ str(age[0])\n",
" return (image_out, text_out )\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(,\n",
" 'Age prediction 18.487110137939453')"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"