Files
Photovoltaic_Fault_Detector/Code_Example/Example_prediction_Ortofoto.ipynb

821 lines
5.8 MiB
Plaintext
Raw Permalink Normal View History

2020-08-26 00:39:38 -04:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Example of load model for detections\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import time\n",
"import os\n",
"import argparse\n",
"import json\n",
"import cv2\n",
"import sys\n",
"sys.path += [os.path.abspath('../keras-yolo3-master')]\n",
"\n",
"from utils.utils import get_yolo_boxes, makedirs\n",
"from utils.bbox import draw_boxes\n",
"from tensorflow.keras.models import load_model\n",
"from tqdm import tqdm\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"#detection_orto(infer_model, orto_image, div = [5,5], net_h = net_h, net_w = net_w, anchors\n",
" # obj_thresh = obj_thresh, nms_thresh = nms_thresh)\n",
" \n",
"\n",
" \n",
" \n",
"def detection_orto (infer_model, orto_image, div, net_h, net_w, anchors, obj_thresh, nms_thresh):\n",
" \n",
" div_h, div_w = div\n",
" \n",
" new_shape = [int(orto_image.shape[0] / div_h), int(orto_image.shape[1] / div_w)]\n",
" \n",
" final_boxes = []\n",
" \n",
" for h in range(div_h):\n",
" for w in range(div_w):\n",
" \n",
" image = orto_image[new_shape[0]*h: new_shape[0]*(h + 1), new_shape[1]*w : new_shape[1]*(w + 1)]\n",
" boxes = get_yolo_boxes(infer_model, [image], net_h, net_w, anchors, obj_thresh, nms_thresh)[0]\n",
" \n",
" for box in boxes:\n",
" box.xmin += new_shape[1]*w\n",
" box.xmax += new_shape[1]*w\n",
" box.ymin += new_shape[0]*h\n",
" box.ymax += new_shape[0]*h\n",
" final_boxes.append(box)\n",
" return final_boxes\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## ORTO PHOTO"
]
},
{
"cell_type": "code",
2020-08-28 01:01:31 -04:00
"execution_count": 2,
2020-08-26 00:39:38 -04:00
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
2020-11-13 00:19:20 -03:00
"(-0.5, 1188.5, 830.5, -0.5)"
2020-08-26 00:39:38 -04:00
]
},
2020-08-28 01:01:31 -04:00
"execution_count": 2,
2020-08-26 00:39:38 -04:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2020-11-13 00:19:20 -03:00
"image/png": "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
2020-08-26 00:39:38 -04:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
2020-11-13 00:19:20 -03:00
"image/png": "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
2020-08-26 00:39:38 -04:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#image_path = 'odm_orthophoto.tif' \n",
2020-11-13 00:19:20 -03:00
"image_path = '../GPS_Panel/El_Aguila_2020/Thermo.tif' \n",
2020-08-26 00:39:38 -04:00
"image = cv2.imread(image_path)\n",
"\n",
2020-08-28 01:01:31 -04:00
"#image = cv2.rotate(image, cv2.ROTATE_90_COUNTERCLOCKWISE)\n",
"#cv2.imwrite(image_path, image)\n",
"\n",
"div = (8, 3) # divide row, column\n",
2020-08-26 00:39:38 -04:00
"\n",
"\n",
"fig, ax = plt.subplots(figsize=(16, 16))\n",
"ax.set_title('Original Image')\n",
"plt.imshow(image, cmap='gray')\n",
"ax.axis('off') \n",
"\n",
2020-08-28 01:01:31 -04:00
"i = 1\n",
2020-08-26 00:39:38 -04:00
"sub_image = image[int(image.shape[0] / div[0]) * i : int(image.shape[0] / div[0]) * (i + 1),\n",
" int(image.shape[1] / div[1]) * i:int(image.shape[1] / div[1]) * (i + 1)]\n",
"fig, ax = plt.subplots(figsize=(16, 16))\n",
"ax.set_title('Path Image')\n",
"plt.imshow(sub_image, cmap='gray')\n",
"ax.axis('off') "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load Trained Model Soiling Fault"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING:tensorflow:No training configuration found in save file: the model was *not* compiled. Compile it manually.\n"
]
}
],
"source": [
"## Config of trained model, change this for use different trained model\n",
"config_path = 'config_full_yolo_fault_1_infer.json' \n",
"\n",
"with open(config_path) as config_buffer:\n",
" config = json.load(config_buffer)\n",
" \n",
"\n",
"###############################\n",
"##### Load the model ######\n",
"###############################\n",
"os.environ['CUDA_VISIBLE_DEVICES'] = config['train']['gpus']\n",
"infer_model = load_model(config['train']['saved_weights_name'])\n",
"\n",
"## Parameters of detection\n",
"net_h, net_w = 416, 416 # a multiple of 32, the smaller the faster\n",
"obj_thresh, nms_thresh = 0.5, 0.45\n",
"\n",
"\n",
"#infer_model.summary()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Detection Soling Fault"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2020-11-13 00:19:20 -03:00
"Elapsed time = 36.85330891609192\n"
2020-08-26 00:39:38 -04:00
]
},
{
"data": {
"text/plain": [
2020-11-13 00:19:20 -03:00
"(-0.5, 3568.5, 6650.5, -0.5)"
2020-08-26 00:39:38 -04:00
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2020-11-13 00:19:20 -03:00
"image/png": "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
2020-08-26 00:39:38 -04:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
2020-11-13 00:19:20 -03:00
"image/png": "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
2020-08-26 00:39:38 -04:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"image = cv2.imread(image_path)\n",
2020-08-28 01:01:31 -04:00
"\n",
2020-08-26 00:39:38 -04:00
"## Show original image\n",
"fig, ax = plt.subplots(figsize=(16, 16))\n",
"ax.set_title('Original Image')\n",
"plt.imshow(image, cmap='gray')\n",
"ax.axis('off') \n",
"\n",
"start = time.time()\n",
"## predict the bounding boxes\n",
"#boxes = get_yolo_boxes(infer_model, [image], net_h, net_w, config['model']['anchors'], obj_thresh, nms_thresh)[0]\n",
"boxes = detection_orto(infer_model, orto_image = image, div = div, net_h = net_h, net_w = net_w, \n",
" anchors = config['model']['anchors'], obj_thresh = obj_thresh, nms_thresh = nms_thresh)\n",
"print('Elapsed time = {}'.format(time.time() - start))\n",
"## draw bounding boxes on the image using labels\n",
"draw_boxes(image, boxes, config['model']['labels'], obj_thresh)\n",
"\n",
"\n",
"## Show Detection Fault\n",
"fig, ax = plt.subplots(figsize=(16, 16))\n",
"ax.set_title('Detection Soiling Fault')\n",
"plt.imshow(image, cmap='gray')\n",
"ax.axis('off') \n",
"#plt.imsave('Diode Fault_6.png', image)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load Trained Model Diode Fault"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING:tensorflow:No training configuration found in save file: the model was *not* compiled. Compile it manually.\n"
]
}
],
"source": [
"## Config of trained model, change this for use different trained model\n",
"config_path = 'config_full_yolo_fault_4_infer.json' \n",
"\n",
"with open(config_path) as config_buffer:\n",
" config = json.load(config_buffer)\n",
" \n",
"\n",
"###############################\n",
"##### Load the model ######\n",
"###############################\n",
"os.environ['CUDA_VISIBLE_DEVICES'] = config['train']['gpus']\n",
"infer_model = load_model(config['train']['saved_weights_name'])\n",
"\n",
"#infer_model.summary()\n",
"\n",
"## Parameters of detection\n",
"net_h, net_w = 416, 416 # a multiple of 32, the smaller the faster\n",
"obj_thresh, nms_thresh = 0.5, 0.45"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Detection Diode Fault"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2020-11-13 00:19:20 -03:00
"Elapsed time = 35.52854108810425\n"
2020-08-26 00:39:38 -04:00
]
},
{
"data": {
"text/plain": [
2020-11-13 00:19:20 -03:00
"(-0.5, 3568.5, 6650.5, -0.5)"
2020-08-26 00:39:38 -04:00
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2020-11-13 00:19:20 -03:00
"image/png": "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
2020-08-26 00:39:38 -04:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
2020-11-13 00:19:20 -03:00
"image/png": "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
2020-08-26 00:39:38 -04:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"image = cv2.imread(image_path)\n",
2020-08-28 01:01:31 -04:00
"\n",
2020-08-26 00:39:38 -04:00
"\n",
"## Show original image\n",
"fig, ax = plt.subplots(figsize=(16, 16))\n",
"ax.set_title('Original Image')\n",
"plt.imshow(image, cmap='gray')\n",
"ax.axis('off') \n",
"\n",
"start = time.time()\n",
"## predict the bounding boxes\n",
"#boxes = get_yolo_boxes(infer_model, [image], net_h, net_w, config['model']['anchors'], obj_thresh, nms_thresh)[0]\n",
"boxes = detection_orto(infer_model, orto_image = image, div = div, net_h = net_h, net_w = net_w, \n",
" anchors = config['model']['anchors'], obj_thresh = obj_thresh, nms_thresh = nms_thresh)\n",
"print('Elapsed time = {}'.format(time.time() - start))\n",
"## draw bounding boxes on the image using labels\n",
"draw_boxes(image, boxes, config['model']['labels'], obj_thresh)\n",
"\n",
"\n",
"## Show Detection Fault\n",
"fig, ax = plt.subplots(figsize=(16, 16))\n",
"ax.set_title('Detection Diode Fault')\n",
"plt.imshow(image, cmap='gray')\n",
"ax.axis('off') "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load Trained Model Cell Damage"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING:tensorflow:No training configuration found in save file: the model was *not* compiled. Compile it manually.\n"
]
}
],
"source": [
"## Config of trained model, change this for use different trained model\n",
"config_path = 'config_full_yolo_fault_2_infer.json' \n",
"\n",
"with open(config_path) as config_buffer:\n",
" config = json.load(config_buffer)\n",
" \n",
"\n",
"###############################\n",
"##### Load the model ######\n",
"###############################\n",
"os.environ['CUDA_VISIBLE_DEVICES'] = config['train']['gpus']\n",
"infer_model = load_model(config['train']['saved_weights_name'])\n",
"\n",
"#infer_model.summary()\n",
"\n",
"## Parameters of detection\n",
"net_h, net_w = 416, 416 # a multiple of 32, the smaller the faster\n",
"obj_thresh, nms_thresh = 0.5, 0.45"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Detection Cell Damage Fault"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2020-11-13 00:19:20 -03:00
"Elapsed time = 35.774943590164185\n"
2020-08-26 00:39:38 -04:00
]
},
{
"data": {
"text/plain": [
2020-11-13 00:19:20 -03:00
"(-0.5, 3568.5, 6650.5, -0.5)"
2020-08-26 00:39:38 -04:00
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2020-11-13 00:19:20 -03:00
"image/png": "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
2020-08-26 00:39:38 -04:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
2020-11-13 00:19:20 -03:00
"image/png": "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
2020-08-26 00:39:38 -04:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"image = cv2.imread(image_path)\n",
2020-08-28 01:01:31 -04:00
"\n",
2020-08-26 00:39:38 -04:00
"\n",
"## Show original image\n",
"fig, ax = plt.subplots(figsize=(16, 16))\n",
"ax.set_title('Original Image')\n",
"plt.imshow(image, cmap='gray')\n",
"ax.axis('off') \n",
"\n",
"start = time.time()\n",
"## predict the bounding boxes\n",
"#boxes = get_yolo_boxes(infer_model, [image], net_h, net_w, config['model']['anchors'], obj_thresh, nms_thresh)[0]\n",
"boxes = detection_orto(infer_model, orto_image = image, div = div, net_h = net_h, net_w = net_w, \n",
" anchors = config['model']['anchors'], obj_thresh = obj_thresh, nms_thresh = nms_thresh)\n",
"print('Elapsed time = {}'.format(time.time() - start))\n",
"## draw bounding boxes on the image using labels\n",
"draw_boxes(image, boxes, config['model']['labels'], obj_thresh)\n",
"\n",
"\n",
"## Show Detection Fault\n",
"fig, ax = plt.subplots(figsize=(16, 16))\n",
"ax.set_title('Detection Cell damage Fault')\n",
"plt.imshow(image, cmap='gray')\n",
"ax.axis('off') "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load Trained Model Panel Disconnect"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING:tensorflow:No training configuration found in save file: the model was *not* compiled. Compile it manually.\n"
]
}
],
"source": [
"## Config of trained model, change this for use different trained model\n",
"config_path = 'config_full_yolo_panel_infer.json' \n",
"\n",
"with open(config_path) as config_buffer:\n",
" config = json.load(config_buffer)\n",
" \n",
"\n",
"###############################\n",
"##### Load the model ######\n",
"###############################\n",
"os.environ['CUDA_VISIBLE_DEVICES'] = config['train']['gpus']\n",
"infer_model = load_model(config['train']['saved_weights_name'])\n",
"\n",
"#infer_model.summary()\n",
"\n",
"## Parameters of detection\n",
"net_h, net_w = 416, 416 # a multiple of 32, the smaller the faster\n",
"obj_thresh, nms_thresh = 0.5, 0.3\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Detection Panel Disconnect"
]
},
{
"cell_type": "code",
2020-08-28 01:01:31 -04:00
"execution_count": 10,
2020-08-26 00:39:38 -04:00
"metadata": {},
"outputs": [
{
2020-11-13 00:19:20 -03:00
"name": "stderr",
2020-08-26 00:39:38 -04:00
"output_type": "stream",
"text": [
2020-11-13 00:19:20 -03:00
"../panel_disconnect.py:23: RuntimeWarning: invalid value encountered in true_divide\n",
" z_score = np.sum(image[np.int(ymin):np.int(ymax), np.int(xmin):np.int(xmax)]) / area\n"
2020-08-28 01:01:31 -04:00
]
},
{
2020-11-13 00:19:20 -03:00
"name": "stdout",
2020-08-28 01:01:31 -04:00
"output_type": "stream",
"text": [
2020-11-13 00:19:20 -03:00
"Elapsed time = 43.96634817123413\n"
2020-08-26 00:39:38 -04:00
]
},
{
"data": {
"text/plain": [
2020-11-13 00:19:20 -03:00
"(-0.5, 3568.5, 6650.5, -0.5)"
2020-08-26 00:39:38 -04:00
]
},
2020-08-28 01:01:31 -04:00
"execution_count": 10,
2020-08-26 00:39:38 -04:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2020-11-13 00:19:20 -03:00
"image/png": "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
2020-08-26 00:39:38 -04:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
2020-11-13 00:19:20 -03:00
"image/png": "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
2020-08-26 00:39:38 -04:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sys.path.insert(1, '../')\n",
"from panel_disconnect import disconnect\n",
"\n",
"image = cv2.imread(image_path)\n",
2020-08-28 01:01:31 -04:00
"\n",
2020-08-26 00:39:38 -04:00
"\n",
"## Show original image\n",
"fig, ax = plt.subplots(figsize=(16, 16))\n",
"ax.set_title('Original Image')\n",
"plt.imshow(image, cmap='gray')\n",
"ax.axis('off') \n",
"\n",
"start = time.time()\n",
"## predict the bounding boxes\n",
"#boxes = get_yolo_boxes(infer_model, [image], net_h, net_w, config['model']['anchors'], obj_thresh, nms_thresh)[0]\n",
"boxes = detection_orto(infer_model, orto_image = image, div = div, net_h = net_h, net_w = net_w, \n",
" anchors = config['model']['anchors'], obj_thresh = obj_thresh, nms_thresh = nms_thresh)\n",
2020-08-28 01:01:31 -04:00
"boxes_panel = [box for box in boxes if box.get_score() > obj_thresh]\n",
2020-08-26 00:39:38 -04:00
"\n",
"boxes_disc = disconnect(image, boxes_panel, z_thresh = 1.8)\n",
"print('Elapsed time = {}'.format(time.time() - start))\n",
"## draw bounding boxes on the image using labels\n",
"draw_boxes(image, boxes_disc, config['model']['labels'], obj_thresh)\n",
"\n",
"\n",
"## Show Detection Fault\n",
"fig, ax = plt.subplots(figsize=(16, 16))\n",
"ax.set_title('Detection Fault')\n",
"plt.imshow(image, cmap='gray')\n",
"ax.axis('off') "
]
},
2020-08-28 01:01:31 -04:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## All in one"
]
},
2020-08-26 00:39:38 -04:00
{
"cell_type": "code",
2020-11-13 00:19:20 -03:00
"execution_count": 11,
2020-08-26 00:39:38 -04:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2020-08-28 01:01:31 -04:00
"WARNING:tensorflow:No training configuration found in save file: the model was *not* compiled. Compile it manually.\n",
2020-11-13 00:19:20 -03:00
"Elapsed time = 42.050947427749634\n",
2020-08-28 01:01:31 -04:00
"WARNING:tensorflow:No training configuration found in save file: the model was *not* compiled. Compile it manually.\n",
2020-11-13 00:19:20 -03:00
"Elapsed time = 39.24048566818237\n",
2020-08-28 01:01:31 -04:00
"WARNING:tensorflow:No training configuration found in save file: the model was *not* compiled. Compile it manually.\n",
2020-11-13 00:19:20 -03:00
"Elapsed time = 42.466670989990234\n",
2020-08-28 01:01:31 -04:00
"WARNING:tensorflow:No training configuration found in save file: the model was *not* compiled. Compile it manually.\n",
2020-11-13 00:19:20 -03:00
"Elapsed time = 64.58358502388\n"
2020-08-26 00:39:38 -04:00
]
2020-08-28 01:01:31 -04:00
},
{
"data": {
"text/plain": [
2020-11-13 00:19:20 -03:00
"(-0.5, 3568.5, 6650.5, -0.5)"
2020-08-28 01:01:31 -04:00
]
},
2020-11-13 00:19:20 -03:00
"execution_count": 11,
2020-08-28 01:01:31 -04:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2020-11-13 00:19:20 -03:00
"image/png": "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
2020-08-28 01:01:31 -04:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
2020-11-13 00:19:20 -03:00
"image/png": "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
2020-08-28 01:01:31 -04:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
2020-08-26 00:39:38 -04:00
}
],
"source": [
2020-08-28 01:01:31 -04:00
"## Config of trained model, change this for use different trained model\n",
2020-08-26 00:39:38 -04:00
"\n",
"\n",
"\n",
2020-08-28 01:01:31 -04:00
"list_config_path = ['config_full_yolo_fault_1_infer.json', \n",
" 'config_full_yolo_fault_2_infer.json', \n",
" 'config_full_yolo_fault_4_infer.json', \n",
" 'config_full_yolo_panel_infer.json']\n",
"\n",
"list_name = ['soiling fault', 'diode fault', 'cell damage fault', 'panel disconnected']\n",
"\n",
"image = cv2.imread(image_path)\n",
"\n",
"## Show original image\n",
"fig, ax = plt.subplots(figsize=(16, 16))\n",
"ax.set_title('Original Image')\n",
"plt.imshow(image, cmap='gray')\n",
"ax.axis('off') \n",
"\n",
"for name, config_path in zip(list_name, list_config_path):\n",
" \n",
" with open(config_path) as config_buffer:\n",
" config = json.load(config_buffer)\n",
"\n",
"\n",
" ###############################\n",
" ##### Load the model ######\n",
" ###############################\n",
" os.environ['CUDA_VISIBLE_DEVICES'] = config['train']['gpus']\n",
" infer_model = load_model(config['train']['saved_weights_name'])\n",
"\n",
" ## Parameters of detection\n",
" net_h, net_w = 416, 416 # a multiple of 32, the smaller the faster\n",
" obj_thresh, nms_thresh = 0.5, 0.3\n",
"\n",
" start = time.time()\n",
" ## predict the bounding boxes\n",
" #boxes = get_yolo_boxes(infer_model, [image], net_h, net_w, config['model']['anchors'], obj_thresh, nms_thresh)[0]\n",
" boxes = detection_orto(infer_model, orto_image = image, div = div, net_h = net_h, net_w = net_w, \n",
" anchors = config['model']['anchors'], obj_thresh = obj_thresh, nms_thresh = nms_thresh)\n",
" \n",
" if name == 'panel disconnected':\n",
" \n",
" boxes_panel = [box for box in boxes if box.get_score() > obj_thresh]\n",
" boxes = disconnect(image, boxes_panel, z_thresh = 1.8)\n",
" \n",
" print('Elapsed time = {}'.format(time.time() - start))\n",
" ## draw bounding boxes on the image using labels\n",
" \n",
" draw_boxes(image, boxes, config['model']['labels'], obj_thresh)\n",
"\n",
"\n",
"## Show Detection Fault\n",
2020-08-26 00:39:38 -04:00
"\n",
2020-08-28 01:01:31 -04:00
"fig, ax = plt.subplots(figsize=(16, 16))\n",
"ax.set_title('Detection')\n",
"plt.imshow(image, cmap='gray')\n",
"ax.axis('off') \n",
"\n"
2020-08-26 00:39:38 -04:00
]
},
{
"cell_type": "code",
2020-08-28 01:01:31 -04:00
"execution_count": 12,
2020-08-26 00:39:38 -04:00
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2020-11-13 00:19:20 -03:00
"3"
2020-08-26 00:39:38 -04:00
]
},
2020-08-28 01:01:31 -04:00
"execution_count": 12,
2020-08-26 00:39:38 -04:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
2020-08-28 01:01:31 -04:00
"list_config_path.index(config_path)"
2020-08-26 00:39:38 -04:00
]
},
{
"cell_type": "code",
2020-08-28 01:01:31 -04:00
"execution_count": null,
2020-08-26 00:39:38 -04:00
"metadata": {},
2020-08-28 01:01:31 -04:00
"outputs": [],
"source": []
2020-08-26 00:39:38 -04:00
},
{
"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": 2
}