提交 53111ae4 编写于 作者: S ShusenTang

add 9.3

上级 69164b73
......@@ -84,7 +84,8 @@ Dive into Deep Learning with PyTorch.
### 9. 计算机视觉
[9.1 图像增广](https://github.com/ShusenTang/Dive-into-DL-PyTorch/blob/master/docs/chapter09_computer-vision/9.1_image-augmentation.md)
[9.2 微调](https://github.com/ShusenTang/Dive-into-DL-PyTorch/blob/master/docs/chapter09_computer-vision/9.2_fine-tuning.md)
[9.2 微调](https://github.com/ShusenTang/Dive-into-DL-PyTorch/blob/master/docs/chapter09_computer-vision/9.2_fine-tuning.md)
[9.3 目标检测和边界框](https://github.com/ShusenTang/Dive-into-DL-PyTorch/blob/master/docs/chapter09_computer-vision/9.3_bounding-box.md)
持续更新中......
......
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 9.3 目标检测和边界框"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"from PIL import Image\n",
"\n",
"import sys\n",
"sys.path.append(\"..\") \n",
"import d2lzh_pytorch as d2l"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
"<svg height=\"170pt\" version=\"1.1\" viewBox=\"0 0 220 170\" width=\"220pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
" <defs>\n",
" <style type=\"text/css\">\n",
"*{stroke-linecap:butt;stroke-linejoin:round;}\n",
" </style>\n",
" </defs>\n",
" <g id=\"figure_1\">\n",
" <g id=\"patch_1\">\n",
" <path d=\"M 0 170.656221 \n",
"L 220.34258 170.656221 \n",
"L 220.34258 0 \n",
"L 0 0 \n",
"z\n",
"\" style=\"fill:none;\"/>\n",
" </g>\n",
" <g id=\"axes_1\">\n",
" <g id=\"patch_2\">\n",
" <path d=\"M 33.2875 146.778096 \n",
"L 209.64258 146.778096 \n",
"L 209.64258 10.878096 \n",
"L 33.2875 10.878096 \n",
"z\n",
"\" style=\"fill:#ffffff;\"/>\n",
" </g>\n",
" <g clip-path=\"url(#p1b8a651206)\">\n",
" <image height=\"136\" id=\"image516b947c49\" transform=\"scale(1 -1)translate(0 -136)\" width=\"177\" x=\"33.2875\" xlink:href=\"data:image/png;base64,\n",
"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\" y=\"-10.778096\"/>\n",
" </g>\n",
" <g id=\"matplotlib.axis_1\">\n",
" <g id=\"xtick_1\">\n",
" <g id=\"line2d_1\">\n",
" <defs>\n",
" <path d=\"M 0 0 \n",
"L 0 3.5 \n",
"\" id=\"ma52c8e85dd\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
" </defs>\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.408623\" xlink:href=\"#ma52c8e85dd\" y=\"146.778096\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_1\">\n",
" <!-- 0 -->\n",
" <defs>\n",
" <path d=\"M 31.78125 66.40625 \n",
"Q 24.171875 66.40625 20.328125 58.90625 \n",
"Q 16.5 51.421875 16.5 36.375 \n",
"Q 16.5 21.390625 20.328125 13.890625 \n",
"Q 24.171875 6.390625 31.78125 6.390625 \n",
"Q 39.453125 6.390625 43.28125 13.890625 \n",
"Q 47.125 21.390625 47.125 36.375 \n",
"Q 47.125 51.421875 43.28125 58.90625 \n",
"Q 39.453125 66.40625 31.78125 66.40625 \n",
"z\n",
"M 31.78125 74.21875 \n",
"Q 44.046875 74.21875 50.515625 64.515625 \n",
"Q 56.984375 54.828125 56.984375 36.375 \n",
"Q 56.984375 17.96875 50.515625 8.265625 \n",
"Q 44.046875 -1.421875 31.78125 -1.421875 \n",
"Q 19.53125 -1.421875 13.0625 8.265625 \n",
"Q 6.59375 17.96875 6.59375 36.375 \n",
"Q 6.59375 54.828125 13.0625 64.515625 \n",
"Q 19.53125 74.21875 31.78125 74.21875 \n",
"z\n",
"\" id=\"DejaVuSans-30\"/>\n",
" </defs>\n",
" <g transform=\"translate(30.227373 161.376533)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_2\">\n",
" <g id=\"line2d_2\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"81.857821\" xlink:href=\"#ma52c8e85dd\" y=\"146.778096\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_2\">\n",
" <!-- 200 -->\n",
" <defs>\n",
" <path d=\"M 19.1875 8.296875 \n",
"L 53.609375 8.296875 \n",
"L 53.609375 0 \n",
"L 7.328125 0 \n",
"L 7.328125 8.296875 \n",
"Q 12.9375 14.109375 22.625 23.890625 \n",
"Q 32.328125 33.6875 34.8125 36.53125 \n",
"Q 39.546875 41.84375 41.421875 45.53125 \n",
"Q 43.3125 49.21875 43.3125 52.78125 \n",
"Q 43.3125 58.59375 39.234375 62.25 \n",
"Q 35.15625 65.921875 28.609375 65.921875 \n",
"Q 23.96875 65.921875 18.8125 64.3125 \n",
"Q 13.671875 62.703125 7.8125 59.421875 \n",
"L 7.8125 69.390625 \n",
"Q 13.765625 71.78125 18.9375 73 \n",
"Q 24.125 74.21875 28.421875 74.21875 \n",
"Q 39.75 74.21875 46.484375 68.546875 \n",
"Q 53.21875 62.890625 53.21875 53.421875 \n",
"Q 53.21875 48.921875 51.53125 44.890625 \n",
"Q 49.859375 40.875 45.40625 35.40625 \n",
"Q 44.1875 33.984375 37.640625 27.21875 \n",
"Q 31.109375 20.453125 19.1875 8.296875 \n",
"z\n",
"\" id=\"DejaVuSans-32\"/>\n",
" </defs>\n",
" <g transform=\"translate(72.314071 161.376533)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_3\">\n",
" <g id=\"line2d_3\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"130.307019\" xlink:href=\"#ma52c8e85dd\" y=\"146.778096\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_3\">\n",
" <!-- 400 -->\n",
" <defs>\n",
" <path d=\"M 37.796875 64.3125 \n",
"L 12.890625 25.390625 \n",
"L 37.796875 25.390625 \n",
"z\n",
"M 35.203125 72.90625 \n",
"L 47.609375 72.90625 \n",
"L 47.609375 25.390625 \n",
"L 58.015625 25.390625 \n",
"L 58.015625 17.1875 \n",
"L 47.609375 17.1875 \n",
"L 47.609375 0 \n",
"L 37.796875 0 \n",
"L 37.796875 17.1875 \n",
"L 4.890625 17.1875 \n",
"L 4.890625 26.703125 \n",
"z\n",
"\" id=\"DejaVuSans-34\"/>\n",
" </defs>\n",
" <g transform=\"translate(120.763269 161.376533)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-34\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_4\">\n",
" <g id=\"line2d_4\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"178.756217\" xlink:href=\"#ma52c8e85dd\" y=\"146.778096\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_4\">\n",
" <!-- 600 -->\n",
" <defs>\n",
" <path d=\"M 33.015625 40.375 \n",
"Q 26.375 40.375 22.484375 35.828125 \n",
"Q 18.609375 31.296875 18.609375 23.390625 \n",
"Q 18.609375 15.53125 22.484375 10.953125 \n",
"Q 26.375 6.390625 33.015625 6.390625 \n",
"Q 39.65625 6.390625 43.53125 10.953125 \n",
"Q 47.40625 15.53125 47.40625 23.390625 \n",
"Q 47.40625 31.296875 43.53125 35.828125 \n",
"Q 39.65625 40.375 33.015625 40.375 \n",
"z\n",
"M 52.59375 71.296875 \n",
"L 52.59375 62.3125 \n",
"Q 48.875 64.0625 45.09375 64.984375 \n",
"Q 41.3125 65.921875 37.59375 65.921875 \n",
"Q 27.828125 65.921875 22.671875 59.328125 \n",
"Q 17.53125 52.734375 16.796875 39.40625 \n",
"Q 19.671875 43.65625 24.015625 45.921875 \n",
"Q 28.375 48.1875 33.59375 48.1875 \n",
"Q 44.578125 48.1875 50.953125 41.515625 \n",
"Q 57.328125 34.859375 57.328125 23.390625 \n",
"Q 57.328125 12.15625 50.6875 5.359375 \n",
"Q 44.046875 -1.421875 33.015625 -1.421875 \n",
"Q 20.359375 -1.421875 13.671875 8.265625 \n",
"Q 6.984375 17.96875 6.984375 36.375 \n",
"Q 6.984375 53.65625 15.1875 63.9375 \n",
"Q 23.390625 74.21875 37.203125 74.21875 \n",
"Q 40.921875 74.21875 44.703125 73.484375 \n",
"Q 48.484375 72.75 52.59375 71.296875 \n",
"z\n",
"\" id=\"DejaVuSans-36\"/>\n",
" </defs>\n",
" <g transform=\"translate(169.212467 161.376533)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-36\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"matplotlib.axis_2\">\n",
" <g id=\"ytick_1\">\n",
" <g id=\"line2d_5\">\n",
" <defs>\n",
" <path d=\"M 0 0 \n",
"L -3.5 0 \n",
"\" id=\"md42ad77733\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
" </defs>\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#md42ad77733\" y=\"10.999219\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_5\">\n",
" <!-- 0 -->\n",
" <g transform=\"translate(19.925 14.798437)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_2\">\n",
" <g id=\"line2d_6\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#md42ad77733\" y=\"35.223818\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_6\">\n",
" <!-- 100 -->\n",
" <defs>\n",
" <path d=\"M 12.40625 8.296875 \n",
"L 28.515625 8.296875 \n",
"L 28.515625 63.921875 \n",
"L 10.984375 60.40625 \n",
"L 10.984375 69.390625 \n",
"L 28.421875 72.90625 \n",
"L 38.28125 72.90625 \n",
"L 38.28125 8.296875 \n",
"L 54.390625 8.296875 \n",
"L 54.390625 0 \n",
"L 12.40625 0 \n",
"z\n",
"\" id=\"DejaVuSans-31\"/>\n",
" </defs>\n",
" <g transform=\"translate(7.2 39.023036)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_3\">\n",
" <g id=\"line2d_7\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#md42ad77733\" y=\"59.448417\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_7\">\n",
" <!-- 200 -->\n",
" <g transform=\"translate(7.2 63.247635)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_4\">\n",
" <g id=\"line2d_8\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#md42ad77733\" y=\"83.673016\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_8\">\n",
" <!-- 300 -->\n",
" <defs>\n",
" <path d=\"M 40.578125 39.3125 \n",
"Q 47.65625 37.796875 51.625 33 \n",
"Q 55.609375 28.21875 55.609375 21.1875 \n",
"Q 55.609375 10.40625 48.1875 4.484375 \n",
"Q 40.765625 -1.421875 27.09375 -1.421875 \n",
"Q 22.515625 -1.421875 17.65625 -0.515625 \n",
"Q 12.796875 0.390625 7.625 2.203125 \n",
"L 7.625 11.71875 \n",
"Q 11.71875 9.328125 16.59375 8.109375 \n",
"Q 21.484375 6.890625 26.8125 6.890625 \n",
"Q 36.078125 6.890625 40.9375 10.546875 \n",
"Q 45.796875 14.203125 45.796875 21.1875 \n",
"Q 45.796875 27.640625 41.28125 31.265625 \n",
"Q 36.765625 34.90625 28.71875 34.90625 \n",
"L 20.21875 34.90625 \n",
"L 20.21875 43.015625 \n",
"L 29.109375 43.015625 \n",
"Q 36.375 43.015625 40.234375 45.921875 \n",
"Q 44.09375 48.828125 44.09375 54.296875 \n",
"Q 44.09375 59.90625 40.109375 62.90625 \n",
"Q 36.140625 65.921875 28.71875 65.921875 \n",
"Q 24.65625 65.921875 20.015625 65.03125 \n",
"Q 15.375 64.15625 9.8125 62.3125 \n",
"L 9.8125 71.09375 \n",
"Q 15.4375 72.65625 20.34375 73.4375 \n",
"Q 25.25 74.21875 29.59375 74.21875 \n",
"Q 40.828125 74.21875 47.359375 69.109375 \n",
"Q 53.90625 64.015625 53.90625 55.328125 \n",
"Q 53.90625 49.265625 50.4375 45.09375 \n",
"Q 46.96875 40.921875 40.578125 39.3125 \n",
"z\n",
"\" id=\"DejaVuSans-33\"/>\n",
" </defs>\n",
" <g transform=\"translate(7.2 87.472234)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-33\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_5\">\n",
" <g id=\"line2d_9\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#md42ad77733\" y=\"107.897614\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_9\">\n",
" <!-- 400 -->\n",
" <g transform=\"translate(7.2 111.696833)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-34\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_6\">\n",
" <g id=\"line2d_10\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#md42ad77733\" y=\"132.122213\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_10\">\n",
" <!-- 500 -->\n",
" <defs>\n",
" <path d=\"M 10.796875 72.90625 \n",
"L 49.515625 72.90625 \n",
"L 49.515625 64.59375 \n",
"L 19.828125 64.59375 \n",
"L 19.828125 46.734375 \n",
"Q 21.96875 47.46875 24.109375 47.828125 \n",
"Q 26.265625 48.1875 28.421875 48.1875 \n",
"Q 40.625 48.1875 47.75 41.5 \n",
"Q 54.890625 34.8125 54.890625 23.390625 \n",
"Q 54.890625 11.625 47.5625 5.09375 \n",
"Q 40.234375 -1.421875 26.90625 -1.421875 \n",
"Q 22.3125 -1.421875 17.546875 -0.640625 \n",
"Q 12.796875 0.140625 7.71875 1.703125 \n",
"L 7.71875 11.625 \n",
"Q 12.109375 9.234375 16.796875 8.0625 \n",
"Q 21.484375 6.890625 26.703125 6.890625 \n",
"Q 35.15625 6.890625 40.078125 11.328125 \n",
"Q 45.015625 15.765625 45.015625 23.390625 \n",
"Q 45.015625 31 40.078125 35.4375 \n",
"Q 35.15625 39.890625 26.703125 39.890625 \n",
"Q 22.75 39.890625 18.8125 39.015625 \n",
"Q 14.890625 38.140625 10.796875 36.28125 \n",
"z\n",
"\" id=\"DejaVuSans-35\"/>\n",
" </defs>\n",
" <g transform=\"translate(7.2 135.921432)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-35\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"patch_3\">\n",
" <path d=\"M 33.2875 146.778096 \n",
"L 33.2875 10.878096 \n",
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
" </g>\n",
" <g id=\"patch_4\">\n",
" <path d=\"M 209.64258 146.778096 \n",
"L 209.64258 10.878096 \n",
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
" </g>\n",
" <g id=\"patch_5\">\n",
" <path d=\"M 33.2875 146.778096 \n",
"L 209.64258 146.778096 \n",
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
" </g>\n",
" <g id=\"patch_6\">\n",
" <path d=\"M 33.2875 10.878096 \n",
"L 209.64258 10.878096 \n",
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <defs>\n",
" <clipPath id=\"p1b8a651206\">\n",
" <rect height=\"135.9\" width=\"176.35508\" x=\"33.2875\" y=\"10.878096\"/>\n",
" </clipPath>\n",
" </defs>\n",
"</svg>\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x1057607b8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"d2l.set_figsize()\n",
"img = Image.open('../../img/catdog.jpg')\n",
"d2l.plt.imshow(img); # 加分号只显示图"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 9.3.1 边界框"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# bbox是bounding box的缩写\n",
"dog_bbox, cat_bbox = [60, 45, 378, 516], [400, 112, 655, 493]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def bbox_to_rect(bbox, color): # 本函数已保存在d2lzh_pytorch中方便以后使用\n",
" # 将边界框(左上x, 左上y, 右下x, 右下y)格式转换成matplotlib格式:\n",
" # ((左上x, 左上y), 宽, 高)\n",
" return d2l.plt.Rectangle(\n",
" xy=(bbox[0], bbox[1]), width=bbox[2]-bbox[0], height=bbox[3]-bbox[1],\n",
" fill=False, edgecolor=color, linewidth=2)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
"<svg height=\"170pt\" version=\"1.1\" viewBox=\"0 0 220 170\" width=\"220pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
" <defs>\n",
" <style type=\"text/css\">\n",
"*{stroke-linecap:butt;stroke-linejoin:round;}\n",
" </style>\n",
" </defs>\n",
" <g id=\"figure_1\">\n",
" <g id=\"patch_1\">\n",
" <path d=\"M 0 170.656221 \n",
"L 220.34258 170.656221 \n",
"L 220.34258 0 \n",
"L 0 0 \n",
"z\n",
"\" style=\"fill:none;\"/>\n",
" </g>\n",
" <g id=\"axes_1\">\n",
" <g id=\"patch_2\">\n",
" <path d=\"M 33.2875 146.778096 \n",
"L 209.64258 146.778096 \n",
"L 209.64258 10.878096 \n",
"L 33.2875 10.878096 \n",
"z\n",
"\" style=\"fill:#ffffff;\"/>\n",
" </g>\n",
" <g clip-path=\"url(#p24454cb8cb)\">\n",
" <image height=\"136\" id=\"imagee49bf30d4d\" transform=\"scale(1 -1)translate(0 -136)\" width=\"177\" x=\"33.2875\" xlink:href=\"data:image/png;base64,\n",
"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\" y=\"-10.778096\"/>\n",
" </g>\n",
" <g id=\"patch_3\">\n",
" <path clip-path=\"url(#p24454cb8cb)\" d=\"M 47.943382 21.900288 \n",
"L 124.977607 21.900288 \n",
"L 124.977607 135.998149 \n",
"L 47.943382 135.998149 \n",
"z\n",
"\" style=\"fill:none;stroke:#0000ff;stroke-linejoin:miter;stroke-width:2;\"/>\n",
" </g>\n",
" <g id=\"patch_4\">\n",
" <path clip-path=\"url(#p24454cb8cb)\" d=\"M 130.307019 38.13077 \n",
"L 192.079746 38.13077 \n",
"L 192.079746 130.426491 \n",
"L 130.307019 130.426491 \n",
"z\n",
"\" style=\"fill:none;stroke:#ff0000;stroke-linejoin:miter;stroke-width:2;\"/>\n",
" </g>\n",
" <g id=\"matplotlib.axis_1\">\n",
" <g id=\"xtick_1\">\n",
" <g id=\"line2d_1\">\n",
" <defs>\n",
" <path d=\"M 0 0 \n",
"L 0 3.5 \n",
"\" id=\"m2884c8c743\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
" </defs>\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.408623\" xlink:href=\"#m2884c8c743\" y=\"146.778096\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_1\">\n",
" <!-- 0 -->\n",
" <defs>\n",
" <path d=\"M 31.78125 66.40625 \n",
"Q 24.171875 66.40625 20.328125 58.90625 \n",
"Q 16.5 51.421875 16.5 36.375 \n",
"Q 16.5 21.390625 20.328125 13.890625 \n",
"Q 24.171875 6.390625 31.78125 6.390625 \n",
"Q 39.453125 6.390625 43.28125 13.890625 \n",
"Q 47.125 21.390625 47.125 36.375 \n",
"Q 47.125 51.421875 43.28125 58.90625 \n",
"Q 39.453125 66.40625 31.78125 66.40625 \n",
"z\n",
"M 31.78125 74.21875 \n",
"Q 44.046875 74.21875 50.515625 64.515625 \n",
"Q 56.984375 54.828125 56.984375 36.375 \n",
"Q 56.984375 17.96875 50.515625 8.265625 \n",
"Q 44.046875 -1.421875 31.78125 -1.421875 \n",
"Q 19.53125 -1.421875 13.0625 8.265625 \n",
"Q 6.59375 17.96875 6.59375 36.375 \n",
"Q 6.59375 54.828125 13.0625 64.515625 \n",
"Q 19.53125 74.21875 31.78125 74.21875 \n",
"z\n",
"\" id=\"DejaVuSans-30\"/>\n",
" </defs>\n",
" <g transform=\"translate(30.227373 161.376533)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_2\">\n",
" <g id=\"line2d_2\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"81.857821\" xlink:href=\"#m2884c8c743\" y=\"146.778096\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_2\">\n",
" <!-- 200 -->\n",
" <defs>\n",
" <path d=\"M 19.1875 8.296875 \n",
"L 53.609375 8.296875 \n",
"L 53.609375 0 \n",
"L 7.328125 0 \n",
"L 7.328125 8.296875 \n",
"Q 12.9375 14.109375 22.625 23.890625 \n",
"Q 32.328125 33.6875 34.8125 36.53125 \n",
"Q 39.546875 41.84375 41.421875 45.53125 \n",
"Q 43.3125 49.21875 43.3125 52.78125 \n",
"Q 43.3125 58.59375 39.234375 62.25 \n",
"Q 35.15625 65.921875 28.609375 65.921875 \n",
"Q 23.96875 65.921875 18.8125 64.3125 \n",
"Q 13.671875 62.703125 7.8125 59.421875 \n",
"L 7.8125 69.390625 \n",
"Q 13.765625 71.78125 18.9375 73 \n",
"Q 24.125 74.21875 28.421875 74.21875 \n",
"Q 39.75 74.21875 46.484375 68.546875 \n",
"Q 53.21875 62.890625 53.21875 53.421875 \n",
"Q 53.21875 48.921875 51.53125 44.890625 \n",
"Q 49.859375 40.875 45.40625 35.40625 \n",
"Q 44.1875 33.984375 37.640625 27.21875 \n",
"Q 31.109375 20.453125 19.1875 8.296875 \n",
"z\n",
"\" id=\"DejaVuSans-32\"/>\n",
" </defs>\n",
" <g transform=\"translate(72.314071 161.376533)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_3\">\n",
" <g id=\"line2d_3\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"130.307019\" xlink:href=\"#m2884c8c743\" y=\"146.778096\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_3\">\n",
" <!-- 400 -->\n",
" <defs>\n",
" <path d=\"M 37.796875 64.3125 \n",
"L 12.890625 25.390625 \n",
"L 37.796875 25.390625 \n",
"z\n",
"M 35.203125 72.90625 \n",
"L 47.609375 72.90625 \n",
"L 47.609375 25.390625 \n",
"L 58.015625 25.390625 \n",
"L 58.015625 17.1875 \n",
"L 47.609375 17.1875 \n",
"L 47.609375 0 \n",
"L 37.796875 0 \n",
"L 37.796875 17.1875 \n",
"L 4.890625 17.1875 \n",
"L 4.890625 26.703125 \n",
"z\n",
"\" id=\"DejaVuSans-34\"/>\n",
" </defs>\n",
" <g transform=\"translate(120.763269 161.376533)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-34\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_4\">\n",
" <g id=\"line2d_4\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"178.756217\" xlink:href=\"#m2884c8c743\" y=\"146.778096\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_4\">\n",
" <!-- 600 -->\n",
" <defs>\n",
" <path d=\"M 33.015625 40.375 \n",
"Q 26.375 40.375 22.484375 35.828125 \n",
"Q 18.609375 31.296875 18.609375 23.390625 \n",
"Q 18.609375 15.53125 22.484375 10.953125 \n",
"Q 26.375 6.390625 33.015625 6.390625 \n",
"Q 39.65625 6.390625 43.53125 10.953125 \n",
"Q 47.40625 15.53125 47.40625 23.390625 \n",
"Q 47.40625 31.296875 43.53125 35.828125 \n",
"Q 39.65625 40.375 33.015625 40.375 \n",
"z\n",
"M 52.59375 71.296875 \n",
"L 52.59375 62.3125 \n",
"Q 48.875 64.0625 45.09375 64.984375 \n",
"Q 41.3125 65.921875 37.59375 65.921875 \n",
"Q 27.828125 65.921875 22.671875 59.328125 \n",
"Q 17.53125 52.734375 16.796875 39.40625 \n",
"Q 19.671875 43.65625 24.015625 45.921875 \n",
"Q 28.375 48.1875 33.59375 48.1875 \n",
"Q 44.578125 48.1875 50.953125 41.515625 \n",
"Q 57.328125 34.859375 57.328125 23.390625 \n",
"Q 57.328125 12.15625 50.6875 5.359375 \n",
"Q 44.046875 -1.421875 33.015625 -1.421875 \n",
"Q 20.359375 -1.421875 13.671875 8.265625 \n",
"Q 6.984375 17.96875 6.984375 36.375 \n",
"Q 6.984375 53.65625 15.1875 63.9375 \n",
"Q 23.390625 74.21875 37.203125 74.21875 \n",
"Q 40.921875 74.21875 44.703125 73.484375 \n",
"Q 48.484375 72.75 52.59375 71.296875 \n",
"z\n",
"\" id=\"DejaVuSans-36\"/>\n",
" </defs>\n",
" <g transform=\"translate(169.212467 161.376533)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-36\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"matplotlib.axis_2\">\n",
" <g id=\"ytick_1\">\n",
" <g id=\"line2d_5\">\n",
" <defs>\n",
" <path d=\"M 0 0 \n",
"L -3.5 0 \n",
"\" id=\"mba9567ab9b\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
" </defs>\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#mba9567ab9b\" y=\"10.999219\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_5\">\n",
" <!-- 0 -->\n",
" <g transform=\"translate(19.925 14.798437)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_2\">\n",
" <g id=\"line2d_6\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#mba9567ab9b\" y=\"35.223818\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_6\">\n",
" <!-- 100 -->\n",
" <defs>\n",
" <path d=\"M 12.40625 8.296875 \n",
"L 28.515625 8.296875 \n",
"L 28.515625 63.921875 \n",
"L 10.984375 60.40625 \n",
"L 10.984375 69.390625 \n",
"L 28.421875 72.90625 \n",
"L 38.28125 72.90625 \n",
"L 38.28125 8.296875 \n",
"L 54.390625 8.296875 \n",
"L 54.390625 0 \n",
"L 12.40625 0 \n",
"z\n",
"\" id=\"DejaVuSans-31\"/>\n",
" </defs>\n",
" <g transform=\"translate(7.2 39.023036)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_3\">\n",
" <g id=\"line2d_7\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#mba9567ab9b\" y=\"59.448417\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_7\">\n",
" <!-- 200 -->\n",
" <g transform=\"translate(7.2 63.247635)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_4\">\n",
" <g id=\"line2d_8\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#mba9567ab9b\" y=\"83.673016\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_8\">\n",
" <!-- 300 -->\n",
" <defs>\n",
" <path d=\"M 40.578125 39.3125 \n",
"Q 47.65625 37.796875 51.625 33 \n",
"Q 55.609375 28.21875 55.609375 21.1875 \n",
"Q 55.609375 10.40625 48.1875 4.484375 \n",
"Q 40.765625 -1.421875 27.09375 -1.421875 \n",
"Q 22.515625 -1.421875 17.65625 -0.515625 \n",
"Q 12.796875 0.390625 7.625 2.203125 \n",
"L 7.625 11.71875 \n",
"Q 11.71875 9.328125 16.59375 8.109375 \n",
"Q 21.484375 6.890625 26.8125 6.890625 \n",
"Q 36.078125 6.890625 40.9375 10.546875 \n",
"Q 45.796875 14.203125 45.796875 21.1875 \n",
"Q 45.796875 27.640625 41.28125 31.265625 \n",
"Q 36.765625 34.90625 28.71875 34.90625 \n",
"L 20.21875 34.90625 \n",
"L 20.21875 43.015625 \n",
"L 29.109375 43.015625 \n",
"Q 36.375 43.015625 40.234375 45.921875 \n",
"Q 44.09375 48.828125 44.09375 54.296875 \n",
"Q 44.09375 59.90625 40.109375 62.90625 \n",
"Q 36.140625 65.921875 28.71875 65.921875 \n",
"Q 24.65625 65.921875 20.015625 65.03125 \n",
"Q 15.375 64.15625 9.8125 62.3125 \n",
"L 9.8125 71.09375 \n",
"Q 15.4375 72.65625 20.34375 73.4375 \n",
"Q 25.25 74.21875 29.59375 74.21875 \n",
"Q 40.828125 74.21875 47.359375 69.109375 \n",
"Q 53.90625 64.015625 53.90625 55.328125 \n",
"Q 53.90625 49.265625 50.4375 45.09375 \n",
"Q 46.96875 40.921875 40.578125 39.3125 \n",
"z\n",
"\" id=\"DejaVuSans-33\"/>\n",
" </defs>\n",
" <g transform=\"translate(7.2 87.472234)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-33\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_5\">\n",
" <g id=\"line2d_9\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#mba9567ab9b\" y=\"107.897614\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_9\">\n",
" <!-- 400 -->\n",
" <g transform=\"translate(7.2 111.696833)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-34\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_6\">\n",
" <g id=\"line2d_10\">\n",
" <g>\n",
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"33.2875\" xlink:href=\"#mba9567ab9b\" y=\"132.122213\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_10\">\n",
" <!-- 500 -->\n",
" <defs>\n",
" <path d=\"M 10.796875 72.90625 \n",
"L 49.515625 72.90625 \n",
"L 49.515625 64.59375 \n",
"L 19.828125 64.59375 \n",
"L 19.828125 46.734375 \n",
"Q 21.96875 47.46875 24.109375 47.828125 \n",
"Q 26.265625 48.1875 28.421875 48.1875 \n",
"Q 40.625 48.1875 47.75 41.5 \n",
"Q 54.890625 34.8125 54.890625 23.390625 \n",
"Q 54.890625 11.625 47.5625 5.09375 \n",
"Q 40.234375 -1.421875 26.90625 -1.421875 \n",
"Q 22.3125 -1.421875 17.546875 -0.640625 \n",
"Q 12.796875 0.140625 7.71875 1.703125 \n",
"L 7.71875 11.625 \n",
"Q 12.109375 9.234375 16.796875 8.0625 \n",
"Q 21.484375 6.890625 26.703125 6.890625 \n",
"Q 35.15625 6.890625 40.078125 11.328125 \n",
"Q 45.015625 15.765625 45.015625 23.390625 \n",
"Q 45.015625 31 40.078125 35.4375 \n",
"Q 35.15625 39.890625 26.703125 39.890625 \n",
"Q 22.75 39.890625 18.8125 39.015625 \n",
"Q 14.890625 38.140625 10.796875 36.28125 \n",
"z\n",
"\" id=\"DejaVuSans-35\"/>\n",
" </defs>\n",
" <g transform=\"translate(7.2 135.921432)scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-35\"/>\n",
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"patch_5\">\n",
" <path d=\"M 33.2875 146.778096 \n",
"L 33.2875 10.878096 \n",
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
" </g>\n",
" <g id=\"patch_6\">\n",
" <path d=\"M 209.64258 146.778096 \n",
"L 209.64258 10.878096 \n",
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
" </g>\n",
" <g id=\"patch_7\">\n",
" <path d=\"M 33.2875 146.778096 \n",
"L 209.64258 146.778096 \n",
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
" </g>\n",
" <g id=\"patch_8\">\n",
" <path d=\"M 33.2875 10.878096 \n",
"L 209.64258 10.878096 \n",
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <defs>\n",
" <clipPath id=\"p24454cb8cb\">\n",
" <rect height=\"135.9\" width=\"176.35508\" x=\"33.2875\" y=\"10.878096\"/>\n",
" </clipPath>\n",
" </defs>\n",
"</svg>\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x11236c710>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = d2l.plt.imshow(img)\n",
"fig.axes.add_patch(bbox_to_rect(dog_bbox, 'blue'))\n",
"fig.axes.add_patch(bbox_to_rect(cat_bbox, 'red'));"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:anaconda3]",
"language": "python",
"name": "conda-env-anaconda3-py"
},
"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.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
......@@ -690,7 +690,6 @@ def show_images(imgs, num_rows, num_cols, scale=2):
axes[i][j].axes.get_yaxis().set_visible(False)
return axes
# 本函数已保存在d2lzh_pytorch包中方便以后使用
def train(train_iter, test_iter, net, loss, optimizer, device, num_epochs):
net = net.to(device)
print("training on ", device)
......@@ -712,3 +711,15 @@ def train(train_iter, test_iter, net, loss, optimizer, device, num_epochs):
test_acc = evaluate_accuracy(test_iter, net)
print('epoch %d, loss %.4f, train acc %.3f, test acc %.3f, time %.1f sec'
% (epoch + 1, train_l_sum / batch_count, train_acc_sum / n, test_acc, time.time() - start))
############################## 9.3 #####################
def bbox_to_rect(bbox, color):
# 将边界框(左上x, 左上y, 右下x, 右下y)格式转换成matplotlib格式:
# ((左上x, 左上y), 宽, 高)
return d2l.plt.Rectangle(
xy=(bbox[0], bbox[1]), width=bbox[2]-bbox[0], height=bbox[3]-bbox[1],
fill=False, edgecolor=color, linewidth=2)
\ No newline at end of file
# 9.3 目标检测和边界框
在前面的一些章节中,我们介绍了诸多用于图像分类的模型。在图像分类任务里,我们假设图像里只有一个主体目标,并关注如何识别该目标的类别。然而,很多时候图像里有多个我们感兴趣的目标,我们不仅想知道它们的类别,还想得到它们在图像中的具体位置。在计算机视觉里,我们将这类任务称为目标检测(object detection)或物体检测。
目标检测在多个领域中被广泛使用。例如,在无人驾驶里,我们需要通过识别拍摄到的视频图像里的车辆、行人、道路和障碍的位置来规划行进线路。机器人也常通过该任务来检测感兴趣的目标。安防领域则需要检测异常目标,如歹徒或者炸弹。
在接下来的几节里,我们将介绍目标检测里的多个深度学习模型。在此之前,让我们来了解目标位置这个概念。先导入实验所需的包或模块。
``` python
%matplotlib inline
from PIL import Image
import sys
sys.path.append("..")
import d2lzh_pytorch as d2l
```
下面加载本节将使用的示例图像。可以看到图像左边是一只狗,右边是一只猫。它们是这张图像里的两个主要目标。
``` python
d2l.set_figsize()
img = Image.open('../../img/catdog.jpg')
d2l.plt.imshow(img); # 加分号只显示图
```
<div align=center>
<img width="300" src="../../img/chapter09/9.3_output1.png"/>
</div>
## 9.3.1 边界框
在目标检测里,我们通常使用边界框(bounding box)来描述目标位置。边界框是一个矩形框,可以由矩形左上角的$x$和$y$轴坐标与右下角的$x$和$y$轴坐标确定。我们根据上面的图的坐标信息来定义图中狗和猫的边界框。图中的坐标原点在图像的左上角,原点往右和往下分别为$x$轴和$y$轴的正方向。
``` python
# bbox是bounding box的缩写
dog_bbox, cat_bbox = [60, 45, 378, 516], [400, 112, 655, 493]
```
我们可以在图中将边界框画出来,以检查其是否准确。画之前,我们定义一个辅助函数`bbox_to_rect`。它将边界框表示成matplotlib的边界框格式。
``` python
def bbox_to_rect(bbox, color): # 本函数已保存在d2lzh_pytorch中方便以后使用
# 将边界框(左上x, 左上y, 右下x, 右下y)格式转换成matplotlib格式:
# ((左上x, 左上y), 宽, 高)
return d2l.plt.Rectangle(
xy=(bbox[0], bbox[1]), width=bbox[2]-bbox[0], height=bbox[3]-bbox[1],
fill=False, edgecolor=color, linewidth=2)
```
我们将边界框加载在图像上,可以看到目标的主要轮廓基本在框内。
``` python
fig = d2l.plt.imshow(img)
fig.axes.add_patch(bbox_to_rect(dog_bbox, 'blue'))
fig.axes.add_patch(bbox_to_rect(cat_bbox, 'red'));
```
输出:
<div align=center>
<img width="300" src="../../img/chapter09/9.3_output2.png"/>
</div>
## 小结
* 在目标检测里不仅需要找出图像里面所有感兴趣的目标,而且要知道它们的位置。位置一般由矩形边界框来表示。
-----------
> 注:除代码外本节与原书基本相同,[原书传送门](https://zh.d2l.ai/chapter_computer-vision/bounding-box.html)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册