Skip to content

Instantly share code, notes, and snippets.

@botcs
Created March 4, 2019 15:56
Show Gist options
  • Select an option

  • Save botcs/f2bad2c6f7b976604cfe00a53e539a52 to your computer and use it in GitHub Desktop.

Select an option

Save botcs/f2bad2c6f7b976604cfe00a53e539a52 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import numpy as np\n",
"\n",
"import abstract_cityscapes_style_eval\n",
"import evalInstanceLevelSemanticLabeling as evalInst\n",
"import maskrcnn_benchmark.data.datasets.debugdataset as debugdataset\n",
"\n",
"import matplotlib.pyplot as plt\n",
"from copy import deepcopy"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"num_of_inst = 3\n",
"dataset = debugdataset.DebugDataset(\n",
" dataset_size=1, \n",
" min_num_instances=num_of_inst, \n",
" max_num_instances=num_of_inst\n",
")\n",
"\n",
"predictions = []\n",
"for img, target, idx in dataset:\n",
" target = deepcopy(target)\n",
" target.add_field(\"scores\", torch.ones(len(target))) \n",
" \n",
" # The format in which maskrcnn_benchmark predictions comes in are different\n",
" # instead of [num_inst, H, W] it is [num_inst, 1, H, W] and it is stored in\n",
" # BoxList's \"mask\" extra field instead of \"masks\" (in which annotations are\n",
" # stored for training / validating purposes)\n",
" prediction_mask = target.get_field(\"masks\").get_mask_tensor()[:, None]\n",
" \n",
" # The labels in predictions are the contiguous ids\n",
" classids = target.get_field(\"labels\")\n",
" ccids = torch.tensor([dataset.classid_to_ccid[classid.item()] for classid in classids])\n",
" \n",
" target.add_field(\"labels\", ccids)\n",
" target.add_field(\"mask\", prediction_mask)\n",
" predictions.append(target)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x1440 with 3 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"perImgGtInstances, gtMasks = evalInst.prepareGtImage(dataset, 0)\n",
"plt.figure(figsize=(20, 20))\n",
"for i, (inst, m) in enumerate(zip(perImgGtInstances, gtMasks), 1):\n",
" plt.subplot(1, len(gtMasks), i)\n",
" plt.title(inst)\n",
" plt.imshow(m)\n",
" plt.tight_layout()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x1440 with 3 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"perImgPredInstances, predMasks = evalInst.preparePredImage(dataset, predictions, idx)\n",
"plt.figure(figsize=(20, 20))\n",
"for i, (inst, m) in enumerate(zip(perImgPredInstances, predMasks), 1):\n",
" plt.subplot(1, len(predMasks), i)\n",
" plt.title(str(inst).replace(\", \", \"\\n\"))\n",
" plt.imshow(m[0])\n",
" plt.tight_layout()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Matching GT with Preds: 100%|██████████| 1/1 [00:00<00:00, 70.83it/s]\n"
]
}
],
"source": [
"matches = evalInst.matchGtWithPreds(dataset, predictions)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'box': [{'labelID': 23,\n",
" 'instID': 0,\n",
" 'pixelCount': 2500,\n",
" 'matchedPred': [{'imgName': 0,\n",
" 'predID': 0,\n",
" 'labelID': 23,\n",
" 'pixelCount': 2500,\n",
" 'confidence': 1.0,\n",
" 'intersection': 2500}]},\n",
" {'labelID': 23,\n",
" 'instID': 1,\n",
" 'pixelCount': 2500,\n",
" 'matchedPred': [{'imgName': 0,\n",
" 'predID': 1,\n",
" 'labelID': 23,\n",
" 'pixelCount': 2500,\n",
" 'confidence': 1.0,\n",
" 'intersection': 2500}]},\n",
" {'labelID': 23,\n",
" 'instID': 2,\n",
" 'pixelCount': 2500,\n",
" 'matchedPred': [{'imgName': 0,\n",
" 'predID': 2,\n",
" 'labelID': 23,\n",
" 'pixelCount': 2500,\n",
" 'confidence': 1.0,\n",
" 'intersection': 2500}]}]}"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"matches[0]['groundTruth']"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"import evalInstanceLevelSemanticLabeling"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"import evalInstanceLevelSemanticLabeling\n",
"args = evalInstanceLevelSemanticLabeling.args\n",
"args.instLabels = list(dataset.classid_to_name.values())"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"###########################################################################\n",
" exportFile : evaluationResults/resultInstanceLevelSemanticLabeling.json\n",
" overlaps : [0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95]\n",
"minRegionSizes : [100 200 400]\n",
" JSONOutput : True\n",
" quiet : False\n",
" csv : False\n",
" colorized : True\n",
" instLabels : ['box']\n",
"###########################################################################"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"args"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dict_keys(['exportFile', 'overlaps', 'minRegionSizes', 'JSONOutput', 'quiet', 'csv', 'colorized', 'instLabels'])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"args.__dict__.keys()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"#################################################################\n",
"\u001b[1mwhat : AP AP_50% AP_75%\u001b[0m\n",
"#################################################################\n",
"box :\u001b[32;1m 1.000\u001b[32;1m 1.000\u001b[32;1m 1.000\u001b[0m\n",
"-----------------------------------------------------------------\n",
"average :\u001b[32;1m 1.000\u001b[32;1m 1.000\u001b[32;1m 1.000\u001b[0m\n",
"\n",
"\n"
]
}
],
"source": [
"# evaluate matches\n",
"apScores = evalInstanceLevelSemanticLabeling.evaluateMatches(matches, args)\n",
"# averages\n",
"avgDict = evalInstanceLevelSemanticLabeling.computeAverages(apScores,args)\n",
"# Print results\n",
"print(evalInstanceLevelSemanticLabeling.printResults(avgDict, args))"
]
}
],
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment