Files
Photovoltaic_Fault_Detector/GPS_Panel/Others/Classifier_Panel.ipynb

497 lines
935 KiB
Plaintext
Raw Normal View History

2020-11-02 18:55:35 -03:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from matplotlib import path\n",
"import matplotlib.patches as patches\n",
"from skimage import draw\n",
"import scipy.ndimage as ndimage\n",
"import Utils\n",
"import georasters as gr\n",
"import cv2\n",
"from Utils import doubleMADsfromMedian\n",
"from skimage.transform import resize\n",
"import pickle\n",
"\n",
"from sklearn.preprocessing import LabelEncoder\n",
"from sklearn.svm import SVC\n",
"from IPython.display import clear_output, display\n",
"import tensorflow as tf"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7ff3624be8d0>"
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"<Figure size 432x288 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"path_T = \"El_Aguila_2020/Thermo.tif\"\n",
"path_save_list = \"El_Aguila_2020/List_strings_panels_PV03.txt\"\n",
"path_save_list_print = \"El_Aguila_2020/List_strings_panels_print_PV03.txt\"\n",
"\n",
"GR_T = gr.from_file(path_T)\n",
"\n",
"## Load List in coordinate latitud and longitude to pixels ###\n",
"with open(path_save_list, \"rb\") as fp:\n",
" L_strings_coord_load = pickle.load(fp)\n",
"\n",
"plt.figure(0)\n",
"plt.figure(figsize=(8, 8))\n",
"plt.imshow(GR_T.raster.data[0,:,:], cmap = 'gray')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Load Classifier"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'\\npath_dataset = \"Classifier/dataset_prueba_1/\"\\noutput_recognizer = path_dataset + \"model_SVM/recognizer.pickle\"\\noutput_label = path_dataset + \"model_SVM/le.pickle\"\\n\\n# load the actual face recognition model along with the label encoder\\nclassifier = pickle.loads(open(output_recognizer, \"rb\").read())\\nle = pickle.loads(open(output_label, \"rb\").read())\\n\\n\\nimg_width, img_height = 224, 224\\n\\nbase_model = tf.keras.applications.Xception(input_shape=(img_height, img_width, 3), weights=\\'imagenet\\', include_top=False)\\nx = base_model.output\\nx = tf.keras.layers.GlobalAveragePooling2D()(x)\\nbase_model = tf.keras.models.Model(inputs=base_model.input, outputs=x)\\n'"
]
},
"execution_count": 82,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'''\n",
"path_dataset = \"Classifier/dataset_prueba_1/\"\n",
"output_recognizer = path_dataset + \"model_SVM/recognizer.pickle\"\n",
"output_label = path_dataset + \"model_SVM/le.pickle\"\n",
"\n",
"# load the actual face recognition model along with the label encoder\n",
"classifier = pickle.loads(open(output_recognizer, \"rb\").read())\n",
"le = pickle.loads(open(output_label, \"rb\").read())\n",
"\n",
"\n",
"img_width, img_height = 224, 224\n",
"\n",
"base_model = tf.keras.applications.Xception(input_shape=(img_height, img_width, 3), weights='imagenet', include_top=False)\n",
"x = base_model.output\n",
"x = tf.keras.layers.GlobalAveragePooling2D()(x)\n",
"base_model = tf.keras.models.Model(inputs=base_model.input, outputs=x)\n",
"'''"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Panel Classification"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"\\n\\n \\nepsilon = 0\\nmatrix_expand_bounds = [[-epsilon, -epsilon],[+epsilon, -epsilon], [+epsilon, +epsilon], [-epsilon, +epsilon]]\\n\\n#geot = GR_RGB.geot\\ngeot = GR_T.geot\\n\\n\\nfor string_key in ['6', '10']:# L_strings_coord_load.keys():\\n print(string_key)\\n string = L_strings_coord_load[string_key]\\n for panel_key in string['panels'].keys():\\n panel = string['panels'][panel_key]\\n Points = Utils.gps2pixel(panel['points'], geot) + matrix_expand_bounds\\n \\n if not GR_T.raster.data[0,Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]].size == 0:\\n Im = np.zeros((img_height, img_width, 3))\\n Im[:,:,0] = cv2.resize(GR_T.raster.data[0,Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]], (img_width, img_height))\\n Im[:,:,1] = Im[:,:,0].copy()\\n Im[:,:,2] = Im[:,:,0].copy()\\n v = base_model.predict(tf.keras.backend.expand_dims(Im,0)).flatten()\\n falla = le.classes_[classifier.predict(tf.keras.backend.expand_dims(v,0))][0]\\n panel['prob'] = np.max(classifier.predict_proba(tf.keras.backend.expand_dims(v,0)))\\n if panel['prob'] < .5 and falla != le.classes_[0]:\\n panel['status'] = le.classes_[0]\\n else:\\n panel['status'] = falla\\n else:\\n print('problem with coords panel: ', string_key, '_', panel_key)\\n\\n\""
]
},
"execution_count": 83,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'''\n",
"\n",
" \n",
"epsilon = 0\n",
"matrix_expand_bounds = [[-epsilon, -epsilon],[+epsilon, -epsilon], [+epsilon, +epsilon], [-epsilon, +epsilon]]\n",
"\n",
"#geot = GR_RGB.geot\n",
"geot = GR_T.geot\n",
"\n",
"\n",
"for string_key in ['6', '10']:# L_strings_coord_load.keys():\n",
" print(string_key)\n",
" string = L_strings_coord_load[string_key]\n",
" for panel_key in string['panels'].keys():\n",
" panel = string['panels'][panel_key]\n",
" Points = Utils.gps2pixel(panel['points'], geot) + matrix_expand_bounds\n",
" \n",
" if not GR_T.raster.data[0,Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]].size == 0:\n",
" Im = np.zeros((img_height, img_width, 3))\n",
" Im[:,:,0] = cv2.resize(GR_T.raster.data[0,Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]], (img_width, img_height))\n",
" Im[:,:,1] = Im[:,:,0].copy()\n",
" Im[:,:,2] = Im[:,:,0].copy()\n",
" v = base_model.predict(tf.keras.backend.expand_dims(Im,0)).flatten()\n",
" falla = le.classes_[classifier.predict(tf.keras.backend.expand_dims(v,0))][0]\n",
" panel['prob'] = np.max(classifier.predict_proba(tf.keras.backend.expand_dims(v,0)))\n",
" if panel['prob'] < .5 and falla != le.classes_[0]:\n",
" panel['status'] = le.classes_[0]\n",
" else:\n",
" panel['status'] = falla\n",
" else:\n",
" print('problem with coords panel: ', string_key, '_', panel_key)\n",
"\n",
"'''"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# T° mean string and panel"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3\n"
]
}
],
"source": [
"epsilon = 0\n",
"matrix_expand_bounds = [[-epsilon, -epsilon],[+epsilon, -epsilon], [+epsilon, +epsilon], [-epsilon, +epsilon]]\n",
"t_min = np.min(GR_T.raster.data)\n",
"t_max = np.max(GR_T.raster.data)\n",
"t_new_min = 0\n",
"t_new_max = 70\n",
"\n",
"geot = GR_T.geot\n",
"\n",
"for string_key in L_strings_coord_load.keys():\n",
" clear_output(wait=True)\n",
" print(string_key)\n",
" string = L_strings_coord_load[string_key]\n",
" Points = Utils.gps2pixel(string['points'], geot) + matrix_expand_bounds\n",
" string['T'] = t_new_min + (t_new_max - t_new_min) * np.mean(GR_T.raster.data[0,Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]]) / (t_max - t_min)\n",
" for panel_key in string['panels'].keys():\n",
" panel = string['panels'][panel_key]\n",
" Points = Utils.gps2pixel(panel['points'], geot) + matrix_expand_bounds\n",
" panel['T'] = t_new_min + (t_new_max - t_new_min) * np.mean(GR_T.raster.data[0,Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]]) / (t_max - t_min)\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 432x288 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"geot = GR_T.geot\n",
"\n",
"plt.figure(0)\n",
"plt.figure(figsize=(16, 16))\n",
"plt.imshow(GR_T.raster.data[0,:,:])\n",
"\n",
"ax = plt.gca()\n",
"\n",
"for Poly_key in L_strings_coord_load.keys():\n",
" \n",
" Poly = L_strings_coord_load[Poly_key]\n",
" poly = patches.Polygon( Utils.gps2pixel(Poly['points'], geot),\n",
" linewidth=2,\n",
" edgecolor='red',\n",
" alpha=0.5,\n",
" fill = True)\n",
" plt.text(np.mean([x[0] for x in Utils.gps2pixel(Poly['points'], geot)]), np.mean([y[1] for y in Utils.gps2pixel(Poly['points'], geot)]) , str(Poly['id']), bbox=dict(facecolor='red', alpha=0.8))\n",
"\n",
" ax.add_patch(poly)\n",
" \n",
"\n",
"\n",
"string = L_strings_coord_load['2']\n",
"panels = string['panels']\n",
"Points = Utils.gps2pixel(string['points'], geot) \n",
"\n",
"plt.figure(1)\n",
"plt.figure(figsize=(16, 16))\n",
"plt.imshow(GR_T.raster[0,Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]])\n",
"#plt.imshow((GR_RGB.raster[:3,:,:]).transpose((1, 2, 0))[Points[0][1] : Points[2][1], Points[0][0]: Points[2][0],:])\n",
"\n",
"plt.title('Subdive Origin Image')\n",
"ax = plt.gca()\n",
"\n",
"for Poly_key in panels.keys():\n",
" \n",
" Poly = panels[Poly_key]\n",
" poly = patches.Polygon(Utils.gps2pixel(Poly['points'],geot) - (Points[0][0], Points[0][1]),\n",
" linewidth=2,\n",
" edgecolor='red',\n",
" fill = False)\n",
" plt.text(np.mean([x[0] for x in Utils.gps2pixel(Poly['points'],geot) - (Points[0][0], Points[0][1])]), np.mean([y[1] for y in Utils.gps2pixel(Poly['points'],geot) - (Points[0][0], Points[0][1])]) , \n",
" str(Poly['id']), bbox=dict(facecolor='red', alpha=0.0), fontsize=8)\n",
"\n",
" ax.add_patch(poly)"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [],
"source": [
"for i in [17]:#[12,13,14,15,16,17]:\n",
" L_strings_coord_load['2']['panels'][str(i)]['status'] = '3.Más de 5 celdas afect.'"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {},
"outputs": [],
"source": [
"with open(path_save_list, \"wb\") as fp:\n",
" pickle.dump(L_strings_coord_load, fp)\n",
"with open(path_save_list_print, 'w') as f:\n",
" print(L_strings_coord_load, file=f)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7ff3633574d0>"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"epsilon = 10\n",
"matrix_expand_bounds = [[-epsilon, -epsilon],[+epsilon, -epsilon], [+epsilon, +epsilon], [-epsilon, +epsilon]]\n",
"\n",
"\n",
"Points = Utils.gps2pixel(L_strings_coord_load['1']['points'], geot) + matrix_expand_bounds\n",
"plt.figure(figsize=(6, 6))\n",
"plt.imshow(GR_T.raster.data[0,Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]],cmap = 'gray')\n",
"\n",
"#plt.figure(0)\n",
"#plt.figure(figsize=(6, 6))\n",
"#plt.imshow(cv2.resize(GR_T.raster.data[0,Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]], (224, 224)),cmap = 'gray')\n",
"#plt.imshow((GR_RGB.raster[:3,:,:]).transpose((1, 2, 0))[Points[0][1] : Points[2][1], Points[0][0]: Points[2][0],:])\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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.7.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}