735 lines
4.6 MiB
Plaintext
735 lines
4.6 MiB
Plaintext
|
|
{
|
||
|
|
"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",
|
||
|
|
"execution_count": 30,
|
||
|
|
"metadata": {
|
||
|
|
"scrolled": false
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"(-0.5, 273.5, 575.5, -0.5)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"execution_count": 30,
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "execute_result"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"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": [
|
||
|
|
"#image_path = 'odm_orthophoto.tif' \n",
|
||
|
|
"image_path = 'ortomosaico.tif' \n",
|
||
|
|
"image = cv2.imread(image_path)\n",
|
||
|
|
"image = cv2.rotate(image, cv2.ROTATE_90_COUNTERCLOCKWISE)\n",
|
||
|
|
"cv2.imwrite(image_path, image)\n",
|
||
|
|
"\n",
|
||
|
|
"div = (8,8) # divide row, column\n",
|
||
|
|
"\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",
|
||
|
|
"i = 2\n",
|
||
|
|
"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": [
|
||
|
|
"Elapsed time = 102.51843619346619\n"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"(-0.5, 2191.5, 4612.5, -0.5)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"execution_count": 4,
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "execute_result"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"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": [
|
||
|
|
"image = cv2.imread(image_path)\n",
|
||
|
|
"image = cv2.rotate(image, cv2.ROTATE_90_COUNTERCLOCKWISE)\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 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": [
|
||
|
|
"Elapsed time = 110.71979928016663\n"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"(-0.5, 2191.5, 4612.5, -0.5)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"execution_count": 6,
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "execute_result"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAasAAAOECAYAAAAfdB6nAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9aYxl6Zae9e4zjzGcE1NGzpWdPVSb22211MIWiJYNBixZthBGLYzAQkgWIP9ABiQbYeEfGGH5jwE3oOYf3cYIy74SIGi3UIPB7cbd2Lrqvvf2rVtTVmZVZkRGnIg4Y5xx8yPqWfGeXVF36lu3MuvuJYUi4gx7f/sb1rvWu9a3viRNU+WSSy655JLLqyyFz7sBueSSSy655PLtJAerXHLJJZdcXnnJwSqXXHLJJZdXXnKwyiWXXHLJ5ZWXHKxyySWXXHJ55SUHq1xyySWXXF55ycEqly+0JEnyF5Ik+e++35/9Dq6VJknyI9+Pa+WSSy5Sku+zyuV1kSRJ/rSkPyfpkaS+pL8j6c+naXr+ebbrJkmSJJX0OE3Tt2947/+U9Etpmn5fgDGXXH4YJPescnktJEmSPyfpP5f0H0jalPRPSrov6VeTJKl8yndKP7gW5pJLLp+l5GCVyysvSZJsSPpLkv5smqb/e5qm8zRN35f0r+gKsP61jz/3nyRJ8reSJPmlJEn6kv70x6/9kl3rX0+S5EmSJKdJkvzHSZK8nyTJP2vf/6WP/37wMZX3byRJ8kGSJCdJkvxHdp2fTZLkHyRJcp4kyfMkSf6rTwPNb/NsP5ckybMkSf7DJEmOP77Wn0iS5I8mSfJWkiS9JEn+wnd63yRJ/kiSJN9IkuQiSZJfSJLk/0qS5N+y9//NJEm+niTJWZIkv5Ikyf3vts255PJ5SA5WubwO8gcl1ST9bX8xTdOhpP9N0j9nL/9xSX9L0pakX/bPJ0nypqRfkPSnJN3SlYd2+9vc+5+S9GOS/rCkv5gkyU98/PpS0r8naUfSH/j4/X/nu3wu5EBXz3db0l+U9Iu6AuCfkfRPf3zfN77dfZMk2dHVs/95SV1J39BV3+nj9/+EpL8g6V+StCvp/5b0P3yPbc4llx+o5GCVy+sgO5JO0jRd3PDe84/fR/5BmqZfTtN0labpJPPZf1nS/5ym6f+TpulMV8Dw7YK2fylN00mapl+R9BVJPyVJaZr+f2ma/kaapouPvbz/VtI/890/miRpLuk/TdN0Lulvfvw8fy1N00Gapl+V9FVJX/oO7vtHJX01TdO//XFf/ReSXth9/oyk/yxN069//P5flvTTuXeVy+sgOVjl8jrIiaSdT4lB3fr4feTpt7jOob+fpulY0um3ubcr+7GkliQlSfKjSZL8L0mSvPiYcvzLWgfN70ZO0zRdfvw3AHtk70++w/tmny+V9Myuc1/SX/uYQjyX1JOU6Nt7l7nk8rlLDla5vA7yDyRNdUVfhSRJ0pT0L0r6P+zlb+UpPZd0x75f1xVd9r3Ify3pd3WV8behK3ot+R6v9f26b/b5Ev9fV0D2Z9I03bKfepqmv/4DaHcuufyeJAerXF55SdP0QlcJFv9lkiT/QpIk5SRJHkj6n3TlOfz33+Gl/pakP5YkyR/8OCnhL+l7B5i2rtLnh0mS/Likf/t7vM73877/q6R/4uMEjZKkf1dX8TDkv5H055Mk+UlJSpJkM0mSP/kDancuufyeJAerXF4LSdP0r+jKi/irulLW/6+uPIU/nKbp9Du8xlcl/VldxYWeSxpIOtaV1/bdyr8v6V/9+Bq/KOl//B6u8b3Ip943TdMTSX9S0l/RFb35pqTf0sfPl6bp39FV+v/f/JhC/B1deaa55PLKS74pOJcfWkmSpCXpXFeU2nufd3u+35IkSUFXnuefStP01z7v9uSSy+9Fcs8qlx8qSZLkjyVJ0vg43vVXJf22pPc/31Z9/yRJkn8+SZKtJEmquo5n/cbn3Kxccvk9Sw5WufywyR+X9NHHP48l/Xz6xaIX/oCkd3SVIfnHJP2JG1L4c8nltZOcBswll1xyyeWVl9yzyiWXXHLJ5ZWXHKxyySWXXHJ55eVbVqX++JiDXHLJJZdcPidpNpsqFotK01S1Wk3dblfValUPHjzQ0dGRfuM3vlj5M2ma3rj3MT9CIZdccsnlc5AkSVQul5WmqYrFovb395UkiTY3N3Xnzh0lSaLZbKZbt26pWq1KkgqFggqFgiqVipIkUaVS0T/+x/9Y0+n3slXw9ZIcrHLJJZdcPgO5qnYlFYtFNRoNFQoFdTodHRwcqFQqqV6vq9PpaDQaqVAoqNvtqlKpqNlsaj6fK0kSjUYjzWYzJUmiQqGgUqmkJEm0Wq00nU5Vr9e1tbWlo6Ojb9Oa119ysMoll1xy+R4lSRLV63UVCgWVy2UdHh7G3zs7O0rTVMvlUpVKRaVSSaVSKf6uVK6OIVssFkqSRGmaarFYaDgcajqdKk1TjcdjTSYTNRoNFYtFrVYrzedzLRZXBxAAhD8MkoNVLrnkksu3kGKxqEKhoHa7rY2NDUnS1taWDg4OVCgUtL+/r2KxqGKxqHK5rEKhoDRNlaapVquVlsulFouFptOpptNp/D0cDgOg6vW6JpOJisVieE/lclmtVktJkqhWq6lWqwX4rVYrse2o2+3qvfe+cAVYPiE5WOWSSy4/9ALNtrGxEcC0v78vSdrd3dXGxoaazaYqlYrSNA1AWi6XKhQKAWhJkgT9h7cEqDQaDS0Wi/jeYrGIH64HvZckSXhctVpNjUYj7s21+XnjjTf0j/7RP9Jqtfp8Ou8HJDlY5ZJLLj80AqBUq1VtbGxoc3NTGxsbOjw8VLFY1Pb2diQxACCSPgFCSZJouVzGdQElgMy/n6apkiRRqVSKRAlAi8+T7QdgOd3nwLZcLpUt5AC4Xlxc/IB68fORHKxyySWXL5yUy2XVajWVy+VIaCiVSrp9+7aKxaLq9XqkhEv6BBDx902eTPaz/pp7Uu7p4LnxGag+gMzvhVSr1Xjfv+u/uc/BwUEOVrnkkksur5qUSqXwSLrdrkqlklqtlvb391UoFNRoNILSywKSdJ0CzusOQNnPftpnSqVPqk8HHgCF+3icycHJvS8HPTyzrJd2031+6qd+Sm+99dYnAO+LJDlY5ZJLLq+cVCoVFQqFtQ2xOzs7arfbSpJEu7u7qtfra9l40roH44o/Cz7QgXzuJs/GPZ/s9fz/mzyu1Wq19nmA6iYwu+n62fduikdxXUlqt9uqVCpf6P1WOVjlkksuP3DB2ymXy5FF9/jx46C+tre3Va1WI8tO0loCgyt4f52/8UgccBws+FmtVgFukta+59dzuQm0bmpT9vP8/e2ACqDjNZI4bvL6uNfOzo42Njb08uXL731QXnHJwSqXXHL5nsUpMRTso0ePVK1WNZvN9N5772k+n2tjY0P37t2L7xweHsbfSZLEfiHovdVqFSAlrcdobooLfSsgIxGCNro4Hci1/Rp+vyx4OQjeRPs54PkzZOk+b69nF/J+sVj8RJtuAusHDx7kYJVLLrn88AoKsVgsqtlsKkmuyvw8fPhQW1tbGo/HajabajQaStNUm5ubSpJE4/FYjx49UpqmarfbKpfLkQVXKpW0Wq00m820Wq0CSCaTiabTqRqNhqrVamS/kSBRLpdVLpcDgFDmfM5BbblcajabaTweq1qtqt1ur2X48V1Jn6AO3avh/yzQcY0sXeivOf1303Wy9/X42k3glB0XZLVaaXNz8zsZztdWcrDKJZcfckGxuudRqVQCWMiqKxaL6nQ6arfb2tzc1Gq1UqPRiMw7wOLy8jJq3nE90q75fz6fh1eTJIkuLy8lXYEDm2X5LSn2QK1WK5XLZVWrVfV6vQBJSer3+2o0GqrX67EB9+zsTGdnZ6rX62q1WgEe7uW455L1qABpPuOp4zdRjDfFvZzW8/ezXuC3io25d5elEPn7/v37KpVKUd3iiyY5WOWSyxdInJZrtVpRIWG5XKpcLktSVEOYTqdqtVqqVqsajUaq1+tRIHU0Gmk+n6tUKmm5XGoymWg0Guny8lK
|
||
|
|
"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": [
|
||
|
|
"image = cv2.imread(image_path)\n",
|
||
|
|
"image = cv2.rotate(image, cv2.ROTATE_90_COUNTERCLOCKWISE)\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",
|
||
|
|
"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": [
|
||
|
|
"Elapsed time = 107.89967823028564\n"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"(-0.5, 2191.5, 4612.5, -0.5)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"execution_count": 8,
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "execute_result"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"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": [
|
||
|
|
"image = cv2.imread(image_path)\n",
|
||
|
|
"image = cv2.rotate(image, cv2.ROTATE_90_COUNTERCLOCKWISE)\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",
|
||
|
|
"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",
|
||
|
|
"execution_count": 28,
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"name": "stdout",
|
||
|
|
"output_type": "stream",
|
||
|
|
"text": [
|
||
|
|
"Elapsed time = 107.44442081451416\n"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"(-0.5, 2191.5, 4612.5, -0.5)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"execution_count": 28,
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "execute_result"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"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": "iVBORw0KGgoAAAANSUhEUgAAAasAAAOECAYAAAAfdB6nAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9e4xteVbf9/2d9/vUOafe933v3JlmemiGxzSTMBlPEJLlBLADMUGxQojsxESKLUWW4khYVhLZVhJFsZMIgkISJZHBUYwEAgQMkIAR4IYemOlhemD6cbvvq289T9V513nu/FH3s2qdfaubmWGartuzl1SqqvPY+7d/j/Vd67vWb/1CFEVKJJFEEkkkkYssqfe6AYkkkkgiiSTyp0kCVokkkkgiiVx4ScAqkUQSSSSRCy8JWCWSSCKJJHLhJQGrRBJJJJFELrwkYJVIIokkksiFlwSsEknkzyghhJdDCJ96r9vx5UgIIQohfOC9bkciiXylkoBVIhdeQghvhhBGIYReCOE4hPC7IYQfCSF8WfM3hPCpEMKDr1Fb/o8Qwj/wr0VR9GwURb/5tbh+7F6/GUI4CSH03c+/8jW8/hPPkkgiF1USsErkaZHviaKoKumapP9a0t+V9L+9t036c5H/JIqiivv5l+91gxJJ5L2QBKwSeaokiqJOFEU/L+nfkfTvhxA+IkkhhHwI4b8LIdwLIeyGEH4ihFAMIZQl/bKkbeedbIcQUiGE/zyE8HoI4TCE8P+EEJrcJ4Twicce3HEI4X4I4YdDCP+RpL8m6T97fJ1fePzZN0MI3+Xa8U9CCG89/vknIYT84/c+FUJ4EEL4OyGEvRDCoxDCf/CV9kEI4Z+HEHZCCJ0Qwm+FEJ517/1mCOFvuP9/OITw2+dc49xnSSSRiyoJWCXyVEoURb8v6YGkf+3xS/+NpA9K+qikD0i6JOnvR1E0kPSXJL3lvJO3JP1tSX9F0l+QtC3pSNKPSVII4apOAe5/krT2+Jqfi6Lof5H0U5L+28fX+Z5zmvajkj7++DvfJOl5SX/Pvb8pqf64fX9d0o+FEBpf4eP/sqTbktYl/eHjNn1F8mU+SyKJXBhJwCqRp1nektQMIQRJ/6Gk/zSKonYURT1J/0jSD77Dd/+mpB+NouhBFEVjSf+FpH87hJDRqcfx61EU/bMoiqZRFB1GUfS5L7NNf03SfxVF0V4URfuS/ktJ/557f/r4/WkURb8kqS/pQ+9wvf/xsXd3HEL4Q0mKouh/j6Ko59r9TSGE+pfZvkQSeSol8143IJFE/gxySVJbp95PSdIfnOKWJClISr/Dd69J+tkQwsK9Npe0IemKpNe/yjZtS7rr/r/7+DXkMIqimft/KKnyDtf721EU/a/8E0JIS/qHkv6qTp+b9q9K6nyVbU4kkQsviWeVyFMpIYSP6RSsflvSgaSRpGejKFp5/FOPoggQOO9ogfuS/pL7/EoURYUoih4+fu/W29z6Tzum4C2dAiFy9fFrXyv5dyX9ZUnfpVM68frj10HpgU6BG9l8h2slRy4k8tRIAlaJPFUSQqiFEL5b0v8t6Z9GUfRHURQtJP2kpH8cQlh//LlLIYS/+Phru5JaMarsJyT9wxDCtcefXwsh/OXH7/2UpO8KIfxACCETQmiFED7qrnXzHZr4zyT9vcfXW5X09yX90z/7k5tUJY0lHeoUlP5R7P3PSfq+EELp8X6qv/4O1/rTniWRRC6MJGCVyNMivxBC6OnU6/lRSf+9JJ9J93clvSbphRBCV9Kv63EsKIqiP9EpiNx5HPvZlvQ/SPp5Sb/6+LovSPr2x5+/J+nfkPR3dEozfk6nyRLSabr8hx9f5+fOaec/kPQZSZ+X9Ec6TYD4Wu5l+r90Si0+lPTFx+328o8lTXQKRP+n3jn54k97lkQSuTASksMXE0kkkUQSueiSeFaJJJJIIolceEnAKpFEEkkkkQsvCVglkkgiiSRy4SUBq0QSSSSRRC68JGCVSCKJJJLIhZd3rGARQkhSBRNJJJFE3kMpl8tKp9OKokiFQkGtVkv5fF7Xr1/X7u6uXnghvnvh6ZYoisJ5ryfllhJJJJFE3gMJISibzSqKIqXTaW1sbCiEoHq9rsuXLyuEoMlkoq2tLeXzeUlSKpVSKpVSLpdTCEG5XE6f/exnNR6P3+OnefclAatEEkkkkXdBqFOZTqdVKpWUSqXUbDa1ubmpTCajYrGoZrOpwWCgVCqlVqulXC6ncrms6XSqEIIGg4Emk4lCCEqlUspkMgohaLFYaDweq1gsamVlRbu7u+/x0777koBVIokkkshXKSEEFYtFpVIpZbNZbW9v29+rq6uKokjz+Vy5XE6ZTEaZTMb+zuVykqTZbKYQgqIo0mw2U7/f13g8VhRFGg6HGo1GKpVKSqfTWiwWmk6nms1OayEDhF8PkoBVIokkksg7SDqdViqVUrVaVa1WkyStrKxoc3NTqVRKGxsbSqfTSqfTymazSqVSiqJIURRpsVhoPp9rNptpPB5rPB7b3/1+3wCqWCxqNBopnU6b95TNZlWpVBRCUKFQUKFQMPBbLBai+lCr1dIbb7zxXnbRn4skYJVIIol83Qs0W61WM2Da2NiQJK2tralWq6lcLiuXyymKIgOk+XyuVCplgBZCMPoPbwlQKZVKms1m9r3ZbGY/XA96L4RgHlehUFCpVLJ7c21+bt68qT/8wz/UYrE4/+HeJ5KAVSKJJPJ1IwBKPp9XrVZTvV5XrVbT9va20um0Go2GJTEAIJKeAKEQgubzuV0XUALI/PejKFIIQZlMxhIlAC0+T7YfgOXpPg9s8/lc8XqugGun8/4+ziwBq0QSSeR9J9lsVoVCQdls1hIaMpmMLl26pHQ6rWKxaCnhkp4AIv4+z5OJf9a/5j0p7+ngufEZqD6AzN8Lyefz9r7/rv/NfTY3NxOwSiSRRBK5aJLJZMwjabVaymQyqlQq2tjYUCqVUqlUMkovDkjSWQo4r3sAin/27T6TyTypPj3wACjcx8eZPDh578uDHp5Z3Es77z7f9E3fpFdeeeUJwHs/SQJWiSSSyIWTXC6nVCq1tCF2dXVV1WpVIQStra2pWCwuZeNJyx6MV/xx8IEO5HPneTbe84lfz/9/nse1WCyWPg9QnQdm510//t558SiuK0nValW5XO59vd8qAatEEknkz13wdrLZrGXR3b5926ivRqOhfD5vWXaSlhIYvIL3r/M3HokHHA8W/CwWCwM3SUvf89fzch5ondem+Of5+08DKoCO10jiOM/r416rq6uq1Wra39//6gflgksCVokkkshXLZ4SQ8HeunVL+Xxek8lEb7zxhqbTqWq1mq5evWrf2d7etr9DCLZfCHpvsVgYSEnLMZrz4kLvBGQkQtBGL54O5Nr+Gv5+cfDyIHge7ecBzz9DnO7z7fXZhbyfTqefaNN5YH39+vUErBJJJJGvX0EhptNplctlhXBa5ufGjRtaWVnRcDhUuVxWqVRSFEWq1+sKIWg4HOrWrVuKokjValXZbNay4DKZjBaLhSaTiRaLhQHJaDTSeDxWqVRSPp+37DcSJLLZrLLZrAEQypzPeVCbz+eaTCYaDofK5/OqVqtLGX58V9IT1KH3avg/DnRcI04X+tc8/XfedeL39fG188ApPi7IYrFQvV7/cobzqZUErBJJ5OtcUKze88jlcgYsZNWl02k1m01Vq1XV63UtFguVSiXLvAMsTk5OrOYd1yPtmv+n06l5NSEEnZycSDoFBzbL8luS7YFaLBbKZrPK5/Nqt9sGkpLU7XZVKpVULBZtA+7R0ZGOjo5ULBZVqVQMPLyX4z2XuEcFSPMZnzp+HsV4XtzL03r+/bgX+E6xMe/dxSlE/r527ZoymYxVt3i/SQJWiSTyPhJPy1UqFauQMJ/Plc1mJcmqIYzHY1UqFeXzeQ0GAxWLRSuQOhgMNJ1OlclkNJ/PNRqNNBgMdHJyomazaYB0cHBgHg/ZcYAbAMc15vO5isWiJC2BBnGj8Xisbrerk5MTnZycWOJEFEUql8v2fP1+X51OR4PBQM1mU5PJxCjEk5M
|
||
|
|
"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",
|
||
|
|
"image = cv2.rotate(image, cv2.ROTATE_90_COUNTERCLOCKWISE)\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",
|
||
|
|
"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",
|
||
|
|
"boxes_image = [box for box in boxes if box.get_score() > obj_thresh]\n",
|
||
|
|
"\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') "
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 24,
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"name": "stdout",
|
||
|
|
"output_type": "stream",
|
||
|
|
"text": [
|
||
|
|
"Elapsed time = 506.6428759098053\n"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "stderr",
|
||
|
|
"output_type": "stream",
|
||
|
|
"text": [
|
||
|
|
"../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"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"sys.path.insert(1, '../')\n",
|
||
|
|
"\n",
|
||
|
|
"from panel_disconnect import disconnect\n",
|
||
|
|
"\n",
|
||
|
|
"boxes_image = [box for box in boxes if box.get_score() > obj_thresh]\n",
|
||
|
|
"\n",
|
||
|
|
"print('Elapsed time = {}'.format(time.time() - start))\n",
|
||
|
|
"\n",
|
||
|
|
"boxes_disc = disconnect(image, boxes_panel, z_thresh = 1.8)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 26,
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"60"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"execution_count": 26,
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "execute_result"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"len(boxes_disc)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 27,
|
||
|
|
"metadata": {},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"1709"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"execution_count": 27,
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "execute_result"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"len(boxes_image)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"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
|
||
|
|
}
|