commit f54fbb05aa0f44a42f25346087b8dc918be3b197 Author: yin-kangning <747919591@qq.com> Date: Tue Jun 25 14:07:50 2024 +0800 first commit diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..61ff576 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Lam1360 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..4797369 --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +# YOLOv3-model-pruning + +用 YOLOv3 模型在一个开源的人手检测数据集 [oxford hand](http://www.robots.ox.ac.uk/~vgg/data/hands/) 上做人手检测,并在此基础上做模型剪枝。对于该数据集,对 YOLOv3 进行 channel pruning 之后,模型的参数量、模型大小减少 80% ,FLOPs 降低 70%,前向推断的速度可以达到原来的 200%,同时可以保持 mAP 基本不变。 + +## 环境 + +Python3.6, Pytorch 1.0及以上 + +YOLOv3 的实现参考了 eriklindernoren 的 [PyTorch-YOLOv3](https://github.com/eriklindernoren/PyTorch-YOLOv3) ,因此代码的依赖环境也可以参考其 repo + +## 数据集准备 + +1. 下载[数据集](http://www.robots.ox.ac.uk/~vgg/data/hands/downloads/hand_dataset.tar.gz),得到压缩文件 +2. 将压缩文件解压到 data 目录,得到 hand_dataset 文件夹 +3. 在 data 目录下执行 converter.py,生成 images、labels 文件夹和 train.txt、valid.txt 文件。训练集中一共有 4807 张图 + 片,测试集中一共有 821 张图片 + +## 正常训练(Baseline) + +```bash +python train.py --model_def config/yolov3-hand.cfg +``` + +## 剪枝算法介绍 + +本代码基于论文 [Learning Efficient Convolutional Networks Through Network Slimming (ICCV 2017)](http://openaccess.thecvf.com/content_iccv_2017/html/Liu_Learning_Efficient_Convolutional_ICCV_2017_paper.html) 进行改进实现的 channel pruning算法,类似的代码实现还有这个 [yolov3-network-slimming](https://github.com/talebolano/yolov3-network-slimming)。原始论文中的算法是针对分类模型的,基于 BN 层的 gamma 系数进行剪枝的。 + +### 剪枝算法的大概步骤 + +以下只是算法的大概步骤,具体实现过程中还要做 s 参数的尝试或者需要进行迭代式剪枝等。 + +1. 进行稀疏化训练 + + ```bash + python train.py --model_def config/yolov3-hand.cfg -sr --s 0.01 + ``` + +2. 基于 test_prune.py 文件进行剪枝,得到剪枝后的模型 + +3. 对剪枝后的模型进行微调 + ```bash + python train.py --model_def config/prune_yolov3-hand.cfg -pre checkpoints/prune_yolov3_ckpt.pth + ``` + +### 剪枝前后的对比 + +1. 下图为对部分卷积层进行剪枝前后通道数的变化: + + ![](https://raw.githubusercontent.com/Lam1360/md-image/master/img/20190628205342.png) + > 部分卷积层的通道数大幅度减少 + +2. 剪枝前后指标对比: + + | | 参数数量 | 模型体积 |Flops | 前向推断耗时(2070 TI) | mAP | + | :------------: | :------:| :-----: | :---: | :-------------------: | :----: | + | Baseline (416) | 61.5M | 246.4MB |32.8B | 15.0 ms | 0.7692 | + | Prune (416) | 10.9M | 43.6MB | 9.6B | 7.7 ms | 0.7722 | + | Finetune (416) | 同上 | 同上 | 同上 | 同上 | 0.7750 | + + > 加入稀疏正则项之后,mAP 反而更高了(在实验过程中发现,其实 mAP上下波动 0.02 是正常现象),因此可以认为稀疏训练得到的 mAP 与正常训练几乎一致。将 prune 后得到的模型进行 finetune 并没有明显的提升,因此剪枝三步可以直接简化成两步。剪枝前后模型的参数量、模型大小降为原来的 1/6 ,FLOPs 降为原来的 1/3,前向推断的速度可以达到原来的 2 倍,同时可以保持 mAP 基本不变。*需要明确的是,上面表格中剪枝的效果是只是针对该数据集的,不一定能保证在其他数据集上也有同样的效果* + +3. 剪枝后模型的测试: + + Prune 模型的权重已放在百度网盘上 ([提取码: gnzx](https://pan.baidu.com/s/13Ycj7JccBHWYF590bgFRxQ)),可以通过执行以下代码进行测试: + ```bash + python test.py --model_def config/prune_yolov3-hand.cfg --weights_path weights/prune_yolov3_ckpt.pth --data_config config/oxfordhand.data --class_path data/oxfordhand.names --conf_thres 0.01 + ``` diff --git a/__pycache__/debug_utils.cpython-38.pyc b/__pycache__/debug_utils.cpython-38.pyc new file mode 100644 index 0000000..db4a28d Binary files /dev/null and b/__pycache__/debug_utils.cpython-38.pyc differ diff --git a/__pycache__/models.cpython-38.pyc b/__pycache__/models.cpython-38.pyc new file mode 100644 index 0000000..5580054 Binary files /dev/null and b/__pycache__/models.cpython-38.pyc differ diff --git a/__pycache__/models.cpython-39.pyc b/__pycache__/models.cpython-39.pyc new file mode 100644 index 0000000..72449db Binary files /dev/null and b/__pycache__/models.cpython-39.pyc differ diff --git a/__pycache__/prune_0.58_yolov3-person.cfg b/__pycache__/prune_0.58_yolov3-person.cfg new file mode 100644 index 0000000..3863e85 --- /dev/null +++ b/__pycache__/prune_0.58_yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=31 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=35 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=55 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=38 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=72 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=79 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=80 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=76 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=85 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=78 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=83 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=59 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=33 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=31 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=21 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=15 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=73 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=35 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=14 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=71 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=226 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=338 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=214 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=337 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=253 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=898 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=179 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=224 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=141 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=235 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=153 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=432 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=96 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=151 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=89 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=159 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=80 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=195 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/__pycache__/prune_0.58_yolov3_ckpt_99_04111754.pth b/__pycache__/prune_0.58_yolov3_ckpt_99_04111754.pth new file mode 100644 index 0000000..6719e78 Binary files /dev/null and b/__pycache__/prune_0.58_yolov3_ckpt_99_04111754.pth differ diff --git a/__pycache__/test.cpython-38.pyc b/__pycache__/test.cpython-38.pyc new file mode 100644 index 0000000..2352e7a Binary files /dev/null and b/__pycache__/test.cpython-38.pyc differ diff --git a/__pycache__/test.cpython-39.pyc b/__pycache__/test.cpython-39.pyc new file mode 100644 index 0000000..1c11545 Binary files /dev/null and b/__pycache__/test.cpython-39.pyc differ diff --git a/config/1w_prune_0.6_yolov3-person.cfg b/config/1w_prune_0.6_yolov3-person.cfg new file mode 100644 index 0000000..a13173d --- /dev/null +++ b/config/1w_prune_0.6_yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=30 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=54 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=63 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=90 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=107 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=118 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=119 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=113 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=112 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=120 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=113 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=55 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=112 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=147 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=157 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=149 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=155 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=166 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=164 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=66 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=56 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=43 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=34 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=173 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=287 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=139 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=182 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=212 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=207 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=185 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=249 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=156 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=244 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=188 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=125 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=105 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=90 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=91 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=127 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=103 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=113 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/1w_prune_0.7_yolov3-person.cfg b/config/1w_prune_0.7_yolov3-person.cfg new file mode 100644 index 0000000..d9ce10a --- /dev/null +++ b/config/1w_prune_0.7_yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=28 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=31 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=50 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=70 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=98 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=112 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=110 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=109 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=105 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=114 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=105 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=38 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=69 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=113 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=114 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=119 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=110 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=127 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=127 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=35 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=18 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=16 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=13 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=122 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=170 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=74 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=98 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=140 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=108 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=167 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=178 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=181 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=160 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=79 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=101 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=69 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=79 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=99 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=92 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=75 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/1w_prune_0.875_yolov3-person.cfg b/config/1w_prune_0.875_yolov3-person.cfg new file mode 100644 index 0000000..8c45361 --- /dev/null +++ b/config/1w_prune_0.875_yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=20 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=29 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=35 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=50 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=38 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=50 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=58 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=65 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=74 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=66 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=47 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=27 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=21 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=21 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=17 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=20 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=19 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=18 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=11 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=3 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=2 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=55 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=39 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=34 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=42 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=56 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=16 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=86 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=46 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=47 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=55 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=92 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=23 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=75 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=40 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=47 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=54 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=67 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=41 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/1w_prune_0.8_yolov3-person.cfg b/config/1w_prune_0.8_yolov3-person.cfg new file mode 100644 index 0000000..635f496 --- /dev/null +++ b/config/1w_prune_0.8_yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=27 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=29 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=47 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=60 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=53 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=83 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=96 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=100 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=96 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=93 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=100 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=89 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=14 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=39 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=50 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=66 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=69 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=55 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=72 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=63 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=21 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=5 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=8 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=4 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=65 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=79 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=39 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=56 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=83 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=34 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=125 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=90 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=84 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=106 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=121 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=39 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=94 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=49 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=63 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=71 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=85 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=54 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/6.8_1w_prune_0.5_yolov3-person.cfg b/config/6.8_1w_prune_0.5_yolov3-person.cfg new file mode 100644 index 0000000..3f55cb9 --- /dev/null +++ b/config/6.8_1w_prune_0.5_yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=31 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=57 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=63 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=106 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=112 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=120 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=122 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=119 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=116 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=124 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=117 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=145 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=171 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=187 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=174 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=187 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=193 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=195 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=102 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=118 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=84 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=85 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=230 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=399 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=207 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=294 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=271 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=305 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=208 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=320 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=185 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=307 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=208 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=191 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=111 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=112 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=107 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=159 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=110 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=142 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/create_hand_model.sh b/config/create_hand_model.sh new file mode 100644 index 0000000..62e9507 --- /dev/null +++ b/config/create_hand_model.sh @@ -0,0 +1,794 @@ +#!/bin/bash + +NUM_CLASSES=$1 + +echo " +[net] +# Testing +#batch=1 +#subdivisions=1 +# Training +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation = 1.5 +exposure = 1.5 +hue=.1 + +learning_rate=0.001 +burn_in=1000 +max_batches = 500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +# Downsample + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +###################### + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=$(expr 3 \* $(expr $NUM_CLASSES \+ 5)) +activation=linear + + +[yolo] +mask = 6,7,8 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=$NUM_CLASSES +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 61 + + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=$(expr 3 \* $(expr $NUM_CLASSES \+ 5)) +activation=linear + + +[yolo] +mask = 3,4,5 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=$NUM_CLASSES +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 36 + + + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=$(expr 3 \* $(expr $NUM_CLASSES \+ 5)) +activation=linear + + +[yolo] +mask = 0,1,2 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=$NUM_CLASSES +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 +" >> yolov3-test.cfg diff --git a/config/ds8_1w_prune_0.0_yolov3-ds8-person.cfg b/config/ds8_1w_prune_0.0_yolov3-ds8-person.cfg new file mode 100644 index 0000000..55a33cd --- /dev/null +++ b/config/ds8_1w_prune_0.0_yolov3-ds8-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds8_1w_prune_0.5_best_mAP_yolov3_ckptyolov3-ds8-person.cfg b/config/ds8_1w_prune_0.5_best_mAP_yolov3_ckptyolov3-ds8-person.cfg new file mode 100644 index 0000000..5150c86 --- /dev/null +++ b/config/ds8_1w_prune_0.5_best_mAP_yolov3_ckptyolov3-ds8-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=278 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=252 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=254 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=200 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=242 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=446 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=236 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=390 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=219 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=193 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=215 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=355 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=182 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=281 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=125 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=220 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=109 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=213 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=100 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=151 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=70 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=231 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds8_1w_prune_0.7_best_mAP_yolov3_ckptyolov3-ds8-person.cfg b/config/ds8_1w_prune_0.7_best_mAP_yolov3_ckptyolov3-ds8-person.cfg new file mode 100644 index 0000000..6054539 --- /dev/null +++ b/config/ds8_1w_prune_0.7_best_mAP_yolov3_ckptyolov3-ds8-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=28 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=27 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=58 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=60 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=126 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=112 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=119 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=84 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=147 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=255 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=137 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=181 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=113 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=23 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=160 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=260 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=140 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=208 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=109 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=33 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=98 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=170 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=84 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=132 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=58 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=170 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds8_1w_prune_0.7_ckpt_99_06091301yolov3-ds8-person.cfg b/config/ds8_1w_prune_0.7_ckpt_99_06091301yolov3-ds8-person.cfg new file mode 100644 index 0000000..85e91eb --- /dev/null +++ b/config/ds8_1w_prune_0.7_ckpt_99_06091301yolov3-ds8-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=28 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=27 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=58 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=60 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=132 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=111 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=120 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=92 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=148 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=253 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=139 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=174 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=118 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=22 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=159 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=260 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=137 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=208 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=105 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=32 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=99 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=169 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=85 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=134 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=61 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=161 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds8_1w_prune_0.8_best_mAP_yolov3_ckptyolov3-ds8-person.cfg b/config/ds8_1w_prune_0.8_best_mAP_yolov3_ckptyolov3-ds8-person.cfg new file mode 100644 index 0000000..8a9b5d7 --- /dev/null +++ b/config/ds8_1w_prune_0.8_best_mAP_yolov3_ckptyolov3-ds8-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=27 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=26 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=58 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=57 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=86 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=54 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=18 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=5 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=85 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=95 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=72 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=70 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=23 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=147 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=180 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=123 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=132 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=89 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=32 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=90 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=135 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=76 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=108 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=53 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=156 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds8_1w_prune_0.8_ckpt_99_05181112yolov3-ds8-person.cfg b/config/ds8_1w_prune_0.8_ckpt_99_05181112yolov3-ds8-person.cfg new file mode 100644 index 0000000..e9cd26f --- /dev/null +++ b/config/ds8_1w_prune_0.8_ckpt_99_05181112yolov3-ds8-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=9 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=8 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=14 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=15 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=89 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=80 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=78 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=102 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=109 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=199 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=102 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=187 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=106 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=206 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=49 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=105 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=48 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=111 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=44 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=123 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=27 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=55 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=23 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=57 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=16 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=99 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds8_1w_prune_0.8_ckpt_99_06091301yolov3-ds8-person.cfg b/config/ds8_1w_prune_0.8_ckpt_99_06091301yolov3-ds8-person.cfg new file mode 100644 index 0000000..edf8235 --- /dev/null +++ b/config/ds8_1w_prune_0.8_ckpt_99_06091301yolov3-ds8-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=26 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=26 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=58 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=55 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=92 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=47 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=28 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=4 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=83 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=88 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=72 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=69 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=69 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=21 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=141 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=184 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=117 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=146 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=82 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=31 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=92 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=141 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=78 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=106 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=54 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=151 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds_1w_prune_0.1_xs_min_loss_yolov3-ds-person.cfg b/config/ds_1w_prune_0.1_xs_min_loss_yolov3-ds-person.cfg new file mode 100644 index 0000000..0cd06a4 --- /dev/null +++ b/config/ds_1w_prune_0.1_xs_min_loss_yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=28 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=28 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=55 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=56 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=453 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=906 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=454 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=889 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=450 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=984 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=230 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=450 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=227 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=441 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=227 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=509 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=113 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=227 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=112 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=224 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=112 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds_1w_prune_0.5_xs_best_mAP_yolov3-ds-person.cfg b/config/ds_1w_prune_0.5_xs_best_mAP_yolov3-ds-person.cfg new file mode 100644 index 0000000..12c08da --- /dev/null +++ b/config/ds_1w_prune_0.5_xs_best_mAP_yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=28 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=61 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=60 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=247 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=380 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=199 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=365 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=200 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=187 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=219 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=344 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=171 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=260 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=137 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=394 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=114 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=189 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=94 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=144 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=54 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=251 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds_1w_prune_0.6_xs_best_mAP_yolov3-ds-person.cfg b/config/ds_1w_prune_0.6_xs_best_mAP_yolov3-ds-person.cfg new file mode 100644 index 0000000..4bfacee --- /dev/null +++ b/config/ds_1w_prune_0.6_xs_best_mAP_yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=26 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=29 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=60 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=58 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=177 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=269 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=157 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=247 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=160 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=83 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=192 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=295 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=146 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=213 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=114 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=305 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=110 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=159 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=82 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=121 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=53 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=247 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds_1w_prune_0.6_yolov3-ds-person.cfg b/config/ds_1w_prune_0.6_yolov3-ds-person.cfg new file mode 100644 index 0000000..9267280 --- /dev/null +++ b/config/ds_1w_prune_0.6_yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=29 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=29 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=57 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=59 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=203 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=299 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=172 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=315 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=197 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=85 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=205 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=300 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=160 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=212 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=115 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=139 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=107 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=163 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=81 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=122 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=52 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=202 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds_1w_prune_0.7_ckpt_99_05181112yolov3-ds-person.cfg b/config/ds_1w_prune_0.7_ckpt_99_05181112yolov3-ds-person.cfg new file mode 100644 index 0000000..e1ee295 --- /dev/null +++ b/config/ds_1w_prune_0.7_ckpt_99_05181112yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=27 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=27 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=55 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=55 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=204 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=127 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=198 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=121 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=50 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=179 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=241 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=119 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=167 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=100 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=41 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=99 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=145 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=76 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=112 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=50 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=156 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds_1w_prune_0.7_xs_best_mAP_yolov3-ds-person.cfg b/config/ds_1w_prune_0.7_xs_best_mAP_yolov3-ds-person.cfg new file mode 100644 index 0000000..1be193a --- /dev/null +++ b/config/ds_1w_prune_0.7_xs_best_mAP_yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=20 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=25 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=54 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=53 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=131 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=205 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=121 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=180 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=108 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=28 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=165 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=233 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=124 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=170 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=100 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=50 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=98 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=146 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=77 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=115 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=50 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=224 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds_1w_prune_0.85_ckpt_99_05181112yolov3-ds-person.cfg b/config/ds_1w_prune_0.85_ckpt_99_05181112yolov3-ds-person.cfg new file mode 100644 index 0000000..cd14d39 --- /dev/null +++ b/config/ds_1w_prune_0.85_ckpt_99_05181112yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=15 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=22 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=46 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=48 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=69 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=55 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=43 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=46 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=48 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=18 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=112 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=116 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=68 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=69 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=67 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=27 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=65 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=60 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=51 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=54 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=108 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds_1w_prune_0.8_ckpt_99_05181112yolov3-ds-person.cfg b/config/ds_1w_prune_0.8_ckpt_99_05181112yolov3-ds-person.cfg new file mode 100644 index 0000000..43638e2 --- /dev/null +++ b/config/ds_1w_prune_0.8_ckpt_99_05181112yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=19 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=23 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=47 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=49 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=90 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=90 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=66 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=76 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=68 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=18 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=147 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=160 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=98 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=105 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=85 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=28 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=83 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=112 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=65 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=75 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=34 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=114 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds_1w_prune_0.8_xs_best_mAP_yolov3-ds-person.cfg b/config/ds_1w_prune_0.8_xs_best_mAP_yolov3-ds-person.cfg new file mode 100644 index 0000000..581ba4d --- /dev/null +++ b/config/ds_1w_prune_0.8_xs_best_mAP_yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=17 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=23 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=47 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=49 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=89 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=87 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=74 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=72 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=23 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=141 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=169 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=91 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=98 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=82 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=29 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=84 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=108 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=65 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=74 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=36 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=130 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds_1w_prune_0.8_xs_min_loss_yolov3-ds-person.cfg b/config/ds_1w_prune_0.8_xs_min_loss_yolov3-ds-person.cfg new file mode 100644 index 0000000..34ba1f5 --- /dev/null +++ b/config/ds_1w_prune_0.8_xs_min_loss_yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=7 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=3 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=6 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=9 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=56 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=106 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=61 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=96 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=58 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=342 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=33 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=55 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=48 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=25 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=365 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=21 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=27 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=8 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=36 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=14 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=244 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds_1w_prune_0.9_xs_best_mAP_yolov3-ds-person.cfg b/config/ds_1w_prune_0.9_xs_best_mAP_yolov3-ds-person.cfg new file mode 100644 index 0000000..e7d17df --- /dev/null +++ b/config/ds_1w_prune_0.9_xs_best_mAP_yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=16 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=19 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=42 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=47 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=45 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=26 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=25 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=21 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=36 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=22 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=78 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=49 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=49 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=41 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=52 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=25 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=35 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=21 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=33 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=34 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=27 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=83 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/ds_1w_prune_0.9_xs_min_loss_yolov3-ds-person.cfg b/config/ds_1w_prune_0.9_xs_min_loss_yolov3-ds-person.cfg new file mode 100644 index 0000000..1245f90 --- /dev/null +++ b/config/ds_1w_prune_0.9_xs_min_loss_yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=3 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=4 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=6 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=9 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=23 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=19 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=30 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=21 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=148 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=8 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=15 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=10 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=13 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=10 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=245 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=4 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=5 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=2 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=13 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=3 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=234 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/oxfordhand.data b/config/oxfordhand.data new file mode 100644 index 0000000..41aaab0 --- /dev/null +++ b/config/oxfordhand.data @@ -0,0 +1,4 @@ +classes= 1 +train=data/train.txt +valid=data/valid.txt +names=data/oxfordhand.names diff --git a/config/person.data b/config/person.data new file mode 100644 index 0000000..494212a --- /dev/null +++ b/config/person.data @@ -0,0 +1,4 @@ +classes= 1 +train=data/train.txt +valid=data/valid.txt +names=data/person.names diff --git a/config/prune_0.2_yolov3-person.cfg b/config/prune_0.2_yolov3-person.cfg new file mode 100644 index 0000000..730f784 --- /dev/null +++ b/config/prune_0.2_yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=31 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=28 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=26 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=57 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=49 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=103 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=94 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=106 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=97 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=79 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=68 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=73 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=232 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=185 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=85 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=120 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=85 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=163 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=40 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=299 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=194 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=191 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=260 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=253 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=255 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=254 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=506 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=122 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=246 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=121 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=249 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=127 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=239 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/prune_0.55_yolov3-person.cfg b/config/prune_0.55_yolov3-person.cfg new file mode 100644 index 0000000..1caab1a --- /dev/null +++ b/config/prune_0.55_yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=31 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=40 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=56 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=46 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=80 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=83 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=83 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=79 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=90 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=80 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=67 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=86 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=72 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=34 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=33 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=35 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=21 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=34 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=15 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=80 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=36 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=15 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=75 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=379 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=237 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=379 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=275 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=924 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=194 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=248 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=151 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=255 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=168 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=446 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=105 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=154 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=95 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=167 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=83 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=201 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/prune_0.58_yolov3-person.cfg b/config/prune_0.58_yolov3-person.cfg new file mode 100644 index 0000000..3863e85 --- /dev/null +++ b/config/prune_0.58_yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=31 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=35 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=55 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=38 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=72 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=79 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=80 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=76 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=85 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=78 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=83 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=59 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=33 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=31 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=21 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=15 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=73 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=35 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=14 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=71 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=226 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=338 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=214 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=337 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=253 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=898 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=179 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=224 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=141 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=235 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=153 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=432 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=96 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=151 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=89 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=159 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=80 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=195 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/prune_0.5_yolov3-person.cfg b/config/prune_0.5_yolov3-person.cfg new file mode 100644 index 0000000..55320f2 --- /dev/null +++ b/config/prune_0.5_yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=31 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=46 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=58 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=61 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=98 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=92 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=100 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=98 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=101 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=90 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=76 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=98 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=86 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=58 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=51 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=41 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=56 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=27 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=93 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=41 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=21 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=80 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=288 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=431 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=253 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=426 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=303 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=949 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=214 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=266 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=163 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=276 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=184 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=451 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=123 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=162 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=110 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=189 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=100 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=203 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/prune_0.65_yolov3-person.cfg b/config/prune_0.65_yolov3-person.cfg new file mode 100644 index 0000000..879c61b --- /dev/null +++ b/config/prune_0.65_yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=54 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=36 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=67 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=68 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=68 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=70 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=75 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=67 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=52 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=72 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=50 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=26 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=20 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=24 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=21 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=27 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=12 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=12 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=61 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=182 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=225 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=148 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=219 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=190 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=839 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=143 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=186 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=121 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=175 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=119 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=401 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=82 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=127 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=76 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=124 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=69 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=190 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/prune_0.6_yolov3-person.cfg b/config/prune_0.6_yolov3-person.cfg new file mode 100644 index 0000000..a18209a --- /dev/null +++ b/config/prune_0.6_yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=31 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=33 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=55 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=38 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=72 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=73 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=77 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=76 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=84 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=73 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=60 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=81 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=57 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=29 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=26 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=21 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=28 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=15 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=70 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=34 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=13 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=69 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=212 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=303 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=192 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=297 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=238 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=883 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=169 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=214 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=135 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=216 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=142 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=423 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=91 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=147 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=86 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=152 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=79 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=195 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/prune_0.7_yolov3-person.cfg b/config/prune_0.7_yolov3-person.cfg new file mode 100644 index 0000000..7ea35cb --- /dev/null +++ b/config/prune_0.7_yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=28 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=52 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=63 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=63 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=63 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=60 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=47 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=42 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=25 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=18 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=21 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=19 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=25 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=11 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=55 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=27 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=9 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=52 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=147 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=139 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=114 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=157 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=141 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=787 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=116 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=147 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=109 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=123 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=101 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=380 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=67 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=111 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=63 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=104 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=185 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/prune_0.85_yolov3-hand.cfg b/config/prune_0.85_yolov3-hand.cfg new file mode 100644 index 0000000..7de569e --- /dev/null +++ b/config/prune_0.85_yolov3-hand.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=18 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=24 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=48 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=31 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=60 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=57 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=66 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=65 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=87 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=78 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=77 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=69 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=43 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=26 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=67 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=99 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=34 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=119 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=21 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=35 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=25 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=14 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=10 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=52 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=34 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=45 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=40 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=74 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=17 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=67 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=31 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=38 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=37 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=83 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=23 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=66 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=20 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=39 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=40 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=44 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=54 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/prune_yolov3-hand.cfg b/config/prune_yolov3-hand.cfg new file mode 100644 index 0000000..57a23e2 --- /dev/null +++ b/config/prune_yolov3-hand.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=19 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=25 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=25 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=39 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=27 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=39 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=45 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=49 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=38 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=46 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=49 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=51 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=38 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=34 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=42 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=56 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=47 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=38 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=45 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=48 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=41 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=31 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=22 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=50 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=52 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=50 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=47 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=54 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=130 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=47 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=32 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=38 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=68 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=107 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=55 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=38 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=24 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=41 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=46 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=96 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/small_ds_1w_prune_0.5_yolov3-ds-person.cfg b/config/small_ds_1w_prune_0.5_yolov3-ds-person.cfg new file mode 100644 index 0000000..7590ecb --- /dev/null +++ b/config/small_ds_1w_prune_0.5_yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=29 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=29 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=59 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=61 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=264 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=422 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=237 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=441 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=263 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=139 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=226 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=352 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=179 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=278 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=137 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=215 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=111 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=182 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=90 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=140 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=54 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=220 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/small_ds_1w_prune_0.6_yolov3-ds-person.cfg b/config/small_ds_1w_prune_0.6_yolov3-ds-person.cfg new file mode 100644 index 0000000..9267280 --- /dev/null +++ b/config/small_ds_1w_prune_0.6_yolov3-ds-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=29 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=29 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=57 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=59 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=203 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=299 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=172 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=315 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=197 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=85 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=205 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=300 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=160 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=212 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=115 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=139 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=107 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=163 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=81 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=122 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=52 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=202 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/smallperson.data b/config/smallperson.data new file mode 100644 index 0000000..40fe8c1 --- /dev/null +++ b/config/smallperson.data @@ -0,0 +1,4 @@ +classes= 1 +train=data/train.txt +valid=data/smallvalid.txt +names=data/person.names diff --git a/config/xs_nopretrain_1w_prune_0.5_ckpt_99_06091301yolov3-ds8-person.cfg b/config/xs_nopretrain_1w_prune_0.5_ckpt_99_06091301yolov3-ds8-person.cfg new file mode 100644 index 0000000..78d5f31 --- /dev/null +++ b/config/xs_nopretrain_1w_prune_0.5_ckpt_99_06091301yolov3-ds8-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=298 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=244 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=230 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=201 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=238 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=453 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=236 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=376 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=206 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=145 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=216 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=373 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=184 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=303 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=134 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=231 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=117 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=200 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=106 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=159 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=71 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=245 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/xs_nopretrain_1w_prune_0.6_ckpt_99_06091301yolov3-ds8-person.cfg b/config/xs_nopretrain_1w_prune_0.6_ckpt_99_06091301yolov3-ds8-person.cfg new file mode 100644 index 0000000..dd13030 --- /dev/null +++ b/config/xs_nopretrain_1w_prune_0.6_ckpt_99_06091301yolov3-ds8-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=31 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=30 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=60 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=223 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=179 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=172 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=146 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=182 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=349 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=178 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=263 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=151 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=70 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=202 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=319 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=160 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=247 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=118 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=140 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=113 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=185 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=96 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=145 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=237 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/xs_nopretrain_1w_prune_0.75_ckpt_99_06161408yolov3-person.cfg b/config/xs_nopretrain_1w_prune_0.75_ckpt_99_06161408yolov3-person.cfg new file mode 100644 index 0000000..8b3be3e --- /dev/null +++ b/config/xs_nopretrain_1w_prune_0.75_ckpt_99_06161408yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=20 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=24 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=46 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=47 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=110 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=109 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=104 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=104 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=99 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=88 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=82 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=78 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=172 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=152 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=104 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=73 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=77 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=58 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=46 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=88 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=50 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=31 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=13 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=67 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=72 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=56 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=64 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=76 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=25 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=104 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=131 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=93 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=109 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=84 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=32 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=71 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=105 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=71 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=75 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=52 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=154 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/xs_nopretrain_1w_prune_0.7_ckpt_99_06161408yolov3-person.cfg b/config/xs_nopretrain_1w_prune_0.7_ckpt_99_06161408yolov3-person.cfg new file mode 100644 index 0000000..19a8789 --- /dev/null +++ b/config/xs_nopretrain_1w_prune_0.7_ckpt_99_06161408yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=22 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=25 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=49 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=50 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=114 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=109 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=105 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=107 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=100 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=91 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=85 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=81 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=181 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=165 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=144 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=113 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=93 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=81 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=73 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=58 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=124 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=78 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=59 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=37 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=92 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=125 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=83 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=120 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=101 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=26 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=124 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=192 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=113 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=153 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=94 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=33 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=84 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=136 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=82 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=96 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=58 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=157 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/xs_nopretrain_1w_prune_0.8_ckpt_99_06161408yolov3-person.cfg b/config/xs_nopretrain_1w_prune_0.8_ckpt_99_06161408yolov3-person.cfg new file mode 100644 index 0000000..32df11f --- /dev/null +++ b/config/xs_nopretrain_1w_prune_0.8_ckpt_99_06161408yolov3-person.cfg @@ -0,0 +1,759 @@ +[net] +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation=1.5 +exposure=1.5 +hue=.1 +learning_rate=0.001 +burn_in=1000 +max_batches=500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=20 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=23 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=43 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=43 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=107 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=109 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=101 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=101 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=93 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=80 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=74 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=70 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=161 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=129 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=107 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=78 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=56 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=54 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=39 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=37 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=57 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=28 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=10 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=6 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=50 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=43 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=35 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=41 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=44 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=24 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=6,7,8 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 61 + +[convolutional] +batch_normalize=1 +filters=80 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=80 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=71 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=62 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=30 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=3,4,5 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + +[route] +layers=-4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers=-1, 36 + +[convolutional] +batch_normalize=1 +filters=56 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=64 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=56 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=57 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=48 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=145 +activation=leaky + +[convolutional] +batch_normalize=0 +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + +[yolo] +mask=0,1,2 +anchors=10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh=.7 +truth_thresh=1 +random=1 + diff --git a/config/yolov3-ds-person.cfg b/config/yolov3-ds-person.cfg new file mode 100644 index 0000000..7fe1ee4 --- /dev/null +++ b/config/yolov3-ds-person.cfg @@ -0,0 +1,1036 @@ + +[net] +# Testing +#batch=1 +#subdivisions=1 +# Training +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation = 1.5 +exposure = 1.5 +hue=.1 + +learning_rate=0.001 +burn_in=1000 +max_batches = 500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +# 0 +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +# 1 +# Downsample +# res1模块,一个CBL加上一个残差连接(一个残差连接包括两个CBL) +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +# 2 +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +# 3 +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +# 4 +[shortcut] +from=-3 +activation=linear + +# 5 +# Downsample +# res2模块,一个CBL加上两个残差连接 +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +# 6 +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +# 7 +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +# 8 +[shortcut] +from=-3 +activation=linear + +# 9 +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +# 10 +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +# 11 +[shortcut] +from=-3 +activation=linear + +# 12 +# Downsample +# 第三个res模块,res8,一个CBL加上8个残差连接 +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +# 13 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 14 +# 在res8中,将每个残差连接的第二个CBL模块的卷积变为深度可分离卷积 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 14 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 15 +[shortcut] +#from=-3 普通卷积变成了深度可分离卷积,多了一层 +from=-3 +activation=linear + +# 16 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 17 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 17 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 18 +[shortcut] +from=-3 +activation=linear + +# 19 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 20 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 20 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 21 +[shortcut] +from=-3 +activation=linear + +# 22 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 23 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 23 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 24 +[shortcut] +from=-3 +activation=linear + +# 25 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 26 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 26 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 27 +[shortcut] +from=-3 +activation=linear + +# 28 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 29 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 29 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 30 +[shortcut] +from=-3 +activation=linear + +# 31 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 32 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 32 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 33 +[shortcut] +from=-3 +activation=linear + +# 34 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 35 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 35 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 36 +[shortcut] +from=-3 +activation=linear + +# Downsample +# 第四个res模块,res8 + +# 37 +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +# 38 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 39 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 39 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 40 +[shortcut] +from=-3 +activation=linear + +# 41 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 42 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 42 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 43 +[shortcut] +from=-3 +activation=linear + +# 44 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 45 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 45 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 46 +[shortcut] +from=-3 +activation=linear + +# 47 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 48 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 48 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 49 +[shortcut] +from=-3 +activation=linear + +# 50 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 51 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 51 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 52 +[shortcut] +from=-3 +activation=linear + +# 53 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 54 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 54 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 55 +[shortcut] +from=-3 +activation=linear + +# 56 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 57 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 57 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 57 +[shortcut] +from=-3 +activation=linear + +# 58 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 59 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 59 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 60 +[shortcut] +from=-3 +activation=linear + +# Downsample +# 第五个res模块,res4 + +# 61 +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +# 62 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 63 +# [convolutional] +# batch_normalize=1 +# filters=1024 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 63 +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +# 64 +[shortcut] +from=-3 +activation=linear + +# 65 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 66 +# [convolutional] +# batch_normalize=1 +# filters=1024 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 66 +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +# 67 +[shortcut] +from=-3 +activation=linear + +# 68 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 69 +# [convolutional] +# batch_normalize=1 +# filters=1024 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 69 +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +# 70 +[shortcut] +from=-3 +activation=linear + +# 71 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 72 +# [convolutional] +# batch_normalize=1 +# filters=1024 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 72 +[ds_conv] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +# 73 +[shortcut] +from=-3 +activation=linear + +###################### + +# 74 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 75 +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +# 76 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 77 +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +# 78 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 79 +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +# 80 +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 6,7,8 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 61 + + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 3,4,5 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 36 + + + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 0,1,2 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + diff --git a/config/yolov3-ds8-person.cfg b/config/yolov3-ds8-person.cfg new file mode 100644 index 0000000..e221a0f --- /dev/null +++ b/config/yolov3-ds8-person.cfg @@ -0,0 +1,1036 @@ + +[net] +# Testing +#batch=1 +#subdivisions=1 +# Training +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation = 1.5 +exposure = 1.5 +hue=.1 + +learning_rate=0.001 +burn_in=1000 +max_batches = 500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +# 0 +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +# 1 +# Downsample +# res1模块,一个CBL加上一个残差连接(一个残差连接包括两个CBL) +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +# 2 +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +# 3 +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +# 4 +[shortcut] +from=-3 +activation=linear + +# 5 +# Downsample +# res2模块,一个CBL加上两个残差连接 +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +# 6 +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +# 7 +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +# 8 +[shortcut] +from=-3 +activation=linear + +# 9 +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +# 10 +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +# 11 +[shortcut] +from=-3 +activation=linear + +# 12 +# Downsample +# 第三个res模块,res8,一个CBL加上8个残差连接 +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +# 13 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 14 +# 在res8中,将每个残差连接的第二个CBL模块的卷积变为深度可分离卷积 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 14 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 15 +[shortcut] +#from=-3 普通卷积变成了深度可分离卷积,多了一层 +from=-3 +activation=linear + +# 16 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 17 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 17 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 18 +[shortcut] +from=-3 +activation=linear + +# 19 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 20 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 20 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 21 +[shortcut] +from=-3 +activation=linear + +# 22 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 23 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 23 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 24 +[shortcut] +from=-3 +activation=linear + +# 25 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 26 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 26 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 27 +[shortcut] +from=-3 +activation=linear + +# 28 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 29 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 29 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 30 +[shortcut] +from=-3 +activation=linear + +# 31 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 32 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 32 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 33 +[shortcut] +from=-3 +activation=linear + +# 34 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 35 +# [convolutional] +# batch_normalize=1 +# filters=256 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 35 +[ds_conv] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 36 +[shortcut] +from=-3 +activation=linear + +# Downsample +# 第四个res模块,res8 + +# 37 +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +# 38 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 39 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 39 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 40 +[shortcut] +from=-3 +activation=linear + +# 41 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 42 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 42 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 43 +[shortcut] +from=-3 +activation=linear + +# 44 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 45 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 45 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 46 +[shortcut] +from=-3 +activation=linear + +# 47 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 48 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 48 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 49 +[shortcut] +from=-3 +activation=linear + +# 50 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 51 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 51 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 52 +[shortcut] +from=-3 +activation=linear + +# 53 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 54 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 54 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 55 +[shortcut] +from=-3 +activation=linear + +# 56 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 57 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 57 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 57 +[shortcut] +from=-3 +activation=linear + +# 58 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 59 +# [convolutional] +# batch_normalize=1 +# filters=512 +# size=3 +# stride=1 +# pad=1 +# activation=leaky +# 59 +[ds_conv] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 60 +[shortcut] +from=-3 +activation=linear + +# Downsample +# 第五个res模块,res4 + +# 61 +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +# 62 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 63 +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky +# 63 +# [ds_conv] +# batch_normalize=1 +# filters=1024 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 64 +[shortcut] +from=-3 +activation=linear + +# 65 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 66 +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky +# 66 +# [ds_conv] +# batch_normalize=1 +# filters=1024 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 67 +[shortcut] +from=-3 +activation=linear + +# 68 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 69 +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky +# 69 +# [ds_conv] +# batch_normalize=1 +# filters=1024 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 70 +[shortcut] +from=-3 +activation=linear + +# 71 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 72 +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky +# 72 +# [ds_conv] +# batch_normalize=1 +# filters=1024 +# size=3 +# stride=1 +# pad=1 +# activation=leaky + +# 73 +[shortcut] +from=-3 +activation=linear + +###################### + +# 74 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 75 +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +# 76 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 77 +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +# 78 +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +# 79 +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +# 80 +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 6,7,8 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 61 + + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 3,4,5 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 36 + + + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 0,1,2 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + diff --git a/config/yolov3-hand.cfg b/config/yolov3-hand.cfg new file mode 100644 index 0000000..b114af1 --- /dev/null +++ b/config/yolov3-hand.cfg @@ -0,0 +1,790 @@ + +[net] +# Testing +#batch=1 +#subdivisions=1 +# Training +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation = 1.5 +exposure = 1.5 +hue=.1 + +learning_rate=0.001 +burn_in=1000 +max_batches = 500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +# Downsample + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +###################### + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 6,7,8 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 61 + + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 3,4,5 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 36 + + + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 0,1,2 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + diff --git a/config/yolov3-person.cfg b/config/yolov3-person.cfg new file mode 100644 index 0000000..0be1293 --- /dev/null +++ b/config/yolov3-person.cfg @@ -0,0 +1,790 @@ + +[net] +# Testing +#batch=1 +#subdivisions=1 +# Training +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation = 1.5 +exposure = 1.5 +hue=.1 + +learning_rate=0.001 +burn_in=1000 +max_batches = 500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +# Downsample + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +###################### + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 6,7,8 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 61 + + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 3,4,5 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 36 + + + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 0,1,2 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + diff --git a/config/yolov3-test.cfg b/config/yolov3-test.cfg new file mode 100644 index 0000000..b114af1 --- /dev/null +++ b/config/yolov3-test.cfg @@ -0,0 +1,790 @@ + +[net] +# Testing +#batch=1 +#subdivisions=1 +# Training +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation = 1.5 +exposure = 1.5 +hue=.1 + +learning_rate=0.001 +burn_in=1000 +max_batches = 500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +# Downsample + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +###################### + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 6,7,8 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 61 + + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 3,4,5 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 36 + + + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=18 +activation=linear + + +[yolo] +mask = 0,1,2 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=1 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + diff --git a/config/yolov3-tiny.cfg b/config/yolov3-tiny.cfg new file mode 100644 index 0000000..ade4969 --- /dev/null +++ b/config/yolov3-tiny.cfg @@ -0,0 +1,206 @@ +[net] +# Testing +batch=1 +subdivisions=1 +# Training +# batch=64 +# subdivisions=2 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation = 1.5 +exposure = 1.5 +hue=.1 + +learning_rate=0.001 +burn_in=1000 +max_batches = 500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +# 0 +[convolutional] +batch_normalize=1 +filters=16 +size=3 +stride=1 +pad=1 +activation=leaky + +# 1 +[maxpool] +size=2 +stride=2 + +# 2 +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +# 3 +[maxpool] +size=2 +stride=2 + +# 4 +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +# 5 +[maxpool] +size=2 +stride=2 + +# 6 +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +# 7 +[maxpool] +size=2 +stride=2 + +# 8 +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 9 +[maxpool] +size=2 +stride=2 + +# 10 +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 11 +[maxpool] +size=2 +stride=1 + +# 12 +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +########### + +# 13 +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +# 14 +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +# 15 +[convolutional] +size=1 +stride=1 +pad=1 +filters=255 +activation=linear + + + +# 16 +[yolo] +mask = 3,4,5 +anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319 +classes=80 +num=6 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + +# 17 +[route] +layers = -4 + +# 18 +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +# 19 +[upsample] +stride=2 + +# 20 +[route] +layers = -1, 8 + +# 21 +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +# 22 +[convolutional] +size=1 +stride=1 +pad=1 +filters=255 +activation=linear + +# 23 +[yolo] +mask = 1,2,3 +anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319 +classes=80 +num=6 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 diff --git a/config/yolov3.cfg b/config/yolov3.cfg new file mode 100644 index 0000000..e15bffd --- /dev/null +++ b/config/yolov3.cfg @@ -0,0 +1,797 @@ +[net] +# Testing +#batch=1 +#subdivisions=1 +# Training +batch=16 +subdivisions=1 +width=416 +height=416 +channels=3 +momentum=0.9 +decay=0.0005 +angle=0 +saturation = 1.5 +exposure = 1.5 +hue=.1 + +learning_rate=0.001 +burn_in=1000 +max_batches = 500200 +policy=steps +steps=400000,450000 +scales=.1,.1 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +# Downsample +# res1 + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=32 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample +# res2 + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +# Downsample +# res8 + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear +# route1 + +# Downsample +# res8 + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear +# route2 + +# Downsample +# res4 + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=2 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[shortcut] +from=-3 +activation=linear + +###################### + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky +# route3 + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=1024 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=255 +activation=linear + + +[yolo] +mask = 6,7,8 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=80 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 61 + + + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky +# route + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=512 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=255 +activation=linear + + +[yolo] +mask = 3,4,5 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=80 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 + + + +[route] +layers = -4 + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[upsample] +stride=2 + +[route] +layers = -1, 36 + + + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +size=3 +stride=1 +pad=1 +filters=256 +activation=leaky + +[convolutional] +size=1 +stride=1 +pad=1 +filters=255 +activation=linear + + +[yolo] +mask = 0,1,2 +anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 +classes=80 +num=9 +jitter=.3 +ignore_thresh = .7 +truth_thresh = 1 +random=1 diff --git a/data/README.md b/data/README.md new file mode 100644 index 0000000..ff8c09c --- /dev/null +++ b/data/README.md @@ -0,0 +1,4 @@ +1. 将压缩文件解压到当前目录,得到hand_dataset文件夹 +2. 在该目录下执行converter.py,生成images、labels文件夹和train.txt、valid.txt文件 +3. 新建oxfordhand.names文件,记录类别名称信息 +4. 该目录下有images、labels、converter.py、oxfordhand.names、train.txt、valid.txt、readme.md共7个文件,可以删掉其他文件 diff --git a/data/converter.py b/data/converter.py new file mode 100644 index 0000000..d919fa3 --- /dev/null +++ b/data/converter.py @@ -0,0 +1,115 @@ +import scipy.io as sio +from PIL import Image +import os, glob +import datetime +import shutil + +running_from_path = os.getcwd() +created_images_dir = 'images' +created_labels_dir = 'labels' +data_dir = 'data' # data_dir为脚本所在的文件夹 + +def hms_string(sec_elapsed): # 格式化显示已消耗时间 + h = int(sec_elapsed / (60 * 60)) + m = int((sec_elapsed % (60 * 60)) / 60) + s = sec_elapsed % 60. + return "{}:{:>02}:{:>05.2f}".format(h, m, s) + +def generate_dir(set_name, root_path): # 往images和labels文件夹下生成相应的文件夹 + images_dir = os.path.join(root_path, 'images') + annotation_dir = os.path.join(root_path, 'annotations') + + new_images_dir = os.path.join(created_images_dir, set_name) # 将图片从原来的文件夹复制到该文件夹下 + new_annotation_dir = os.path.join(created_labels_dir, set_name) + + if not os.path.exists(new_images_dir): + os.makedirs(new_images_dir) + + if not os.path.exists(new_annotation_dir): + os.makedirs(new_annotation_dir) + + for img in glob.glob(os.path.join(images_dir, "*.jpg")): # 将图片从原来的文件夹复制到新文件夹下 + shutil.copy(img, new_images_dir) + + os.chdir(annotation_dir) # 切换到annotation的路径下 + matlab_annotations = glob.glob("*.mat") # 仅仅包含文件名,不包含路径 + os.chdir(running_from_path) # 切换回原来的路径 + + for matfile in matlab_annotations: + filename = matfile.split(".")[0] + + pil_image = Image.open(os.path.join(images_dir, filename+".jpg")) + + content = sio.loadmat(os.path.join(annotation_dir, matfile), matlab_compatible=False) + + boxes = content["boxes"] + + width, height = pil_image.size + + with open(os.path.join(new_annotation_dir, filename+".txt"), "w") as hs: + for box_idx, box in enumerate(boxes.T): + a = box[0][0][0][0] + b = box[0][0][0][1] + c = box[0][0][0][2] + d = box[0][0][0][3] + + aXY = (a[0][1], a[0][0]) + bXY = (b[0][1], b[0][0]) + cXY = (c[0][1], c[0][0]) + dXY = (d[0][1], d[0][0]) + + maxX = max(aXY[0], bXY[0], cXY[0], dXY[0]) + minX = min(aXY[0], bXY[0], cXY[0], dXY[0]) + maxY = max(aXY[1], bXY[1], cXY[1], dXY[1]) + minY = min(aXY[1], bXY[1], cXY[1], dXY[1]) + + # clip,防止超出边界 + maxX = min(maxX, width-1) + minX = max(minX, 0) + maxY = min(maxY, height-1) + minY = max(minY, 0) + + # ( / ) + norm_width = (maxX - minX) / width + + # ( / ) + norm_height = (maxY - minY) / height + + center_x, center_y = (maxX + minX) / 2, (maxY + minY) / 2 + + norm_center_x = center_x / width + norm_center_y = center_y / height + + if box_idx != 0: + hs.write("\n") + + hs.write("0 %f %f %f %f" % (norm_center_x, norm_center_y, norm_width, norm_height)) # 0表示类别 + +def create_txt(dirlist, filename): + with open(filename, "w") as txtfile: # 在data文件夹下生成txt文件 + imglist = [] + + for dir in dirlist: # dir='images/test' + imglist.extend(glob.glob(os.path.join(dir, "*.jpg"))) # img='images/test/abc.jpg' + + for idx, img in enumerate(imglist): + if idx != 0: + txtfile.write("\n") + txtfile.write(os.path.join(data_dir, img)) # 加上前缀data + +if __name__ == '__main__': + start_time = datetime.datetime.now() + + generate_dir("train", "hand_dataset/training_dataset/training_data") # 第一个参数表示生成的文件夹的名称 + generate_dir("test", "hand_dataset/test_dataset/test_data") + generate_dir("validation", "hand_dataset/validation_dataset/validation_data") + + create_txt((os.path.join(created_images_dir, 'train'), # 将train和validation文件夹下的图片合并成train + os.path.join(created_images_dir, 'validation')), + 'train.txt') + create_txt((os.path.join(created_images_dir, 'test'), ), + 'valid.txt') + + end_time = datetime.datetime.now() + seconds_elapsed = (end_time - start_time).total_seconds() + print("It took {} to execute this".format(hms_string(seconds_elapsed))) \ No newline at end of file diff --git a/data/oxfordhand.names b/data/oxfordhand.names new file mode 100644 index 0000000..a43f524 --- /dev/null +++ b/data/oxfordhand.names @@ -0,0 +1,2 @@ +hand + diff --git a/data/person.names b/data/person.names new file mode 100644 index 0000000..22802f1 --- /dev/null +++ b/data/person.names @@ -0,0 +1,2 @@ +person + diff --git a/data/smallvalid.txt b/data/smallvalid.txt new file mode 100644 index 0000000..029b565 --- /dev/null +++ b/data/smallvalid.txt @@ -0,0 +1,128 @@ +data/images/0006.jpg +data/images/0009.jpg +data/images/0010.jpg +data/images/0022.jpg +data/images/0037.jpg +data/images/0039.jpg +data/images/0040.jpg +data/images/0041.jpg +data/images/0044.jpg +data/images/0053.jpg +data/images/0061.jpg +data/images/0066.jpg +data/images/0072.jpg +data/images/0077.jpg +data/images/0078.jpg +data/images/0080.jpg +data/images/0081.jpg +data/images/0086.jpg +data/images/0089.jpg +data/images/0090.jpg +data/images/0095.jpg +data/images/0109.jpg +data/images/0110.jpg +data/images/0120.jpg +data/images/0122.jpg +data/images/0123.jpg +data/images/0124.jpg +data/images/0125.jpg +data/images/0127.jpg +data/images/0135.jpg +data/images/0137.jpg +data/images/0140.jpg +data/images/0141.jpg +data/images/0146.jpg +data/images/0157.jpg +data/images/0159.jpg +data/images/0162.jpg +data/images/0164.jpg +data/images/0165.jpg +data/images/0169.jpg +data/images/0178.jpg +data/images/0183.jpg +data/images/0189.jpg +data/images/0193.jpg +data/images/0196.jpg +data/images/0198.jpg +data/images/0203.jpg +data/images/0214.jpg +data/images/0218.jpg +data/images/0219.jpg +data/images/0223.jpg +data/images/0229.jpg +data/images/0232.jpg +data/images/0244.jpg +data/images/0248.jpg +data/images/0249.jpg +data/images/0256.jpg +data/images/0262.jpg +data/images/0263.jpg +data/images/0280.jpg +data/images/0289.jpg +data/images/0300.jpg +data/images/0306.jpg +data/images/0309.jpg +data/images/0314.jpg +data/images/0316.jpg +data/images/0320.jpg +data/images/0348.jpg +data/images/0355.jpg +data/images/0361.jpg +data/images/0362.jpg +data/images/0365.jpg +data/images/0368.jpg +data/images/0369.jpg +data/images/0376.jpg +data/images/0383.jpg +data/images/0390.jpg +data/images/0396.jpg +data/images/0399.jpg +data/images/0410.jpg +data/images/0419.jpg +data/images/0421.jpg +data/images/0431.jpg +data/images/0435.jpg +data/images/0437.jpg +data/images/0441.jpg +data/images/0451.jpg +data/images/0456.jpg +data/images/0459.jpg +data/images/0462.jpg +data/images/0469.jpg +data/images/0471.jpg +data/images/0472.jpg +data/images/0479.jpg +data/images/0480.jpg +data/images/0482.jpg +data/images/0487.jpg +data/images/0488.jpg +data/images/0490.jpg +data/images/0494.jpg +data/images/0505.jpg +data/images/0506.jpg +data/images/0510.jpg +data/images/0513.jpg +data/images/0521.jpg +data/images/0522.jpg +data/images/0523.jpg +data/images/0526.jpg +data/images/0529.jpg +data/images/0541.jpg +data/images/0547.jpg +data/images/0548.jpg +data/images/0549.jpg +data/images/0556.jpg +data/images/0564.jpg +data/images/0572.jpg +data/images/0577.jpg +data/images/0578.jpg +data/images/0579.jpg +data/images/0584.jpg +data/images/0586.jpg +data/images/0590.jpg +data/images/0596.jpg +data/images/0598.jpg +data/images/0600.jpg +data/images/0603.jpg +data/images/0606.jpg +data/images/0614.jpg \ No newline at end of file diff --git a/data/train.txt b/data/train.txt new file mode 100644 index 0000000..4b9eab6 --- /dev/null +++ b/data/train.txt @@ -0,0 +1,7935 @@ +data/images/0001.jpg +data/images/0002.jpg +data/images/0003.jpg +data/images/0004.jpg +data/images/0005.jpg +data/images/0007.jpg +data/images/0008.jpg +data/images/0011.jpg +data/images/0012.jpg +data/images/0013.jpg +data/images/0014.jpg +data/images/0015.jpg +data/images/0016.jpg +data/images/0017.jpg +data/images/0018.jpg +data/images/0019.jpg +data/images/0020.jpg +data/images/0021.jpg +data/images/0023.jpg +data/images/0024.jpg +data/images/0025.jpg +data/images/0026.jpg +data/images/0027.jpg +data/images/0028.jpg +data/images/0029.jpg +data/images/0030.jpg +data/images/0031.jpg +data/images/0032.jpg +data/images/0033.jpg +data/images/0034.jpg +data/images/0035.jpg +data/images/0036.jpg +data/images/0038.jpg +data/images/0042.jpg +data/images/0043.jpg +data/images/0045.jpg +data/images/0046.jpg +data/images/0047.jpg +data/images/0048.jpg +data/images/0049.jpg +data/images/0050.jpg +data/images/0051.jpg +data/images/0052.jpg +data/images/0054.jpg +data/images/0055.jpg +data/images/0056.jpg +data/images/0057.jpg +data/images/0058.jpg +data/images/0059.jpg +data/images/0060.jpg +data/images/0062.jpg +data/images/0063.jpg +data/images/0064.jpg +data/images/0065.jpg +data/images/0067.jpg +data/images/0068.jpg +data/images/0069.jpg +data/images/0070.jpg +data/images/0071.jpg +data/images/0073.jpg +data/images/0074.jpg +data/images/0075.jpg +data/images/0076.jpg +data/images/0079.jpg +data/images/0082.jpg +data/images/0083.jpg +data/images/0084.jpg +data/images/0085.jpg +data/images/0087.jpg +data/images/0088.jpg +data/images/0091.jpg +data/images/0092.jpg +data/images/0093.jpg +data/images/0094.jpg +data/images/0096.jpg +data/images/0097.jpg +data/images/0098.jpg +data/images/0099.jpg +data/images/0100.jpg +data/images/0101.jpg +data/images/0102.jpg +data/images/0103.jpg +data/images/0104.jpg +data/images/0105.jpg +data/images/0106.jpg +data/images/0107.jpg +data/images/0108.jpg +data/images/0111.jpg +data/images/0112.jpg +data/images/0113.jpg +data/images/0114.jpg +data/images/0115.jpg +data/images/0116.jpg +data/images/0117.jpg +data/images/0118.jpg +data/images/0119.jpg +data/images/0121.jpg +data/images/0126.jpg +data/images/0128.jpg +data/images/0129.jpg +data/images/0130.jpg +data/images/0131.jpg +data/images/0132.jpg +data/images/0133.jpg +data/images/0134.jpg +data/images/0136.jpg +data/images/0138.jpg +data/images/0139.jpg +data/images/0142.jpg +data/images/0143.jpg +data/images/0144.jpg +data/images/0145.jpg +data/images/0147.jpg +data/images/0148.jpg +data/images/0149.jpg +data/images/0150.jpg +data/images/0151.jpg +data/images/0152.jpg +data/images/0153.jpg +data/images/0154.jpg +data/images/0155.jpg +data/images/0156.jpg +data/images/0158.jpg +data/images/0160.jpg +data/images/0161.jpg +data/images/0163.jpg +data/images/0166.jpg +data/images/0167.jpg +data/images/0168.jpg +data/images/0170.jpg +data/images/0171.jpg +data/images/0172.jpg +data/images/0173.jpg +data/images/0174.jpg +data/images/0175.jpg +data/images/0176.jpg +data/images/0177.jpg +data/images/0179.jpg +data/images/0180.jpg +data/images/0181.jpg +data/images/0182.jpg +data/images/0184.jpg +data/images/0185.jpg +data/images/0186.jpg +data/images/0187.jpg +data/images/0188.jpg +data/images/0190.jpg +data/images/0191.jpg +data/images/0192.jpg +data/images/0194.jpg +data/images/0195.jpg +data/images/0197.jpg +data/images/0199.jpg +data/images/0200.jpg +data/images/0201.jpg +data/images/0202.jpg +data/images/0204.jpg +data/images/0205.jpg +data/images/0206.jpg +data/images/0207.jpg +data/images/0208.jpg +data/images/0209.jpg +data/images/0210.jpg +data/images/0211.jpg +data/images/0212.jpg +data/images/0213.jpg +data/images/0215.jpg +data/images/0216.jpg +data/images/0217.jpg +data/images/0220.jpg +data/images/0221.jpg +data/images/0222.jpg +data/images/0224.jpg +data/images/0225.jpg +data/images/0226.jpg +data/images/0227.jpg +data/images/0228.jpg +data/images/0230.jpg +data/images/0231.jpg +data/images/0233.jpg +data/images/0234.jpg +data/images/0235.jpg +data/images/0236.jpg +data/images/0237.jpg +data/images/0238.jpg +data/images/0239.jpg +data/images/0240.jpg +data/images/0241.jpg +data/images/0242.jpg +data/images/0243.jpg +data/images/0245.jpg +data/images/0246.jpg +data/images/0247.jpg +data/images/0250.jpg +data/images/0251.jpg +data/images/0252.jpg +data/images/0253.jpg +data/images/0254.jpg +data/images/0255.jpg +data/images/0257.jpg +data/images/0258.jpg +data/images/0259.jpg +data/images/0260.jpg +data/images/0261.jpg +data/images/0264.jpg +data/images/0265.jpg +data/images/0266.jpg +data/images/0267.jpg +data/images/0268.jpg +data/images/0269.jpg +data/images/0270.jpg +data/images/0271.jpg +data/images/0272.jpg +data/images/0273.jpg +data/images/0274.jpg +data/images/0275.jpg +data/images/0276.jpg +data/images/0277.jpg +data/images/0278.jpg +data/images/0279.jpg +data/images/0281.jpg +data/images/0282.jpg +data/images/0283.jpg +data/images/0284.jpg +data/images/0285.jpg +data/images/0286.jpg +data/images/0287.jpg +data/images/0288.jpg +data/images/0290.jpg +data/images/0291.jpg +data/images/0292.jpg +data/images/0293.jpg +data/images/0294.jpg +data/images/0295.jpg +data/images/0296.jpg +data/images/0297.jpg +data/images/0298.jpg +data/images/0299.jpg +data/images/0301.jpg +data/images/0302.jpg +data/images/0303.jpg +data/images/0304.jpg +data/images/0305.jpg +data/images/0307.jpg +data/images/0308.jpg +data/images/0310.jpg +data/images/0311.jpg +data/images/0312.jpg +data/images/0313.jpg +data/images/0315.jpg +data/images/0317.jpg +data/images/0318.jpg +data/images/0319.jpg +data/images/0321.jpg +data/images/0322.jpg +data/images/0323.jpg +data/images/0324.jpg +data/images/0325.jpg +data/images/0326.jpg +data/images/0327.jpg +data/images/0328.jpg +data/images/0329.jpg +data/images/0330.jpg +data/images/0331.jpg +data/images/0332.jpg +data/images/0333.jpg +data/images/0334.jpg +data/images/0335.jpg +data/images/0336.jpg +data/images/0337.jpg +data/images/0338.jpg +data/images/0339.jpg +data/images/0340.jpg +data/images/0341.jpg +data/images/0342.jpg +data/images/0343.jpg +data/images/0344.jpg +data/images/0345.jpg +data/images/0346.jpg +data/images/0347.jpg +data/images/0349.jpg +data/images/0350.jpg +data/images/0351.jpg +data/images/0352.jpg +data/images/0353.jpg +data/images/0354.jpg +data/images/0356.jpg +data/images/0357.jpg +data/images/0358.jpg +data/images/0359.jpg +data/images/0360.jpg +data/images/0363.jpg +data/images/0364.jpg +data/images/0366.jpg +data/images/0367.jpg +data/images/0370.jpg +data/images/0371.jpg +data/images/0372.jpg +data/images/0373.jpg +data/images/0374.jpg +data/images/0375.jpg +data/images/0377.jpg +data/images/0378.jpg +data/images/0379.jpg +data/images/0380.jpg +data/images/0381.jpg +data/images/0382.jpg +data/images/0384.jpg +data/images/0385.jpg +data/images/0386.jpg +data/images/0387.jpg +data/images/0388.jpg +data/images/0389.jpg +data/images/0391.jpg +data/images/0392.jpg +data/images/0393.jpg +data/images/0394.jpg +data/images/0395.jpg +data/images/0397.jpg +data/images/0398.jpg +data/images/0400.jpg +data/images/0401.jpg +data/images/0402.jpg +data/images/0403.jpg +data/images/0404.jpg +data/images/0405.jpg +data/images/0406.jpg +data/images/0407.jpg +data/images/0408.jpg +data/images/0409.jpg +data/images/0411.jpg +data/images/0412.jpg +data/images/0413.jpg +data/images/0414.jpg +data/images/0415.jpg +data/images/0416.jpg +data/images/0417.jpg +data/images/0418.jpg +data/images/0420.jpg +data/images/0422.jpg +data/images/0423.jpg +data/images/0424.jpg +data/images/0425.jpg +data/images/0426.jpg +data/images/0427.jpg +data/images/0428.jpg +data/images/0429.jpg +data/images/0430.jpg +data/images/0432.jpg +data/images/0433.jpg +data/images/0434.jpg +data/images/0436.jpg +data/images/0438.jpg +data/images/0439.jpg +data/images/0440.jpg +data/images/0442.jpg +data/images/0443.jpg +data/images/0444.jpg +data/images/0445.jpg +data/images/0446.jpg +data/images/0447.jpg +data/images/0448.jpg +data/images/0449.jpg +data/images/0450.jpg +data/images/0452.jpg +data/images/0453.jpg +data/images/0454.jpg +data/images/0455.jpg +data/images/0457.jpg +data/images/0458.jpg +data/images/0460.jpg +data/images/0461.jpg +data/images/0463.jpg +data/images/0464.jpg +data/images/0465.jpg +data/images/0466.jpg +data/images/0467.jpg +data/images/0468.jpg +data/images/0470.jpg +data/images/0473.jpg +data/images/0474.jpg +data/images/0475.jpg +data/images/0476.jpg +data/images/0477.jpg +data/images/0478.jpg +data/images/0481.jpg +data/images/0483.jpg +data/images/0484.jpg +data/images/0485.jpg +data/images/0486.jpg +data/images/0489.jpg +data/images/0491.jpg +data/images/0492.jpg +data/images/0493.jpg +data/images/0495.jpg +data/images/0496.jpg +data/images/0497.jpg +data/images/0498.jpg +data/images/0499.jpg +data/images/0500.jpg +data/images/0501.jpg +data/images/0502.jpg +data/images/0503.jpg +data/images/0504.jpg +data/images/0507.jpg +data/images/0508.jpg +data/images/0509.jpg +data/images/0511.jpg +data/images/0512.jpg +data/images/0514.jpg +data/images/0515.jpg +data/images/0516.jpg +data/images/0517.jpg +data/images/0518.jpg +data/images/0519.jpg +data/images/0520.jpg +data/images/0524.jpg +data/images/0525.jpg +data/images/0527.jpg +data/images/0528.jpg +data/images/0530.jpg +data/images/0531.jpg +data/images/0532.jpg +data/images/0533.jpg +data/images/0534.jpg +data/images/0535.jpg +data/images/0536.jpg +data/images/0537.jpg +data/images/0538.jpg +data/images/0539.jpg +data/images/0540.jpg +data/images/0542.jpg +data/images/0543.jpg +data/images/0544.jpg +data/images/0545.jpg +data/images/0546.jpg +data/images/0550.jpg +data/images/0551.jpg +data/images/0552.jpg +data/images/0553.jpg +data/images/0554.jpg +data/images/0555.jpg +data/images/0557.jpg +data/images/0558.jpg +data/images/0559.jpg +data/images/0560.jpg +data/images/0561.jpg +data/images/0562.jpg +data/images/0563.jpg +data/images/0565.jpg +data/images/0566.jpg +data/images/0567.jpg +data/images/0568.jpg +data/images/0569.jpg +data/images/0570.jpg +data/images/0571.jpg +data/images/0573.jpg +data/images/0574.jpg +data/images/0575.jpg +data/images/0576.jpg +data/images/0580.jpg +data/images/0581.jpg +data/images/0582.jpg +data/images/0583.jpg +data/images/0585.jpg +data/images/0587.jpg +data/images/0588.jpg +data/images/0589.jpg +data/images/0591.jpg +data/images/0592.jpg +data/images/0593.jpg +data/images/0594.jpg +data/images/0595.jpg +data/images/0597.jpg +data/images/0599.jpg +data/images/0601.jpg +data/images/0602.jpg +data/images/0604.jpg +data/images/0605.jpg +data/images/0607.jpg +data/images/0608.jpg +data/images/0609.jpg +data/images/0610.jpg +data/images/0611.jpg +data/images/0612.jpg +data/images/0613.jpg +data/images/0616.jpg +data/images/0617.jpg +data/images/0619.jpg +data/images/0620.jpg +data/images/0621.jpg +data/images/0623.jpg +data/images/0624.jpg +data/images/0626.jpg +data/images/0628.jpg +data/images/0629.jpg +data/images/0632.jpg +data/images/0633.jpg +data/images/0635.jpg +data/images/0636.jpg +data/images/0638.jpg +data/images/0639.jpg +data/images/0640.jpg +data/images/0641.jpg +data/images/0642.jpg +data/images/0643.jpg +data/images/0644.jpg +data/images/0645.jpg +data/images/0646.jpg +data/images/0647.jpg +data/images/0648.jpg +data/images/0651.jpg +data/images/0652.jpg +data/images/0653.jpg +data/images/0654.jpg +data/images/0655.jpg +data/images/0656.jpg +data/images/0657.jpg +data/images/0658.jpg +data/images/0659.jpg +data/images/0660.jpg +data/images/0662.jpg +data/images/0664.jpg +data/images/0665.jpg +data/images/0666.jpg +data/images/0667.jpg +data/images/0668.jpg +data/images/0669.jpg +data/images/0670.jpg +data/images/0672.jpg +data/images/0673.jpg +data/images/0675.jpg +data/images/0676.jpg +data/images/0677.jpg +data/images/0678.jpg +data/images/0680.jpg +data/images/0681.jpg +data/images/0682.jpg +data/images/0683.jpg +data/images/0685.jpg +data/images/0686.jpg +data/images/0687.jpg +data/images/0689.jpg +data/images/0691.jpg +data/images/0692.jpg +data/images/0693.jpg +data/images/0694.jpg +data/images/0695.jpg +data/images/0698.jpg +data/images/0699.jpg +data/images/0700.jpg +data/images/0701.jpg +data/images/0702.jpg +data/images/0703.jpg +data/images/0704.jpg +data/images/0705.jpg +data/images/0706.jpg +data/images/0707.jpg +data/images/0708.jpg +data/images/0709.jpg +data/images/0710.jpg +data/images/0711.jpg +data/images/0713.jpg +data/images/0714.jpg +data/images/0715.jpg +data/images/0716.jpg +data/images/0717.jpg +data/images/0719.jpg +data/images/0720.jpg +data/images/0721.jpg +data/images/0722.jpg +data/images/0723.jpg +data/images/0724.jpg +data/images/0725.jpg +data/images/0726.jpg +data/images/0727.jpg +data/images/0728.jpg +data/images/0730.jpg +data/images/0731.jpg +data/images/0732.jpg +data/images/0733.jpg +data/images/0734.jpg +data/images/0735.jpg +data/images/0736.jpg +data/images/0737.jpg +data/images/0738.jpg +data/images/0740.jpg +data/images/0741.jpg +data/images/0742.jpg +data/images/0743.jpg +data/images/0744.jpg +data/images/0745.jpg +data/images/0747.jpg +data/images/0749.jpg +data/images/0751.jpg +data/images/0752.jpg +data/images/0754.jpg +data/images/0757.jpg +data/images/0758.jpg +data/images/0759.jpg +data/images/0760.jpg +data/images/0761.jpg +data/images/0762.jpg +data/images/0763.jpg +data/images/0764.jpg +data/images/0767.jpg +data/images/0768.jpg +data/images/0769.jpg +data/images/0770.jpg +data/images/0771.jpg +data/images/0773.jpg +data/images/0774.jpg +data/images/0775.jpg +data/images/0776.jpg +data/images/0777.jpg +data/images/0778.jpg +data/images/0781.jpg +data/images/0783.jpg +data/images/0784.jpg +data/images/0786.jpg +data/images/0787.jpg +data/images/0788.jpg +data/images/0789.jpg +data/images/0792.jpg +data/images/0793.jpg +data/images/0794.jpg +data/images/0795.jpg +data/images/0796.jpg +data/images/0799.jpg +data/images/0800.jpg +data/images/0801.jpg +data/images/0802.jpg +data/images/0803.jpg +data/images/0804.jpg +data/images/0805.jpg +data/images/0806.jpg +data/images/0807.jpg +data/images/0808.jpg +data/images/0810.jpg +data/images/0811.jpg +data/images/0812.jpg +data/images/0813.jpg +data/images/0816.jpg +data/images/0817.jpg +data/images/0818.jpg +data/images/0819.jpg +data/images/0820.jpg +data/images/0821.jpg +data/images/0822.jpg +data/images/0823.jpg +data/images/0824.jpg +data/images/0826.jpg +data/images/0828.jpg +data/images/0829.jpg +data/images/0830.jpg +data/images/0831.jpg +data/images/0833.jpg +data/images/0834.jpg +data/images/0835.jpg +data/images/0836.jpg +data/images/0837.jpg +data/images/0838.jpg +data/images/0839.jpg +data/images/0840.jpg +data/images/0841.jpg +data/images/0842.jpg +data/images/0843.jpg +data/images/0844.jpg +data/images/0845.jpg +data/images/0846.jpg +data/images/0847.jpg +data/images/0848.jpg +data/images/0849.jpg +data/images/0850.jpg +data/images/0851.jpg +data/images/0853.jpg +data/images/0854.jpg +data/images/0855.jpg +data/images/0856.jpg +data/images/0858.jpg +data/images/0859.jpg +data/images/0861.jpg +data/images/0862.jpg +data/images/0863.jpg +data/images/0864.jpg +data/images/0868.jpg +data/images/0869.jpg +data/images/0870.jpg +data/images/0871.jpg +data/images/0872.jpg +data/images/0874.jpg +data/images/0875.jpg +data/images/0876.jpg +data/images/0877.jpg +data/images/0878.jpg +data/images/0879.jpg +data/images/0881.jpg +data/images/0882.jpg +data/images/0883.jpg +data/images/0884.jpg +data/images/0885.jpg +data/images/0886.jpg +data/images/0887.jpg +data/images/0888.jpg +data/images/0889.jpg +data/images/0890.jpg +data/images/0891.jpg +data/images/0893.jpg +data/images/0894.jpg +data/images/0895.jpg +data/images/0897.jpg +data/images/0898.jpg +data/images/0899.jpg +data/images/0900.jpg +data/images/0901.jpg +data/images/0902.jpg +data/images/0903.jpg +data/images/0904.jpg +data/images/0905.jpg +data/images/0906.jpg +data/images/0907.jpg +data/images/0908.jpg +data/images/0909.jpg +data/images/0910.jpg +data/images/0911.jpg +data/images/0912.jpg +data/images/0913.jpg +data/images/0914.jpg +data/images/0915.jpg +data/images/0916.jpg +data/images/0918.jpg +data/images/0920.jpg +data/images/0921.jpg +data/images/0922.jpg +data/images/0923.jpg +data/images/0926.jpg +data/images/0927.jpg +data/images/0928.jpg +data/images/0929.jpg +data/images/0930.jpg +data/images/0932.jpg +data/images/0933.jpg +data/images/0936.jpg +data/images/0937.jpg +data/images/0938.jpg +data/images/0940.jpg +data/images/0941.jpg +data/images/0942.jpg +data/images/0943.jpg +data/images/0944.jpg +data/images/0946.jpg +data/images/0947.jpg +data/images/0948.jpg +data/images/0949.jpg +data/images/0950.jpg +data/images/0951.jpg +data/images/0952.jpg +data/images/0953.jpg +data/images/0955.jpg +data/images/0956.jpg +data/images/0957.jpg +data/images/0958.jpg +data/images/0959.jpg +data/images/0960.jpg +data/images/0962.jpg +data/images/0963.jpg +data/images/0964.jpg +data/images/0965.jpg +data/images/0967.jpg +data/images/0969.jpg +data/images/0970.jpg +data/images/0971.jpg +data/images/0972.jpg +data/images/0973.jpg +data/images/0974.jpg +data/images/0977.jpg +data/images/0978.jpg +data/images/0979.jpg +data/images/0980.jpg +data/images/0981.jpg +data/images/0982.jpg +data/images/0983.jpg +data/images/0985.jpg +data/images/0986.jpg +data/images/0987.jpg +data/images/0988.jpg +data/images/0989.jpg +data/images/0990.jpg +data/images/0991.jpg +data/images/0992.jpg +data/images/0994.jpg +data/images/0995.jpg +data/images/0996.jpg +data/images/0997.jpg +data/images/0998.jpg +data/images/0999.jpg +data/images/1000.jpg +data/images/1001.jpg +data/images/1002.jpg +data/images/1004.jpg +data/images/1005.jpg +data/images/1006.jpg +data/images/1007.jpg +data/images/1008.jpg +data/images/1009.jpg +data/images/1010.jpg +data/images/1011.jpg +data/images/1012.jpg +data/images/1013.jpg +data/images/1014.jpg +data/images/1016.jpg +data/images/1019.jpg +data/images/1021.jpg +data/images/1022.jpg +data/images/1023.jpg +data/images/1024.jpg +data/images/1026.jpg +data/images/1028.jpg +data/images/1029.jpg +data/images/1030.jpg +data/images/1032.jpg +data/images/1033.jpg +data/images/1034.jpg +data/images/1035.jpg +data/images/1036.jpg +data/images/1037.jpg +data/images/1038.jpg +data/images/1040.jpg +data/images/1042.jpg +data/images/1043.jpg +data/images/1044.jpg +data/images/1045.jpg +data/images/1047.jpg +data/images/1048.jpg +data/images/1049.jpg +data/images/1051.jpg +data/images/1052.jpg +data/images/1053.jpg +data/images/1054.jpg +data/images/1055.jpg +data/images/1057.jpg +data/images/1058.jpg +data/images/1059.jpg +data/images/1060.jpg +data/images/1061.jpg +data/images/1062.jpg +data/images/1063.jpg +data/images/1064.jpg +data/images/1065.jpg +data/images/1066.jpg +data/images/1068.jpg +data/images/1070.jpg +data/images/1072.jpg +data/images/1073.jpg +data/images/1075.jpg +data/images/1076.jpg +data/images/1078.jpg +data/images/1079.jpg +data/images/1080.jpg +data/images/1081.jpg +data/images/1082.jpg +data/images/1084.jpg +data/images/1085.jpg +data/images/1086.jpg +data/images/1087.jpg +data/images/1088.jpg +data/images/1090.jpg +data/images/1091.jpg +data/images/1092.jpg +data/images/1094.jpg +data/images/1096.jpg +data/images/1097.jpg +data/images/1098.jpg +data/images/1099.jpg +data/images/1100.jpg +data/images/1103.jpg +data/images/1104.jpg +data/images/1106.jpg +data/images/1107.jpg +data/images/1108.jpg +data/images/1109.jpg +data/images/1110.jpg +data/images/1111.jpg +data/images/1113.jpg +data/images/1114.jpg +data/images/1115.jpg +data/images/1116.jpg +data/images/1117.jpg +data/images/1118.jpg +data/images/1119.jpg +data/images/1121.jpg +data/images/1122.jpg +data/images/1123.jpg +data/images/1125.jpg +data/images/1128.jpg +data/images/1130.jpg +data/images/1131.jpg +data/images/1132.jpg +data/images/1133.jpg +data/images/1134.jpg +data/images/1135.jpg +data/images/1136.jpg +data/images/1137.jpg +data/images/1138.jpg +data/images/1139.jpg +data/images/1140.jpg +data/images/1141.jpg +data/images/1143.jpg +data/images/1144.jpg +data/images/1146.jpg +data/images/1147.jpg +data/images/1148.jpg +data/images/1150.jpg +data/images/1151.jpg +data/images/1153.jpg +data/images/1155.jpg +data/images/1156.jpg +data/images/1158.jpg +data/images/1159.jpg +data/images/1160.jpg +data/images/1162.jpg +data/images/1163.jpg +data/images/1164.jpg +data/images/1168.jpg +data/images/1169.jpg +data/images/1170.jpg +data/images/1171.jpg +data/images/1172.jpg +data/images/1173.jpg +data/images/1174.jpg +data/images/1175.jpg +data/images/1176.jpg +data/images/1177.jpg +data/images/1180.jpg +data/images/1181.jpg +data/images/1182.jpg +data/images/1183.jpg +data/images/1184.jpg +data/images/1186.jpg +data/images/1188.jpg +data/images/1190.jpg +data/images/1192.jpg +data/images/1193.jpg +data/images/1194.jpg +data/images/1195.jpg +data/images/1196.jpg +data/images/1197.jpg +data/images/1198.jpg +data/images/1199.jpg +data/images/1200.jpg +data/images/1201.jpg +data/images/1202.jpg +data/images/1203.jpg +data/images/1204.jpg +data/images/1205.jpg +data/images/1206.jpg +data/images/1210.jpg +data/images/1211.jpg +data/images/1212.jpg +data/images/1213.jpg +data/images/1214.jpg +data/images/1215.jpg +data/images/1216.jpg +data/images/1219.jpg +data/images/1221.jpg +data/images/1223.jpg +data/images/1224.jpg +data/images/1225.jpg +data/images/1226.jpg +data/images/1228.jpg +data/images/1229.jpg +data/images/1230.jpg +data/images/1233.jpg +data/images/1234.jpg +data/images/1235.jpg +data/images/1237.jpg +data/images/1238.jpg +data/images/1239.jpg +data/images/1240.jpg +data/images/1241.jpg +data/images/1242.jpg +data/images/1243.jpg +data/images/1244.jpg +data/images/1246.jpg +data/images/1247.jpg +data/images/1248.jpg +data/images/1249.jpg +data/images/1250.jpg +data/images/1251.jpg +data/images/1252.jpg +data/images/1253.jpg +data/images/1254.jpg +data/images/1255.jpg +data/images/1257.jpg +data/images/1258.jpg +data/images/1259.jpg +data/images/1260.jpg +data/images/1261.jpg +data/images/1262.jpg +data/images/1263.jpg +data/images/1264.jpg +data/images/1265.jpg +data/images/1266.jpg +data/images/1267.jpg +data/images/1268.jpg +data/images/1269.jpg +data/images/1270.jpg +data/images/1271.jpg +data/images/1272.jpg +data/images/1274.jpg +data/images/1275.jpg +data/images/1277.jpg +data/images/1278.jpg +data/images/1279.jpg +data/images/1280.jpg +data/images/1281.jpg +data/images/1283.jpg +data/images/1284.jpg +data/images/1285.jpg +data/images/1286.jpg +data/images/1287.jpg +data/images/1288.jpg +data/images/1289.jpg +data/images/1291.jpg +data/images/1292.jpg +data/images/1294.jpg +data/images/1296.jpg +data/images/1298.jpg +data/images/1300.jpg +data/images/1301.jpg +data/images/1302.jpg +data/images/1303.jpg +data/images/1304.jpg +data/images/1306.jpg +data/images/1307.jpg +data/images/1308.jpg +data/images/1309.jpg +data/images/1310.jpg +data/images/1311.jpg +data/images/1312.jpg +data/images/1313.jpg +data/images/1314.jpg +data/images/1316.jpg +data/images/1318.jpg +data/images/1320.jpg +data/images/1321.jpg +data/images/1322.jpg +data/images/1323.jpg +data/images/1324.jpg +data/images/1325.jpg +data/images/1326.jpg +data/images/1327.jpg +data/images/1328.jpg +data/images/1329.jpg +data/images/1330.jpg +data/images/1331.jpg +data/images/1332.jpg +data/images/1333.jpg +data/images/1334.jpg +data/images/1335.jpg +data/images/1338.jpg +data/images/1339.jpg +data/images/1340.jpg +data/images/1341.jpg +data/images/1342.jpg +data/images/1345.jpg +data/images/1346.jpg +data/images/1348.jpg +data/images/1349.jpg +data/images/1350.jpg +data/images/1351.jpg +data/images/1352.jpg +data/images/1353.jpg +data/images/1354.jpg +data/images/1355.jpg +data/images/1357.jpg +data/images/1358.jpg +data/images/1359.jpg +data/images/1360.jpg +data/images/1361.jpg +data/images/1363.jpg +data/images/1364.jpg +data/images/1366.jpg +data/images/1367.jpg +data/images/1368.jpg +data/images/1369.jpg +data/images/1371.jpg +data/images/1373.jpg +data/images/1374.jpg +data/images/1376.jpg +data/images/1377.jpg +data/images/1379.jpg +data/images/1380.jpg +data/images/1381.jpg +data/images/1382.jpg +data/images/1384.jpg +data/images/1386.jpg +data/images/1387.jpg +data/images/1388.jpg +data/images/1389.jpg +data/images/1390.jpg +data/images/1391.jpg +data/images/1392.jpg +data/images/1394.jpg +data/images/1395.jpg +data/images/1396.jpg +data/images/1397.jpg +data/images/1399.jpg +data/images/1402.jpg +data/images/1403.jpg +data/images/1404.jpg +data/images/1405.jpg +data/images/1406.jpg +data/images/1407.jpg +data/images/1408.jpg +data/images/1410.jpg +data/images/1411.jpg +data/images/1412.jpg +data/images/1413.jpg +data/images/1414.jpg +data/images/1416.jpg +data/images/1418.jpg +data/images/1420.jpg +data/images/1421.jpg +data/images/1423.jpg +data/images/1424.jpg +data/images/1426.jpg +data/images/1427.jpg +data/images/1428.jpg +data/images/1430.jpg +data/images/1431.jpg +data/images/1432.jpg +data/images/1433.jpg +data/images/1434.jpg +data/images/1435.jpg +data/images/1436.jpg +data/images/1437.jpg +data/images/1438.jpg +data/images/1439.jpg +data/images/1440.jpg +data/images/1442.jpg +data/images/1444.jpg +data/images/1445.jpg +data/images/1446.jpg +data/images/1447.jpg +data/images/1449.jpg +data/images/1451.jpg +data/images/1452.jpg +data/images/1453.jpg +data/images/1455.jpg +data/images/1456.jpg +data/images/1458.jpg +data/images/1460.jpg +data/images/1461.jpg +data/images/1462.jpg +data/images/1463.jpg +data/images/1464.jpg +data/images/1467.jpg +data/images/1468.jpg +data/images/1469.jpg +data/images/1471.jpg +data/images/1472.jpg +data/images/1473.jpg +data/images/1474.jpg +data/images/1475.jpg +data/images/1476.jpg +data/images/1477.jpg +data/images/1478.jpg +data/images/1479.jpg +data/images/1482.jpg +data/images/1484.jpg +data/images/1487.jpg +data/images/1490.jpg +data/images/1492.jpg +data/images/1493.jpg +data/images/1494.jpg +data/images/1496.jpg +data/images/1497.jpg +data/images/1498.jpg +data/images/1500.jpg +data/images/1503.jpg +data/images/1504.jpg +data/images/1505.jpg +data/images/1506.jpg +data/images/1507.jpg +data/images/1508.jpg +data/images/1510.jpg +data/images/1511.jpg +data/images/1512.jpg +data/images/1513.jpg +data/images/1514.jpg +data/images/1515.jpg +data/images/1516.jpg +data/images/1517.jpg +data/images/1518.jpg +data/images/1519.jpg +data/images/1520.jpg +data/images/1521.jpg +data/images/1522.jpg +data/images/1523.jpg +data/images/1524.jpg +data/images/1525.jpg +data/images/1526.jpg +data/images/1528.jpg +data/images/1529.jpg +data/images/1531.jpg +data/images/1532.jpg +data/images/1533.jpg +data/images/1534.jpg +data/images/1536.jpg +data/images/1538.jpg +data/images/1539.jpg +data/images/1540.jpg +data/images/1541.jpg +data/images/1542.jpg +data/images/1543.jpg +data/images/1544.jpg +data/images/1545.jpg +data/images/1546.jpg +data/images/1547.jpg +data/images/1549.jpg +data/images/1550.jpg +data/images/1551.jpg +data/images/1553.jpg +data/images/1554.jpg +data/images/1555.jpg +data/images/1556.jpg +data/images/1557.jpg +data/images/1558.jpg +data/images/1559.jpg +data/images/1560.jpg +data/images/1561.jpg +data/images/1562.jpg +data/images/1563.jpg +data/images/1564.jpg +data/images/1565.jpg +data/images/1566.jpg +data/images/1567.jpg +data/images/1568.jpg +data/images/1569.jpg +data/images/1570.jpg +data/images/1571.jpg +data/images/1573.jpg +data/images/1574.jpg +data/images/1576.jpg +data/images/1577.jpg +data/images/1578.jpg +data/images/1579.jpg +data/images/1580.jpg +data/images/1581.jpg +data/images/1582.jpg +data/images/1583.jpg +data/images/1584.jpg +data/images/1585.jpg +data/images/1586.jpg +data/images/1587.jpg +data/images/1588.jpg +data/images/1589.jpg +data/images/1590.jpg +data/images/1592.jpg +data/images/1593.jpg +data/images/1594.jpg +data/images/1595.jpg +data/images/1598.jpg +data/images/1599.jpg +data/images/1601.jpg +data/images/1602.jpg +data/images/1603.jpg +data/images/1604.jpg +data/images/1606.jpg +data/images/1607.jpg +data/images/1608.jpg +data/images/1610.jpg +data/images/1611.jpg +data/images/1612.jpg +data/images/1613.jpg +data/images/1614.jpg +data/images/1615.jpg +data/images/1616.jpg +data/images/1617.jpg +data/images/1618.jpg +data/images/1619.jpg +data/images/1620.jpg +data/images/1621.jpg +data/images/1623.jpg +data/images/1625.jpg +data/images/1626.jpg +data/images/1627.jpg +data/images/1628.jpg +data/images/1629.jpg +data/images/1630.jpg +data/images/1631.jpg +data/images/1632.jpg +data/images/1633.jpg +data/images/1634.jpg +data/images/1636.jpg +data/images/1638.jpg +data/images/1639.jpg +data/images/1641.jpg +data/images/1642.jpg +data/images/1643.jpg +data/images/1644.jpg +data/images/1645.jpg +data/images/1647.jpg +data/images/1648.jpg +data/images/1649.jpg +data/images/1650.jpg +data/images/1652.jpg +data/images/1653.jpg +data/images/1654.jpg +data/images/1655.jpg +data/images/1656.jpg +data/images/1658.jpg +data/images/1659.jpg +data/images/1661.jpg +data/images/1662.jpg +data/images/1663.jpg +data/images/1664.jpg +data/images/1665.jpg +data/images/1667.jpg +data/images/1668.jpg +data/images/1669.jpg +data/images/1670.jpg +data/images/1671.jpg +data/images/1672.jpg +data/images/1673.jpg +data/images/1674.jpg +data/images/1675.jpg +data/images/1677.jpg +data/images/1678.jpg +data/images/1680.jpg +data/images/1682.jpg +data/images/1683.jpg +data/images/1685.jpg +data/images/1686.jpg +data/images/1687.jpg +data/images/1689.jpg +data/images/1690.jpg +data/images/1692.jpg +data/images/1693.jpg +data/images/1697.jpg +data/images/1698.jpg +data/images/1700.jpg +data/images/1701.jpg +data/images/1702.jpg +data/images/1703.jpg +data/images/1704.jpg +data/images/1705.jpg +data/images/1707.jpg +data/images/1708.jpg +data/images/1709.jpg +data/images/1710.jpg +data/images/1711.jpg +data/images/1713.jpg +data/images/1714.jpg +data/images/1715.jpg +data/images/1716.jpg +data/images/1717.jpg +data/images/1718.jpg +data/images/1719.jpg +data/images/1720.jpg +data/images/1723.jpg +data/images/1724.jpg +data/images/1725.jpg +data/images/1726.jpg +data/images/1727.jpg +data/images/1728.jpg +data/images/1729.jpg +data/images/1730.jpg +data/images/1731.jpg +data/images/1732.jpg +data/images/1733.jpg +data/images/1735.jpg +data/images/1738.jpg +data/images/1741.jpg +data/images/1742.jpg +data/images/1743.jpg +data/images/1744.jpg +data/images/1745.jpg +data/images/1746.jpg +data/images/1747.jpg +data/images/1748.jpg +data/images/1750.jpg +data/images/1751.jpg +data/images/1752.jpg +data/images/1753.jpg +data/images/1754.jpg +data/images/1755.jpg +data/images/1756.jpg +data/images/1757.jpg +data/images/1760.jpg +data/images/1761.jpg +data/images/1762.jpg +data/images/1763.jpg +data/images/1764.jpg +data/images/1765.jpg +data/images/1766.jpg +data/images/1767.jpg +data/images/1768.jpg +data/images/1769.jpg +data/images/1771.jpg +data/images/1773.jpg +data/images/1774.jpg +data/images/1775.jpg +data/images/1776.jpg +data/images/1779.jpg +data/images/1780.jpg +data/images/1781.jpg +data/images/1782.jpg +data/images/1785.jpg +data/images/1786.jpg +data/images/1788.jpg +data/images/1789.jpg +data/images/1790.jpg +data/images/1791.jpg +data/images/1792.jpg +data/images/1793.jpg +data/images/1794.jpg +data/images/1795.jpg +data/images/1796.jpg +data/images/1797.jpg +data/images/1800.jpg +data/images/1801.jpg +data/images/1802.jpg +data/images/1804.jpg +data/images/1806.jpg +data/images/1807.jpg +data/images/1808.jpg +data/images/1809.jpg +data/images/1810.jpg +data/images/1811.jpg +data/images/1812.jpg +data/images/1813.jpg +data/images/1814.jpg +data/images/1815.jpg +data/images/1816.jpg +data/images/1817.jpg +data/images/1819.jpg +data/images/1820.jpg +data/images/1821.jpg +data/images/1822.jpg +data/images/1823.jpg +data/images/1824.jpg +data/images/1825.jpg +data/images/1826.jpg +data/images/1827.jpg +data/images/1828.jpg +data/images/1831.jpg +data/images/1832.jpg +data/images/1833.jpg +data/images/1835.jpg +data/images/1836.jpg +data/images/1838.jpg +data/images/1839.jpg +data/images/1840.jpg +data/images/1841.jpg +data/images/1842.jpg +data/images/1843.jpg +data/images/1844.jpg +data/images/1845.jpg +data/images/1846.jpg +data/images/1847.jpg +data/images/1848.jpg +data/images/1849.jpg +data/images/1850.jpg +data/images/1851.jpg +data/images/1852.jpg +data/images/1853.jpg +data/images/1854.jpg +data/images/1855.jpg +data/images/1856.jpg +data/images/1858.jpg +data/images/1859.jpg +data/images/1860.jpg +data/images/1861.jpg +data/images/1862.jpg +data/images/1865.jpg +data/images/1866.jpg +data/images/1867.jpg +data/images/1868.jpg +data/images/1869.jpg +data/images/1870.jpg +data/images/1871.jpg +data/images/1872.jpg +data/images/1873.jpg +data/images/1874.jpg +data/images/1875.jpg +data/images/1876.jpg +data/images/1877.jpg +data/images/1878.jpg +data/images/1879.jpg +data/images/1880.jpg +data/images/1881.jpg +data/images/1882.jpg +data/images/1883.jpg +data/images/1884.jpg +data/images/1885.jpg +data/images/1887.jpg +data/images/1888.jpg +data/images/1889.jpg +data/images/1891.jpg +data/images/1892.jpg +data/images/1893.jpg +data/images/1894.jpg +data/images/1895.jpg +data/images/1896.jpg +data/images/1897.jpg +data/images/1898.jpg +data/images/1899.jpg +data/images/1900.jpg +data/images/1901.jpg +data/images/1902.jpg +data/images/1903.jpg +data/images/1905.jpg +data/images/1906.jpg +data/images/1907.jpg +data/images/1908.jpg +data/images/1910.jpg +data/images/1911.jpg +data/images/1912.jpg +data/images/1913.jpg +data/images/1914.jpg +data/images/1915.jpg +data/images/1916.jpg +data/images/1917.jpg +data/images/1918.jpg +data/images/1919.jpg +data/images/1920.jpg +data/images/1921.jpg +data/images/1926.jpg +data/images/1927.jpg +data/images/1929.jpg +data/images/1930.jpg +data/images/1931.jpg +data/images/1932.jpg +data/images/1934.jpg +data/images/1935.jpg +data/images/1937.jpg +data/images/1938.jpg +data/images/1940.jpg +data/images/1941.jpg +data/images/1942.jpg +data/images/1943.jpg +data/images/1944.jpg +data/images/1945.jpg +data/images/1946.jpg +data/images/1947.jpg +data/images/1948.jpg +data/images/1949.jpg +data/images/1951.jpg +data/images/1953.jpg +data/images/1954.jpg +data/images/1955.jpg +data/images/1957.jpg +data/images/1958.jpg +data/images/1959.jpg +data/images/1960.jpg +data/images/1961.jpg +data/images/1962.jpg +data/images/1963.jpg +data/images/1964.jpg +data/images/1966.jpg +data/images/1967.jpg +data/images/1969.jpg +data/images/1970.jpg +data/images/1972.jpg +data/images/1973.jpg +data/images/1974.jpg +data/images/1975.jpg +data/images/1976.jpg +data/images/1977.jpg +data/images/1978.jpg +data/images/1979.jpg +data/images/1980.jpg +data/images/1981.jpg +data/images/1982.jpg +data/images/1983.jpg +data/images/1984.jpg +data/images/1985.jpg +data/images/1987.jpg +data/images/1989.jpg +data/images/1990.jpg +data/images/1991.jpg +data/images/1992.jpg +data/images/1993.jpg +data/images/1994.jpg +data/images/1997.jpg +data/images/1998.jpg +data/images/1999.jpg +data/images/2000.jpg +data/images/2001.jpg +data/images/2002.jpg +data/images/2003.jpg +data/images/2004.jpg +data/images/2005.jpg +data/images/2007.jpg +data/images/2010.jpg +data/images/2011.jpg +data/images/2013.jpg +data/images/2015.jpg +data/images/2016.jpg +data/images/2017.jpg +data/images/2018.jpg +data/images/2019.jpg +data/images/2020.jpg +data/images/2021.jpg +data/images/2022.jpg +data/images/2024.jpg +data/images/2026.jpg +data/images/2027.jpg +data/images/2028.jpg +data/images/2031.jpg +data/images/2032.jpg +data/images/2033.jpg +data/images/2034.jpg +data/images/2035.jpg +data/images/2036.jpg +data/images/2038.jpg +data/images/2040.jpg +data/images/2041.jpg +data/images/2042.jpg +data/images/2043.jpg +data/images/2044.jpg +data/images/2045.jpg +data/images/2046.jpg +data/images/2047.jpg +data/images/2048.jpg +data/images/2049.jpg +data/images/2050.jpg +data/images/2051.jpg +data/images/2052.jpg +data/images/2053.jpg +data/images/2054.jpg +data/images/2056.jpg +data/images/2057.jpg +data/images/2059.jpg +data/images/2062.jpg +data/images/2063.jpg +data/images/2064.jpg +data/images/2065.jpg +data/images/2066.jpg +data/images/2067.jpg +data/images/2068.jpg +data/images/2069.jpg +data/images/2072.jpg +data/images/2074.jpg +data/images/2075.jpg +data/images/2076.jpg +data/images/2078.jpg +data/images/2079.jpg +data/images/2080.jpg +data/images/2081.jpg +data/images/2082.jpg +data/images/2083.jpg +data/images/2084.jpg +data/images/2085.jpg +data/images/2086.jpg +data/images/2088.jpg +data/images/2090.jpg +data/images/2091.jpg +data/images/2094.jpg +data/images/2095.jpg +data/images/2096.jpg +data/images/2097.jpg +data/images/2099.jpg +data/images/2101.jpg +data/images/2102.jpg +data/images/2104.jpg +data/images/2105.jpg +data/images/2106.jpg +data/images/2107.jpg +data/images/2108.jpg +data/images/2111.jpg +data/images/2112.jpg +data/images/2114.jpg +data/images/2115.jpg +data/images/2118.jpg +data/images/2119.jpg +data/images/2120.jpg +data/images/2121.jpg +data/images/2122.jpg +data/images/2123.jpg +data/images/2124.jpg +data/images/2126.jpg +data/images/2127.jpg +data/images/2128.jpg +data/images/2129.jpg +data/images/2130.jpg +data/images/2132.jpg +data/images/2133.jpg +data/images/2134.jpg +data/images/2136.jpg +data/images/2137.jpg +data/images/2138.jpg +data/images/2139.jpg +data/images/2140.jpg +data/images/2142.jpg +data/images/2143.jpg +data/images/2145.jpg +data/images/2146.jpg +data/images/2148.jpg +data/images/2149.jpg +data/images/2150.jpg +data/images/2151.jpg +data/images/2152.jpg +data/images/2153.jpg +data/images/2154.jpg +data/images/2155.jpg +data/images/2156.jpg +data/images/2157.jpg +data/images/2158.jpg +data/images/2159.jpg +data/images/2160.jpg +data/images/2161.jpg +data/images/2162.jpg +data/images/2163.jpg +data/images/2164.jpg +data/images/2167.jpg +data/images/2168.jpg +data/images/2170.jpg +data/images/2171.jpg +data/images/2172.jpg +data/images/2174.jpg +data/images/2175.jpg +data/images/2177.jpg +data/images/2178.jpg +data/images/2179.jpg +data/images/2180.jpg +data/images/2182.jpg +data/images/2183.jpg +data/images/2184.jpg +data/images/2186.jpg +data/images/2188.jpg +data/images/2189.jpg +data/images/2190.jpg +data/images/2191.jpg +data/images/2192.jpg +data/images/2193.jpg +data/images/2194.jpg +data/images/2195.jpg +data/images/2196.jpg +data/images/2197.jpg +data/images/2199.jpg +data/images/2200.jpg +data/images/2202.jpg +data/images/2203.jpg +data/images/2204.jpg +data/images/2205.jpg +data/images/2206.jpg +data/images/2208.jpg +data/images/2209.jpg +data/images/2210.jpg +data/images/2211.jpg +data/images/2214.jpg +data/images/2215.jpg +data/images/2216.jpg +data/images/2217.jpg +data/images/2218.jpg +data/images/2222.jpg +data/images/2223.jpg +data/images/2224.jpg +data/images/2225.jpg +data/images/2226.jpg +data/images/2227.jpg +data/images/2228.jpg +data/images/2230.jpg +data/images/2231.jpg +data/images/2232.jpg +data/images/2233.jpg +data/images/2234.jpg +data/images/2236.jpg +data/images/2237.jpg +data/images/2238.jpg +data/images/2239.jpg +data/images/2240.jpg +data/images/2241.jpg +data/images/2242.jpg +data/images/2243.jpg +data/images/2244.jpg +data/images/2245.jpg +data/images/2247.jpg +data/images/2248.jpg +data/images/2250.jpg +data/images/2251.jpg +data/images/2252.jpg +data/images/2253.jpg +data/images/2254.jpg +data/images/2256.jpg +data/images/2257.jpg +data/images/2258.jpg +data/images/2259.jpg +data/images/2263.jpg +data/images/2264.jpg +data/images/2266.jpg +data/images/2267.jpg +data/images/2268.jpg +data/images/2269.jpg +data/images/2270.jpg +data/images/2272.jpg +data/images/2273.jpg +data/images/2277.jpg +data/images/2278.jpg +data/images/2279.jpg +data/images/2281.jpg +data/images/2282.jpg +data/images/2283.jpg +data/images/2284.jpg +data/images/2285.jpg +data/images/2287.jpg +data/images/2288.jpg +data/images/2289.jpg +data/images/2292.jpg +data/images/2293.jpg +data/images/2295.jpg +data/images/2296.jpg +data/images/2297.jpg +data/images/2298.jpg +data/images/2300.jpg +data/images/2301.jpg +data/images/2302.jpg +data/images/2303.jpg +data/images/2304.jpg +data/images/2305.jpg +data/images/2306.jpg +data/images/2307.jpg +data/images/2308.jpg +data/images/2310.jpg +data/images/2311.jpg +data/images/2313.jpg +data/images/2314.jpg +data/images/2315.jpg +data/images/2317.jpg +data/images/2318.jpg +data/images/2319.jpg +data/images/2320.jpg +data/images/2321.jpg +data/images/2322.jpg +data/images/2323.jpg +data/images/2324.jpg +data/images/2325.jpg +data/images/2326.jpg +data/images/2327.jpg +data/images/2328.jpg +data/images/2329.jpg +data/images/2330.jpg +data/images/2331.jpg +data/images/2332.jpg +data/images/2333.jpg +data/images/2335.jpg +data/images/2337.jpg +data/images/2338.jpg +data/images/2339.jpg +data/images/2340.jpg +data/images/2341.jpg +data/images/2342.jpg +data/images/2343.jpg +data/images/2344.jpg +data/images/2345.jpg +data/images/2346.jpg +data/images/2347.jpg +data/images/2348.jpg +data/images/2349.jpg +data/images/2350.jpg +data/images/2352.jpg +data/images/2354.jpg +data/images/2356.jpg +data/images/2358.jpg +data/images/2360.jpg +data/images/2361.jpg +data/images/2362.jpg +data/images/2363.jpg +data/images/2365.jpg +data/images/2368.jpg +data/images/2369.jpg +data/images/2370.jpg +data/images/2372.jpg +data/images/2373.jpg +data/images/2374.jpg +data/images/2375.jpg +data/images/2376.jpg +data/images/2378.jpg +data/images/2379.jpg +data/images/2380.jpg +data/images/2381.jpg +data/images/2382.jpg +data/images/2383.jpg +data/images/2385.jpg +data/images/2386.jpg +data/images/2387.jpg +data/images/2389.jpg +data/images/2390.jpg +data/images/2391.jpg +data/images/2392.jpg +data/images/2393.jpg +data/images/2395.jpg +data/images/2396.jpg +data/images/2397.jpg +data/images/2398.jpg +data/images/2400.jpg +data/images/2401.jpg +data/images/2402.jpg +data/images/2406.jpg +data/images/2408.jpg +data/images/2409.jpg +data/images/2410.jpg +data/images/2413.jpg +data/images/2415.jpg +data/images/2417.jpg +data/images/2418.jpg +data/images/2420.jpg +data/images/2423.jpg +data/images/2424.jpg +data/images/2426.jpg +data/images/2427.jpg +data/images/2428.jpg +data/images/2429.jpg +data/images/2430.jpg +data/images/2431.jpg +data/images/2434.jpg +data/images/2435.jpg +data/images/2436.jpg +data/images/2438.jpg +data/images/2440.jpg +data/images/2442.jpg +data/images/2443.jpg +data/images/2444.jpg +data/images/2445.jpg +data/images/2446.jpg +data/images/2448.jpg +data/images/2449.jpg +data/images/2453.jpg +data/images/2454.jpg +data/images/2457.jpg +data/images/2459.jpg +data/images/2460.jpg +data/images/2461.jpg +data/images/2462.jpg +data/images/2464.jpg +data/images/2465.jpg +data/images/2466.jpg +data/images/2467.jpg +data/images/2468.jpg +data/images/2469.jpg +data/images/2470.jpg +data/images/2471.jpg +data/images/2472.jpg +data/images/2473.jpg +data/images/2475.jpg +data/images/2476.jpg +data/images/2477.jpg +data/images/2478.jpg +data/images/2479.jpg +data/images/2480.jpg +data/images/2482.jpg +data/images/2483.jpg +data/images/2484.jpg +data/images/2485.jpg +data/images/2486.jpg +data/images/2487.jpg +data/images/2488.jpg +data/images/2490.jpg +data/images/2491.jpg +data/images/2492.jpg +data/images/2493.jpg +data/images/2494.jpg +data/images/2495.jpg +data/images/2496.jpg +data/images/2497.jpg +data/images/2499.jpg +data/images/2500.jpg +data/images/2502.jpg +data/images/2503.jpg +data/images/2504.jpg +data/images/2505.jpg +data/images/2507.jpg +data/images/2508.jpg +data/images/2509.jpg +data/images/2510.jpg +data/images/2511.jpg +data/images/2512.jpg +data/images/2513.jpg +data/images/2515.jpg +data/images/2516.jpg +data/images/2517.jpg +data/images/2518.jpg +data/images/2519.jpg +data/images/2520.jpg +data/images/2522.jpg +data/images/2523.jpg +data/images/2525.jpg +data/images/2527.jpg +data/images/2528.jpg +data/images/2531.jpg +data/images/2533.jpg +data/images/2534.jpg +data/images/2535.jpg +data/images/2536.jpg +data/images/2537.jpg +data/images/2538.jpg +data/images/2539.jpg +data/images/2540.jpg +data/images/2541.jpg +data/images/2543.jpg +data/images/2546.jpg +data/images/2547.jpg +data/images/2548.jpg +data/images/2549.jpg +data/images/2550.jpg +data/images/2551.jpg +data/images/2552.jpg +data/images/2553.jpg +data/images/2554.jpg +data/images/2555.jpg +data/images/2557.jpg +data/images/2558.jpg +data/images/2559.jpg +data/images/2560.jpg +data/images/2561.jpg +data/images/2562.jpg +data/images/2563.jpg +data/images/2564.jpg +data/images/2565.jpg +data/images/2566.jpg +data/images/2568.jpg +data/images/2569.jpg +data/images/2571.jpg +data/images/2573.jpg +data/images/2574.jpg +data/images/2576.jpg +data/images/2577.jpg +data/images/2578.jpg +data/images/2580.jpg +data/images/2581.jpg +data/images/2582.jpg +data/images/2583.jpg +data/images/2584.jpg +data/images/2585.jpg +data/images/2586.jpg +data/images/2587.jpg +data/images/2588.jpg +data/images/2589.jpg +data/images/2591.jpg +data/images/2593.jpg +data/images/2594.jpg +data/images/2595.jpg +data/images/2596.jpg +data/images/2598.jpg +data/images/2599.jpg +data/images/2600.jpg +data/images/2603.jpg +data/images/2604.jpg +data/images/2605.jpg +data/images/2606.jpg +data/images/2607.jpg +data/images/2608.jpg +data/images/2609.jpg +data/images/2610.jpg +data/images/2611.jpg +data/images/2613.jpg +data/images/2618.jpg +data/images/2619.jpg +data/images/2620.jpg +data/images/2621.jpg +data/images/2622.jpg +data/images/2625.jpg +data/images/2626.jpg +data/images/2627.jpg +data/images/2628.jpg +data/images/2629.jpg +data/images/2630.jpg +data/images/2631.jpg +data/images/2632.jpg +data/images/2633.jpg +data/images/2634.jpg +data/images/2635.jpg +data/images/2636.jpg +data/images/2639.jpg +data/images/2640.jpg +data/images/2642.jpg +data/images/2643.jpg +data/images/2644.jpg +data/images/2645.jpg +data/images/2647.jpg +data/images/2649.jpg +data/images/2650.jpg +data/images/2651.jpg +data/images/2653.jpg +data/images/2654.jpg +data/images/2656.jpg +data/images/2657.jpg +data/images/2658.jpg +data/images/2659.jpg +data/images/2661.jpg +data/images/2662.jpg +data/images/2663.jpg +data/images/2664.jpg +data/images/2666.jpg +data/images/2667.jpg +data/images/2668.jpg +data/images/2669.jpg +data/images/2673.jpg +data/images/2674.jpg +data/images/2676.jpg +data/images/2677.jpg +data/images/2678.jpg +data/images/2679.jpg +data/images/2680.jpg +data/images/2681.jpg +data/images/2682.jpg +data/images/2684.jpg +data/images/2685.jpg +data/images/2686.jpg +data/images/2687.jpg +data/images/2688.jpg +data/images/2690.jpg +data/images/2691.jpg +data/images/2692.jpg +data/images/2693.jpg +data/images/2694.jpg +data/images/2695.jpg +data/images/2696.jpg +data/images/2697.jpg +data/images/2698.jpg +data/images/2699.jpg +data/images/2700.jpg +data/images/2704.jpg +data/images/2706.jpg +data/images/2707.jpg +data/images/2708.jpg +data/images/2709.jpg +data/images/2711.jpg +data/images/2712.jpg +data/images/2713.jpg +data/images/2714.jpg +data/images/2715.jpg +data/images/2716.jpg +data/images/2718.jpg +data/images/2719.jpg +data/images/2720.jpg +data/images/2721.jpg +data/images/2723.jpg +data/images/2724.jpg +data/images/2726.jpg +data/images/2727.jpg +data/images/2729.jpg +data/images/2730.jpg +data/images/2732.jpg +data/images/2733.jpg +data/images/2734.jpg +data/images/2735.jpg +data/images/2736.jpg +data/images/2738.jpg +data/images/2739.jpg +data/images/2740.jpg +data/images/2742.jpg +data/images/2743.jpg +data/images/2745.jpg +data/images/2746.jpg +data/images/2747.jpg +data/images/2749.jpg +data/images/2750.jpg +data/images/2751.jpg +data/images/2753.jpg +data/images/2754.jpg +data/images/2757.jpg +data/images/2758.jpg +data/images/2759.jpg +data/images/2760.jpg +data/images/2761.jpg +data/images/2763.jpg +data/images/2764.jpg +data/images/2765.jpg +data/images/2766.jpg +data/images/2767.jpg +data/images/2768.jpg +data/images/2769.jpg +data/images/2771.jpg +data/images/2772.jpg +data/images/2773.jpg +data/images/2774.jpg +data/images/2775.jpg +data/images/2776.jpg +data/images/2777.jpg +data/images/2778.jpg +data/images/2779.jpg +data/images/2780.jpg +data/images/2781.jpg +data/images/2782.jpg +data/images/2783.jpg +data/images/2784.jpg +data/images/2785.jpg +data/images/2787.jpg +data/images/2789.jpg +data/images/2790.jpg +data/images/2791.jpg +data/images/2792.jpg +data/images/2793.jpg +data/images/2794.jpg +data/images/2796.jpg +data/images/2799.jpg +data/images/2800.jpg +data/images/2801.jpg +data/images/2802.jpg +data/images/2803.jpg +data/images/2804.jpg +data/images/2805.jpg +data/images/2806.jpg +data/images/2807.jpg +data/images/2808.jpg +data/images/2810.jpg +data/images/2811.jpg +data/images/2812.jpg +data/images/2813.jpg +data/images/2814.jpg +data/images/2815.jpg +data/images/2817.jpg +data/images/2818.jpg +data/images/2819.jpg +data/images/2820.jpg +data/images/2821.jpg +data/images/2822.jpg +data/images/2823.jpg +data/images/2824.jpg +data/images/2825.jpg +data/images/2826.jpg +data/images/2827.jpg +data/images/2829.jpg +data/images/2830.jpg +data/images/2831.jpg +data/images/2832.jpg +data/images/2833.jpg +data/images/2834.jpg +data/images/2835.jpg +data/images/2837.jpg +data/images/2838.jpg +data/images/2839.jpg +data/images/2841.jpg +data/images/2842.jpg +data/images/2843.jpg +data/images/2844.jpg +data/images/2845.jpg +data/images/2846.jpg +data/images/2847.jpg +data/images/2848.jpg +data/images/2850.jpg +data/images/2851.jpg +data/images/2852.jpg +data/images/2854.jpg +data/images/2856.jpg +data/images/2857.jpg +data/images/2858.jpg +data/images/2859.jpg +data/images/2860.jpg +data/images/2861.jpg +data/images/2862.jpg +data/images/2863.jpg +data/images/2865.jpg +data/images/2866.jpg +data/images/2867.jpg +data/images/2868.jpg +data/images/2869.jpg +data/images/2870.jpg +data/images/2871.jpg +data/images/2872.jpg +data/images/2873.jpg +data/images/2874.jpg +data/images/2875.jpg +data/images/2876.jpg +data/images/2877.jpg +data/images/2878.jpg +data/images/2879.jpg +data/images/2880.jpg +data/images/2881.jpg +data/images/2883.jpg +data/images/2885.jpg +data/images/2886.jpg +data/images/2888.jpg +data/images/2889.jpg +data/images/2890.jpg +data/images/2892.jpg +data/images/2894.jpg +data/images/2895.jpg +data/images/2896.jpg +data/images/2897.jpg +data/images/2898.jpg +data/images/2899.jpg +data/images/2901.jpg +data/images/2902.jpg +data/images/2903.jpg +data/images/2904.jpg +data/images/2906.jpg +data/images/2907.jpg +data/images/2908.jpg +data/images/2909.jpg +data/images/2910.jpg +data/images/2911.jpg +data/images/2912.jpg +data/images/2913.jpg +data/images/2914.jpg +data/images/2915.jpg +data/images/2916.jpg +data/images/2917.jpg +data/images/2918.jpg +data/images/2919.jpg +data/images/2921.jpg +data/images/2922.jpg +data/images/2924.jpg +data/images/2925.jpg +data/images/2926.jpg +data/images/2927.jpg +data/images/2928.jpg +data/images/2929.jpg +data/images/2930.jpg +data/images/2932.jpg +data/images/2934.jpg +data/images/2935.jpg +data/images/2937.jpg +data/images/2938.jpg +data/images/2939.jpg +data/images/2940.jpg +data/images/2941.jpg +data/images/2942.jpg +data/images/2943.jpg +data/images/2946.jpg +data/images/2947.jpg +data/images/2948.jpg +data/images/2949.jpg +data/images/2951.jpg +data/images/2952.jpg +data/images/2953.jpg +data/images/2955.jpg +data/images/2956.jpg +data/images/2957.jpg +data/images/2958.jpg +data/images/2959.jpg +data/images/2960.jpg +data/images/2961.jpg +data/images/2962.jpg +data/images/2964.jpg +data/images/2965.jpg +data/images/2966.jpg +data/images/2968.jpg +data/images/2969.jpg +data/images/2970.jpg +data/images/2972.jpg +data/images/2973.jpg +data/images/2974.jpg +data/images/2975.jpg +data/images/2976.jpg +data/images/2977.jpg +data/images/2978.jpg +data/images/2979.jpg +data/images/2980.jpg +data/images/2981.jpg +data/images/2983.jpg +data/images/2984.jpg +data/images/2985.jpg +data/images/2986.jpg +data/images/2987.jpg +data/images/2989.jpg +data/images/2990.jpg +data/images/2991.jpg +data/images/2992.jpg +data/images/2993.jpg +data/images/2994.jpg +data/images/2995.jpg +data/images/2996.jpg +data/images/2997.jpg +data/images/2998.jpg +data/images/2999.jpg +data/images/3001.jpg +data/images/3002.jpg +data/images/3003.jpg +data/images/3004.jpg +data/images/3006.jpg +data/images/3007.jpg +data/images/3008.jpg +data/images/3009.jpg +data/images/3011.jpg +data/images/3012.jpg +data/images/3014.jpg +data/images/3016.jpg +data/images/3018.jpg +data/images/3019.jpg +data/images/3020.jpg +data/images/3021.jpg +data/images/3023.jpg +data/images/3024.jpg +data/images/3025.jpg +data/images/3026.jpg +data/images/3028.jpg +data/images/3030.jpg +data/images/3031.jpg +data/images/3033.jpg +data/images/3034.jpg +data/images/3035.jpg +data/images/3036.jpg +data/images/3037.jpg +data/images/3038.jpg +data/images/3039.jpg +data/images/3042.jpg +data/images/3043.jpg +data/images/3044.jpg +data/images/3045.jpg +data/images/3046.jpg +data/images/3048.jpg +data/images/3049.jpg +data/images/3050.jpg +data/images/3051.jpg +data/images/3052.jpg +data/images/3053.jpg +data/images/3054.jpg +data/images/3055.jpg +data/images/3056.jpg +data/images/3057.jpg +data/images/3058.jpg +data/images/3060.jpg +data/images/3061.jpg +data/images/3062.jpg +data/images/3063.jpg +data/images/3064.jpg +data/images/3065.jpg +data/images/3067.jpg +data/images/3068.jpg +data/images/3069.jpg +data/images/3070.jpg +data/images/3071.jpg +data/images/3072.jpg +data/images/3073.jpg +data/images/3076.jpg +data/images/3078.jpg +data/images/3079.jpg +data/images/3080.jpg +data/images/3081.jpg +data/images/3082.jpg +data/images/3083.jpg +data/images/3084.jpg +data/images/3085.jpg +data/images/3086.jpg +data/images/3087.jpg +data/images/3089.jpg +data/images/3090.jpg +data/images/3091.jpg +data/images/3092.jpg +data/images/3093.jpg +data/images/3095.jpg +data/images/3097.jpg +data/images/3098.jpg +data/images/3099.jpg +data/images/3100.jpg +data/images/3101.jpg +data/images/3102.jpg +data/images/3103.jpg +data/images/3105.jpg +data/images/3106.jpg +data/images/3109.jpg +data/images/3110.jpg +data/images/3111.jpg +data/images/3112.jpg +data/images/3113.jpg +data/images/3116.jpg +data/images/3118.jpg +data/images/3119.jpg +data/images/3120.jpg +data/images/3121.jpg +data/images/3123.jpg +data/images/3124.jpg +data/images/3125.jpg +data/images/3127.jpg +data/images/3129.jpg +data/images/3130.jpg +data/images/3131.jpg +data/images/3132.jpg +data/images/3133.jpg +data/images/3134.jpg +data/images/3135.jpg +data/images/3136.jpg +data/images/3137.jpg +data/images/3138.jpg +data/images/3139.jpg +data/images/3141.jpg +data/images/3144.jpg +data/images/3145.jpg +data/images/3146.jpg +data/images/3147.jpg +data/images/3148.jpg +data/images/3149.jpg +data/images/3151.jpg +data/images/3153.jpg +data/images/3154.jpg +data/images/3155.jpg +data/images/3156.jpg +data/images/3158.jpg +data/images/3160.jpg +data/images/3161.jpg +data/images/3162.jpg +data/images/3163.jpg +data/images/3164.jpg +data/images/3165.jpg +data/images/3166.jpg +data/images/3168.jpg +data/images/3169.jpg +data/images/3170.jpg +data/images/3171.jpg +data/images/3172.jpg +data/images/3173.jpg +data/images/3175.jpg +data/images/3176.jpg +data/images/3177.jpg +data/images/3178.jpg +data/images/3180.jpg +data/images/3181.jpg +data/images/3182.jpg +data/images/3183.jpg +data/images/3184.jpg +data/images/3185.jpg +data/images/3186.jpg +data/images/3189.jpg +data/images/3190.jpg +data/images/3191.jpg +data/images/3192.jpg +data/images/3193.jpg +data/images/3195.jpg +data/images/3196.jpg +data/images/3197.jpg +data/images/3198.jpg +data/images/3199.jpg +data/images/3200.jpg +data/images/3201.jpg +data/images/3203.jpg +data/images/3204.jpg +data/images/3206.jpg +data/images/3207.jpg +data/images/3208.jpg +data/images/3209.jpg +data/images/3212.jpg +data/images/3213.jpg +data/images/3214.jpg +data/images/3215.jpg +data/images/3216.jpg +data/images/3217.jpg +data/images/3218.jpg +data/images/3220.jpg +data/images/3221.jpg +data/images/3223.jpg +data/images/3225.jpg +data/images/3226.jpg +data/images/3227.jpg +data/images/3228.jpg +data/images/3229.jpg +data/images/3230.jpg +data/images/3231.jpg +data/images/3232.jpg +data/images/3236.jpg +data/images/3237.jpg +data/images/3238.jpg +data/images/3239.jpg +data/images/3240.jpg +data/images/3241.jpg +data/images/3242.jpg +data/images/3243.jpg +data/images/3244.jpg +data/images/3247.jpg +data/images/3248.jpg +data/images/3249.jpg +data/images/3250.jpg +data/images/3252.jpg +data/images/3255.jpg +data/images/3256.jpg +data/images/3257.jpg +data/images/3258.jpg +data/images/3259.jpg +data/images/3260.jpg +data/images/3261.jpg +data/images/3262.jpg +data/images/3263.jpg +data/images/3264.jpg +data/images/3265.jpg +data/images/3266.jpg +data/images/3267.jpg +data/images/3271.jpg +data/images/3272.jpg +data/images/3273.jpg +data/images/3275.jpg +data/images/3276.jpg +data/images/3277.jpg +data/images/3278.jpg +data/images/3279.jpg +data/images/3280.jpg +data/images/3281.jpg +data/images/3282.jpg +data/images/3283.jpg +data/images/3284.jpg +data/images/3285.jpg +data/images/3286.jpg +data/images/3287.jpg +data/images/3288.jpg +data/images/3289.jpg +data/images/3290.jpg +data/images/3291.jpg +data/images/3293.jpg +data/images/3295.jpg +data/images/3296.jpg +data/images/3297.jpg +data/images/3298.jpg +data/images/3300.jpg +data/images/3301.jpg +data/images/3302.jpg +data/images/3303.jpg +data/images/3305.jpg +data/images/3306.jpg +data/images/3307.jpg +data/images/3308.jpg +data/images/3309.jpg +data/images/3312.jpg +data/images/3313.jpg +data/images/3314.jpg +data/images/3315.jpg +data/images/3316.jpg +data/images/3317.jpg +data/images/3318.jpg +data/images/3320.jpg +data/images/3322.jpg +data/images/3323.jpg +data/images/3324.jpg +data/images/3326.jpg +data/images/3327.jpg +data/images/3329.jpg +data/images/3330.jpg +data/images/3331.jpg +data/images/3332.jpg +data/images/3333.jpg +data/images/3334.jpg +data/images/3336.jpg +data/images/3339.jpg +data/images/3340.jpg +data/images/3342.jpg +data/images/3343.jpg +data/images/3344.jpg +data/images/3345.jpg +data/images/3346.jpg +data/images/3348.jpg +data/images/3349.jpg +data/images/3350.jpg +data/images/3352.jpg +data/images/3355.jpg +data/images/3356.jpg +data/images/3357.jpg +data/images/3358.jpg +data/images/3359.jpg +data/images/3360.jpg +data/images/3361.jpg +data/images/3362.jpg +data/images/3365.jpg +data/images/3366.jpg +data/images/3367.jpg +data/images/3368.jpg +data/images/3370.jpg +data/images/3371.jpg +data/images/3372.jpg +data/images/3373.jpg +data/images/3374.jpg +data/images/3376.jpg +data/images/3377.jpg +data/images/3378.jpg +data/images/3380.jpg +data/images/3381.jpg +data/images/3382.jpg +data/images/3383.jpg +data/images/3384.jpg +data/images/3385.jpg +data/images/3386.jpg +data/images/3387.jpg +data/images/3389.jpg +data/images/3390.jpg +data/images/3391.jpg +data/images/3392.jpg +data/images/3393.jpg +data/images/3395.jpg +data/images/3396.jpg +data/images/3398.jpg +data/images/3399.jpg +data/images/3400.jpg +data/images/3402.jpg +data/images/3403.jpg +data/images/3404.jpg +data/images/3405.jpg +data/images/3406.jpg +data/images/3407.jpg +data/images/3409.jpg +data/images/3410.jpg +data/images/3412.jpg +data/images/3413.jpg +data/images/3414.jpg +data/images/3415.jpg +data/images/3416.jpg +data/images/3417.jpg +data/images/3418.jpg +data/images/3419.jpg +data/images/3420.jpg +data/images/3421.jpg +data/images/3422.jpg +data/images/3424.jpg +data/images/3426.jpg +data/images/3427.jpg +data/images/3428.jpg +data/images/3429.jpg +data/images/3430.jpg +data/images/3431.jpg +data/images/3432.jpg +data/images/3433.jpg +data/images/3435.jpg +data/images/3437.jpg +data/images/3438.jpg +data/images/3439.jpg +data/images/3441.jpg +data/images/3442.jpg +data/images/3443.jpg +data/images/3444.jpg +data/images/3447.jpg +data/images/3448.jpg +data/images/3450.jpg +data/images/3451.jpg +data/images/3452.jpg +data/images/3453.jpg +data/images/3454.jpg +data/images/3455.jpg +data/images/3456.jpg +data/images/3457.jpg +data/images/3458.jpg +data/images/3459.jpg +data/images/3461.jpg +data/images/3462.jpg +data/images/3468.jpg +data/images/3469.jpg +data/images/3470.jpg +data/images/3471.jpg +data/images/3472.jpg +data/images/3473.jpg +data/images/3475.jpg +data/images/3476.jpg +data/images/3477.jpg +data/images/3478.jpg +data/images/3479.jpg +data/images/3480.jpg +data/images/3481.jpg +data/images/3482.jpg +data/images/3483.jpg +data/images/3485.jpg +data/images/3486.jpg +data/images/3487.jpg +data/images/3488.jpg +data/images/3489.jpg +data/images/3490.jpg +data/images/3491.jpg +data/images/3493.jpg +data/images/3494.jpg +data/images/3495.jpg +data/images/3497.jpg +data/images/3498.jpg +data/images/3499.jpg +data/images/3500.jpg +data/images/3502.jpg +data/images/3503.jpg +data/images/3504.jpg +data/images/3506.jpg +data/images/3508.jpg +data/images/3509.jpg +data/images/3510.jpg +data/images/3511.jpg +data/images/3512.jpg +data/images/3513.jpg +data/images/3514.jpg +data/images/3515.jpg +data/images/3516.jpg +data/images/3518.jpg +data/images/3519.jpg +data/images/3520.jpg +data/images/3521.jpg +data/images/3522.jpg +data/images/3524.jpg +data/images/3525.jpg +data/images/3526.jpg +data/images/3527.jpg +data/images/3528.jpg +data/images/3529.jpg +data/images/3530.jpg +data/images/3532.jpg +data/images/3533.jpg +data/images/3534.jpg +data/images/3535.jpg +data/images/3536.jpg +data/images/3537.jpg +data/images/3538.jpg +data/images/3539.jpg +data/images/3540.jpg +data/images/3542.jpg +data/images/3543.jpg +data/images/3544.jpg +data/images/3545.jpg +data/images/3546.jpg +data/images/3547.jpg +data/images/3548.jpg +data/images/3550.jpg +data/images/3551.jpg +data/images/3552.jpg +data/images/3553.jpg +data/images/3554.jpg +data/images/3555.jpg +data/images/3556.jpg +data/images/3557.jpg +data/images/3558.jpg +data/images/3559.jpg +data/images/3561.jpg +data/images/3562.jpg +data/images/3563.jpg +data/images/3564.jpg +data/images/3565.jpg +data/images/3566.jpg +data/images/3567.jpg +data/images/3568.jpg +data/images/3569.jpg +data/images/3570.jpg +data/images/3571.jpg +data/images/3572.jpg +data/images/3573.jpg +data/images/3574.jpg +data/images/3575.jpg +data/images/3577.jpg +data/images/3579.jpg +data/images/3580.jpg +data/images/3581.jpg +data/images/3582.jpg +data/images/3583.jpg +data/images/3586.jpg +data/images/3587.jpg +data/images/3588.jpg +data/images/3590.jpg +data/images/3591.jpg +data/images/3592.jpg +data/images/3593.jpg +data/images/3595.jpg +data/images/3596.jpg +data/images/3597.jpg +data/images/3598.jpg +data/images/3602.jpg +data/images/3603.jpg +data/images/3604.jpg +data/images/3606.jpg +data/images/3607.jpg +data/images/3608.jpg +data/images/3609.jpg +data/images/3611.jpg +data/images/3612.jpg +data/images/3614.jpg +data/images/3615.jpg +data/images/3618.jpg +data/images/3619.jpg +data/images/3621.jpg +data/images/3622.jpg +data/images/3623.jpg +data/images/3624.jpg +data/images/3625.jpg +data/images/3626.jpg +data/images/3627.jpg +data/images/3628.jpg +data/images/3629.jpg +data/images/3630.jpg +data/images/3631.jpg +data/images/3633.jpg +data/images/3635.jpg +data/images/3636.jpg +data/images/3637.jpg +data/images/3638.jpg +data/images/3639.jpg +data/images/3640.jpg +data/images/3641.jpg +data/images/3642.jpg +data/images/3644.jpg +data/images/3645.jpg +data/images/3646.jpg +data/images/3647.jpg +data/images/3648.jpg +data/images/3649.jpg +data/images/3650.jpg +data/images/3652.jpg +data/images/3655.jpg +data/images/3656.jpg +data/images/3657.jpg +data/images/3658.jpg +data/images/3660.jpg +data/images/3662.jpg +data/images/3663.jpg +data/images/3664.jpg +data/images/3666.jpg +data/images/3669.jpg +data/images/3670.jpg +data/images/3671.jpg +data/images/3673.jpg +data/images/3674.jpg +data/images/3675.jpg +data/images/3676.jpg +data/images/3677.jpg +data/images/3678.jpg +data/images/3680.jpg +data/images/3681.jpg +data/images/3682.jpg +data/images/3683.jpg +data/images/3684.jpg +data/images/3687.jpg +data/images/3688.jpg +data/images/3689.jpg +data/images/3690.jpg +data/images/3691.jpg +data/images/3692.jpg +data/images/3694.jpg +data/images/3695.jpg +data/images/3696.jpg +data/images/3697.jpg +data/images/3698.jpg +data/images/3700.jpg +data/images/3701.jpg +data/images/3702.jpg +data/images/3703.jpg +data/images/3704.jpg +data/images/3705.jpg +data/images/3706.jpg +data/images/3708.jpg +data/images/3709.jpg +data/images/3710.jpg +data/images/3712.jpg +data/images/3713.jpg +data/images/3714.jpg +data/images/3715.jpg +data/images/3716.jpg +data/images/3717.jpg +data/images/3720.jpg +data/images/3721.jpg +data/images/3724.jpg +data/images/3725.jpg +data/images/3726.jpg +data/images/3727.jpg +data/images/3729.jpg +data/images/3731.jpg +data/images/3732.jpg +data/images/3734.jpg +data/images/3735.jpg +data/images/3736.jpg +data/images/3737.jpg +data/images/3738.jpg +data/images/3739.jpg +data/images/3740.jpg +data/images/3741.jpg +data/images/3742.jpg +data/images/3744.jpg +data/images/3745.jpg +data/images/3746.jpg +data/images/3747.jpg +data/images/3748.jpg +data/images/3749.jpg +data/images/3750.jpg +data/images/3751.jpg +data/images/3752.jpg +data/images/3754.jpg +data/images/3755.jpg +data/images/3756.jpg +data/images/3757.jpg +data/images/3758.jpg +data/images/3760.jpg +data/images/3761.jpg +data/images/3762.jpg +data/images/3763.jpg +data/images/3765.jpg +data/images/3766.jpg +data/images/3767.jpg +data/images/3768.jpg +data/images/3769.jpg +data/images/3770.jpg +data/images/3771.jpg +data/images/3772.jpg +data/images/3773.jpg +data/images/3774.jpg +data/images/3776.jpg +data/images/3777.jpg +data/images/3778.jpg +data/images/3779.jpg +data/images/3780.jpg +data/images/3783.jpg +data/images/3784.jpg +data/images/3785.jpg +data/images/3786.jpg +data/images/3787.jpg +data/images/3788.jpg +data/images/3789.jpg +data/images/3790.jpg +data/images/3791.jpg +data/images/3792.jpg +data/images/3793.jpg +data/images/3794.jpg +data/images/3795.jpg +data/images/3796.jpg +data/images/3797.jpg +data/images/3798.jpg +data/images/3799.jpg +data/images/3800.jpg +data/images/3802.jpg +data/images/3804.jpg +data/images/3805.jpg +data/images/3806.jpg +data/images/3808.jpg +data/images/3809.jpg +data/images/3811.jpg +data/images/3812.jpg +data/images/3813.jpg +data/images/3814.jpg +data/images/3818.jpg +data/images/3819.jpg +data/images/3821.jpg +data/images/3822.jpg +data/images/3823.jpg +data/images/3824.jpg +data/images/3825.jpg +data/images/3826.jpg +data/images/3827.jpg +data/images/3829.jpg +data/images/3830.jpg +data/images/3831.jpg +data/images/3832.jpg +data/images/3833.jpg +data/images/3834.jpg +data/images/3836.jpg +data/images/3838.jpg +data/images/3839.jpg +data/images/3840.jpg +data/images/3841.jpg +data/images/3842.jpg +data/images/3843.jpg +data/images/3844.jpg +data/images/3849.jpg +data/images/3850.jpg +data/images/3852.jpg +data/images/3853.jpg +data/images/3854.jpg +data/images/3855.jpg +data/images/3858.jpg +data/images/3859.jpg +data/images/3860.jpg +data/images/3861.jpg +data/images/3862.jpg +data/images/3863.jpg +data/images/3864.jpg +data/images/3865.jpg +data/images/3866.jpg +data/images/3867.jpg +data/images/3868.jpg +data/images/3869.jpg +data/images/3871.jpg +data/images/3872.jpg +data/images/3873.jpg +data/images/3874.jpg +data/images/3875.jpg +data/images/3876.jpg +data/images/3877.jpg +data/images/3879.jpg +data/images/3880.jpg +data/images/3881.jpg +data/images/3882.jpg +data/images/3883.jpg +data/images/3884.jpg +data/images/3885.jpg +data/images/3888.jpg +data/images/3889.jpg +data/images/3891.jpg +data/images/3894.jpg +data/images/3896.jpg +data/images/3897.jpg +data/images/3898.jpg +data/images/3899.jpg +data/images/3900.jpg +data/images/3901.jpg +data/images/3902.jpg +data/images/3904.jpg +data/images/3905.jpg +data/images/3906.jpg +data/images/3907.jpg +data/images/3908.jpg +data/images/3909.jpg +data/images/3911.jpg +data/images/3912.jpg +data/images/3913.jpg +data/images/3914.jpg +data/images/3915.jpg +data/images/3916.jpg +data/images/3917.jpg +data/images/3918.jpg +data/images/3919.jpg +data/images/3920.jpg +data/images/3921.jpg +data/images/3922.jpg +data/images/3923.jpg +data/images/3924.jpg +data/images/3925.jpg +data/images/3926.jpg +data/images/3927.jpg +data/images/3928.jpg +data/images/3930.jpg +data/images/3931.jpg +data/images/3932.jpg +data/images/3933.jpg +data/images/3934.jpg +data/images/3935.jpg +data/images/3936.jpg +data/images/3937.jpg +data/images/3938.jpg +data/images/3939.jpg +data/images/3940.jpg +data/images/3941.jpg +data/images/3942.jpg +data/images/3944.jpg +data/images/3945.jpg +data/images/3946.jpg +data/images/3947.jpg +data/images/3949.jpg +data/images/3950.jpg +data/images/3951.jpg +data/images/3952.jpg +data/images/3953.jpg +data/images/3954.jpg +data/images/3955.jpg +data/images/3956.jpg +data/images/3957.jpg +data/images/3958.jpg +data/images/3959.jpg +data/images/3960.jpg +data/images/3961.jpg +data/images/3962.jpg +data/images/3964.jpg +data/images/3965.jpg +data/images/3967.jpg +data/images/3969.jpg +data/images/3972.jpg +data/images/3973.jpg +data/images/3974.jpg +data/images/3976.jpg +data/images/3977.jpg +data/images/3979.jpg +data/images/3980.jpg +data/images/3981.jpg +data/images/3982.jpg +data/images/3983.jpg +data/images/3984.jpg +data/images/3985.jpg +data/images/3987.jpg +data/images/3988.jpg +data/images/3989.jpg +data/images/3992.jpg +data/images/3993.jpg +data/images/3994.jpg +data/images/3995.jpg +data/images/3996.jpg +data/images/3997.jpg +data/images/3998.jpg +data/images/3999.jpg +data/images/4000.jpg +data/images/4002.jpg +data/images/4003.jpg +data/images/4004.jpg +data/images/4005.jpg +data/images/4006.jpg +data/images/4007.jpg +data/images/4008.jpg +data/images/4009.jpg +data/images/4010.jpg +data/images/4013.jpg +data/images/4014.jpg +data/images/4015.jpg +data/images/4016.jpg +data/images/4017.jpg +data/images/4018.jpg +data/images/4019.jpg +data/images/4020.jpg +data/images/4021.jpg +data/images/4022.jpg +data/images/4023.jpg +data/images/4024.jpg +data/images/4025.jpg +data/images/4026.jpg +data/images/4027.jpg +data/images/4028.jpg +data/images/4029.jpg +data/images/4030.jpg +data/images/4031.jpg +data/images/4032.jpg +data/images/4034.jpg +data/images/4036.jpg +data/images/4037.jpg +data/images/4038.jpg +data/images/4039.jpg +data/images/4040.jpg +data/images/4042.jpg +data/images/4043.jpg +data/images/4044.jpg +data/images/4045.jpg +data/images/4046.jpg +data/images/4047.jpg +data/images/4048.jpg +data/images/4049.jpg +data/images/4051.jpg +data/images/4053.jpg +data/images/4055.jpg +data/images/4057.jpg +data/images/4059.jpg +data/images/4060.jpg +data/images/4061.jpg +data/images/4062.jpg +data/images/4063.jpg +data/images/4064.jpg +data/images/4065.jpg +data/images/4066.jpg +data/images/4068.jpg +data/images/4069.jpg +data/images/4070.jpg +data/images/4071.jpg +data/images/4072.jpg +data/images/4073.jpg +data/images/4074.jpg +data/images/4075.jpg +data/images/4077.jpg +data/images/4078.jpg +data/images/4079.jpg +data/images/4082.jpg +data/images/4083.jpg +data/images/4084.jpg +data/images/4086.jpg +data/images/4087.jpg +data/images/4088.jpg +data/images/4089.jpg +data/images/4090.jpg +data/images/4091.jpg +data/images/4092.jpg +data/images/4093.jpg +data/images/4094.jpg +data/images/4095.jpg +data/images/4096.jpg +data/images/4097.jpg +data/images/4098.jpg +data/images/4100.jpg +data/images/4101.jpg +data/images/4102.jpg +data/images/4104.jpg +data/images/4105.jpg +data/images/4106.jpg +data/images/4107.jpg +data/images/4108.jpg +data/images/4109.jpg +data/images/4110.jpg +data/images/4111.jpg +data/images/4112.jpg +data/images/4113.jpg +data/images/4114.jpg +data/images/4115.jpg +data/images/4116.jpg +data/images/4117.jpg +data/images/4118.jpg +data/images/4119.jpg +data/images/4120.jpg +data/images/4121.jpg +data/images/4122.jpg +data/images/4123.jpg +data/images/4124.jpg +data/images/4126.jpg +data/images/4127.jpg +data/images/4129.jpg +data/images/4130.jpg +data/images/4131.jpg +data/images/4132.jpg +data/images/4133.jpg +data/images/4134.jpg +data/images/4135.jpg +data/images/4136.jpg +data/images/4137.jpg +data/images/4138.jpg +data/images/4139.jpg +data/images/4140.jpg +data/images/4141.jpg +data/images/4142.jpg +data/images/4143.jpg +data/images/4144.jpg +data/images/4145.jpg +data/images/4146.jpg +data/images/4147.jpg +data/images/4148.jpg +data/images/4149.jpg +data/images/4150.jpg +data/images/4151.jpg +data/images/4152.jpg +data/images/4153.jpg +data/images/4154.jpg +data/images/4156.jpg +data/images/4157.jpg +data/images/4159.jpg +data/images/4160.jpg +data/images/4161.jpg +data/images/4162.jpg +data/images/4163.jpg +data/images/4165.jpg +data/images/4167.jpg +data/images/4168.jpg +data/images/4169.jpg +data/images/4171.jpg +data/images/4172.jpg +data/images/4173.jpg +data/images/4174.jpg +data/images/4176.jpg +data/images/4177.jpg +data/images/4178.jpg +data/images/4179.jpg +data/images/4180.jpg +data/images/4181.jpg +data/images/4182.jpg +data/images/4183.jpg +data/images/4184.jpg +data/images/4185.jpg +data/images/4186.jpg +data/images/4187.jpg +data/images/4188.jpg +data/images/4190.jpg +data/images/4191.jpg +data/images/4192.jpg +data/images/4193.jpg +data/images/4194.jpg +data/images/4195.jpg +data/images/4197.jpg +data/images/4198.jpg +data/images/4199.jpg +data/images/4200.jpg +data/images/4202.jpg +data/images/4204.jpg +data/images/4207.jpg +data/images/4209.jpg +data/images/4210.jpg +data/images/4211.jpg +data/images/4213.jpg +data/images/4214.jpg +data/images/4215.jpg +data/images/4216.jpg +data/images/4217.jpg +data/images/4219.jpg +data/images/4220.jpg +data/images/4221.jpg +data/images/4222.jpg +data/images/4224.jpg +data/images/4225.jpg +data/images/4226.jpg +data/images/4228.jpg +data/images/4230.jpg +data/images/4232.jpg +data/images/4234.jpg +data/images/4235.jpg +data/images/4236.jpg +data/images/4237.jpg +data/images/4238.jpg +data/images/4239.jpg +data/images/4240.jpg +data/images/4241.jpg +data/images/4242.jpg +data/images/4244.jpg +data/images/4245.jpg +data/images/4247.jpg +data/images/4248.jpg +data/images/4249.jpg +data/images/4251.jpg +data/images/4253.jpg +data/images/4254.jpg +data/images/4255.jpg +data/images/4256.jpg +data/images/4257.jpg +data/images/4258.jpg +data/images/4259.jpg +data/images/4260.jpg +data/images/4261.jpg +data/images/4262.jpg +data/images/4263.jpg +data/images/4264.jpg +data/images/4265.jpg +data/images/4266.jpg +data/images/4267.jpg +data/images/4268.jpg +data/images/4270.jpg +data/images/4271.jpg +data/images/4273.jpg +data/images/4274.jpg +data/images/4277.jpg +data/images/4279.jpg +data/images/4280.jpg +data/images/4281.jpg +data/images/4282.jpg +data/images/4283.jpg +data/images/4284.jpg +data/images/4285.jpg +data/images/4286.jpg +data/images/4287.jpg +data/images/4288.jpg +data/images/4289.jpg +data/images/4290.jpg +data/images/4292.jpg +data/images/4293.jpg +data/images/4294.jpg +data/images/4295.jpg +data/images/4296.jpg +data/images/4297.jpg +data/images/4298.jpg +data/images/4299.jpg +data/images/4300.jpg +data/images/4302.jpg +data/images/4303.jpg +data/images/4304.jpg +data/images/4305.jpg +data/images/4306.jpg +data/images/4307.jpg +data/images/4310.jpg +data/images/4311.jpg +data/images/4312.jpg +data/images/4313.jpg +data/images/4314.jpg +data/images/4315.jpg +data/images/4317.jpg +data/images/4319.jpg +data/images/4320.jpg +data/images/4321.jpg +data/images/4322.jpg +data/images/4323.jpg +data/images/4324.jpg +data/images/4325.jpg +data/images/4326.jpg +data/images/4327.jpg +data/images/4328.jpg +data/images/4329.jpg +data/images/4331.jpg +data/images/4333.jpg +data/images/4336.jpg +data/images/4337.jpg +data/images/4338.jpg +data/images/4339.jpg +data/images/4340.jpg +data/images/4342.jpg +data/images/4343.jpg +data/images/4344.jpg +data/images/4345.jpg +data/images/4346.jpg +data/images/4347.jpg +data/images/4348.jpg +data/images/4349.jpg +data/images/4350.jpg +data/images/4351.jpg +data/images/4353.jpg +data/images/4354.jpg +data/images/4355.jpg +data/images/4356.jpg +data/images/4358.jpg +data/images/4359.jpg +data/images/4360.jpg +data/images/4361.jpg +data/images/4362.jpg +data/images/4363.jpg +data/images/4364.jpg +data/images/4365.jpg +data/images/4367.jpg +data/images/4371.jpg +data/images/4372.jpg +data/images/4374.jpg +data/images/4375.jpg +data/images/4376.jpg +data/images/4377.jpg +data/images/4378.jpg +data/images/4379.jpg +data/images/4380.jpg +data/images/4382.jpg +data/images/4383.jpg +data/images/4384.jpg +data/images/4385.jpg +data/images/4386.jpg +data/images/4387.jpg +data/images/4389.jpg +data/images/4390.jpg +data/images/4391.jpg +data/images/4392.jpg +data/images/4393.jpg +data/images/4394.jpg +data/images/4395.jpg +data/images/4397.jpg +data/images/4398.jpg +data/images/4399.jpg +data/images/4400.jpg +data/images/4401.jpg +data/images/4402.jpg +data/images/4403.jpg +data/images/4404.jpg +data/images/4406.jpg +data/images/4407.jpg +data/images/4408.jpg +data/images/4409.jpg +data/images/4410.jpg +data/images/4411.jpg +data/images/4412.jpg +data/images/4414.jpg +data/images/4416.jpg +data/images/4417.jpg +data/images/4418.jpg +data/images/4419.jpg +data/images/4420.jpg +data/images/4421.jpg +data/images/4422.jpg +data/images/4423.jpg +data/images/4425.jpg +data/images/4426.jpg +data/images/4427.jpg +data/images/4428.jpg +data/images/4429.jpg +data/images/4431.jpg +data/images/4432.jpg +data/images/4433.jpg +data/images/4434.jpg +data/images/4436.jpg +data/images/4437.jpg +data/images/4438.jpg +data/images/4439.jpg +data/images/4440.jpg +data/images/4442.jpg +data/images/4443.jpg +data/images/4444.jpg +data/images/4446.jpg +data/images/4447.jpg +data/images/4448.jpg +data/images/4450.jpg +data/images/4451.jpg +data/images/4453.jpg +data/images/4454.jpg +data/images/4455.jpg +data/images/4456.jpg +data/images/4457.jpg +data/images/4458.jpg +data/images/4460.jpg +data/images/4461.jpg +data/images/4462.jpg +data/images/4463.jpg +data/images/4464.jpg +data/images/4465.jpg +data/images/4466.jpg +data/images/4467.jpg +data/images/4469.jpg +data/images/4470.jpg +data/images/4471.jpg +data/images/4472.jpg +data/images/4473.jpg +data/images/4474.jpg +data/images/4476.jpg +data/images/4478.jpg +data/images/4479.jpg +data/images/4480.jpg +data/images/4481.jpg +data/images/4482.jpg +data/images/4483.jpg +data/images/4486.jpg +data/images/4487.jpg +data/images/4488.jpg +data/images/4489.jpg +data/images/4490.jpg +data/images/4491.jpg +data/images/4492.jpg +data/images/4493.jpg +data/images/4494.jpg +data/images/4495.jpg +data/images/4497.jpg +data/images/4498.jpg +data/images/4500.jpg +data/images/4503.jpg +data/images/4504.jpg +data/images/4505.jpg +data/images/4507.jpg +data/images/4510.jpg +data/images/4511.jpg +data/images/4512.jpg +data/images/4513.jpg +data/images/4514.jpg +data/images/4515.jpg +data/images/4516.jpg +data/images/4517.jpg +data/images/4518.jpg +data/images/4519.jpg +data/images/4520.jpg +data/images/4522.jpg +data/images/4523.jpg +data/images/4525.jpg +data/images/4527.jpg +data/images/4529.jpg +data/images/4531.jpg +data/images/4532.jpg +data/images/4533.jpg +data/images/4534.jpg +data/images/4535.jpg +data/images/4537.jpg +data/images/4538.jpg +data/images/4539.jpg +data/images/4540.jpg +data/images/4541.jpg +data/images/4542.jpg +data/images/4543.jpg +data/images/4544.jpg +data/images/4545.jpg +data/images/4546.jpg +data/images/4547.jpg +data/images/4548.jpg +data/images/4549.jpg +data/images/4550.jpg +data/images/4551.jpg +data/images/4552.jpg +data/images/4553.jpg +data/images/4555.jpg +data/images/4556.jpg +data/images/4559.jpg +data/images/4560.jpg +data/images/4561.jpg +data/images/4562.jpg +data/images/4565.jpg +data/images/4566.jpg +data/images/4567.jpg +data/images/4568.jpg +data/images/4569.jpg +data/images/4570.jpg +data/images/4571.jpg +data/images/4572.jpg +data/images/4574.jpg +data/images/4575.jpg +data/images/4576.jpg +data/images/4577.jpg +data/images/4578.jpg +data/images/4579.jpg +data/images/4580.jpg +data/images/4581.jpg +data/images/4582.jpg +data/images/4584.jpg +data/images/4585.jpg +data/images/4586.jpg +data/images/4587.jpg +data/images/4588.jpg +data/images/4589.jpg +data/images/4590.jpg +data/images/4592.jpg +data/images/4595.jpg +data/images/4596.jpg +data/images/4597.jpg +data/images/4598.jpg +data/images/4600.jpg +data/images/4601.jpg +data/images/4602.jpg +data/images/4603.jpg +data/images/4604.jpg +data/images/4605.jpg +data/images/4606.jpg +data/images/4607.jpg +data/images/4608.jpg +data/images/4610.jpg +data/images/4611.jpg +data/images/4613.jpg +data/images/4614.jpg +data/images/4615.jpg +data/images/4616.jpg +data/images/4617.jpg +data/images/4618.jpg +data/images/4620.jpg +data/images/4621.jpg +data/images/4622.jpg +data/images/4623.jpg +data/images/4624.jpg +data/images/4625.jpg +data/images/4626.jpg +data/images/4627.jpg +data/images/4628.jpg +data/images/4630.jpg +data/images/4631.jpg +data/images/4632.jpg +data/images/4635.jpg +data/images/4636.jpg +data/images/4637.jpg +data/images/4638.jpg +data/images/4639.jpg +data/images/4640.jpg +data/images/4641.jpg +data/images/4642.jpg +data/images/4643.jpg +data/images/4644.jpg +data/images/4646.jpg +data/images/4647.jpg +data/images/4648.jpg +data/images/4649.jpg +data/images/4652.jpg +data/images/4654.jpg +data/images/4655.jpg +data/images/4656.jpg +data/images/4657.jpg +data/images/4659.jpg +data/images/4660.jpg +data/images/4661.jpg +data/images/4662.jpg +data/images/4664.jpg +data/images/4666.jpg +data/images/4667.jpg +data/images/4668.jpg +data/images/4669.jpg +data/images/4671.jpg +data/images/4672.jpg +data/images/4675.jpg +data/images/4676.jpg +data/images/4677.jpg +data/images/4678.jpg +data/images/4681.jpg +data/images/4682.jpg +data/images/4683.jpg +data/images/4684.jpg +data/images/4686.jpg +data/images/4687.jpg +data/images/4688.jpg +data/images/4689.jpg +data/images/4690.jpg +data/images/4691.jpg +data/images/4692.jpg +data/images/4695.jpg +data/images/4696.jpg +data/images/4697.jpg +data/images/4698.jpg +data/images/4699.jpg +data/images/4700.jpg +data/images/4702.jpg +data/images/4703.jpg +data/images/4704.jpg +data/images/4706.jpg +data/images/4707.jpg +data/images/4708.jpg +data/images/4709.jpg +data/images/4714.jpg +data/images/4716.jpg +data/images/4717.jpg +data/images/4718.jpg +data/images/4719.jpg +data/images/4720.jpg +data/images/4721.jpg +data/images/4722.jpg +data/images/4724.jpg +data/images/4725.jpg +data/images/4726.jpg +data/images/4727.jpg +data/images/4728.jpg +data/images/4729.jpg +data/images/4730.jpg +data/images/4731.jpg +data/images/4736.jpg +data/images/4738.jpg +data/images/4739.jpg +data/images/4740.jpg +data/images/4741.jpg +data/images/4742.jpg +data/images/4743.jpg +data/images/4745.jpg +data/images/4746.jpg +data/images/4747.jpg +data/images/4748.jpg +data/images/4749.jpg +data/images/4750.jpg +data/images/4751.jpg +data/images/4752.jpg +data/images/4753.jpg +data/images/4754.jpg +data/images/4755.jpg +data/images/4757.jpg +data/images/4758.jpg +data/images/4760.jpg +data/images/4761.jpg +data/images/4762.jpg +data/images/4763.jpg +data/images/4765.jpg +data/images/4766.jpg +data/images/4767.jpg +data/images/4769.jpg +data/images/4772.jpg +data/images/4775.jpg +data/images/4778.jpg +data/images/4780.jpg +data/images/4781.jpg +data/images/4782.jpg +data/images/4783.jpg +data/images/4784.jpg +data/images/4785.jpg +data/images/4787.jpg +data/images/4788.jpg +data/images/4790.jpg +data/images/4791.jpg +data/images/4792.jpg +data/images/4793.jpg +data/images/4795.jpg +data/images/4796.jpg +data/images/4797.jpg +data/images/4799.jpg +data/images/4800.jpg +data/images/4801.jpg +data/images/4802.jpg +data/images/4804.jpg +data/images/4805.jpg +data/images/4806.jpg +data/images/4808.jpg +data/images/4809.jpg +data/images/4810.jpg +data/images/4811.jpg +data/images/4812.jpg +data/images/4813.jpg +data/images/4815.jpg +data/images/4816.jpg +data/images/4817.jpg +data/images/4818.jpg +data/images/4819.jpg +data/images/4820.jpg +data/images/4821.jpg +data/images/4822.jpg +data/images/4823.jpg +data/images/4824.jpg +data/images/4825.jpg +data/images/4826.jpg +data/images/4827.jpg +data/images/4828.jpg +data/images/4830.jpg +data/images/4831.jpg +data/images/4832.jpg +data/images/4833.jpg +data/images/4835.jpg +data/images/4836.jpg +data/images/4837.jpg +data/images/4839.jpg +data/images/4840.jpg +data/images/4841.jpg +data/images/4842.jpg +data/images/4843.jpg +data/images/4844.jpg +data/images/4845.jpg +data/images/4848.jpg +data/images/4849.jpg +data/images/4850.jpg +data/images/4851.jpg +data/images/4852.jpg +data/images/4853.jpg +data/images/4855.jpg +data/images/4856.jpg +data/images/4857.jpg +data/images/4858.jpg +data/images/4859.jpg +data/images/4860.jpg +data/images/4861.jpg +data/images/4862.jpg +data/images/4863.jpg +data/images/4864.jpg +data/images/4865.jpg +data/images/4867.jpg +data/images/4868.jpg +data/images/4869.jpg +data/images/4870.jpg +data/images/4871.jpg +data/images/4872.jpg +data/images/4876.jpg +data/images/4878.jpg +data/images/4881.jpg +data/images/4882.jpg +data/images/4883.jpg +data/images/4884.jpg +data/images/4888.jpg +data/images/4889.jpg +data/images/4890.jpg +data/images/4891.jpg +data/images/4892.jpg +data/images/4893.jpg +data/images/4895.jpg +data/images/4896.jpg +data/images/4897.jpg +data/images/4898.jpg +data/images/4899.jpg +data/images/4900.jpg +data/images/4901.jpg +data/images/4902.jpg +data/images/4903.jpg +data/images/4904.jpg +data/images/4905.jpg +data/images/4906.jpg +data/images/4908.jpg +data/images/4910.jpg +data/images/4911.jpg +data/images/4912.jpg +data/images/4913.jpg +data/images/4914.jpg +data/images/4915.jpg +data/images/4916.jpg +data/images/4917.jpg +data/images/4918.jpg +data/images/4919.jpg +data/images/4923.jpg +data/images/4925.jpg +data/images/4926.jpg +data/images/4927.jpg +data/images/4928.jpg +data/images/4929.jpg +data/images/4930.jpg +data/images/4931.jpg +data/images/4932.jpg +data/images/4933.jpg +data/images/4934.jpg +data/images/4935.jpg +data/images/4936.jpg +data/images/4937.jpg +data/images/4938.jpg +data/images/4939.jpg +data/images/4940.jpg +data/images/4942.jpg +data/images/4945.jpg +data/images/4946.jpg +data/images/4947.jpg +data/images/4948.jpg +data/images/4949.jpg +data/images/4950.jpg +data/images/4951.jpg +data/images/4952.jpg +data/images/4953.jpg +data/images/4954.jpg +data/images/4956.jpg +data/images/4958.jpg +data/images/4959.jpg +data/images/4960.jpg +data/images/4961.jpg +data/images/4962.jpg +data/images/4963.jpg +data/images/4966.jpg +data/images/4967.jpg +data/images/4968.jpg +data/images/4969.jpg +data/images/4970.jpg +data/images/4972.jpg +data/images/4973.jpg +data/images/4975.jpg +data/images/4978.jpg +data/images/4980.jpg +data/images/4981.jpg +data/images/4982.jpg +data/images/4983.jpg +data/images/4984.jpg +data/images/4985.jpg +data/images/4986.jpg +data/images/4987.jpg +data/images/4988.jpg +data/images/4990.jpg +data/images/4992.jpg +data/images/4993.jpg +data/images/4994.jpg +data/images/4995.jpg +data/images/4997.jpg +data/images/4998.jpg +data/images/4999.jpg +data/images/5000.jpg +data/images/5003.jpg +data/images/5004.jpg +data/images/5005.jpg +data/images/5006.jpg +data/images/5008.jpg +data/images/5009.jpg +data/images/5010.jpg +data/images/5011.jpg +data/images/5013.jpg +data/images/5014.jpg +data/images/5015.jpg +data/images/5016.jpg +data/images/5017.jpg +data/images/5018.jpg +data/images/5019.jpg +data/images/5020.jpg +data/images/5021.jpg +data/images/5022.jpg +data/images/5023.jpg +data/images/5024.jpg +data/images/5025.jpg +data/images/5026.jpg +data/images/5027.jpg +data/images/5028.jpg +data/images/5029.jpg +data/images/5032.jpg +data/images/5035.jpg +data/images/5036.jpg +data/images/5037.jpg +data/images/5038.jpg +data/images/5040.jpg +data/images/5042.jpg +data/images/5043.jpg +data/images/5044.jpg +data/images/5045.jpg +data/images/5046.jpg +data/images/5047.jpg +data/images/5048.jpg +data/images/5050.jpg +data/images/5052.jpg +data/images/5056.jpg +data/images/5057.jpg +data/images/5058.jpg +data/images/5059.jpg +data/images/5060.jpg +data/images/5061.jpg +data/images/5062.jpg +data/images/5064.jpg +data/images/5065.jpg +data/images/5066.jpg +data/images/5067.jpg +data/images/5068.jpg +data/images/5069.jpg +data/images/5072.jpg +data/images/5076.jpg +data/images/5077.jpg +data/images/5078.jpg +data/images/5079.jpg +data/images/5080.jpg +data/images/5081.jpg +data/images/5082.jpg +data/images/5083.jpg +data/images/5084.jpg +data/images/5085.jpg +data/images/5086.jpg +data/images/5087.jpg +data/images/5088.jpg +data/images/5089.jpg +data/images/5092.jpg +data/images/5093.jpg +data/images/5094.jpg +data/images/5095.jpg +data/images/5097.jpg +data/images/5099.jpg +data/images/5101.jpg +data/images/5102.jpg +data/images/5103.jpg +data/images/5105.jpg +data/images/5107.jpg +data/images/5108.jpg +data/images/5109.jpg +data/images/5110.jpg +data/images/5111.jpg +data/images/5112.jpg +data/images/5113.jpg +data/images/5114.jpg +data/images/5115.jpg +data/images/5116.jpg +data/images/5117.jpg +data/images/5118.jpg +data/images/5120.jpg +data/images/5121.jpg +data/images/5123.jpg +data/images/5124.jpg +data/images/5125.jpg +data/images/5126.jpg +data/images/5129.jpg +data/images/5130.jpg +data/images/5131.jpg +data/images/5132.jpg +data/images/5133.jpg +data/images/5134.jpg +data/images/5135.jpg +data/images/5138.jpg +data/images/5140.jpg +data/images/5141.jpg +data/images/5143.jpg +data/images/5144.jpg +data/images/5145.jpg +data/images/5146.jpg +data/images/5147.jpg +data/images/5148.jpg +data/images/5149.jpg +data/images/5150.jpg +data/images/5151.jpg +data/images/5152.jpg +data/images/5154.jpg +data/images/5155.jpg +data/images/5158.jpg +data/images/5159.jpg +data/images/5160.jpg +data/images/5161.jpg +data/images/5162.jpg +data/images/5163.jpg +data/images/5164.jpg +data/images/5165.jpg +data/images/5166.jpg +data/images/5167.jpg +data/images/5168.jpg +data/images/5169.jpg +data/images/5171.jpg +data/images/5172.jpg +data/images/5173.jpg +data/images/5174.jpg +data/images/5175.jpg +data/images/5176.jpg +data/images/5177.jpg +data/images/5179.jpg +data/images/5180.jpg +data/images/5181.jpg +data/images/5183.jpg +data/images/5185.jpg +data/images/5186.jpg +data/images/5187.jpg +data/images/5188.jpg +data/images/5189.jpg +data/images/5190.jpg +data/images/5191.jpg +data/images/5193.jpg +data/images/5194.jpg +data/images/5195.jpg +data/images/5196.jpg +data/images/5197.jpg +data/images/5198.jpg +data/images/5199.jpg +data/images/5200.jpg +data/images/5201.jpg +data/images/5202.jpg +data/images/5204.jpg +data/images/5206.jpg +data/images/5207.jpg +data/images/5208.jpg +data/images/5209.jpg +data/images/5210.jpg +data/images/5211.jpg +data/images/5212.jpg +data/images/5214.jpg +data/images/5215.jpg +data/images/5216.jpg +data/images/5217.jpg +data/images/5218.jpg +data/images/5219.jpg +data/images/5222.jpg +data/images/5223.jpg +data/images/5225.jpg +data/images/5228.jpg +data/images/5229.jpg +data/images/5230.jpg +data/images/5231.jpg +data/images/5232.jpg +data/images/5233.jpg +data/images/5237.jpg +data/images/5238.jpg +data/images/5239.jpg +data/images/5240.jpg +data/images/5242.jpg +data/images/5244.jpg +data/images/5246.jpg +data/images/5247.jpg +data/images/5249.jpg +data/images/5250.jpg +data/images/5252.jpg +data/images/5254.jpg +data/images/5255.jpg +data/images/5256.jpg +data/images/5257.jpg +data/images/5258.jpg +data/images/5259.jpg +data/images/5260.jpg +data/images/5261.jpg +data/images/5262.jpg +data/images/5264.jpg +data/images/5265.jpg +data/images/5267.jpg +data/images/5268.jpg +data/images/5269.jpg +data/images/5271.jpg +data/images/5272.jpg +data/images/5273.jpg +data/images/5274.jpg +data/images/5276.jpg +data/images/5277.jpg +data/images/5278.jpg +data/images/5279.jpg +data/images/5281.jpg +data/images/5283.jpg +data/images/5284.jpg +data/images/5285.jpg +data/images/5286.jpg +data/images/5287.jpg +data/images/5288.jpg +data/images/5289.jpg +data/images/5291.jpg +data/images/5292.jpg +data/images/5293.jpg +data/images/5294.jpg +data/images/5295.jpg +data/images/5296.jpg +data/images/5298.jpg +data/images/5299.jpg +data/images/5301.jpg +data/images/5302.jpg +data/images/5303.jpg +data/images/5305.jpg +data/images/5306.jpg +data/images/5307.jpg +data/images/5308.jpg +data/images/5309.jpg +data/images/5311.jpg +data/images/5312.jpg +data/images/5313.jpg +data/images/5314.jpg +data/images/5315.jpg +data/images/5318.jpg +data/images/5319.jpg +data/images/5320.jpg +data/images/5321.jpg +data/images/5322.jpg +data/images/5323.jpg +data/images/5325.jpg +data/images/5326.jpg +data/images/5327.jpg +data/images/5330.jpg +data/images/5331.jpg +data/images/5333.jpg +data/images/5334.jpg +data/images/5335.jpg +data/images/5336.jpg +data/images/5337.jpg +data/images/5341.jpg +data/images/5343.jpg +data/images/5346.jpg +data/images/5348.jpg +data/images/5349.jpg +data/images/5351.jpg +data/images/5352.jpg +data/images/5353.jpg +data/images/5354.jpg +data/images/5355.jpg +data/images/5356.jpg +data/images/5358.jpg +data/images/5359.jpg +data/images/5360.jpg +data/images/5362.jpg +data/images/5363.jpg +data/images/5364.jpg +data/images/5365.jpg +data/images/5366.jpg +data/images/5367.jpg +data/images/5372.jpg +data/images/5373.jpg +data/images/5374.jpg +data/images/5375.jpg +data/images/5377.jpg +data/images/5378.jpg +data/images/5379.jpg +data/images/5382.jpg +data/images/5383.jpg +data/images/5384.jpg +data/images/5385.jpg +data/images/5386.jpg +data/images/5387.jpg +data/images/5388.jpg +data/images/5389.jpg +data/images/5390.jpg +data/images/5392.jpg +data/images/5393.jpg +data/images/5394.jpg +data/images/5395.jpg +data/images/5397.jpg +data/images/5398.jpg +data/images/5400.jpg +data/images/5402.jpg +data/images/5403.jpg +data/images/5404.jpg +data/images/5407.jpg +data/images/5408.jpg +data/images/5409.jpg +data/images/5410.jpg +data/images/5411.jpg +data/images/5412.jpg +data/images/5413.jpg +data/images/5415.jpg +data/images/5416.jpg +data/images/5417.jpg +data/images/5419.jpg +data/images/5420.jpg +data/images/5421.jpg +data/images/5422.jpg +data/images/5424.jpg +data/images/5425.jpg +data/images/5426.jpg +data/images/5428.jpg +data/images/5429.jpg +data/images/5430.jpg +data/images/5431.jpg +data/images/5433.jpg +data/images/5435.jpg +data/images/5436.jpg +data/images/5437.jpg +data/images/5438.jpg +data/images/5439.jpg +data/images/5440.jpg +data/images/5441.jpg +data/images/5442.jpg +data/images/5443.jpg +data/images/5444.jpg +data/images/5445.jpg +data/images/5448.jpg +data/images/5449.jpg +data/images/5450.jpg +data/images/5451.jpg +data/images/5453.jpg +data/images/5454.jpg +data/images/5456.jpg +data/images/5457.jpg +data/images/5458.jpg +data/images/5459.jpg +data/images/5461.jpg +data/images/5462.jpg +data/images/5463.jpg +data/images/5464.jpg +data/images/5465.jpg +data/images/5466.jpg +data/images/5467.jpg +data/images/5469.jpg +data/images/5470.jpg +data/images/5471.jpg +data/images/5472.jpg +data/images/5473.jpg +data/images/5474.jpg +data/images/5475.jpg +data/images/5476.jpg +data/images/5477.jpg +data/images/5479.jpg +data/images/5480.jpg +data/images/5482.jpg +data/images/5483.jpg +data/images/5486.jpg +data/images/5487.jpg +data/images/5488.jpg +data/images/5489.jpg +data/images/5490.jpg +data/images/5491.jpg +data/images/5492.jpg +data/images/5493.jpg +data/images/5495.jpg +data/images/5496.jpg +data/images/5498.jpg +data/images/5500.jpg +data/images/5501.jpg +data/images/5502.jpg +data/images/5503.jpg +data/images/5504.jpg +data/images/5505.jpg +data/images/5506.jpg +data/images/5507.jpg +data/images/5508.jpg +data/images/5510.jpg +data/images/5511.jpg +data/images/5512.jpg +data/images/5513.jpg +data/images/5515.jpg +data/images/5516.jpg +data/images/5517.jpg +data/images/5518.jpg +data/images/5519.jpg +data/images/5520.jpg +data/images/5521.jpg +data/images/5522.jpg +data/images/5523.jpg +data/images/5524.jpg +data/images/5526.jpg +data/images/5527.jpg +data/images/5528.jpg +data/images/5529.jpg +data/images/5530.jpg +data/images/5531.jpg +data/images/5532.jpg +data/images/5533.jpg +data/images/5534.jpg +data/images/5535.jpg +data/images/5536.jpg +data/images/5537.jpg +data/images/5538.jpg +data/images/5541.jpg +data/images/5542.jpg +data/images/5543.jpg +data/images/5545.jpg +data/images/5546.jpg +data/images/5547.jpg +data/images/5548.jpg +data/images/5550.jpg +data/images/5552.jpg +data/images/5553.jpg +data/images/5554.jpg +data/images/5555.jpg +data/images/5556.jpg +data/images/5557.jpg +data/images/5558.jpg +data/images/5559.jpg +data/images/5560.jpg +data/images/5562.jpg +data/images/5563.jpg +data/images/5564.jpg +data/images/5565.jpg +data/images/5566.jpg +data/images/5567.jpg +data/images/5568.jpg +data/images/5569.jpg +data/images/5570.jpg +data/images/5571.jpg +data/images/5572.jpg +data/images/5573.jpg +data/images/5575.jpg +data/images/5576.jpg +data/images/5578.jpg +data/images/5581.jpg +data/images/5582.jpg +data/images/5583.jpg +data/images/5584.jpg +data/images/5585.jpg +data/images/5588.jpg +data/images/5589.jpg +data/images/5590.jpg +data/images/5591.jpg +data/images/5593.jpg +data/images/5594.jpg +data/images/5595.jpg +data/images/5596.jpg +data/images/5598.jpg +data/images/5599.jpg +data/images/5601.jpg +data/images/5603.jpg +data/images/5604.jpg +data/images/5605.jpg +data/images/5606.jpg +data/images/5607.jpg +data/images/5608.jpg +data/images/5609.jpg +data/images/5610.jpg +data/images/5611.jpg +data/images/5612.jpg +data/images/5613.jpg +data/images/5614.jpg +data/images/5615.jpg +data/images/5616.jpg +data/images/5617.jpg +data/images/5619.jpg +data/images/5620.jpg +data/images/5621.jpg +data/images/5626.jpg +data/images/5627.jpg +data/images/5628.jpg +data/images/5629.jpg +data/images/5630.jpg +data/images/5631.jpg +data/images/5632.jpg +data/images/5633.jpg +data/images/5634.jpg +data/images/5635.jpg +data/images/5636.jpg +data/images/5637.jpg +data/images/5639.jpg +data/images/5640.jpg +data/images/5641.jpg +data/images/5642.jpg +data/images/5643.jpg +data/images/5644.jpg +data/images/5645.jpg +data/images/5646.jpg +data/images/5647.jpg +data/images/5648.jpg +data/images/5649.jpg +data/images/5650.jpg +data/images/5651.jpg +data/images/5652.jpg +data/images/5653.jpg +data/images/5654.jpg +data/images/5656.jpg +data/images/5657.jpg +data/images/5659.jpg +data/images/5660.jpg +data/images/5661.jpg +data/images/5662.jpg +data/images/5664.jpg +data/images/5665.jpg +data/images/5666.jpg +data/images/5667.jpg +data/images/5668.jpg +data/images/5669.jpg +data/images/5670.jpg +data/images/5671.jpg +data/images/5672.jpg +data/images/5673.jpg +data/images/5674.jpg +data/images/5675.jpg +data/images/5676.jpg +data/images/5678.jpg +data/images/5679.jpg +data/images/5681.jpg +data/images/5682.jpg +data/images/5683.jpg +data/images/5684.jpg +data/images/5686.jpg +data/images/5687.jpg +data/images/5688.jpg +data/images/5689.jpg +data/images/5690.jpg +data/images/5691.jpg +data/images/5692.jpg +data/images/5693.jpg +data/images/5695.jpg +data/images/5696.jpg +data/images/5697.jpg +data/images/5698.jpg +data/images/5699.jpg +data/images/5700.jpg +data/images/5701.jpg +data/images/5702.jpg +data/images/5703.jpg +data/images/5704.jpg +data/images/5705.jpg +data/images/5706.jpg +data/images/5707.jpg +data/images/5708.jpg +data/images/5709.jpg +data/images/5710.jpg +data/images/5711.jpg +data/images/5712.jpg +data/images/5713.jpg +data/images/5714.jpg +data/images/5718.jpg +data/images/5719.jpg +data/images/5721.jpg +data/images/5722.jpg +data/images/5723.jpg +data/images/5724.jpg +data/images/5726.jpg +data/images/5727.jpg +data/images/5730.jpg +data/images/5732.jpg +data/images/5733.jpg +data/images/5734.jpg +data/images/5735.jpg +data/images/5737.jpg +data/images/5738.jpg +data/images/5740.jpg +data/images/5741.jpg +data/images/5744.jpg +data/images/5745.jpg +data/images/5747.jpg +data/images/5748.jpg +data/images/5749.jpg +data/images/5750.jpg +data/images/5751.jpg +data/images/5752.jpg +data/images/5753.jpg +data/images/5754.jpg +data/images/5755.jpg +data/images/5756.jpg +data/images/5757.jpg +data/images/5758.jpg +data/images/5759.jpg +data/images/5760.jpg +data/images/5761.jpg +data/images/5762.jpg +data/images/5763.jpg +data/images/5764.jpg +data/images/5765.jpg +data/images/5766.jpg +data/images/5767.jpg +data/images/5768.jpg +data/images/5770.jpg +data/images/5771.jpg +data/images/5772.jpg +data/images/5773.jpg +data/images/5775.jpg +data/images/5777.jpg +data/images/5779.jpg +data/images/5780.jpg +data/images/5781.jpg +data/images/5782.jpg +data/images/5783.jpg +data/images/5784.jpg +data/images/5785.jpg +data/images/5786.jpg +data/images/5788.jpg +data/images/5790.jpg +data/images/5791.jpg +data/images/5792.jpg +data/images/5793.jpg +data/images/5794.jpg +data/images/5795.jpg +data/images/5798.jpg +data/images/5799.jpg +data/images/5800.jpg +data/images/5801.jpg +data/images/5802.jpg +data/images/5803.jpg +data/images/5804.jpg +data/images/5805.jpg +data/images/5806.jpg +data/images/5807.jpg +data/images/5809.jpg +data/images/5810.jpg +data/images/5811.jpg +data/images/5812.jpg +data/images/5813.jpg +data/images/5814.jpg +data/images/5816.jpg +data/images/5818.jpg +data/images/5819.jpg +data/images/5820.jpg +data/images/5821.jpg +data/images/5822.jpg +data/images/5823.jpg +data/images/5826.jpg +data/images/5827.jpg +data/images/5828.jpg +data/images/5829.jpg +data/images/5830.jpg +data/images/5832.jpg +data/images/5833.jpg +data/images/5834.jpg +data/images/5835.jpg +data/images/5836.jpg +data/images/5837.jpg +data/images/5838.jpg +data/images/5839.jpg +data/images/5840.jpg +data/images/5841.jpg +data/images/5842.jpg +data/images/5843.jpg +data/images/5844.jpg +data/images/5846.jpg +data/images/5847.jpg +data/images/5848.jpg +data/images/5849.jpg +data/images/5850.jpg +data/images/5851.jpg +data/images/5854.jpg +data/images/5855.jpg +data/images/5856.jpg +data/images/5857.jpg +data/images/5858.jpg +data/images/5859.jpg +data/images/5860.jpg +data/images/5861.jpg +data/images/5862.jpg +data/images/5868.jpg +data/images/5869.jpg +data/images/5870.jpg +data/images/5871.jpg +data/images/5873.jpg +data/images/5874.jpg +data/images/5875.jpg +data/images/5877.jpg +data/images/5878.jpg +data/images/5879.jpg +data/images/5880.jpg +data/images/5881.jpg +data/images/5882.jpg +data/images/5883.jpg +data/images/5884.jpg +data/images/5886.jpg +data/images/5887.jpg +data/images/5890.jpg +data/images/5891.jpg +data/images/5892.jpg +data/images/5893.jpg +data/images/5894.jpg +data/images/5895.jpg +data/images/5897.jpg +data/images/5898.jpg +data/images/5899.jpg +data/images/5900.jpg +data/images/5901.jpg +data/images/5902.jpg +data/images/5907.jpg +data/images/5908.jpg +data/images/5909.jpg +data/images/5910.jpg +data/images/5911.jpg +data/images/5913.jpg +data/images/5914.jpg +data/images/5915.jpg +data/images/5916.jpg +data/images/5917.jpg +data/images/5921.jpg +data/images/5922.jpg +data/images/5923.jpg +data/images/5924.jpg +data/images/5926.jpg +data/images/5927.jpg +data/images/5928.jpg +data/images/5929.jpg +data/images/5931.jpg +data/images/5932.jpg +data/images/5933.jpg +data/images/5934.jpg +data/images/5935.jpg +data/images/5936.jpg +data/images/5937.jpg +data/images/5938.jpg +data/images/5939.jpg +data/images/5940.jpg +data/images/5941.jpg +data/images/5942.jpg +data/images/5943.jpg +data/images/5944.jpg +data/images/5946.jpg +data/images/5947.jpg +data/images/5948.jpg +data/images/5949.jpg +data/images/5950.jpg +data/images/5951.jpg +data/images/5953.jpg +data/images/5954.jpg +data/images/5955.jpg +data/images/5957.jpg +data/images/5959.jpg +data/images/5960.jpg +data/images/5961.jpg +data/images/5962.jpg +data/images/5963.jpg +data/images/5965.jpg +data/images/5966.jpg +data/images/5967.jpg +data/images/5968.jpg +data/images/5969.jpg +data/images/5970.jpg +data/images/5971.jpg +data/images/5972.jpg +data/images/5973.jpg +data/images/5974.jpg +data/images/5975.jpg +data/images/5976.jpg +data/images/5977.jpg +data/images/5980.jpg +data/images/5982.jpg +data/images/5983.jpg +data/images/5985.jpg +data/images/5987.jpg +data/images/5988.jpg +data/images/5989.jpg +data/images/5990.jpg +data/images/5992.jpg +data/images/5994.jpg +data/images/5996.jpg +data/images/5999.jpg +data/images/6000.jpg +data/images/6002.jpg +data/images/6003.jpg +data/images/6004.jpg +data/images/6005.jpg +data/images/6006.jpg +data/images/6008.jpg +data/images/6009.jpg +data/images/6010.jpg +data/images/6011.jpg +data/images/6012.jpg +data/images/6013.jpg +data/images/6014.jpg +data/images/6015.jpg +data/images/6016.jpg +data/images/6018.jpg +data/images/6019.jpg +data/images/6022.jpg +data/images/6023.jpg +data/images/6026.jpg +data/images/6028.jpg +data/images/6029.jpg +data/images/6031.jpg +data/images/6032.jpg +data/images/6033.jpg +data/images/6034.jpg +data/images/6037.jpg +data/images/6038.jpg +data/images/6042.jpg +data/images/6043.jpg +data/images/6044.jpg +data/images/6046.jpg +data/images/6047.jpg +data/images/6048.jpg +data/images/6049.jpg +data/images/6050.jpg +data/images/6051.jpg +data/images/6052.jpg +data/images/6053.jpg +data/images/6054.jpg +data/images/6057.jpg +data/images/6058.jpg +data/images/6059.jpg +data/images/6060.jpg +data/images/6061.jpg +data/images/6062.jpg +data/images/6063.jpg +data/images/6064.jpg +data/images/6065.jpg +data/images/6066.jpg +data/images/6068.jpg +data/images/6069.jpg +data/images/6070.jpg +data/images/6071.jpg +data/images/6072.jpg +data/images/6073.jpg +data/images/6075.jpg +data/images/6076.jpg +data/images/6077.jpg +data/images/6078.jpg +data/images/6079.jpg +data/images/6080.jpg +data/images/6081.jpg +data/images/6083.jpg +data/images/6085.jpg +data/images/6086.jpg +data/images/6087.jpg +data/images/6088.jpg +data/images/6091.jpg +data/images/6092.jpg +data/images/6093.jpg +data/images/6094.jpg +data/images/6096.jpg +data/images/6099.jpg +data/images/6100.jpg +data/images/6102.jpg +data/images/6103.jpg +data/images/6104.jpg +data/images/6105.jpg +data/images/6106.jpg +data/images/6107.jpg +data/images/6108.jpg +data/images/6111.jpg +data/images/6112.jpg +data/images/6113.jpg +data/images/6115.jpg +data/images/6116.jpg +data/images/6117.jpg +data/images/6118.jpg +data/images/6119.jpg +data/images/6120.jpg +data/images/6121.jpg +data/images/6122.jpg +data/images/6123.jpg +data/images/6125.jpg +data/images/6126.jpg +data/images/6130.jpg +data/images/6131.jpg +data/images/6133.jpg +data/images/6134.jpg +data/images/6135.jpg +data/images/6136.jpg +data/images/6137.jpg +data/images/6138.jpg +data/images/6140.jpg +data/images/6141.jpg +data/images/6142.jpg +data/images/6143.jpg +data/images/6144.jpg +data/images/6146.jpg +data/images/6148.jpg +data/images/6150.jpg +data/images/6151.jpg +data/images/6152.jpg +data/images/6154.jpg +data/images/6155.jpg +data/images/6156.jpg +data/images/6157.jpg +data/images/6158.jpg +data/images/6159.jpg +data/images/6160.jpg +data/images/6161.jpg +data/images/6163.jpg +data/images/6164.jpg +data/images/6165.jpg +data/images/6166.jpg +data/images/6167.jpg +data/images/6168.jpg +data/images/6169.jpg +data/images/6170.jpg +data/images/6171.jpg +data/images/6173.jpg +data/images/6176.jpg +data/images/6177.jpg +data/images/6179.jpg +data/images/6180.jpg +data/images/6181.jpg +data/images/6182.jpg +data/images/6184.jpg +data/images/6185.jpg +data/images/6188.jpg +data/images/6190.jpg +data/images/6191.jpg +data/images/6192.jpg +data/images/6193.jpg +data/images/6195.jpg +data/images/6196.jpg +data/images/6197.jpg +data/images/6198.jpg +data/images/6199.jpg +data/images/6200.jpg +data/images/6201.jpg +data/images/6202.jpg +data/images/6203.jpg +data/images/6204.jpg +data/images/6205.jpg +data/images/6206.jpg +data/images/6207.jpg +data/images/6208.jpg +data/images/6210.jpg +data/images/6212.jpg +data/images/6214.jpg +data/images/6215.jpg +data/images/6217.jpg +data/images/6218.jpg +data/images/6219.jpg +data/images/6223.jpg +data/images/6224.jpg +data/images/6225.jpg +data/images/6227.jpg +data/images/6228.jpg +data/images/6229.jpg +data/images/6230.jpg +data/images/6231.jpg +data/images/6232.jpg +data/images/6233.jpg +data/images/6234.jpg +data/images/6235.jpg +data/images/6236.jpg +data/images/6237.jpg +data/images/6238.jpg +data/images/6239.jpg +data/images/6240.jpg +data/images/6241.jpg +data/images/6242.jpg +data/images/6244.jpg +data/images/6245.jpg +data/images/6246.jpg +data/images/6247.jpg +data/images/6248.jpg +data/images/6249.jpg +data/images/6250.jpg +data/images/6252.jpg +data/images/6253.jpg +data/images/6254.jpg +data/images/6255.jpg +data/images/6256.jpg +data/images/6257.jpg +data/images/6258.jpg +data/images/6259.jpg +data/images/6260.jpg +data/images/6261.jpg +data/images/6262.jpg +data/images/6263.jpg +data/images/6264.jpg +data/images/6265.jpg +data/images/6266.jpg +data/images/6268.jpg +data/images/6270.jpg +data/images/6271.jpg +data/images/6272.jpg +data/images/6273.jpg +data/images/6274.jpg +data/images/6275.jpg +data/images/6277.jpg +data/images/6279.jpg +data/images/6280.jpg +data/images/6281.jpg +data/images/6283.jpg +data/images/6284.jpg +data/images/6285.jpg +data/images/6286.jpg +data/images/6287.jpg +data/images/6289.jpg +data/images/6290.jpg +data/images/6291.jpg +data/images/6292.jpg +data/images/6293.jpg +data/images/6294.jpg +data/images/6295.jpg +data/images/6296.jpg +data/images/6297.jpg +data/images/6299.jpg +data/images/6300.jpg +data/images/6301.jpg +data/images/6302.jpg +data/images/6303.jpg +data/images/6304.jpg +data/images/6305.jpg +data/images/6306.jpg +data/images/6307.jpg +data/images/6308.jpg +data/images/6309.jpg +data/images/6312.jpg +data/images/6313.jpg +data/images/6314.jpg +data/images/6315.jpg +data/images/6316.jpg +data/images/6318.jpg +data/images/6319.jpg +data/images/6320.jpg +data/images/6321.jpg +data/images/6322.jpg +data/images/6323.jpg +data/images/6325.jpg +data/images/6326.jpg +data/images/6327.jpg +data/images/6328.jpg +data/images/6330.jpg +data/images/6331.jpg +data/images/6332.jpg +data/images/6333.jpg +data/images/6334.jpg +data/images/6335.jpg +data/images/6337.jpg +data/images/6338.jpg +data/images/6341.jpg +data/images/6343.jpg +data/images/6345.jpg +data/images/6346.jpg +data/images/6347.jpg +data/images/6349.jpg +data/images/6351.jpg +data/images/6352.jpg +data/images/6353.jpg +data/images/6354.jpg +data/images/6355.jpg +data/images/6356.jpg +data/images/6357.jpg +data/images/6359.jpg +data/images/6360.jpg +data/images/6362.jpg +data/images/6363.jpg +data/images/6364.jpg +data/images/6366.jpg +data/images/6368.jpg +data/images/6369.jpg +data/images/6370.jpg +data/images/6371.jpg +data/images/6372.jpg +data/images/6373.jpg +data/images/6374.jpg +data/images/6375.jpg +data/images/6376.jpg +data/images/6378.jpg +data/images/6379.jpg +data/images/6380.jpg +data/images/6381.jpg +data/images/6382.jpg +data/images/6383.jpg +data/images/6384.jpg +data/images/6385.jpg +data/images/6386.jpg +data/images/6387.jpg +data/images/6388.jpg +data/images/6389.jpg +data/images/6391.jpg +data/images/6392.jpg +data/images/6394.jpg +data/images/6395.jpg +data/images/6396.jpg +data/images/6397.jpg +data/images/6401.jpg +data/images/6402.jpg +data/images/6404.jpg +data/images/6407.jpg +data/images/6408.jpg +data/images/6411.jpg +data/images/6412.jpg +data/images/6413.jpg +data/images/6414.jpg +data/images/6415.jpg +data/images/6417.jpg +data/images/6418.jpg +data/images/6419.jpg +data/images/6420.jpg +data/images/6422.jpg +data/images/6423.jpg +data/images/6424.jpg +data/images/6425.jpg +data/images/6426.jpg +data/images/6428.jpg +data/images/6430.jpg +data/images/6431.jpg +data/images/6432.jpg +data/images/6433.jpg +data/images/6436.jpg +data/images/6437.jpg +data/images/6438.jpg +data/images/6439.jpg +data/images/6440.jpg +data/images/6442.jpg +data/images/6443.jpg +data/images/6444.jpg +data/images/6446.jpg +data/images/6447.jpg +data/images/6448.jpg +data/images/6450.jpg +data/images/6451.jpg +data/images/6452.jpg +data/images/6453.jpg +data/images/6454.jpg +data/images/6455.jpg +data/images/6457.jpg +data/images/6458.jpg +data/images/6459.jpg +data/images/6460.jpg +data/images/6462.jpg +data/images/6463.jpg +data/images/6464.jpg +data/images/6465.jpg +data/images/6467.jpg +data/images/6470.jpg +data/images/6471.jpg +data/images/6473.jpg +data/images/6474.jpg +data/images/6475.jpg +data/images/6476.jpg +data/images/6477.jpg +data/images/6479.jpg +data/images/6480.jpg +data/images/6482.jpg +data/images/6483.jpg +data/images/6484.jpg +data/images/6485.jpg +data/images/6486.jpg +data/images/6487.jpg +data/images/6489.jpg +data/images/6490.jpg +data/images/6491.jpg +data/images/6492.jpg +data/images/6493.jpg +data/images/6494.jpg +data/images/6495.jpg +data/images/6496.jpg +data/images/6497.jpg +data/images/6498.jpg +data/images/6499.jpg +data/images/6500.jpg +data/images/6501.jpg +data/images/6502.jpg +data/images/6506.jpg +data/images/6507.jpg +data/images/6508.jpg +data/images/6509.jpg +data/images/6510.jpg +data/images/6511.jpg +data/images/6512.jpg +data/images/6513.jpg +data/images/6514.jpg +data/images/6515.jpg +data/images/6516.jpg +data/images/6518.jpg +data/images/6519.jpg +data/images/6520.jpg +data/images/6521.jpg +data/images/6522.jpg +data/images/6523.jpg +data/images/6524.jpg +data/images/6525.jpg +data/images/6526.jpg +data/images/6527.jpg +data/images/6529.jpg +data/images/6530.jpg +data/images/6533.jpg +data/images/6535.jpg +data/images/6536.jpg +data/images/6537.jpg +data/images/6538.jpg +data/images/6539.jpg +data/images/6540.jpg +data/images/6541.jpg +data/images/6542.jpg +data/images/6543.jpg +data/images/6544.jpg +data/images/6545.jpg +data/images/6546.jpg +data/images/6547.jpg +data/images/6549.jpg +data/images/6550.jpg +data/images/6551.jpg +data/images/6552.jpg +data/images/6554.jpg +data/images/6555.jpg +data/images/6556.jpg +data/images/6557.jpg +data/images/6559.jpg +data/images/6560.jpg +data/images/6561.jpg +data/images/6562.jpg +data/images/6564.jpg +data/images/6565.jpg +data/images/6566.jpg +data/images/6567.jpg +data/images/6568.jpg +data/images/6569.jpg +data/images/6570.jpg +data/images/6571.jpg +data/images/6572.jpg +data/images/6573.jpg +data/images/6576.jpg +data/images/6578.jpg +data/images/6579.jpg +data/images/6580.jpg +data/images/6581.jpg +data/images/6583.jpg +data/images/6585.jpg +data/images/6588.jpg +data/images/6589.jpg +data/images/6590.jpg +data/images/6592.jpg +data/images/6593.jpg +data/images/6594.jpg +data/images/6595.jpg +data/images/6597.jpg +data/images/6599.jpg +data/images/6600.jpg +data/images/6601.jpg +data/images/6602.jpg +data/images/6604.jpg +data/images/6605.jpg +data/images/6607.jpg +data/images/6608.jpg +data/images/6609.jpg +data/images/6611.jpg +data/images/6612.jpg +data/images/6613.jpg +data/images/6614.jpg +data/images/6615.jpg +data/images/6616.jpg +data/images/6617.jpg +data/images/6619.jpg +data/images/6620.jpg +data/images/6621.jpg +data/images/6622.jpg +data/images/6623.jpg +data/images/6624.jpg +data/images/6625.jpg +data/images/6626.jpg +data/images/6629.jpg +data/images/6630.jpg +data/images/6631.jpg +data/images/6632.jpg +data/images/6633.jpg +data/images/6634.jpg +data/images/6635.jpg +data/images/6636.jpg +data/images/6637.jpg +data/images/6638.jpg +data/images/6639.jpg +data/images/6640.jpg +data/images/6641.jpg +data/images/6642.jpg +data/images/6644.jpg +data/images/6646.jpg +data/images/6647.jpg +data/images/6648.jpg +data/images/6649.jpg +data/images/6650.jpg +data/images/6651.jpg +data/images/6652.jpg +data/images/6653.jpg +data/images/6654.jpg +data/images/6655.jpg +data/images/6656.jpg +data/images/6658.jpg +data/images/6659.jpg +data/images/6660.jpg +data/images/6661.jpg +data/images/6662.jpg +data/images/6663.jpg +data/images/6664.jpg +data/images/6665.jpg +data/images/6666.jpg +data/images/6667.jpg +data/images/6669.jpg +data/images/6670.jpg +data/images/6671.jpg +data/images/6672.jpg +data/images/6673.jpg +data/images/6674.jpg +data/images/6675.jpg +data/images/6676.jpg +data/images/6679.jpg +data/images/6680.jpg +data/images/6681.jpg +data/images/6682.jpg +data/images/6683.jpg +data/images/6684.jpg +data/images/6685.jpg +data/images/6686.jpg +data/images/6687.jpg +data/images/6688.jpg +data/images/6689.jpg +data/images/6691.jpg +data/images/6692.jpg +data/images/6693.jpg +data/images/6694.jpg +data/images/6695.jpg +data/images/6696.jpg +data/images/6697.jpg +data/images/6698.jpg +data/images/6699.jpg +data/images/6700.jpg +data/images/6701.jpg +data/images/6702.jpg +data/images/6703.jpg +data/images/6704.jpg +data/images/6705.jpg +data/images/6706.jpg +data/images/6707.jpg +data/images/6708.jpg +data/images/6709.jpg +data/images/6710.jpg +data/images/6711.jpg +data/images/6712.jpg +data/images/6713.jpg +data/images/6714.jpg +data/images/6715.jpg +data/images/6716.jpg +data/images/6717.jpg +data/images/6718.jpg +data/images/6719.jpg +data/images/6720.jpg +data/images/6721.jpg +data/images/6722.jpg +data/images/6723.jpg +data/images/6724.jpg +data/images/6726.jpg +data/images/6727.jpg +data/images/6728.jpg +data/images/6729.jpg +data/images/6731.jpg +data/images/6732.jpg +data/images/6733.jpg +data/images/6735.jpg +data/images/6736.jpg +data/images/6737.jpg +data/images/6738.jpg +data/images/6739.jpg +data/images/6740.jpg +data/images/6741.jpg +data/images/6742.jpg +data/images/6743.jpg +data/images/6744.jpg +data/images/6745.jpg +data/images/6747.jpg +data/images/6748.jpg +data/images/6749.jpg +data/images/6751.jpg +data/images/6752.jpg +data/images/6754.jpg +data/images/6755.jpg +data/images/6756.jpg +data/images/6759.jpg +data/images/6760.jpg +data/images/6762.jpg +data/images/6763.jpg +data/images/6764.jpg +data/images/6765.jpg +data/images/6766.jpg +data/images/6767.jpg +data/images/6768.jpg +data/images/6770.jpg +data/images/6771.jpg +data/images/6775.jpg +data/images/6776.jpg +data/images/6777.jpg +data/images/6779.jpg +data/images/6780.jpg +data/images/6781.jpg +data/images/6782.jpg +data/images/6783.jpg +data/images/6786.jpg +data/images/6787.jpg +data/images/6789.jpg +data/images/6790.jpg +data/images/6791.jpg +data/images/6792.jpg +data/images/6794.jpg +data/images/6795.jpg +data/images/6796.jpg +data/images/6797.jpg +data/images/6798.jpg +data/images/6800.jpg +data/images/6802.jpg +data/images/6803.jpg +data/images/6805.jpg +data/images/6806.jpg +data/images/6807.jpg +data/images/6809.jpg +data/images/6811.jpg +data/images/6812.jpg +data/images/6813.jpg +data/images/6814.jpg +data/images/6815.jpg +data/images/6816.jpg +data/images/6817.jpg +data/images/6818.jpg +data/images/6819.jpg +data/images/6820.jpg +data/images/6821.jpg +data/images/6822.jpg +data/images/6823.jpg +data/images/6824.jpg +data/images/6825.jpg +data/images/6826.jpg +data/images/6827.jpg +data/images/6830.jpg +data/images/6831.jpg +data/images/6834.jpg +data/images/6835.jpg +data/images/6837.jpg +data/images/6838.jpg +data/images/6839.jpg +data/images/6841.jpg +data/images/6842.jpg +data/images/6844.jpg +data/images/6845.jpg +data/images/6846.jpg +data/images/6847.jpg +data/images/6848.jpg +data/images/6849.jpg +data/images/6850.jpg +data/images/6854.jpg +data/images/6855.jpg +data/images/6856.jpg +data/images/6858.jpg +data/images/6859.jpg +data/images/6861.jpg +data/images/6862.jpg +data/images/6863.jpg +data/images/6864.jpg +data/images/6867.jpg +data/images/6868.jpg +data/images/6869.jpg +data/images/6872.jpg +data/images/6873.jpg +data/images/6874.jpg +data/images/6875.jpg +data/images/6878.jpg +data/images/6880.jpg +data/images/6882.jpg +data/images/6883.jpg +data/images/6884.jpg +data/images/6885.jpg +data/images/6886.jpg +data/images/6887.jpg +data/images/6888.jpg +data/images/6889.jpg +data/images/6890.jpg +data/images/6892.jpg +data/images/6893.jpg +data/images/6895.jpg +data/images/6896.jpg +data/images/6897.jpg +data/images/6898.jpg +data/images/6899.jpg +data/images/6900.jpg +data/images/6903.jpg +data/images/6904.jpg +data/images/6908.jpg +data/images/6909.jpg +data/images/6910.jpg +data/images/6911.jpg +data/images/6912.jpg +data/images/6913.jpg +data/images/6915.jpg +data/images/6917.jpg +data/images/6918.jpg +data/images/6921.jpg +data/images/6922.jpg +data/images/6924.jpg +data/images/6925.jpg +data/images/6927.jpg +data/images/6929.jpg +data/images/6930.jpg +data/images/6931.jpg +data/images/6932.jpg +data/images/6933.jpg +data/images/6934.jpg +data/images/6935.jpg +data/images/6936.jpg +data/images/6937.jpg +data/images/6938.jpg +data/images/6940.jpg +data/images/6943.jpg +data/images/6944.jpg +data/images/6946.jpg +data/images/6947.jpg +data/images/6948.jpg +data/images/6949.jpg +data/images/6950.jpg +data/images/6951.jpg +data/images/6952.jpg +data/images/6953.jpg +data/images/6955.jpg +data/images/6956.jpg +data/images/6958.jpg +data/images/6959.jpg +data/images/6960.jpg +data/images/6961.jpg +data/images/6962.jpg +data/images/6964.jpg +data/images/6967.jpg +data/images/6968.jpg +data/images/6969.jpg +data/images/6971.jpg +data/images/6972.jpg +data/images/6973.jpg +data/images/6974.jpg +data/images/6976.jpg +data/images/6977.jpg +data/images/6978.jpg +data/images/6979.jpg +data/images/6980.jpg +data/images/6981.jpg +data/images/6982.jpg +data/images/6983.jpg +data/images/6984.jpg +data/images/6986.jpg +data/images/6988.jpg +data/images/6989.jpg +data/images/6990.jpg +data/images/6992.jpg +data/images/6993.jpg +data/images/6995.jpg +data/images/6996.jpg +data/images/6997.jpg +data/images/6999.jpg +data/images/7001.jpg +data/images/7002.jpg +data/images/7004.jpg +data/images/7005.jpg +data/images/7006.jpg +data/images/7007.jpg +data/images/7008.jpg +data/images/7009.jpg +data/images/7010.jpg +data/images/7011.jpg +data/images/7012.jpg +data/images/7013.jpg +data/images/7014.jpg +data/images/7015.jpg +data/images/7016.jpg +data/images/7018.jpg +data/images/7019.jpg +data/images/7021.jpg +data/images/7022.jpg +data/images/7023.jpg +data/images/7024.jpg +data/images/7025.jpg +data/images/7026.jpg +data/images/7027.jpg +data/images/7028.jpg +data/images/7029.jpg +data/images/7030.jpg +data/images/7031.jpg +data/images/7033.jpg +data/images/7034.jpg +data/images/7035.jpg +data/images/7036.jpg +data/images/7039.jpg +data/images/7040.jpg +data/images/7041.jpg +data/images/7042.jpg +data/images/7043.jpg +data/images/7044.jpg +data/images/7045.jpg +data/images/7046.jpg +data/images/7047.jpg +data/images/7048.jpg +data/images/7049.jpg +data/images/7051.jpg +data/images/7053.jpg +data/images/7054.jpg +data/images/7056.jpg +data/images/7058.jpg +data/images/7059.jpg +data/images/7061.jpg +data/images/7062.jpg +data/images/7063.jpg +data/images/7064.jpg +data/images/7065.jpg +data/images/7066.jpg +data/images/7068.jpg +data/images/7069.jpg +data/images/7070.jpg +data/images/7071.jpg +data/images/7073.jpg +data/images/7074.jpg +data/images/7075.jpg +data/images/7076.jpg +data/images/7077.jpg +data/images/7078.jpg +data/images/7080.jpg +data/images/7081.jpg +data/images/7082.jpg +data/images/7083.jpg +data/images/7084.jpg +data/images/7085.jpg +data/images/7086.jpg +data/images/7087.jpg +data/images/7088.jpg +data/images/7089.jpg +data/images/7090.jpg +data/images/7091.jpg +data/images/7093.jpg +data/images/7094.jpg +data/images/7097.jpg +data/images/7098.jpg +data/images/7099.jpg +data/images/7100.jpg +data/images/7101.jpg +data/images/7102.jpg +data/images/7103.jpg +data/images/7105.jpg +data/images/7106.jpg +data/images/7108.jpg +data/images/7110.jpg +data/images/7111.jpg +data/images/7112.jpg +data/images/7113.jpg +data/images/7114.jpg +data/images/7115.jpg +data/images/7116.jpg +data/images/7117.jpg +data/images/7119.jpg +data/images/7120.jpg +data/images/7121.jpg +data/images/7122.jpg +data/images/7123.jpg +data/images/7125.jpg +data/images/7127.jpg +data/images/7129.jpg +data/images/7130.jpg +data/images/7132.jpg +data/images/7133.jpg +data/images/7134.jpg +data/images/7135.jpg +data/images/7137.jpg +data/images/7138.jpg +data/images/7139.jpg +data/images/7140.jpg +data/images/7141.jpg +data/images/7142.jpg +data/images/7144.jpg +data/images/7145.jpg +data/images/7146.jpg +data/images/7147.jpg +data/images/7148.jpg +data/images/7149.jpg +data/images/7150.jpg +data/images/7151.jpg +data/images/7152.jpg +data/images/7153.jpg +data/images/7154.jpg +data/images/7155.jpg +data/images/7156.jpg +data/images/7157.jpg +data/images/7158.jpg +data/images/7160.jpg +data/images/7163.jpg +data/images/7164.jpg +data/images/7165.jpg +data/images/7166.jpg +data/images/7167.jpg +data/images/7170.jpg +data/images/7172.jpg +data/images/7173.jpg +data/images/7174.jpg +data/images/7175.jpg +data/images/7176.jpg +data/images/7177.jpg +data/images/7178.jpg +data/images/7180.jpg +data/images/7181.jpg +data/images/7182.jpg +data/images/7183.jpg +data/images/7184.jpg +data/images/7185.jpg +data/images/7186.jpg +data/images/7188.jpg +data/images/7189.jpg +data/images/7190.jpg +data/images/7191.jpg +data/images/7192.jpg +data/images/7193.jpg +data/images/7194.jpg +data/images/7195.jpg +data/images/7196.jpg +data/images/7197.jpg +data/images/7199.jpg +data/images/7200.jpg +data/images/7201.jpg +data/images/7202.jpg +data/images/7203.jpg +data/images/7204.jpg +data/images/7205.jpg +data/images/7206.jpg +data/images/7207.jpg +data/images/7209.jpg +data/images/7210.jpg +data/images/7211.jpg +data/images/7212.jpg +data/images/7213.jpg +data/images/7214.jpg +data/images/7215.jpg +data/images/7216.jpg +data/images/7217.jpg +data/images/7218.jpg +data/images/7219.jpg +data/images/7220.jpg +data/images/7221.jpg +data/images/7222.jpg +data/images/7224.jpg +data/images/7225.jpg +data/images/7226.jpg +data/images/7228.jpg +data/images/7229.jpg +data/images/7230.jpg +data/images/7231.jpg +data/images/7232.jpg +data/images/7235.jpg +data/images/7236.jpg +data/images/7237.jpg +data/images/7238.jpg +data/images/7239.jpg +data/images/7240.jpg +data/images/7241.jpg +data/images/7244.jpg +data/images/7245.jpg +data/images/7246.jpg +data/images/7247.jpg +data/images/7249.jpg +data/images/7250.jpg +data/images/7251.jpg +data/images/7252.jpg +data/images/7253.jpg +data/images/7254.jpg +data/images/7255.jpg +data/images/7256.jpg +data/images/7257.jpg +data/images/7258.jpg +data/images/7259.jpg +data/images/7260.jpg +data/images/7261.jpg +data/images/7262.jpg +data/images/7263.jpg +data/images/7264.jpg +data/images/7265.jpg +data/images/7266.jpg +data/images/7267.jpg +data/images/7269.jpg +data/images/7271.jpg +data/images/7272.jpg +data/images/7273.jpg +data/images/7274.jpg +data/images/7275.jpg +data/images/7276.jpg +data/images/7277.jpg +data/images/7278.jpg +data/images/7279.jpg +data/images/7280.jpg +data/images/7281.jpg +data/images/7283.jpg +data/images/7284.jpg +data/images/7285.jpg +data/images/7286.jpg +data/images/7287.jpg +data/images/7288.jpg +data/images/7290.jpg +data/images/7291.jpg +data/images/7295.jpg +data/images/7296.jpg +data/images/7299.jpg +data/images/7300.jpg +data/images/7301.jpg +data/images/7302.jpg +data/images/7304.jpg +data/images/7305.jpg +data/images/7306.jpg +data/images/7307.jpg +data/images/7309.jpg +data/images/7310.jpg +data/images/7311.jpg +data/images/7314.jpg +data/images/7315.jpg +data/images/7316.jpg +data/images/7317.jpg +data/images/7318.jpg +data/images/7319.jpg +data/images/7320.jpg +data/images/7321.jpg +data/images/7322.jpg +data/images/7323.jpg +data/images/7324.jpg +data/images/7326.jpg +data/images/7328.jpg +data/images/7329.jpg +data/images/7330.jpg +data/images/7331.jpg +data/images/7333.jpg +data/images/7334.jpg +data/images/7335.jpg +data/images/7337.jpg +data/images/7338.jpg +data/images/7340.jpg +data/images/7341.jpg +data/images/7343.jpg +data/images/7345.jpg +data/images/7346.jpg +data/images/7347.jpg +data/images/7350.jpg +data/images/7352.jpg +data/images/7353.jpg +data/images/7354.jpg +data/images/7355.jpg +data/images/7356.jpg +data/images/7357.jpg +data/images/7358.jpg +data/images/7359.jpg +data/images/7361.jpg +data/images/7362.jpg +data/images/7363.jpg +data/images/7364.jpg +data/images/7366.jpg +data/images/7367.jpg +data/images/7368.jpg +data/images/7369.jpg +data/images/7370.jpg +data/images/7371.jpg +data/images/7372.jpg +data/images/7373.jpg +data/images/7374.jpg +data/images/7375.jpg +data/images/7376.jpg +data/images/7377.jpg +data/images/7378.jpg +data/images/7379.jpg +data/images/7380.jpg +data/images/7381.jpg +data/images/7382.jpg +data/images/7383.jpg +data/images/7384.jpg +data/images/7388.jpg +data/images/7389.jpg +data/images/7390.jpg +data/images/7391.jpg +data/images/7392.jpg +data/images/7393.jpg +data/images/7396.jpg +data/images/7397.jpg +data/images/7398.jpg +data/images/7400.jpg +data/images/7401.jpg +data/images/7402.jpg +data/images/7403.jpg +data/images/7404.jpg +data/images/7405.jpg +data/images/7406.jpg +data/images/7408.jpg +data/images/7410.jpg +data/images/7411.jpg +data/images/7412.jpg +data/images/7413.jpg +data/images/7415.jpg +data/images/7416.jpg +data/images/7418.jpg +data/images/7419.jpg +data/images/7420.jpg +data/images/7421.jpg +data/images/7422.jpg +data/images/7423.jpg +data/images/7424.jpg +data/images/7425.jpg +data/images/7426.jpg +data/images/7427.jpg +data/images/7429.jpg +data/images/7431.jpg +data/images/7432.jpg +data/images/7433.jpg +data/images/7437.jpg +data/images/7438.jpg +data/images/7439.jpg +data/images/7440.jpg +data/images/7441.jpg +data/images/7442.jpg +data/images/7443.jpg +data/images/7444.jpg +data/images/7445.jpg +data/images/7446.jpg +data/images/7449.jpg +data/images/7450.jpg +data/images/7451.jpg +data/images/7452.jpg +data/images/7453.jpg +data/images/7454.jpg +data/images/7455.jpg +data/images/7457.jpg +data/images/7458.jpg +data/images/7459.jpg +data/images/7460.jpg +data/images/7461.jpg +data/images/7462.jpg +data/images/7463.jpg +data/images/7464.jpg +data/images/7465.jpg +data/images/7466.jpg +data/images/7467.jpg +data/images/7468.jpg +data/images/7469.jpg +data/images/7470.jpg +data/images/7471.jpg +data/images/7472.jpg +data/images/7473.jpg +data/images/7474.jpg +data/images/7475.jpg +data/images/7476.jpg +data/images/7477.jpg +data/images/7478.jpg +data/images/7481.jpg +data/images/7483.jpg +data/images/7484.jpg +data/images/7486.jpg +data/images/7487.jpg +data/images/7488.jpg +data/images/7489.jpg +data/images/7490.jpg +data/images/7492.jpg +data/images/7493.jpg +data/images/7494.jpg +data/images/7496.jpg +data/images/7497.jpg +data/images/7498.jpg +data/images/7499.jpg +data/images/7500.jpg +data/images/7503.jpg +data/images/7504.jpg +data/images/7505.jpg +data/images/7506.jpg +data/images/7507.jpg +data/images/7508.jpg +data/images/7509.jpg +data/images/7510.jpg +data/images/7511.jpg +data/images/7512.jpg +data/images/7513.jpg +data/images/7514.jpg +data/images/7515.jpg +data/images/7516.jpg +data/images/7517.jpg +data/images/7518.jpg +data/images/7522.jpg +data/images/7524.jpg +data/images/7525.jpg +data/images/7526.jpg +data/images/7527.jpg +data/images/7528.jpg +data/images/7529.jpg +data/images/7530.jpg +data/images/7531.jpg +data/images/7532.jpg +data/images/7533.jpg +data/images/7534.jpg +data/images/7535.jpg +data/images/7537.jpg +data/images/7538.jpg +data/images/7539.jpg +data/images/7540.jpg +data/images/7542.jpg +data/images/7543.jpg +data/images/7545.jpg +data/images/7547.jpg +data/images/7548.jpg +data/images/7549.jpg +data/images/7550.jpg +data/images/7551.jpg +data/images/7553.jpg +data/images/7555.jpg +data/images/7556.jpg +data/images/7557.jpg +data/images/7558.jpg +data/images/7559.jpg +data/images/7561.jpg +data/images/7562.jpg +data/images/7563.jpg +data/images/7565.jpg +data/images/7566.jpg +data/images/7567.jpg +data/images/7568.jpg +data/images/7569.jpg +data/images/7570.jpg +data/images/7571.jpg +data/images/7572.jpg +data/images/7573.jpg +data/images/7574.jpg +data/images/7576.jpg +data/images/7577.jpg +data/images/7580.jpg +data/images/7581.jpg +data/images/7582.jpg +data/images/7584.jpg +data/images/7585.jpg +data/images/7587.jpg +data/images/7590.jpg +data/images/7591.jpg +data/images/7592.jpg +data/images/7593.jpg +data/images/7595.jpg +data/images/7596.jpg +data/images/7597.jpg +data/images/7598.jpg +data/images/7599.jpg +data/images/7600.jpg +data/images/7601.jpg +data/images/7602.jpg +data/images/7604.jpg +data/images/7605.jpg +data/images/7607.jpg +data/images/7609.jpg +data/images/7610.jpg +data/images/7611.jpg +data/images/7612.jpg +data/images/7615.jpg +data/images/7617.jpg +data/images/7618.jpg +data/images/7620.jpg +data/images/7622.jpg +data/images/7623.jpg +data/images/7624.jpg +data/images/7625.jpg +data/images/7626.jpg +data/images/7627.jpg +data/images/7629.jpg +data/images/7630.jpg +data/images/7632.jpg +data/images/7633.jpg +data/images/7636.jpg +data/images/7638.jpg +data/images/7641.jpg +data/images/7642.jpg +data/images/7643.jpg +data/images/7644.jpg +data/images/7645.jpg +data/images/7646.jpg +data/images/7647.jpg +data/images/7648.jpg +data/images/7650.jpg +data/images/7652.jpg +data/images/7653.jpg +data/images/7654.jpg +data/images/7656.jpg +data/images/7657.jpg +data/images/7658.jpg +data/images/7659.jpg +data/images/7660.jpg +data/images/7662.jpg +data/images/7664.jpg +data/images/7665.jpg +data/images/7666.jpg +data/images/7667.jpg +data/images/7668.jpg +data/images/7669.jpg +data/images/7670.jpg +data/images/7671.jpg +data/images/7672.jpg +data/images/7673.jpg +data/images/7674.jpg +data/images/7675.jpg +data/images/7676.jpg +data/images/7677.jpg +data/images/7679.jpg +data/images/7680.jpg +data/images/7681.jpg +data/images/7682.jpg +data/images/7683.jpg +data/images/7684.jpg +data/images/7686.jpg +data/images/7687.jpg +data/images/7688.jpg +data/images/7690.jpg +data/images/7691.jpg +data/images/7692.jpg +data/images/7693.jpg +data/images/7694.jpg +data/images/7695.jpg +data/images/7696.jpg +data/images/7697.jpg +data/images/7698.jpg +data/images/7699.jpg +data/images/7700.jpg +data/images/7702.jpg +data/images/7703.jpg +data/images/7705.jpg +data/images/7706.jpg +data/images/7707.jpg +data/images/7708.jpg +data/images/7709.jpg +data/images/7710.jpg +data/images/7712.jpg +data/images/7713.jpg +data/images/7714.jpg +data/images/7715.jpg +data/images/7717.jpg +data/images/7718.jpg +data/images/7719.jpg +data/images/7720.jpg +data/images/7721.jpg +data/images/7722.jpg +data/images/7723.jpg +data/images/7724.jpg +data/images/7725.jpg +data/images/7726.jpg +data/images/7728.jpg +data/images/7730.jpg +data/images/7732.jpg +data/images/7733.jpg +data/images/7735.jpg +data/images/7736.jpg +data/images/7737.jpg +data/images/7738.jpg +data/images/7739.jpg +data/images/7740.jpg +data/images/7741.jpg +data/images/7742.jpg +data/images/7743.jpg +data/images/7744.jpg +data/images/7745.jpg +data/images/7747.jpg +data/images/7748.jpg +data/images/7750.jpg +data/images/7751.jpg +data/images/7752.jpg +data/images/7753.jpg +data/images/7755.jpg +data/images/7757.jpg +data/images/7758.jpg +data/images/7759.jpg +data/images/7760.jpg +data/images/7761.jpg +data/images/7762.jpg +data/images/7763.jpg +data/images/7764.jpg +data/images/7765.jpg +data/images/7766.jpg +data/images/7767.jpg +data/images/7768.jpg +data/images/7769.jpg +data/images/7772.jpg +data/images/7773.jpg +data/images/7774.jpg +data/images/7775.jpg +data/images/7776.jpg +data/images/7777.jpg +data/images/7778.jpg +data/images/7779.jpg +data/images/7780.jpg +data/images/7781.jpg +data/images/7782.jpg +data/images/7783.jpg +data/images/7784.jpg +data/images/7785.jpg +data/images/7786.jpg +data/images/7787.jpg +data/images/7788.jpg +data/images/7790.jpg +data/images/7792.jpg +data/images/7794.jpg +data/images/7795.jpg +data/images/7796.jpg +data/images/7797.jpg +data/images/7799.jpg +data/images/7800.jpg +data/images/7801.jpg +data/images/7803.jpg +data/images/7804.jpg +data/images/7806.jpg +data/images/7809.jpg +data/images/7810.jpg +data/images/7811.jpg +data/images/7812.jpg +data/images/7814.jpg +data/images/7815.jpg +data/images/7816.jpg +data/images/7817.jpg +data/images/7818.jpg +data/images/7819.jpg +data/images/7820.jpg +data/images/7821.jpg +data/images/7822.jpg +data/images/7824.jpg +data/images/7825.jpg +data/images/7826.jpg +data/images/7827.jpg +data/images/7828.jpg +data/images/7829.jpg +data/images/7830.jpg +data/images/7831.jpg +data/images/7832.jpg +data/images/7833.jpg +data/images/7834.jpg +data/images/7835.jpg +data/images/7837.jpg +data/images/7838.jpg +data/images/7839.jpg +data/images/7841.jpg +data/images/7842.jpg +data/images/7843.jpg +data/images/7844.jpg +data/images/7845.jpg +data/images/7847.jpg +data/images/7848.jpg +data/images/7849.jpg +data/images/7850.jpg +data/images/7851.jpg +data/images/7852.jpg +data/images/7853.jpg +data/images/7854.jpg +data/images/7855.jpg +data/images/7856.jpg +data/images/7857.jpg +data/images/7858.jpg +data/images/7859.jpg +data/images/7863.jpg +data/images/7866.jpg +data/images/7867.jpg +data/images/7871.jpg +data/images/7873.jpg +data/images/7874.jpg +data/images/7875.jpg +data/images/7876.jpg +data/images/7877.jpg +data/images/7878.jpg +data/images/7880.jpg +data/images/7881.jpg +data/images/7882.jpg +data/images/7884.jpg +data/images/7887.jpg +data/images/7888.jpg +data/images/7889.jpg +data/images/7890.jpg +data/images/7891.jpg +data/images/7892.jpg +data/images/7893.jpg +data/images/7894.jpg +data/images/7895.jpg +data/images/7896.jpg +data/images/7897.jpg +data/images/7898.jpg +data/images/7899.jpg +data/images/7900.jpg +data/images/7903.jpg +data/images/7904.jpg +data/images/7905.jpg +data/images/7906.jpg +data/images/7908.jpg +data/images/7909.jpg +data/images/7910.jpg +data/images/7911.jpg +data/images/7912.jpg +data/images/7913.jpg +data/images/7914.jpg +data/images/7915.jpg +data/images/7916.jpg +data/images/7917.jpg +data/images/7919.jpg +data/images/7920.jpg +data/images/7921.jpg +data/images/7922.jpg +data/images/7925.jpg +data/images/7926.jpg +data/images/7927.jpg +data/images/7928.jpg +data/images/7930.jpg +data/images/7931.jpg +data/images/7932.jpg +data/images/7933.jpg +data/images/7934.jpg +data/images/7935.jpg +data/images/7938.jpg +data/images/7939.jpg +data/images/7940.jpg +data/images/7941.jpg +data/images/7942.jpg +data/images/7943.jpg +data/images/7944.jpg +data/images/7945.jpg +data/images/7946.jpg +data/images/7947.jpg +data/images/7948.jpg +data/images/7949.jpg +data/images/7950.jpg +data/images/7951.jpg +data/images/7952.jpg +data/images/7953.jpg +data/images/7954.jpg +data/images/7955.jpg +data/images/7956.jpg +data/images/7957.jpg +data/images/7958.jpg +data/images/7959.jpg +data/images/7960.jpg +data/images/7961.jpg +data/images/7962.jpg +data/images/7963.jpg +data/images/7965.jpg +data/images/7967.jpg +data/images/7968.jpg +data/images/7969.jpg +data/images/7970.jpg +data/images/7971.jpg +data/images/7972.jpg +data/images/7975.jpg +data/images/7977.jpg +data/images/7978.jpg +data/images/7979.jpg +data/images/7980.jpg +data/images/7981.jpg +data/images/7983.jpg +data/images/7984.jpg +data/images/7986.jpg +data/images/7987.jpg +data/images/7988.jpg +data/images/7989.jpg +data/images/7990.jpg +data/images/7991.jpg +data/images/7992.jpg +data/images/7994.jpg +data/images/7995.jpg +data/images/7996.jpg +data/images/7998.jpg +data/images/7999.jpg +data/images/8000.jpg +data/images/8001.jpg +data/images/8003.jpg +data/images/8005.jpg +data/images/8006.jpg +data/images/8007.jpg +data/images/8008.jpg +data/images/8009.jpg +data/images/8010.jpg +data/images/8011.jpg +data/images/8012.jpg +data/images/8013.jpg +data/images/8014.jpg +data/images/8015.jpg +data/images/8017.jpg +data/images/8019.jpg +data/images/8020.jpg +data/images/8021.jpg +data/images/8022.jpg +data/images/8024.jpg +data/images/8025.jpg +data/images/8026.jpg +data/images/8027.jpg +data/images/8028.jpg +data/images/8029.jpg +data/images/8030.jpg +data/images/8031.jpg +data/images/8033.jpg +data/images/8034.jpg +data/images/8035.jpg +data/images/8037.jpg +data/images/8038.jpg +data/images/8039.jpg +data/images/8040.jpg +data/images/8041.jpg +data/images/8042.jpg +data/images/8043.jpg +data/images/8044.jpg +data/images/8045.jpg +data/images/8046.jpg +data/images/8048.jpg +data/images/8049.jpg +data/images/8050.jpg +data/images/8051.jpg +data/images/8052.jpg +data/images/8053.jpg +data/images/8054.jpg +data/images/8055.jpg +data/images/8056.jpg +data/images/8057.jpg +data/images/8058.jpg +data/images/8059.jpg +data/images/8060.jpg +data/images/8061.jpg +data/images/8062.jpg +data/images/8063.jpg +data/images/8065.jpg +data/images/8066.jpg +data/images/8067.jpg +data/images/8068.jpg +data/images/8069.jpg +data/images/8070.jpg +data/images/8072.jpg +data/images/8073.jpg +data/images/8074.jpg +data/images/8075.jpg +data/images/8076.jpg +data/images/8077.jpg +data/images/8078.jpg +data/images/8079.jpg +data/images/8080.jpg +data/images/8081.jpg +data/images/8082.jpg +data/images/8083.jpg +data/images/8084.jpg +data/images/8085.jpg +data/images/8087.jpg +data/images/8088.jpg +data/images/8089.jpg +data/images/8090.jpg +data/images/8092.jpg +data/images/8093.jpg +data/images/8094.jpg +data/images/8095.jpg +data/images/8096.jpg +data/images/8098.jpg +data/images/8100.jpg +data/images/8101.jpg +data/images/8102.jpg +data/images/8103.jpg +data/images/8104.jpg +data/images/8105.jpg +data/images/8107.jpg +data/images/8109.jpg +data/images/8110.jpg +data/images/8111.jpg +data/images/8113.jpg +data/images/8114.jpg +data/images/8115.jpg +data/images/8117.jpg +data/images/8118.jpg +data/images/8119.jpg +data/images/8120.jpg +data/images/8121.jpg +data/images/8123.jpg +data/images/8125.jpg +data/images/8126.jpg +data/images/8127.jpg +data/images/8128.jpg +data/images/8129.jpg +data/images/8132.jpg +data/images/8133.jpg +data/images/8134.jpg +data/images/8135.jpg +data/images/8136.jpg +data/images/8137.jpg +data/images/8138.jpg +data/images/8139.jpg +data/images/8140.jpg +data/images/8141.jpg +data/images/8142.jpg +data/images/8143.jpg +data/images/8144.jpg +data/images/8146.jpg +data/images/8147.jpg +data/images/8148.jpg +data/images/8149.jpg +data/images/8150.jpg +data/images/8151.jpg +data/images/8152.jpg +data/images/8153.jpg +data/images/8155.jpg +data/images/8156.jpg +data/images/8157.jpg +data/images/8158.jpg +data/images/8159.jpg +data/images/8160.jpg +data/images/8162.jpg +data/images/8163.jpg +data/images/8164.jpg +data/images/8165.jpg +data/images/8166.jpg +data/images/8168.jpg +data/images/8169.jpg +data/images/8170.jpg +data/images/8171.jpg +data/images/8172.jpg +data/images/8173.jpg +data/images/8174.jpg +data/images/8175.jpg +data/images/8176.jpg +data/images/8177.jpg +data/images/8178.jpg +data/images/8179.jpg +data/images/8180.jpg +data/images/8185.jpg +data/images/8186.jpg +data/images/8187.jpg +data/images/8188.jpg +data/images/8189.jpg +data/images/8190.jpg +data/images/8191.jpg +data/images/8192.jpg +data/images/8193.jpg +data/images/8194.jpg +data/images/8195.jpg +data/images/8196.jpg +data/images/8197.jpg +data/images/8198.jpg +data/images/8200.jpg +data/images/8201.jpg +data/images/8202.jpg +data/images/8203.jpg +data/images/8204.jpg +data/images/8205.jpg +data/images/8206.jpg +data/images/8207.jpg +data/images/8208.jpg +data/images/8209.jpg +data/images/8210.jpg +data/images/8211.jpg +data/images/8212.jpg +data/images/8213.jpg +data/images/8214.jpg +data/images/8216.jpg +data/images/8218.jpg +data/images/8219.jpg +data/images/8220.jpg +data/images/8221.jpg +data/images/8222.jpg +data/images/8223.jpg +data/images/8224.jpg +data/images/8225.jpg +data/images/8226.jpg +data/images/8227.jpg +data/images/8229.jpg +data/images/8230.jpg +data/images/8231.jpg +data/images/8232.jpg +data/images/8233.jpg +data/images/8234.jpg +data/images/8235.jpg +data/images/8236.jpg +data/images/8237.jpg +data/images/8239.jpg +data/images/8241.jpg +data/images/8242.jpg +data/images/8243.jpg +data/images/8244.jpg +data/images/8245.jpg +data/images/8246.jpg +data/images/8247.jpg +data/images/8248.jpg +data/images/8249.jpg +data/images/8250.jpg +data/images/8251.jpg +data/images/8253.jpg +data/images/8254.jpg +data/images/8255.jpg +data/images/8256.jpg +data/images/8257.jpg +data/images/8258.jpg +data/images/8259.jpg +data/images/8260.jpg +data/images/8261.jpg +data/images/8262.jpg +data/images/8263.jpg +data/images/8264.jpg +data/images/8265.jpg +data/images/8267.jpg +data/images/8268.jpg +data/images/8269.jpg +data/images/8270.jpg +data/images/8273.jpg +data/images/8275.jpg +data/images/8276.jpg +data/images/8277.jpg +data/images/8279.jpg +data/images/8280.jpg +data/images/8283.jpg +data/images/8284.jpg +data/images/8285.jpg +data/images/8286.jpg +data/images/8287.jpg +data/images/8288.jpg +data/images/8289.jpg +data/images/8290.jpg +data/images/8292.jpg +data/images/8293.jpg +data/images/8294.jpg +data/images/8298.jpg +data/images/8299.jpg +data/images/8300.jpg +data/images/8301.jpg +data/images/8302.jpg +data/images/8303.jpg +data/images/8304.jpg +data/images/8305.jpg +data/images/8306.jpg +data/images/8307.jpg +data/images/8308.jpg +data/images/8309.jpg +data/images/8310.jpg +data/images/8311.jpg +data/images/8312.jpg +data/images/8313.jpg +data/images/8316.jpg +data/images/8319.jpg +data/images/8320.jpg +data/images/8321.jpg +data/images/8322.jpg +data/images/8323.jpg +data/images/8324.jpg +data/images/8325.jpg +data/images/8326.jpg +data/images/8327.jpg +data/images/8329.jpg +data/images/8330.jpg +data/images/8331.jpg +data/images/8332.jpg +data/images/8333.jpg +data/images/8334.jpg +data/images/8336.jpg +data/images/8337.jpg +data/images/8338.jpg +data/images/8339.jpg +data/images/8340.jpg +data/images/8341.jpg +data/images/8342.jpg +data/images/8343.jpg +data/images/8345.jpg +data/images/8346.jpg +data/images/8347.jpg +data/images/8348.jpg +data/images/8349.jpg +data/images/8351.jpg +data/images/8352.jpg +data/images/8353.jpg +data/images/8354.jpg +data/images/8355.jpg +data/images/8356.jpg +data/images/8358.jpg +data/images/8360.jpg +data/images/8361.jpg +data/images/8363.jpg +data/images/8364.jpg +data/images/8365.jpg +data/images/8366.jpg +data/images/8367.jpg +data/images/8368.jpg +data/images/8369.jpg +data/images/8370.jpg +data/images/8371.jpg +data/images/8372.jpg +data/images/8373.jpg +data/images/8375.jpg +data/images/8376.jpg +data/images/8377.jpg +data/images/8379.jpg +data/images/8380.jpg +data/images/8381.jpg +data/images/8382.jpg +data/images/8385.jpg +data/images/8386.jpg +data/images/8388.jpg +data/images/8389.jpg +data/images/8390.jpg +data/images/8391.jpg +data/images/8392.jpg +data/images/8393.jpg +data/images/8394.jpg +data/images/8396.jpg +data/images/8401.jpg +data/images/8402.jpg +data/images/8403.jpg +data/images/8405.jpg +data/images/8406.jpg +data/images/8407.jpg +data/images/8408.jpg +data/images/8409.jpg +data/images/8410.jpg +data/images/8411.jpg +data/images/8414.jpg +data/images/8415.jpg +data/images/8416.jpg +data/images/8417.jpg +data/images/8418.jpg +data/images/8420.jpg +data/images/8421.jpg +data/images/8422.jpg +data/images/8424.jpg +data/images/8425.jpg +data/images/8426.jpg +data/images/8427.jpg +data/images/8428.jpg +data/images/8430.jpg +data/images/8431.jpg +data/images/8432.jpg +data/images/8433.jpg +data/images/8434.jpg +data/images/8435.jpg +data/images/8436.jpg +data/images/8437.jpg +data/images/8438.jpg +data/images/8440.jpg +data/images/8441.jpg +data/images/8442.jpg +data/images/8443.jpg +data/images/8444.jpg +data/images/8445.jpg +data/images/8446.jpg +data/images/8447.jpg +data/images/8449.jpg +data/images/8450.jpg +data/images/8451.jpg +data/images/8452.jpg +data/images/8453.jpg +data/images/8454.jpg +data/images/8455.jpg +data/images/8456.jpg +data/images/8457.jpg +data/images/8458.jpg +data/images/8459.jpg +data/images/8460.jpg +data/images/8461.jpg +data/images/8462.jpg +data/images/8463.jpg +data/images/8464.jpg +data/images/8465.jpg +data/images/8466.jpg +data/images/8467.jpg +data/images/8468.jpg +data/images/8470.jpg +data/images/8471.jpg +data/images/8472.jpg +data/images/8473.jpg +data/images/8474.jpg +data/images/8475.jpg +data/images/8477.jpg +data/images/8479.jpg +data/images/8480.jpg +data/images/8482.jpg +data/images/8483.jpg +data/images/8484.jpg +data/images/8486.jpg +data/images/8487.jpg +data/images/8488.jpg +data/images/8490.jpg +data/images/8491.jpg +data/images/8493.jpg +data/images/8494.jpg +data/images/8495.jpg +data/images/8496.jpg +data/images/8497.jpg +data/images/8498.jpg +data/images/8499.jpg +data/images/8500.jpg +data/images/8503.jpg +data/images/8504.jpg +data/images/8505.jpg +data/images/8507.jpg +data/images/8508.jpg +data/images/8509.jpg +data/images/8510.jpg +data/images/8511.jpg +data/images/8512.jpg +data/images/8513.jpg +data/images/8514.jpg +data/images/8515.jpg +data/images/8516.jpg +data/images/8517.jpg +data/images/8520.jpg +data/images/8521.jpg +data/images/8522.jpg +data/images/8523.jpg +data/images/8524.jpg +data/images/8525.jpg +data/images/8526.jpg +data/images/8528.jpg +data/images/8529.jpg +data/images/8530.jpg +data/images/8531.jpg +data/images/8533.jpg +data/images/8534.jpg +data/images/8535.jpg +data/images/8536.jpg +data/images/8537.jpg +data/images/8538.jpg +data/images/8539.jpg +data/images/8540.jpg +data/images/8541.jpg +data/images/8542.jpg +data/images/8543.jpg +data/images/8544.jpg +data/images/8545.jpg +data/images/8546.jpg +data/images/8547.jpg +data/images/8548.jpg +data/images/8549.jpg +data/images/8550.jpg +data/images/8552.jpg +data/images/8554.jpg +data/images/8555.jpg +data/images/8556.jpg +data/images/8557.jpg +data/images/8560.jpg +data/images/8561.jpg +data/images/8562.jpg +data/images/8566.jpg +data/images/8567.jpg +data/images/8568.jpg +data/images/8569.jpg +data/images/8571.jpg +data/images/8574.jpg +data/images/8575.jpg +data/images/8576.jpg +data/images/8577.jpg +data/images/8578.jpg +data/images/8579.jpg +data/images/8581.jpg +data/images/8582.jpg +data/images/8583.jpg +data/images/8584.jpg +data/images/8585.jpg +data/images/8586.jpg +data/images/8587.jpg +data/images/8588.jpg +data/images/8589.jpg +data/images/8590.jpg +data/images/8591.jpg +data/images/8593.jpg +data/images/8594.jpg +data/images/8596.jpg +data/images/8597.jpg +data/images/8598.jpg +data/images/8599.jpg +data/images/8600.jpg +data/images/8601.jpg +data/images/8602.jpg +data/images/8603.jpg +data/images/8604.jpg +data/images/8605.jpg +data/images/8606.jpg +data/images/8607.jpg +data/images/8608.jpg +data/images/8609.jpg +data/images/8610.jpg +data/images/8611.jpg +data/images/8612.jpg +data/images/8613.jpg +data/images/8615.jpg +data/images/8617.jpg +data/images/8618.jpg +data/images/8619.jpg +data/images/8622.jpg +data/images/8623.jpg +data/images/8624.jpg +data/images/8625.jpg +data/images/8627.jpg +data/images/8628.jpg +data/images/8629.jpg +data/images/8630.jpg +data/images/8631.jpg +data/images/8632.jpg +data/images/8633.jpg +data/images/8636.jpg +data/images/8637.jpg +data/images/8638.jpg +data/images/8639.jpg +data/images/8640.jpg +data/images/8641.jpg +data/images/8642.jpg +data/images/8643.jpg +data/images/8644.jpg +data/images/8646.jpg +data/images/8648.jpg +data/images/8649.jpg +data/images/8650.jpg +data/images/8651.jpg +data/images/8652.jpg +data/images/8654.jpg +data/images/8655.jpg +data/images/8658.jpg +data/images/8660.jpg +data/images/8661.jpg +data/images/8662.jpg +data/images/8663.jpg +data/images/8664.jpg +data/images/8665.jpg +data/images/8666.jpg +data/images/8668.jpg +data/images/8669.jpg +data/images/8670.jpg +data/images/8671.jpg +data/images/8672.jpg +data/images/8673.jpg +data/images/8674.jpg +data/images/8675.jpg +data/images/8676.jpg +data/images/8677.jpg +data/images/8678.jpg +data/images/8679.jpg +data/images/8680.jpg +data/images/8682.jpg +data/images/8683.jpg +data/images/8684.jpg +data/images/8685.jpg +data/images/8688.jpg +data/images/8689.jpg +data/images/8690.jpg +data/images/8691.jpg +data/images/8692.jpg +data/images/8693.jpg +data/images/8694.jpg +data/images/8696.jpg +data/images/8699.jpg +data/images/8701.jpg +data/images/8702.jpg +data/images/8704.jpg +data/images/8705.jpg +data/images/8707.jpg +data/images/8708.jpg +data/images/8709.jpg +data/images/8713.jpg +data/images/8715.jpg +data/images/8716.jpg +data/images/8717.jpg +data/images/8718.jpg +data/images/8720.jpg +data/images/8723.jpg +data/images/8724.jpg +data/images/8725.jpg +data/images/8726.jpg +data/images/8727.jpg +data/images/8728.jpg +data/images/8729.jpg +data/images/8730.jpg +data/images/8731.jpg +data/images/8733.jpg +data/images/8734.jpg +data/images/8735.jpg +data/images/8736.jpg +data/images/8737.jpg +data/images/8738.jpg +data/images/8740.jpg +data/images/8742.jpg +data/images/8743.jpg +data/images/8744.jpg +data/images/8746.jpg +data/images/8747.jpg +data/images/8748.jpg +data/images/8749.jpg +data/images/8750.jpg +data/images/8751.jpg +data/images/8752.jpg +data/images/8753.jpg +data/images/8754.jpg +data/images/8755.jpg +data/images/8756.jpg +data/images/8757.jpg +data/images/8758.jpg +data/images/8761.jpg +data/images/8762.jpg +data/images/8763.jpg +data/images/8764.jpg +data/images/8765.jpg +data/images/8766.jpg +data/images/8768.jpg +data/images/8769.jpg +data/images/8770.jpg +data/images/8771.jpg +data/images/8773.jpg +data/images/8774.jpg +data/images/8776.jpg +data/images/8777.jpg +data/images/8778.jpg +data/images/8782.jpg +data/images/8783.jpg +data/images/8784.jpg +data/images/8785.jpg +data/images/8786.jpg +data/images/8787.jpg +data/images/8789.jpg +data/images/8791.jpg +data/images/8792.jpg +data/images/8794.jpg +data/images/8795.jpg +data/images/8796.jpg +data/images/8797.jpg +data/images/8798.jpg +data/images/8799.jpg +data/images/8800.jpg +data/images/8801.jpg +data/images/8802.jpg +data/images/8803.jpg +data/images/8804.jpg +data/images/8806.jpg +data/images/8807.jpg +data/images/8808.jpg +data/images/8809.jpg +data/images/8811.jpg +data/images/8812.jpg +data/images/8813.jpg +data/images/8814.jpg +data/images/8815.jpg +data/images/8816.jpg +data/images/8817.jpg +data/images/8818.jpg +data/images/8819.jpg +data/images/8820.jpg +data/images/8821.jpg +data/images/8822.jpg +data/images/8823.jpg +data/images/8824.jpg +data/images/8825.jpg +data/images/8826.jpg +data/images/8827.jpg +data/images/8828.jpg +data/images/8829.jpg +data/images/8831.jpg +data/images/8832.jpg +data/images/8833.jpg +data/images/8834.jpg +data/images/8836.jpg +data/images/8838.jpg +data/images/8839.jpg +data/images/8840.jpg +data/images/8841.jpg +data/images/8842.jpg +data/images/8844.jpg +data/images/8845.jpg +data/images/8846.jpg +data/images/8847.jpg +data/images/8849.jpg +data/images/8850.jpg +data/images/8851.jpg +data/images/8852.jpg +data/images/8853.jpg +data/images/8854.jpg +data/images/8856.jpg +data/images/8857.jpg +data/images/8858.jpg +data/images/8859.jpg +data/images/8860.jpg +data/images/8862.jpg +data/images/8864.jpg +data/images/8865.jpg +data/images/8866.jpg +data/images/8868.jpg +data/images/8869.jpg +data/images/8870.jpg +data/images/8871.jpg +data/images/8873.jpg +data/images/8875.jpg +data/images/8876.jpg +data/images/8877.jpg +data/images/8878.jpg +data/images/8879.jpg +data/images/8880.jpg +data/images/8881.jpg +data/images/8882.jpg +data/images/8883.jpg +data/images/8884.jpg +data/images/8885.jpg +data/images/8886.jpg +data/images/8887.jpg +data/images/8888.jpg +data/images/8890.jpg +data/images/8891.jpg +data/images/8893.jpg +data/images/8894.jpg +data/images/8895.jpg +data/images/8896.jpg +data/images/8898.jpg +data/images/8899.jpg +data/images/8900.jpg +data/images/8901.jpg +data/images/8902.jpg +data/images/8903.jpg +data/images/8904.jpg +data/images/8905.jpg +data/images/8906.jpg +data/images/8907.jpg +data/images/8909.jpg +data/images/8910.jpg +data/images/8911.jpg +data/images/8912.jpg +data/images/8913.jpg +data/images/8915.jpg +data/images/8916.jpg +data/images/8917.jpg +data/images/8918.jpg +data/images/8919.jpg +data/images/8921.jpg +data/images/8923.jpg +data/images/8924.jpg +data/images/8925.jpg +data/images/8926.jpg +data/images/8928.jpg +data/images/8929.jpg +data/images/8930.jpg +data/images/8931.jpg +data/images/8932.jpg +data/images/8933.jpg +data/images/8934.jpg +data/images/8935.jpg +data/images/8936.jpg +data/images/8937.jpg +data/images/8938.jpg +data/images/8939.jpg +data/images/8942.jpg +data/images/8943.jpg +data/images/8944.jpg +data/images/8945.jpg +data/images/8946.jpg +data/images/8948.jpg +data/images/8949.jpg +data/images/8950.jpg +data/images/8951.jpg +data/images/8952.jpg +data/images/8953.jpg +data/images/8954.jpg +data/images/8956.jpg +data/images/8957.jpg +data/images/8958.jpg +data/images/8959.jpg +data/images/8960.jpg +data/images/8961.jpg +data/images/8962.jpg +data/images/8963.jpg +data/images/8964.jpg +data/images/8966.jpg +data/images/8967.jpg +data/images/8968.jpg +data/images/8970.jpg +data/images/8972.jpg +data/images/8973.jpg +data/images/8974.jpg +data/images/8975.jpg +data/images/8976.jpg +data/images/8978.jpg +data/images/8979.jpg +data/images/8980.jpg +data/images/8982.jpg +data/images/8983.jpg +data/images/8984.jpg +data/images/8985.jpg +data/images/8987.jpg +data/images/8988.jpg +data/images/8989.jpg +data/images/8990.jpg +data/images/8991.jpg +data/images/8992.jpg +data/images/8994.jpg +data/images/8995.jpg +data/images/8996.jpg +data/images/8997.jpg +data/images/8998.jpg +data/images/9000.jpg +data/images/9002.jpg +data/images/9003.jpg +data/images/9004.jpg +data/images/9005.jpg +data/images/9006.jpg +data/images/9007.jpg +data/images/9008.jpg +data/images/9009.jpg +data/images/9010.jpg +data/images/9011.jpg +data/images/9012.jpg +data/images/9015.jpg +data/images/9016.jpg +data/images/9017.jpg +data/images/9018.jpg +data/images/9019.jpg +data/images/9020.jpg +data/images/9021.jpg +data/images/9022.jpg +data/images/9023.jpg +data/images/9024.jpg +data/images/9025.jpg +data/images/9026.jpg +data/images/9027.jpg +data/images/9028.jpg +data/images/9030.jpg +data/images/9031.jpg +data/images/9032.jpg +data/images/9034.jpg +data/images/9035.jpg +data/images/9037.jpg +data/images/9038.jpg +data/images/9039.jpg +data/images/9040.jpg +data/images/9041.jpg +data/images/9042.jpg +data/images/9043.jpg +data/images/9045.jpg +data/images/9046.jpg +data/images/9047.jpg +data/images/9048.jpg +data/images/9049.jpg +data/images/9050.jpg +data/images/9051.jpg +data/images/9053.jpg +data/images/9055.jpg +data/images/9059.jpg +data/images/9060.jpg +data/images/9061.jpg +data/images/9062.jpg +data/images/9064.jpg +data/images/9065.jpg +data/images/9066.jpg +data/images/9067.jpg +data/images/9068.jpg +data/images/9069.jpg +data/images/9070.jpg +data/images/9071.jpg +data/images/9072.jpg +data/images/9074.jpg +data/images/9076.jpg +data/images/9077.jpg +data/images/9079.jpg +data/images/9080.jpg +data/images/9081.jpg +data/images/9083.jpg +data/images/9085.jpg +data/images/9086.jpg +data/images/9087.jpg +data/images/9088.jpg +data/images/9089.jpg +data/images/9090.jpg +data/images/9091.jpg +data/images/9092.jpg +data/images/9093.jpg +data/images/9095.jpg +data/images/9096.jpg +data/images/9097.jpg +data/images/9098.jpg +data/images/9099.jpg +data/images/9100.jpg +data/images/9101.jpg +data/images/9102.jpg +data/images/9103.jpg +data/images/9104.jpg +data/images/9105.jpg +data/images/9106.jpg +data/images/9107.jpg +data/images/9108.jpg +data/images/9109.jpg +data/images/9110.jpg +data/images/9111.jpg +data/images/9112.jpg +data/images/9113.jpg +data/images/9114.jpg +data/images/9116.jpg +data/images/9118.jpg +data/images/9119.jpg +data/images/9120.jpg +data/images/9121.jpg +data/images/9123.jpg +data/images/9125.jpg +data/images/9126.jpg +data/images/9127.jpg +data/images/9129.jpg +data/images/9130.jpg +data/images/9131.jpg +data/images/9132.jpg +data/images/9133.jpg +data/images/9134.jpg +data/images/9136.jpg +data/images/9138.jpg +data/images/9140.jpg +data/images/9142.jpg +data/images/9143.jpg +data/images/9145.jpg +data/images/9146.jpg +data/images/9147.jpg +data/images/9148.jpg +data/images/9149.jpg +data/images/9150.jpg +data/images/9151.jpg +data/images/9152.jpg +data/images/9153.jpg +data/images/9154.jpg +data/images/9155.jpg +data/images/9156.jpg +data/images/9157.jpg +data/images/9158.jpg +data/images/9159.jpg +data/images/9160.jpg +data/images/9161.jpg +data/images/9162.jpg +data/images/9163.jpg +data/images/9164.jpg +data/images/9165.jpg +data/images/9166.jpg +data/images/9167.jpg +data/images/9168.jpg +data/images/9169.jpg +data/images/9172.jpg +data/images/9173.jpg +data/images/9174.jpg +data/images/9175.jpg +data/images/9176.jpg +data/images/9177.jpg +data/images/9178.jpg +data/images/9179.jpg +data/images/9180.jpg +data/images/9181.jpg +data/images/9185.jpg +data/images/9186.jpg +data/images/9187.jpg +data/images/9189.jpg +data/images/9190.jpg +data/images/9191.jpg +data/images/9192.jpg +data/images/9193.jpg +data/images/9194.jpg +data/images/9195.jpg +data/images/9197.jpg +data/images/9198.jpg +data/images/9199.jpg +data/images/9200.jpg +data/images/9201.jpg +data/images/9203.jpg +data/images/9204.jpg +data/images/9205.jpg +data/images/9208.jpg +data/images/9209.jpg +data/images/9211.jpg +data/images/9212.jpg +data/images/9214.jpg +data/images/9216.jpg +data/images/9219.jpg +data/images/9220.jpg +data/images/9221.jpg +data/images/9222.jpg +data/images/9223.jpg +data/images/9224.jpg +data/images/9225.jpg +data/images/9226.jpg +data/images/9227.jpg +data/images/9229.jpg +data/images/9231.jpg +data/images/9232.jpg +data/images/9233.jpg +data/images/9235.jpg +data/images/9236.jpg +data/images/9237.jpg +data/images/9238.jpg +data/images/9239.jpg +data/images/9241.jpg +data/images/9242.jpg +data/images/9243.jpg +data/images/9244.jpg +data/images/9245.jpg +data/images/9246.jpg +data/images/9247.jpg +data/images/9250.jpg +data/images/9251.jpg +data/images/9252.jpg +data/images/9256.jpg +data/images/9257.jpg +data/images/9258.jpg +data/images/9259.jpg +data/images/9261.jpg +data/images/9263.jpg +data/images/9265.jpg +data/images/9266.jpg +data/images/9269.jpg +data/images/9271.jpg +data/images/9272.jpg +data/images/9273.jpg +data/images/9275.jpg +data/images/9277.jpg +data/images/9280.jpg +data/images/9281.jpg +data/images/9282.jpg +data/images/9283.jpg +data/images/9284.jpg +data/images/9285.jpg +data/images/9286.jpg +data/images/9287.jpg +data/images/9288.jpg +data/images/9289.jpg +data/images/9290.jpg +data/images/9292.jpg +data/images/9293.jpg +data/images/9294.jpg +data/images/9295.jpg +data/images/9297.jpg +data/images/9298.jpg +data/images/9300.jpg +data/images/9301.jpg +data/images/9302.jpg +data/images/9303.jpg +data/images/9304.jpg +data/images/9305.jpg +data/images/9306.jpg +data/images/9308.jpg +data/images/9309.jpg +data/images/9310.jpg +data/images/9311.jpg +data/images/9312.jpg +data/images/9313.jpg +data/images/9314.jpg +data/images/9316.jpg +data/images/9317.jpg +data/images/9318.jpg +data/images/9319.jpg +data/images/9321.jpg +data/images/9322.jpg +data/images/9323.jpg +data/images/9324.jpg +data/images/9325.jpg +data/images/9326.jpg +data/images/9330.jpg +data/images/9331.jpg +data/images/9332.jpg +data/images/9333.jpg +data/images/9334.jpg +data/images/9335.jpg +data/images/9336.jpg +data/images/9337.jpg +data/images/9340.jpg +data/images/9341.jpg +data/images/9342.jpg +data/images/9343.jpg +data/images/9344.jpg +data/images/9346.jpg +data/images/9347.jpg +data/images/9348.jpg +data/images/9349.jpg +data/images/9350.jpg +data/images/9351.jpg +data/images/9353.jpg +data/images/9354.jpg +data/images/9355.jpg +data/images/9356.jpg +data/images/9358.jpg +data/images/9359.jpg +data/images/9360.jpg +data/images/9362.jpg +data/images/9363.jpg +data/images/9364.jpg +data/images/9365.jpg +data/images/9366.jpg +data/images/9367.jpg +data/images/9368.jpg +data/images/9369.jpg +data/images/9370.jpg +data/images/9371.jpg +data/images/9372.jpg +data/images/9374.jpg +data/images/9375.jpg +data/images/9376.jpg +data/images/9377.jpg +data/images/9378.jpg +data/images/9379.jpg +data/images/9381.jpg +data/images/9383.jpg +data/images/9384.jpg +data/images/9386.jpg +data/images/9387.jpg +data/images/9388.jpg +data/images/9389.jpg +data/images/9391.jpg +data/images/9392.jpg +data/images/9393.jpg +data/images/9394.jpg +data/images/9395.jpg +data/images/9396.jpg +data/images/9398.jpg +data/images/9399.jpg +data/images/9400.jpg +data/images/9401.jpg +data/images/9402.jpg +data/images/9403.jpg +data/images/9404.jpg +data/images/9405.jpg +data/images/9406.jpg +data/images/9407.jpg +data/images/9408.jpg +data/images/9409.jpg +data/images/9410.jpg +data/images/9411.jpg +data/images/9412.jpg +data/images/9413.jpg +data/images/9414.jpg +data/images/9416.jpg +data/images/9417.jpg +data/images/9418.jpg +data/images/9419.jpg +data/images/9420.jpg +data/images/9421.jpg +data/images/9422.jpg +data/images/9423.jpg +data/images/9425.jpg +data/images/9426.jpg +data/images/9427.jpg +data/images/9429.jpg +data/images/9431.jpg +data/images/9432.jpg +data/images/9434.jpg +data/images/9435.jpg +data/images/9436.jpg +data/images/9437.jpg +data/images/9443.jpg +data/images/9444.jpg +data/images/9445.jpg +data/images/9446.jpg +data/images/9447.jpg +data/images/9448.jpg +data/images/9449.jpg +data/images/9450.jpg +data/images/9451.jpg +data/images/9452.jpg +data/images/9453.jpg +data/images/9455.jpg +data/images/9456.jpg +data/images/9459.jpg +data/images/9460.jpg +data/images/9461.jpg +data/images/9462.jpg +data/images/9463.jpg +data/images/9464.jpg +data/images/9465.jpg +data/images/9468.jpg +data/images/9469.jpg +data/images/9470.jpg +data/images/9472.jpg +data/images/9473.jpg +data/images/9475.jpg +data/images/9478.jpg +data/images/9479.jpg +data/images/9480.jpg +data/images/9482.jpg +data/images/9484.jpg +data/images/9485.jpg +data/images/9486.jpg +data/images/9488.jpg +data/images/9489.jpg +data/images/9490.jpg +data/images/9491.jpg +data/images/9493.jpg +data/images/9494.jpg +data/images/9495.jpg +data/images/9496.jpg +data/images/9497.jpg +data/images/9498.jpg +data/images/9499.jpg +data/images/9503.jpg +data/images/9504.jpg +data/images/9505.jpg +data/images/9506.jpg +data/images/9507.jpg +data/images/9508.jpg +data/images/9511.jpg +data/images/9515.jpg +data/images/9516.jpg +data/images/9517.jpg +data/images/9519.jpg +data/images/9520.jpg +data/images/9521.jpg +data/images/9522.jpg +data/images/9523.jpg +data/images/9524.jpg +data/images/9525.jpg +data/images/9526.jpg +data/images/9527.jpg +data/images/9528.jpg +data/images/9529.jpg +data/images/9530.jpg +data/images/9531.jpg +data/images/9532.jpg +data/images/9533.jpg +data/images/9534.jpg +data/images/9537.jpg +data/images/9538.jpg +data/images/9539.jpg +data/images/9540.jpg +data/images/9541.jpg +data/images/9544.jpg +data/images/9545.jpg +data/images/9546.jpg +data/images/9550.jpg +data/images/9552.jpg +data/images/9553.jpg +data/images/9554.jpg +data/images/9555.jpg +data/images/9556.jpg +data/images/9557.jpg +data/images/9558.jpg +data/images/9559.jpg +data/images/9560.jpg +data/images/9561.jpg +data/images/9562.jpg +data/images/9563.jpg +data/images/9564.jpg +data/images/9565.jpg +data/images/9566.jpg +data/images/9567.jpg +data/images/9568.jpg +data/images/9569.jpg +data/images/9571.jpg +data/images/9572.jpg +data/images/9573.jpg +data/images/9574.jpg +data/images/9575.jpg +data/images/9576.jpg +data/images/9577.jpg +data/images/9579.jpg +data/images/9580.jpg +data/images/9581.jpg +data/images/9582.jpg +data/images/9583.jpg +data/images/9584.jpg +data/images/9589.jpg +data/images/9591.jpg +data/images/9592.jpg +data/images/9593.jpg +data/images/9596.jpg +data/images/9597.jpg +data/images/9598.jpg +data/images/9600.jpg +data/images/9602.jpg +data/images/9603.jpg +data/images/9605.jpg +data/images/9606.jpg +data/images/9607.jpg +data/images/9609.jpg +data/images/9611.jpg +data/images/9612.jpg +data/images/9614.jpg +data/images/9615.jpg +data/images/9617.jpg +data/images/9618.jpg +data/images/9619.jpg +data/images/9620.jpg +data/images/9621.jpg +data/images/9622.jpg +data/images/9623.jpg +data/images/9624.jpg +data/images/9625.jpg +data/images/9626.jpg +data/images/9627.jpg +data/images/9628.jpg +data/images/9630.jpg +data/images/9631.jpg +data/images/9632.jpg +data/images/9633.jpg +data/images/9634.jpg +data/images/9635.jpg +data/images/9637.jpg +data/images/9638.jpg +data/images/9639.jpg +data/images/9641.jpg +data/images/9643.jpg +data/images/9645.jpg +data/images/9646.jpg +data/images/9647.jpg +data/images/9648.jpg +data/images/9649.jpg +data/images/9650.jpg +data/images/9652.jpg +data/images/9653.jpg +data/images/9654.jpg +data/images/9655.jpg +data/images/9656.jpg +data/images/9657.jpg +data/images/9658.jpg +data/images/9659.jpg +data/images/9660.jpg +data/images/9662.jpg +data/images/9663.jpg +data/images/9664.jpg +data/images/9665.jpg +data/images/9666.jpg +data/images/9667.jpg +data/images/9669.jpg +data/images/9670.jpg +data/images/9672.jpg +data/images/9673.jpg +data/images/9674.jpg +data/images/9675.jpg +data/images/9676.jpg +data/images/9677.jpg +data/images/9678.jpg +data/images/9679.jpg +data/images/9680.jpg +data/images/9681.jpg +data/images/9682.jpg +data/images/9683.jpg +data/images/9684.jpg +data/images/9685.jpg +data/images/9686.jpg +data/images/9687.jpg +data/images/9688.jpg +data/images/9689.jpg +data/images/9690.jpg +data/images/9691.jpg +data/images/9693.jpg +data/images/9694.jpg +data/images/9695.jpg +data/images/9696.jpg +data/images/9697.jpg +data/images/9698.jpg +data/images/9699.jpg +data/images/9700.jpg +data/images/9701.jpg +data/images/9702.jpg +data/images/9703.jpg +data/images/9706.jpg +data/images/9708.jpg +data/images/9709.jpg +data/images/9710.jpg +data/images/9711.jpg +data/images/9712.jpg +data/images/9714.jpg +data/images/9715.jpg +data/images/9716.jpg +data/images/9717.jpg +data/images/9718.jpg +data/images/9719.jpg +data/images/9721.jpg +data/images/9722.jpg +data/images/9724.jpg +data/images/9725.jpg +data/images/9726.jpg +data/images/9727.jpg +data/images/9729.jpg +data/images/9730.jpg +data/images/9731.jpg +data/images/9735.jpg +data/images/9736.jpg +data/images/9738.jpg +data/images/9739.jpg +data/images/9740.jpg +data/images/9741.jpg +data/images/9743.jpg +data/images/9744.jpg +data/images/9745.jpg +data/images/9746.jpg +data/images/9747.jpg +data/images/9748.jpg +data/images/9749.jpg +data/images/9750.jpg +data/images/9751.jpg +data/images/9752.jpg +data/images/9753.jpg +data/images/9755.jpg +data/images/9757.jpg +data/images/9758.jpg +data/images/9759.jpg +data/images/9760.jpg +data/images/9761.jpg +data/images/9763.jpg +data/images/9764.jpg +data/images/9765.jpg +data/images/9766.jpg +data/images/9767.jpg +data/images/9768.jpg +data/images/9770.jpg +data/images/9771.jpg +data/images/9772.jpg +data/images/9773.jpg +data/images/9774.jpg +data/images/9775.jpg +data/images/9776.jpg +data/images/9777.jpg +data/images/9778.jpg +data/images/9780.jpg +data/images/9782.jpg +data/images/9783.jpg +data/images/9785.jpg +data/images/9786.jpg +data/images/9788.jpg +data/images/9790.jpg +data/images/9791.jpg +data/images/9792.jpg +data/images/9793.jpg +data/images/9794.jpg +data/images/9798.jpg +data/images/9799.jpg +data/images/9800.jpg +data/images/9802.jpg +data/images/9803.jpg +data/images/9804.jpg +data/images/9805.jpg +data/images/9806.jpg +data/images/9807.jpg +data/images/9808.jpg +data/images/9809.jpg +data/images/9811.jpg +data/images/9813.jpg +data/images/9814.jpg +data/images/9815.jpg +data/images/9816.jpg +data/images/9817.jpg +data/images/9818.jpg +data/images/9819.jpg +data/images/9820.jpg +data/images/9821.jpg +data/images/9823.jpg +data/images/9825.jpg +data/images/9827.jpg +data/images/9828.jpg +data/images/9829.jpg +data/images/9830.jpg +data/images/9831.jpg +data/images/9832.jpg +data/images/9833.jpg +data/images/9834.jpg +data/images/9835.jpg +data/images/9836.jpg +data/images/9837.jpg +data/images/9839.jpg +data/images/9840.jpg +data/images/9841.jpg +data/images/9842.jpg +data/images/9844.jpg +data/images/9845.jpg +data/images/9846.jpg +data/images/9847.jpg +data/images/9849.jpg +data/images/9851.jpg +data/images/9853.jpg +data/images/9854.jpg +data/images/9855.jpg +data/images/9856.jpg +data/images/9857.jpg +data/images/9858.jpg +data/images/9859.jpg +data/images/9861.jpg +data/images/9862.jpg +data/images/9864.jpg +data/images/9865.jpg +data/images/9866.jpg +data/images/9867.jpg +data/images/9868.jpg +data/images/9869.jpg +data/images/9870.jpg +data/images/9871.jpg +data/images/9872.jpg +data/images/9873.jpg +data/images/9874.jpg +data/images/9875.jpg +data/images/9876.jpg +data/images/9878.jpg +data/images/9879.jpg +data/images/9880.jpg +data/images/9881.jpg +data/images/9882.jpg +data/images/9883.jpg +data/images/9884.jpg +data/images/9885.jpg +data/images/9886.jpg +data/images/9887.jpg +data/images/9888.jpg +data/images/9889.jpg +data/images/9890.jpg +data/images/9891.jpg +data/images/9892.jpg +data/images/9893.jpg +data/images/9894.jpg +data/images/9897.jpg +data/images/9898.jpg +data/images/9900.jpg +data/images/9901.jpg +data/images/9902.jpg +data/images/9903.jpg +data/images/9904.jpg +data/images/9905.jpg +data/images/9906.jpg +data/images/9908.jpg +data/images/9909.jpg +data/images/9910.jpg +data/images/9911.jpg +data/images/9912.jpg +data/images/9913.jpg +data/images/9916.jpg +data/images/9921.jpg +data/images/9922.jpg +data/images/9923.jpg +data/images/9924.jpg +data/images/9925.jpg +data/images/9926.jpg +data/images/9928.jpg +data/images/9929.jpg +data/images/9930.jpg +data/images/9931.jpg +data/images/9932.jpg +data/images/9933.jpg +data/images/9934.jpg +data/images/9935.jpg +data/images/9936.jpg +data/images/9938.jpg +data/images/9939.jpg +data/images/9940.jpg +data/images/9941.jpg +data/images/9942.jpg +data/images/9943.jpg +data/images/9944.jpg +data/images/9945.jpg +data/images/9947.jpg +data/images/9948.jpg +data/images/9949.jpg +data/images/9950.jpg +data/images/9951.jpg +data/images/9952.jpg +data/images/9953.jpg +data/images/9954.jpg +data/images/9956.jpg +data/images/9958.jpg +data/images/9959.jpg +data/images/9960.jpg +data/images/9961.jpg +data/images/9962.jpg +data/images/9964.jpg +data/images/9965.jpg +data/images/9967.jpg +data/images/9968.jpg +data/images/9969.jpg +data/images/9970.jpg +data/images/9971.jpg +data/images/9973.jpg +data/images/9974.jpg +data/images/9975.jpg +data/images/9977.jpg +data/images/9979.jpg +data/images/9980.jpg +data/images/9981.jpg +data/images/9982.jpg +data/images/9983.jpg +data/images/9984.jpg +data/images/9986.jpg +data/images/9987.jpg +data/images/9988.jpg +data/images/9989.jpg +data/images/9990.jpg +data/images/9991.jpg +data/images/9992.jpg +data/images/9993.jpg +data/images/9994.jpg +data/images/9997.jpg +data/images/9998.jpg +data/images/9999.jpg +data/images/10000.jpg \ No newline at end of file diff --git a/data/train_2000.txt b/data/train_2000.txt new file mode 100644 index 0000000..31003a6 --- /dev/null +++ b/data/train_2000.txt @@ -0,0 +1,1590 @@ +data/images/0001.jpg +data/images/0002.jpg +data/images/0003.jpg +data/images/0004.jpg +data/images/0005.jpg +data/images/0007.jpg +data/images/0008.jpg +data/images/0011.jpg +data/images/0012.jpg +data/images/0013.jpg +data/images/0014.jpg +data/images/0015.jpg +data/images/0016.jpg +data/images/0017.jpg +data/images/0018.jpg +data/images/0019.jpg +data/images/0020.jpg +data/images/0021.jpg +data/images/0023.jpg +data/images/0024.jpg +data/images/0025.jpg +data/images/0026.jpg +data/images/0027.jpg +data/images/0028.jpg +data/images/0029.jpg +data/images/0030.jpg +data/images/0031.jpg +data/images/0032.jpg +data/images/0033.jpg +data/images/0034.jpg +data/images/0035.jpg +data/images/0036.jpg +data/images/0038.jpg +data/images/0042.jpg +data/images/0043.jpg +data/images/0045.jpg +data/images/0046.jpg +data/images/0047.jpg +data/images/0048.jpg +data/images/0049.jpg +data/images/0050.jpg +data/images/0051.jpg +data/images/0052.jpg +data/images/0054.jpg +data/images/0055.jpg +data/images/0056.jpg +data/images/0057.jpg +data/images/0058.jpg +data/images/0059.jpg +data/images/0060.jpg +data/images/0062.jpg +data/images/0063.jpg +data/images/0064.jpg +data/images/0065.jpg +data/images/0067.jpg +data/images/0068.jpg +data/images/0069.jpg +data/images/0070.jpg +data/images/0071.jpg +data/images/0073.jpg +data/images/0074.jpg +data/images/0075.jpg +data/images/0076.jpg +data/images/0079.jpg +data/images/0082.jpg +data/images/0083.jpg +data/images/0084.jpg +data/images/0085.jpg +data/images/0087.jpg +data/images/0088.jpg +data/images/0091.jpg +data/images/0092.jpg +data/images/0093.jpg +data/images/0094.jpg +data/images/0096.jpg +data/images/0097.jpg +data/images/0098.jpg +data/images/0099.jpg +data/images/0100.jpg +data/images/0101.jpg +data/images/0102.jpg +data/images/0103.jpg +data/images/0104.jpg +data/images/0105.jpg +data/images/0106.jpg +data/images/0107.jpg +data/images/0108.jpg +data/images/0111.jpg +data/images/0112.jpg +data/images/0113.jpg +data/images/0114.jpg +data/images/0115.jpg +data/images/0116.jpg +data/images/0117.jpg +data/images/0118.jpg +data/images/0119.jpg +data/images/0121.jpg +data/images/0126.jpg +data/images/0128.jpg +data/images/0129.jpg +data/images/0130.jpg +data/images/0131.jpg +data/images/0132.jpg +data/images/0133.jpg +data/images/0134.jpg +data/images/0136.jpg +data/images/0138.jpg +data/images/0139.jpg +data/images/0142.jpg +data/images/0143.jpg +data/images/0144.jpg +data/images/0145.jpg +data/images/0147.jpg +data/images/0148.jpg +data/images/0149.jpg +data/images/0150.jpg +data/images/0151.jpg +data/images/0152.jpg +data/images/0153.jpg +data/images/0154.jpg +data/images/0155.jpg +data/images/0156.jpg +data/images/0158.jpg +data/images/0160.jpg +data/images/0161.jpg +data/images/0163.jpg +data/images/0166.jpg +data/images/0167.jpg +data/images/0168.jpg +data/images/0170.jpg +data/images/0171.jpg +data/images/0172.jpg +data/images/0173.jpg +data/images/0174.jpg +data/images/0175.jpg +data/images/0176.jpg +data/images/0177.jpg +data/images/0179.jpg +data/images/0180.jpg +data/images/0181.jpg +data/images/0182.jpg +data/images/0184.jpg +data/images/0185.jpg +data/images/0186.jpg +data/images/0187.jpg +data/images/0188.jpg +data/images/0190.jpg +data/images/0191.jpg +data/images/0192.jpg +data/images/0194.jpg +data/images/0195.jpg +data/images/0197.jpg +data/images/0199.jpg +data/images/0200.jpg +data/images/0201.jpg +data/images/0202.jpg +data/images/0204.jpg +data/images/0205.jpg +data/images/0206.jpg +data/images/0207.jpg +data/images/0208.jpg +data/images/0209.jpg +data/images/0210.jpg +data/images/0211.jpg +data/images/0212.jpg +data/images/0213.jpg +data/images/0215.jpg +data/images/0216.jpg +data/images/0217.jpg +data/images/0220.jpg +data/images/0221.jpg +data/images/0222.jpg +data/images/0224.jpg +data/images/0225.jpg +data/images/0226.jpg +data/images/0227.jpg +data/images/0228.jpg +data/images/0230.jpg +data/images/0231.jpg +data/images/0233.jpg +data/images/0234.jpg +data/images/0235.jpg +data/images/0236.jpg +data/images/0237.jpg +data/images/0238.jpg +data/images/0239.jpg +data/images/0240.jpg +data/images/0241.jpg +data/images/0242.jpg +data/images/0243.jpg +data/images/0245.jpg +data/images/0246.jpg +data/images/0247.jpg +data/images/0250.jpg +data/images/0251.jpg +data/images/0252.jpg +data/images/0253.jpg +data/images/0254.jpg +data/images/0255.jpg +data/images/0257.jpg +data/images/0258.jpg +data/images/0259.jpg +data/images/0260.jpg +data/images/0261.jpg +data/images/0264.jpg +data/images/0265.jpg +data/images/0266.jpg +data/images/0267.jpg +data/images/0268.jpg +data/images/0269.jpg +data/images/0270.jpg +data/images/0271.jpg +data/images/0272.jpg +data/images/0273.jpg +data/images/0274.jpg +data/images/0275.jpg +data/images/0276.jpg +data/images/0277.jpg +data/images/0278.jpg +data/images/0279.jpg +data/images/0281.jpg +data/images/0282.jpg +data/images/0283.jpg +data/images/0284.jpg +data/images/0285.jpg +data/images/0286.jpg +data/images/0287.jpg +data/images/0288.jpg +data/images/0290.jpg +data/images/0291.jpg +data/images/0292.jpg +data/images/0293.jpg +data/images/0294.jpg +data/images/0295.jpg +data/images/0296.jpg +data/images/0297.jpg +data/images/0298.jpg +data/images/0299.jpg +data/images/0301.jpg +data/images/0302.jpg +data/images/0303.jpg +data/images/0304.jpg +data/images/0305.jpg +data/images/0307.jpg +data/images/0308.jpg +data/images/0310.jpg +data/images/0311.jpg +data/images/0312.jpg +data/images/0313.jpg +data/images/0315.jpg +data/images/0317.jpg +data/images/0318.jpg +data/images/0319.jpg +data/images/0321.jpg +data/images/0322.jpg +data/images/0323.jpg +data/images/0324.jpg +data/images/0325.jpg +data/images/0326.jpg +data/images/0327.jpg +data/images/0328.jpg +data/images/0329.jpg +data/images/0330.jpg +data/images/0331.jpg +data/images/0332.jpg +data/images/0333.jpg +data/images/0334.jpg +data/images/0335.jpg +data/images/0336.jpg +data/images/0337.jpg +data/images/0338.jpg +data/images/0339.jpg +data/images/0340.jpg +data/images/0341.jpg +data/images/0342.jpg +data/images/0343.jpg +data/images/0344.jpg +data/images/0345.jpg +data/images/0346.jpg +data/images/0347.jpg +data/images/0349.jpg +data/images/0350.jpg +data/images/0351.jpg +data/images/0352.jpg +data/images/0353.jpg +data/images/0354.jpg +data/images/0356.jpg +data/images/0357.jpg +data/images/0358.jpg +data/images/0359.jpg +data/images/0360.jpg +data/images/0363.jpg +data/images/0364.jpg +data/images/0366.jpg +data/images/0367.jpg +data/images/0370.jpg +data/images/0371.jpg +data/images/0372.jpg +data/images/0373.jpg +data/images/0374.jpg +data/images/0375.jpg +data/images/0377.jpg +data/images/0378.jpg +data/images/0379.jpg +data/images/0380.jpg +data/images/0381.jpg +data/images/0382.jpg +data/images/0384.jpg +data/images/0385.jpg +data/images/0386.jpg +data/images/0387.jpg +data/images/0388.jpg +data/images/0389.jpg +data/images/0391.jpg +data/images/0392.jpg +data/images/0393.jpg +data/images/0394.jpg +data/images/0395.jpg +data/images/0397.jpg +data/images/0398.jpg +data/images/0400.jpg +data/images/0401.jpg +data/images/0402.jpg +data/images/0403.jpg +data/images/0404.jpg +data/images/0405.jpg +data/images/0406.jpg +data/images/0407.jpg +data/images/0408.jpg +data/images/0409.jpg +data/images/0411.jpg +data/images/0412.jpg +data/images/0413.jpg +data/images/0414.jpg +data/images/0415.jpg +data/images/0416.jpg +data/images/0417.jpg +data/images/0418.jpg +data/images/0420.jpg +data/images/0422.jpg +data/images/0423.jpg +data/images/0424.jpg +data/images/0425.jpg +data/images/0426.jpg +data/images/0427.jpg +data/images/0428.jpg +data/images/0429.jpg +data/images/0430.jpg +data/images/0432.jpg +data/images/0433.jpg +data/images/0434.jpg +data/images/0436.jpg +data/images/0438.jpg +data/images/0439.jpg +data/images/0440.jpg +data/images/0442.jpg +data/images/0443.jpg +data/images/0444.jpg +data/images/0445.jpg +data/images/0446.jpg +data/images/0447.jpg +data/images/0448.jpg +data/images/0449.jpg +data/images/0450.jpg +data/images/0452.jpg +data/images/0453.jpg +data/images/0454.jpg +data/images/0455.jpg +data/images/0457.jpg +data/images/0458.jpg +data/images/0460.jpg +data/images/0461.jpg +data/images/0463.jpg +data/images/0464.jpg +data/images/0465.jpg +data/images/0466.jpg +data/images/0467.jpg +data/images/0468.jpg +data/images/0470.jpg +data/images/0473.jpg +data/images/0474.jpg +data/images/0475.jpg +data/images/0476.jpg +data/images/0477.jpg +data/images/0478.jpg +data/images/0481.jpg +data/images/0483.jpg +data/images/0484.jpg +data/images/0485.jpg +data/images/0486.jpg +data/images/0489.jpg +data/images/0491.jpg +data/images/0492.jpg +data/images/0493.jpg +data/images/0495.jpg +data/images/0496.jpg +data/images/0497.jpg +data/images/0498.jpg +data/images/0499.jpg +data/images/0500.jpg +data/images/0501.jpg +data/images/0502.jpg +data/images/0503.jpg +data/images/0504.jpg +data/images/0507.jpg +data/images/0508.jpg +data/images/0509.jpg +data/images/0511.jpg +data/images/0512.jpg +data/images/0514.jpg +data/images/0515.jpg +data/images/0516.jpg +data/images/0517.jpg +data/images/0518.jpg +data/images/0519.jpg +data/images/0520.jpg +data/images/0524.jpg +data/images/0525.jpg +data/images/0527.jpg +data/images/0528.jpg +data/images/0530.jpg +data/images/0531.jpg +data/images/0532.jpg +data/images/0533.jpg +data/images/0534.jpg +data/images/0535.jpg +data/images/0536.jpg +data/images/0537.jpg +data/images/0538.jpg +data/images/0539.jpg +data/images/0540.jpg +data/images/0542.jpg +data/images/0543.jpg +data/images/0544.jpg +data/images/0545.jpg +data/images/0546.jpg +data/images/0550.jpg +data/images/0551.jpg +data/images/0552.jpg +data/images/0553.jpg +data/images/0554.jpg +data/images/0555.jpg +data/images/0557.jpg +data/images/0558.jpg +data/images/0559.jpg +data/images/0560.jpg +data/images/0561.jpg +data/images/0562.jpg +data/images/0563.jpg +data/images/0565.jpg +data/images/0566.jpg +data/images/0567.jpg +data/images/0568.jpg +data/images/0569.jpg +data/images/0570.jpg +data/images/0571.jpg +data/images/0573.jpg +data/images/0574.jpg +data/images/0575.jpg +data/images/0576.jpg +data/images/0580.jpg +data/images/0581.jpg +data/images/0582.jpg +data/images/0583.jpg +data/images/0585.jpg +data/images/0587.jpg +data/images/0588.jpg +data/images/0589.jpg +data/images/0591.jpg +data/images/0592.jpg +data/images/0593.jpg +data/images/0594.jpg +data/images/0595.jpg +data/images/0597.jpg +data/images/0599.jpg +data/images/0601.jpg +data/images/0602.jpg +data/images/0604.jpg +data/images/0605.jpg +data/images/0607.jpg +data/images/0608.jpg +data/images/0609.jpg +data/images/0610.jpg +data/images/0611.jpg +data/images/0612.jpg +data/images/0613.jpg +data/images/0616.jpg +data/images/0617.jpg +data/images/0619.jpg +data/images/0620.jpg +data/images/0621.jpg +data/images/0623.jpg +data/images/0624.jpg +data/images/0626.jpg +data/images/0628.jpg +data/images/0629.jpg +data/images/0632.jpg +data/images/0633.jpg +data/images/0635.jpg +data/images/0636.jpg +data/images/0638.jpg +data/images/0639.jpg +data/images/0640.jpg +data/images/0641.jpg +data/images/0642.jpg +data/images/0643.jpg +data/images/0644.jpg +data/images/0645.jpg +data/images/0646.jpg +data/images/0647.jpg +data/images/0648.jpg +data/images/0651.jpg +data/images/0652.jpg +data/images/0653.jpg +data/images/0654.jpg +data/images/0655.jpg +data/images/0656.jpg +data/images/0657.jpg +data/images/0658.jpg +data/images/0659.jpg +data/images/0660.jpg +data/images/0662.jpg +data/images/0664.jpg +data/images/0665.jpg +data/images/0666.jpg +data/images/0667.jpg +data/images/0668.jpg +data/images/0669.jpg +data/images/0670.jpg +data/images/0672.jpg +data/images/0673.jpg +data/images/0675.jpg +data/images/0676.jpg +data/images/0677.jpg +data/images/0678.jpg +data/images/0680.jpg +data/images/0681.jpg +data/images/0682.jpg +data/images/0683.jpg +data/images/0685.jpg +data/images/0686.jpg +data/images/0687.jpg +data/images/0689.jpg +data/images/0691.jpg +data/images/0692.jpg +data/images/0693.jpg +data/images/0694.jpg +data/images/0695.jpg +data/images/0698.jpg +data/images/0699.jpg +data/images/0700.jpg +data/images/0701.jpg +data/images/0702.jpg +data/images/0703.jpg +data/images/0704.jpg +data/images/0705.jpg +data/images/0706.jpg +data/images/0707.jpg +data/images/0708.jpg +data/images/0709.jpg +data/images/0710.jpg +data/images/0711.jpg +data/images/0713.jpg +data/images/0714.jpg +data/images/0715.jpg +data/images/0716.jpg +data/images/0717.jpg +data/images/0719.jpg +data/images/0720.jpg +data/images/0721.jpg +data/images/0722.jpg +data/images/0723.jpg +data/images/0724.jpg +data/images/0725.jpg +data/images/0726.jpg +data/images/0727.jpg +data/images/0728.jpg +data/images/0730.jpg +data/images/0731.jpg +data/images/0732.jpg +data/images/0733.jpg +data/images/0734.jpg +data/images/0735.jpg +data/images/0736.jpg +data/images/0737.jpg +data/images/0738.jpg +data/images/0740.jpg +data/images/0741.jpg +data/images/0742.jpg +data/images/0743.jpg +data/images/0744.jpg +data/images/0745.jpg +data/images/0747.jpg +data/images/0749.jpg +data/images/0751.jpg +data/images/0752.jpg +data/images/0754.jpg +data/images/0757.jpg +data/images/0758.jpg +data/images/0759.jpg +data/images/0760.jpg +data/images/0761.jpg +data/images/0762.jpg +data/images/0763.jpg +data/images/0764.jpg +data/images/0767.jpg +data/images/0768.jpg +data/images/0769.jpg +data/images/0770.jpg +data/images/0771.jpg +data/images/0773.jpg +data/images/0774.jpg +data/images/0775.jpg +data/images/0776.jpg +data/images/0777.jpg +data/images/0778.jpg +data/images/0781.jpg +data/images/0783.jpg +data/images/0784.jpg +data/images/0786.jpg +data/images/0787.jpg +data/images/0788.jpg +data/images/0789.jpg +data/images/0792.jpg +data/images/0793.jpg +data/images/0794.jpg +data/images/0795.jpg +data/images/0796.jpg +data/images/0799.jpg +data/images/0800.jpg +data/images/0801.jpg +data/images/0802.jpg +data/images/0803.jpg +data/images/0804.jpg +data/images/0805.jpg +data/images/0806.jpg +data/images/0807.jpg +data/images/0808.jpg +data/images/0810.jpg +data/images/0811.jpg +data/images/0812.jpg +data/images/0813.jpg +data/images/0816.jpg +data/images/0817.jpg +data/images/0818.jpg +data/images/0819.jpg +data/images/0820.jpg +data/images/0821.jpg +data/images/0822.jpg +data/images/0823.jpg +data/images/0824.jpg +data/images/0826.jpg +data/images/0828.jpg +data/images/0829.jpg +data/images/0830.jpg +data/images/0831.jpg +data/images/0833.jpg +data/images/0834.jpg +data/images/0835.jpg +data/images/0836.jpg +data/images/0837.jpg +data/images/0838.jpg +data/images/0839.jpg +data/images/0840.jpg +data/images/0841.jpg +data/images/0842.jpg +data/images/0843.jpg +data/images/0844.jpg +data/images/0845.jpg +data/images/0846.jpg +data/images/0847.jpg +data/images/0848.jpg +data/images/0849.jpg +data/images/0850.jpg +data/images/0851.jpg +data/images/0853.jpg +data/images/0854.jpg +data/images/0855.jpg +data/images/0856.jpg +data/images/0858.jpg +data/images/0859.jpg +data/images/0861.jpg +data/images/0862.jpg +data/images/0863.jpg +data/images/0864.jpg +data/images/0868.jpg +data/images/0869.jpg +data/images/0870.jpg +data/images/0871.jpg +data/images/0872.jpg +data/images/0874.jpg +data/images/0875.jpg +data/images/0876.jpg +data/images/0877.jpg +data/images/0878.jpg +data/images/0879.jpg +data/images/0881.jpg +data/images/0882.jpg +data/images/0883.jpg +data/images/0884.jpg +data/images/0885.jpg +data/images/0886.jpg +data/images/0887.jpg +data/images/0888.jpg +data/images/0889.jpg +data/images/0890.jpg +data/images/0891.jpg +data/images/0893.jpg +data/images/0894.jpg +data/images/0895.jpg +data/images/0897.jpg +data/images/0898.jpg +data/images/0899.jpg +data/images/0900.jpg +data/images/0901.jpg +data/images/0902.jpg +data/images/0903.jpg +data/images/0904.jpg +data/images/0905.jpg +data/images/0906.jpg +data/images/0907.jpg +data/images/0908.jpg +data/images/0909.jpg +data/images/0910.jpg +data/images/0911.jpg +data/images/0912.jpg +data/images/0913.jpg +data/images/0914.jpg +data/images/0915.jpg +data/images/0916.jpg +data/images/0918.jpg +data/images/0920.jpg +data/images/0921.jpg +data/images/0922.jpg +data/images/0923.jpg +data/images/0926.jpg +data/images/0927.jpg +data/images/0928.jpg +data/images/0929.jpg +data/images/0930.jpg +data/images/0932.jpg +data/images/0933.jpg +data/images/0936.jpg +data/images/0937.jpg +data/images/0938.jpg +data/images/0940.jpg +data/images/0941.jpg +data/images/0942.jpg +data/images/0943.jpg +data/images/0944.jpg +data/images/0946.jpg +data/images/0947.jpg +data/images/0948.jpg +data/images/0949.jpg +data/images/0950.jpg +data/images/0951.jpg +data/images/0952.jpg +data/images/0953.jpg +data/images/0955.jpg +data/images/0956.jpg +data/images/0957.jpg +data/images/0958.jpg +data/images/0959.jpg +data/images/0960.jpg +data/images/0962.jpg +data/images/0963.jpg +data/images/0964.jpg +data/images/0965.jpg +data/images/0967.jpg +data/images/0969.jpg +data/images/0970.jpg +data/images/0971.jpg +data/images/0972.jpg +data/images/0973.jpg +data/images/0974.jpg +data/images/0977.jpg +data/images/0978.jpg +data/images/0979.jpg +data/images/0980.jpg +data/images/0981.jpg +data/images/0982.jpg +data/images/0983.jpg +data/images/0985.jpg +data/images/0986.jpg +data/images/0987.jpg +data/images/0988.jpg +data/images/0989.jpg +data/images/0990.jpg +data/images/0991.jpg +data/images/0992.jpg +data/images/0994.jpg +data/images/0995.jpg +data/images/0996.jpg +data/images/0997.jpg +data/images/0998.jpg +data/images/0999.jpg +data/images/1000.jpg +data/images/1001.jpg +data/images/1002.jpg +data/images/1004.jpg +data/images/1005.jpg +data/images/1006.jpg +data/images/1007.jpg +data/images/1008.jpg +data/images/1009.jpg +data/images/1010.jpg +data/images/1011.jpg +data/images/1012.jpg +data/images/1013.jpg +data/images/1014.jpg +data/images/1016.jpg +data/images/1019.jpg +data/images/1021.jpg +data/images/1022.jpg +data/images/1023.jpg +data/images/1024.jpg +data/images/1026.jpg +data/images/1028.jpg +data/images/1029.jpg +data/images/1030.jpg +data/images/1032.jpg +data/images/1033.jpg +data/images/1034.jpg +data/images/1035.jpg +data/images/1036.jpg +data/images/1037.jpg +data/images/1038.jpg +data/images/1040.jpg +data/images/1042.jpg +data/images/1043.jpg +data/images/1044.jpg +data/images/1045.jpg +data/images/1047.jpg +data/images/1048.jpg +data/images/1049.jpg +data/images/1051.jpg +data/images/1052.jpg +data/images/1053.jpg +data/images/1054.jpg +data/images/1055.jpg +data/images/1057.jpg +data/images/1058.jpg +data/images/1059.jpg +data/images/1060.jpg +data/images/1061.jpg +data/images/1062.jpg +data/images/1063.jpg +data/images/1064.jpg +data/images/1065.jpg +data/images/1066.jpg +data/images/1068.jpg +data/images/1070.jpg +data/images/1072.jpg +data/images/1073.jpg +data/images/1075.jpg +data/images/1076.jpg +data/images/1078.jpg +data/images/1079.jpg +data/images/1080.jpg +data/images/1081.jpg +data/images/1082.jpg +data/images/1084.jpg +data/images/1085.jpg +data/images/1086.jpg +data/images/1087.jpg +data/images/1088.jpg +data/images/1090.jpg +data/images/1091.jpg +data/images/1092.jpg +data/images/1094.jpg +data/images/1096.jpg +data/images/1097.jpg +data/images/1098.jpg +data/images/1099.jpg +data/images/1100.jpg +data/images/1103.jpg +data/images/1104.jpg +data/images/1106.jpg +data/images/1107.jpg +data/images/1108.jpg +data/images/1109.jpg +data/images/1110.jpg +data/images/1111.jpg +data/images/1113.jpg +data/images/1114.jpg +data/images/1115.jpg +data/images/1116.jpg +data/images/1117.jpg +data/images/1118.jpg +data/images/1119.jpg +data/images/1121.jpg +data/images/1122.jpg +data/images/1123.jpg +data/images/1125.jpg +data/images/1128.jpg +data/images/1130.jpg +data/images/1131.jpg +data/images/1132.jpg +data/images/1133.jpg +data/images/1134.jpg +data/images/1135.jpg +data/images/1136.jpg +data/images/1137.jpg +data/images/1138.jpg +data/images/1139.jpg +data/images/1140.jpg +data/images/1141.jpg +data/images/1143.jpg +data/images/1144.jpg +data/images/1146.jpg +data/images/1147.jpg +data/images/1148.jpg +data/images/1150.jpg +data/images/1151.jpg +data/images/1153.jpg +data/images/1155.jpg +data/images/1156.jpg +data/images/1158.jpg +data/images/1159.jpg +data/images/1160.jpg +data/images/1162.jpg +data/images/1163.jpg +data/images/1164.jpg +data/images/1168.jpg +data/images/1169.jpg +data/images/1170.jpg +data/images/1171.jpg +data/images/1172.jpg +data/images/1173.jpg +data/images/1174.jpg +data/images/1175.jpg +data/images/1176.jpg +data/images/1177.jpg +data/images/1180.jpg +data/images/1181.jpg +data/images/1182.jpg +data/images/1183.jpg +data/images/1184.jpg +data/images/1186.jpg +data/images/1188.jpg +data/images/1190.jpg +data/images/1192.jpg +data/images/1193.jpg +data/images/1194.jpg +data/images/1195.jpg +data/images/1196.jpg +data/images/1197.jpg +data/images/1198.jpg +data/images/1199.jpg +data/images/1200.jpg +data/images/1201.jpg +data/images/1202.jpg +data/images/1203.jpg +data/images/1204.jpg +data/images/1205.jpg +data/images/1206.jpg +data/images/1210.jpg +data/images/1211.jpg +data/images/1212.jpg +data/images/1213.jpg +data/images/1214.jpg +data/images/1215.jpg +data/images/1216.jpg +data/images/1219.jpg +data/images/1221.jpg +data/images/1223.jpg +data/images/1224.jpg +data/images/1225.jpg +data/images/1226.jpg +data/images/1228.jpg +data/images/1229.jpg +data/images/1230.jpg +data/images/1233.jpg +data/images/1234.jpg +data/images/1235.jpg +data/images/1237.jpg +data/images/1238.jpg +data/images/1239.jpg +data/images/1240.jpg +data/images/1241.jpg +data/images/1242.jpg +data/images/1243.jpg +data/images/1244.jpg +data/images/1246.jpg +data/images/1247.jpg +data/images/1248.jpg +data/images/1249.jpg +data/images/1250.jpg +data/images/1251.jpg +data/images/1252.jpg +data/images/1253.jpg +data/images/1254.jpg +data/images/1255.jpg +data/images/1257.jpg +data/images/1258.jpg +data/images/1259.jpg +data/images/1260.jpg +data/images/1261.jpg +data/images/1262.jpg +data/images/1263.jpg +data/images/1264.jpg +data/images/1265.jpg +data/images/1266.jpg +data/images/1267.jpg +data/images/1268.jpg +data/images/1269.jpg +data/images/1270.jpg +data/images/1271.jpg +data/images/1272.jpg +data/images/1274.jpg +data/images/1275.jpg +data/images/1277.jpg +data/images/1278.jpg +data/images/1279.jpg +data/images/1280.jpg +data/images/1281.jpg +data/images/1283.jpg +data/images/1284.jpg +data/images/1285.jpg +data/images/1286.jpg +data/images/1287.jpg +data/images/1288.jpg +data/images/1289.jpg +data/images/1291.jpg +data/images/1292.jpg +data/images/1294.jpg +data/images/1296.jpg +data/images/1298.jpg +data/images/1300.jpg +data/images/1301.jpg +data/images/1302.jpg +data/images/1303.jpg +data/images/1304.jpg +data/images/1306.jpg +data/images/1307.jpg +data/images/1308.jpg +data/images/1309.jpg +data/images/1310.jpg +data/images/1311.jpg +data/images/1312.jpg +data/images/1313.jpg +data/images/1314.jpg +data/images/1316.jpg +data/images/1318.jpg +data/images/1320.jpg +data/images/1321.jpg +data/images/1322.jpg +data/images/1323.jpg +data/images/1324.jpg +data/images/1325.jpg +data/images/1326.jpg +data/images/1327.jpg +data/images/1328.jpg +data/images/1329.jpg +data/images/1330.jpg +data/images/1331.jpg +data/images/1332.jpg +data/images/1333.jpg +data/images/1334.jpg +data/images/1335.jpg +data/images/1338.jpg +data/images/1339.jpg +data/images/1340.jpg +data/images/1341.jpg +data/images/1342.jpg +data/images/1345.jpg +data/images/1346.jpg +data/images/1348.jpg +data/images/1349.jpg +data/images/1350.jpg +data/images/1351.jpg +data/images/1352.jpg +data/images/1353.jpg +data/images/1354.jpg +data/images/1355.jpg +data/images/1357.jpg +data/images/1358.jpg +data/images/1359.jpg +data/images/1360.jpg +data/images/1361.jpg +data/images/1363.jpg +data/images/1364.jpg +data/images/1366.jpg +data/images/1367.jpg +data/images/1368.jpg +data/images/1369.jpg +data/images/1371.jpg +data/images/1373.jpg +data/images/1374.jpg +data/images/1376.jpg +data/images/1377.jpg +data/images/1379.jpg +data/images/1380.jpg +data/images/1381.jpg +data/images/1382.jpg +data/images/1384.jpg +data/images/1386.jpg +data/images/1387.jpg +data/images/1388.jpg +data/images/1389.jpg +data/images/1390.jpg +data/images/1391.jpg +data/images/1392.jpg +data/images/1394.jpg +data/images/1395.jpg +data/images/1396.jpg +data/images/1397.jpg +data/images/1399.jpg +data/images/1402.jpg +data/images/1403.jpg +data/images/1404.jpg +data/images/1405.jpg +data/images/1406.jpg +data/images/1407.jpg +data/images/1408.jpg +data/images/1410.jpg +data/images/1411.jpg +data/images/1412.jpg +data/images/1413.jpg +data/images/1414.jpg +data/images/1416.jpg +data/images/1418.jpg +data/images/1420.jpg +data/images/1421.jpg +data/images/1423.jpg +data/images/1424.jpg +data/images/1426.jpg +data/images/1427.jpg +data/images/1428.jpg +data/images/1430.jpg +data/images/1431.jpg +data/images/1432.jpg +data/images/1433.jpg +data/images/1434.jpg +data/images/1435.jpg +data/images/1436.jpg +data/images/1437.jpg +data/images/1438.jpg +data/images/1439.jpg +data/images/1440.jpg +data/images/1442.jpg +data/images/1444.jpg +data/images/1445.jpg +data/images/1446.jpg +data/images/1447.jpg +data/images/1449.jpg +data/images/1451.jpg +data/images/1452.jpg +data/images/1453.jpg +data/images/1455.jpg +data/images/1456.jpg +data/images/1458.jpg +data/images/1460.jpg +data/images/1461.jpg +data/images/1462.jpg +data/images/1463.jpg +data/images/1464.jpg +data/images/1467.jpg +data/images/1468.jpg +data/images/1469.jpg +data/images/1471.jpg +data/images/1472.jpg +data/images/1473.jpg +data/images/1474.jpg +data/images/1475.jpg +data/images/1476.jpg +data/images/1477.jpg +data/images/1478.jpg +data/images/1479.jpg +data/images/1482.jpg +data/images/1484.jpg +data/images/1487.jpg +data/images/1490.jpg +data/images/1492.jpg +data/images/1493.jpg +data/images/1494.jpg +data/images/1496.jpg +data/images/1497.jpg +data/images/1498.jpg +data/images/1500.jpg +data/images/1503.jpg +data/images/1504.jpg +data/images/1505.jpg +data/images/1506.jpg +data/images/1507.jpg +data/images/1508.jpg +data/images/1510.jpg +data/images/1511.jpg +data/images/1512.jpg +data/images/1513.jpg +data/images/1514.jpg +data/images/1515.jpg +data/images/1516.jpg +data/images/1517.jpg +data/images/1518.jpg +data/images/1519.jpg +data/images/1520.jpg +data/images/1521.jpg +data/images/1522.jpg +data/images/1523.jpg +data/images/1524.jpg +data/images/1525.jpg +data/images/1526.jpg +data/images/1528.jpg +data/images/1529.jpg +data/images/1531.jpg +data/images/1532.jpg +data/images/1533.jpg +data/images/1534.jpg +data/images/1536.jpg +data/images/1538.jpg +data/images/1539.jpg +data/images/1540.jpg +data/images/1541.jpg +data/images/1542.jpg +data/images/1543.jpg +data/images/1544.jpg +data/images/1545.jpg +data/images/1546.jpg +data/images/1547.jpg +data/images/1549.jpg +data/images/1550.jpg +data/images/1551.jpg +data/images/1553.jpg +data/images/1554.jpg +data/images/1555.jpg +data/images/1556.jpg +data/images/1557.jpg +data/images/1558.jpg +data/images/1559.jpg +data/images/1560.jpg +data/images/1561.jpg +data/images/1562.jpg +data/images/1563.jpg +data/images/1564.jpg +data/images/1565.jpg +data/images/1566.jpg +data/images/1567.jpg +data/images/1568.jpg +data/images/1569.jpg +data/images/1570.jpg +data/images/1571.jpg +data/images/1573.jpg +data/images/1574.jpg +data/images/1576.jpg +data/images/1577.jpg +data/images/1578.jpg +data/images/1579.jpg +data/images/1580.jpg +data/images/1581.jpg +data/images/1582.jpg +data/images/1583.jpg +data/images/1584.jpg +data/images/1585.jpg +data/images/1586.jpg +data/images/1587.jpg +data/images/1588.jpg +data/images/1589.jpg +data/images/1590.jpg +data/images/1592.jpg +data/images/1593.jpg +data/images/1594.jpg +data/images/1595.jpg +data/images/1598.jpg +data/images/1599.jpg +data/images/1601.jpg +data/images/1602.jpg +data/images/1603.jpg +data/images/1604.jpg +data/images/1606.jpg +data/images/1607.jpg +data/images/1608.jpg +data/images/1610.jpg +data/images/1611.jpg +data/images/1612.jpg +data/images/1613.jpg +data/images/1614.jpg +data/images/1615.jpg +data/images/1616.jpg +data/images/1617.jpg +data/images/1618.jpg +data/images/1619.jpg +data/images/1620.jpg +data/images/1621.jpg +data/images/1623.jpg +data/images/1625.jpg +data/images/1626.jpg +data/images/1627.jpg +data/images/1628.jpg +data/images/1629.jpg +data/images/1630.jpg +data/images/1631.jpg +data/images/1632.jpg +data/images/1633.jpg +data/images/1634.jpg +data/images/1636.jpg +data/images/1638.jpg +data/images/1639.jpg +data/images/1641.jpg +data/images/1642.jpg +data/images/1643.jpg +data/images/1644.jpg +data/images/1645.jpg +data/images/1647.jpg +data/images/1648.jpg +data/images/1649.jpg +data/images/1650.jpg +data/images/1652.jpg +data/images/1653.jpg +data/images/1654.jpg +data/images/1655.jpg +data/images/1656.jpg +data/images/1658.jpg +data/images/1659.jpg +data/images/1661.jpg +data/images/1662.jpg +data/images/1663.jpg +data/images/1664.jpg +data/images/1665.jpg +data/images/1667.jpg +data/images/1668.jpg +data/images/1669.jpg +data/images/1670.jpg +data/images/1671.jpg +data/images/1672.jpg +data/images/1673.jpg +data/images/1674.jpg +data/images/1675.jpg +data/images/1677.jpg +data/images/1678.jpg +data/images/1680.jpg +data/images/1682.jpg +data/images/1683.jpg +data/images/1685.jpg +data/images/1686.jpg +data/images/1687.jpg +data/images/1689.jpg +data/images/1690.jpg +data/images/1692.jpg +data/images/1693.jpg +data/images/1697.jpg +data/images/1698.jpg +data/images/1700.jpg +data/images/1701.jpg +data/images/1702.jpg +data/images/1703.jpg +data/images/1704.jpg +data/images/1705.jpg +data/images/1707.jpg +data/images/1708.jpg +data/images/1709.jpg +data/images/1710.jpg +data/images/1711.jpg +data/images/1713.jpg +data/images/1714.jpg +data/images/1715.jpg +data/images/1716.jpg +data/images/1717.jpg +data/images/1718.jpg +data/images/1719.jpg +data/images/1720.jpg +data/images/1723.jpg +data/images/1724.jpg +data/images/1725.jpg +data/images/1726.jpg +data/images/1727.jpg +data/images/1728.jpg +data/images/1729.jpg +data/images/1730.jpg +data/images/1731.jpg +data/images/1732.jpg +data/images/1733.jpg +data/images/1735.jpg +data/images/1738.jpg +data/images/1741.jpg +data/images/1742.jpg +data/images/1743.jpg +data/images/1744.jpg +data/images/1745.jpg +data/images/1746.jpg +data/images/1747.jpg +data/images/1748.jpg +data/images/1750.jpg +data/images/1751.jpg +data/images/1752.jpg +data/images/1753.jpg +data/images/1754.jpg +data/images/1755.jpg +data/images/1756.jpg +data/images/1757.jpg +data/images/1760.jpg +data/images/1761.jpg +data/images/1762.jpg +data/images/1763.jpg +data/images/1764.jpg +data/images/1765.jpg +data/images/1766.jpg +data/images/1767.jpg +data/images/1768.jpg +data/images/1769.jpg +data/images/1771.jpg +data/images/1773.jpg +data/images/1774.jpg +data/images/1775.jpg +data/images/1776.jpg +data/images/1779.jpg +data/images/1780.jpg +data/images/1781.jpg +data/images/1782.jpg +data/images/1785.jpg +data/images/1786.jpg +data/images/1788.jpg +data/images/1789.jpg +data/images/1790.jpg +data/images/1791.jpg +data/images/1792.jpg +data/images/1793.jpg +data/images/1794.jpg +data/images/1795.jpg +data/images/1796.jpg +data/images/1797.jpg +data/images/1800.jpg +data/images/1801.jpg +data/images/1802.jpg +data/images/1804.jpg +data/images/1806.jpg +data/images/1807.jpg +data/images/1808.jpg +data/images/1809.jpg +data/images/1810.jpg +data/images/1811.jpg +data/images/1812.jpg +data/images/1813.jpg +data/images/1814.jpg +data/images/1815.jpg +data/images/1816.jpg +data/images/1817.jpg +data/images/1819.jpg +data/images/1820.jpg +data/images/1821.jpg +data/images/1822.jpg +data/images/1823.jpg +data/images/1824.jpg +data/images/1825.jpg +data/images/1826.jpg +data/images/1827.jpg +data/images/1828.jpg +data/images/1831.jpg +data/images/1832.jpg +data/images/1833.jpg +data/images/1835.jpg +data/images/1836.jpg +data/images/1838.jpg +data/images/1839.jpg +data/images/1840.jpg +data/images/1841.jpg +data/images/1842.jpg +data/images/1843.jpg +data/images/1844.jpg +data/images/1845.jpg +data/images/1846.jpg +data/images/1847.jpg +data/images/1848.jpg +data/images/1849.jpg +data/images/1850.jpg +data/images/1851.jpg +data/images/1852.jpg +data/images/1853.jpg +data/images/1854.jpg +data/images/1855.jpg +data/images/1856.jpg +data/images/1858.jpg +data/images/1859.jpg +data/images/1860.jpg +data/images/1861.jpg +data/images/1862.jpg +data/images/1865.jpg +data/images/1866.jpg +data/images/1867.jpg +data/images/1868.jpg +data/images/1869.jpg +data/images/1870.jpg +data/images/1871.jpg +data/images/1872.jpg +data/images/1873.jpg +data/images/1874.jpg +data/images/1875.jpg +data/images/1876.jpg +data/images/1877.jpg +data/images/1878.jpg +data/images/1879.jpg +data/images/1880.jpg +data/images/1881.jpg +data/images/1882.jpg +data/images/1883.jpg +data/images/1884.jpg +data/images/1885.jpg +data/images/1887.jpg +data/images/1888.jpg +data/images/1889.jpg +data/images/1891.jpg +data/images/1892.jpg +data/images/1893.jpg +data/images/1894.jpg +data/images/1895.jpg +data/images/1896.jpg +data/images/1897.jpg +data/images/1898.jpg +data/images/1899.jpg +data/images/1900.jpg +data/images/1901.jpg +data/images/1902.jpg +data/images/1903.jpg +data/images/1905.jpg +data/images/1906.jpg +data/images/1907.jpg +data/images/1908.jpg +data/images/1910.jpg +data/images/1911.jpg +data/images/1912.jpg +data/images/1913.jpg +data/images/1914.jpg +data/images/1915.jpg +data/images/1916.jpg +data/images/1917.jpg +data/images/1918.jpg +data/images/1919.jpg +data/images/1920.jpg +data/images/1921.jpg +data/images/1926.jpg +data/images/1927.jpg +data/images/1929.jpg +data/images/1930.jpg +data/images/1931.jpg +data/images/1932.jpg +data/images/1934.jpg +data/images/1935.jpg +data/images/1937.jpg +data/images/1938.jpg +data/images/1940.jpg +data/images/1941.jpg +data/images/1942.jpg +data/images/1943.jpg +data/images/1944.jpg +data/images/1945.jpg +data/images/1946.jpg +data/images/1947.jpg +data/images/1948.jpg +data/images/1949.jpg +data/images/1951.jpg +data/images/1953.jpg +data/images/1954.jpg +data/images/1955.jpg +data/images/1957.jpg +data/images/1958.jpg +data/images/1959.jpg +data/images/1960.jpg +data/images/1961.jpg +data/images/1962.jpg +data/images/1963.jpg +data/images/1964.jpg +data/images/1966.jpg +data/images/1967.jpg +data/images/1969.jpg +data/images/1970.jpg +data/images/1972.jpg +data/images/1973.jpg +data/images/1974.jpg +data/images/1975.jpg +data/images/1976.jpg +data/images/1977.jpg +data/images/1978.jpg +data/images/1979.jpg +data/images/1980.jpg +data/images/1981.jpg +data/images/1982.jpg +data/images/1983.jpg +data/images/1984.jpg +data/images/1985.jpg +data/images/1987.jpg +data/images/1989.jpg +data/images/1990.jpg +data/images/1991.jpg +data/images/1992.jpg +data/images/1993.jpg +data/images/1994.jpg +data/images/1997.jpg +data/images/1998.jpg +data/images/1999.jpg +data/images/2000.jpg \ No newline at end of file diff --git a/data/valid.txt b/data/valid.txt new file mode 100644 index 0000000..4455a39 --- /dev/null +++ b/data/valid.txt @@ -0,0 +1,2065 @@ +data/images/0006.jpg +data/images/0009.jpg +data/images/0010.jpg +data/images/0022.jpg +data/images/0037.jpg +data/images/0039.jpg +data/images/0040.jpg +data/images/0041.jpg +data/images/0044.jpg +data/images/0053.jpg +data/images/0061.jpg +data/images/0066.jpg +data/images/0072.jpg +data/images/0077.jpg +data/images/0078.jpg +data/images/0080.jpg +data/images/0081.jpg +data/images/0086.jpg +data/images/0089.jpg +data/images/0090.jpg +data/images/0095.jpg +data/images/0109.jpg +data/images/0110.jpg +data/images/0120.jpg +data/images/0122.jpg +data/images/0123.jpg +data/images/0124.jpg +data/images/0125.jpg +data/images/0127.jpg +data/images/0135.jpg +data/images/0137.jpg +data/images/0140.jpg +data/images/0141.jpg +data/images/0146.jpg +data/images/0157.jpg +data/images/0159.jpg +data/images/0162.jpg +data/images/0164.jpg +data/images/0165.jpg +data/images/0169.jpg +data/images/0178.jpg +data/images/0183.jpg +data/images/0189.jpg +data/images/0193.jpg +data/images/0196.jpg +data/images/0198.jpg +data/images/0203.jpg +data/images/0214.jpg +data/images/0218.jpg +data/images/0219.jpg +data/images/0223.jpg +data/images/0229.jpg +data/images/0232.jpg +data/images/0244.jpg +data/images/0248.jpg +data/images/0249.jpg +data/images/0256.jpg +data/images/0262.jpg +data/images/0263.jpg +data/images/0280.jpg +data/images/0289.jpg +data/images/0300.jpg +data/images/0306.jpg +data/images/0309.jpg +data/images/0314.jpg +data/images/0316.jpg +data/images/0320.jpg +data/images/0348.jpg +data/images/0355.jpg +data/images/0361.jpg +data/images/0362.jpg +data/images/0365.jpg +data/images/0368.jpg +data/images/0369.jpg +data/images/0376.jpg +data/images/0383.jpg +data/images/0390.jpg +data/images/0396.jpg +data/images/0399.jpg +data/images/0410.jpg +data/images/0419.jpg +data/images/0421.jpg +data/images/0431.jpg +data/images/0435.jpg +data/images/0437.jpg +data/images/0441.jpg +data/images/0451.jpg +data/images/0456.jpg +data/images/0459.jpg +data/images/0462.jpg +data/images/0469.jpg +data/images/0471.jpg +data/images/0472.jpg +data/images/0479.jpg +data/images/0480.jpg +data/images/0482.jpg +data/images/0487.jpg +data/images/0488.jpg +data/images/0490.jpg +data/images/0494.jpg +data/images/0505.jpg +data/images/0506.jpg +data/images/0510.jpg +data/images/0513.jpg +data/images/0521.jpg +data/images/0522.jpg +data/images/0523.jpg +data/images/0526.jpg +data/images/0529.jpg +data/images/0541.jpg +data/images/0547.jpg +data/images/0548.jpg +data/images/0549.jpg +data/images/0556.jpg +data/images/0564.jpg +data/images/0572.jpg +data/images/0577.jpg +data/images/0578.jpg +data/images/0579.jpg +data/images/0584.jpg +data/images/0586.jpg +data/images/0590.jpg +data/images/0596.jpg +data/images/0598.jpg +data/images/0600.jpg +data/images/0603.jpg +data/images/0606.jpg +data/images/0614.jpg +data/images/0615.jpg +data/images/0618.jpg +data/images/0622.jpg +data/images/0625.jpg +data/images/0627.jpg +data/images/0630.jpg +data/images/0631.jpg +data/images/0634.jpg +data/images/0637.jpg +data/images/0649.jpg +data/images/0650.jpg +data/images/0661.jpg +data/images/0663.jpg +data/images/0671.jpg +data/images/0674.jpg +data/images/0679.jpg +data/images/0684.jpg +data/images/0688.jpg +data/images/0690.jpg +data/images/0696.jpg +data/images/0697.jpg +data/images/0712.jpg +data/images/0718.jpg +data/images/0729.jpg +data/images/0739.jpg +data/images/0746.jpg +data/images/0748.jpg +data/images/0750.jpg +data/images/0753.jpg +data/images/0755.jpg +data/images/0756.jpg +data/images/0765.jpg +data/images/0766.jpg +data/images/0772.jpg +data/images/0779.jpg +data/images/0780.jpg +data/images/0782.jpg +data/images/0785.jpg +data/images/0790.jpg +data/images/0791.jpg +data/images/0797.jpg +data/images/0798.jpg +data/images/0809.jpg +data/images/0814.jpg +data/images/0815.jpg +data/images/0825.jpg +data/images/0827.jpg +data/images/0832.jpg +data/images/0852.jpg +data/images/0857.jpg +data/images/0860.jpg +data/images/0865.jpg +data/images/0866.jpg +data/images/0867.jpg +data/images/0873.jpg +data/images/0880.jpg +data/images/0892.jpg +data/images/0896.jpg +data/images/0917.jpg +data/images/0919.jpg +data/images/0924.jpg +data/images/0925.jpg +data/images/0931.jpg +data/images/0934.jpg +data/images/0935.jpg +data/images/0939.jpg +data/images/0945.jpg +data/images/0954.jpg +data/images/0961.jpg +data/images/0966.jpg +data/images/0968.jpg +data/images/0975.jpg +data/images/0976.jpg +data/images/0984.jpg +data/images/0993.jpg +data/images/1003.jpg +data/images/1015.jpg +data/images/1017.jpg +data/images/1018.jpg +data/images/1020.jpg +data/images/1025.jpg +data/images/1027.jpg +data/images/1031.jpg +data/images/1039.jpg +data/images/1041.jpg +data/images/1046.jpg +data/images/1050.jpg +data/images/1056.jpg +data/images/1067.jpg +data/images/1069.jpg +data/images/1071.jpg +data/images/1074.jpg +data/images/1077.jpg +data/images/1083.jpg +data/images/1089.jpg +data/images/1093.jpg +data/images/1095.jpg +data/images/1101.jpg +data/images/1102.jpg +data/images/1105.jpg +data/images/1112.jpg +data/images/1120.jpg +data/images/1124.jpg +data/images/1126.jpg +data/images/1127.jpg +data/images/1129.jpg +data/images/1142.jpg +data/images/1145.jpg +data/images/1149.jpg +data/images/1152.jpg +data/images/1154.jpg +data/images/1157.jpg +data/images/1161.jpg +data/images/1165.jpg +data/images/1166.jpg +data/images/1167.jpg +data/images/1178.jpg +data/images/1179.jpg +data/images/1185.jpg +data/images/1187.jpg +data/images/1189.jpg +data/images/1191.jpg +data/images/1207.jpg +data/images/1208.jpg +data/images/1209.jpg +data/images/1217.jpg +data/images/1218.jpg +data/images/1220.jpg +data/images/1222.jpg +data/images/1227.jpg +data/images/1231.jpg +data/images/1232.jpg +data/images/1236.jpg +data/images/1245.jpg +data/images/1256.jpg +data/images/1273.jpg +data/images/1276.jpg +data/images/1282.jpg +data/images/1290.jpg +data/images/1293.jpg +data/images/1295.jpg +data/images/1297.jpg +data/images/1299.jpg +data/images/1305.jpg +data/images/1315.jpg +data/images/1317.jpg +data/images/1319.jpg +data/images/1336.jpg +data/images/1337.jpg +data/images/1343.jpg +data/images/1344.jpg +data/images/1347.jpg +data/images/1356.jpg +data/images/1362.jpg +data/images/1365.jpg +data/images/1370.jpg +data/images/1372.jpg +data/images/1375.jpg +data/images/1378.jpg +data/images/1383.jpg +data/images/1385.jpg +data/images/1393.jpg +data/images/1398.jpg +data/images/1400.jpg +data/images/1401.jpg +data/images/1409.jpg +data/images/1415.jpg +data/images/1417.jpg +data/images/1419.jpg +data/images/1422.jpg +data/images/1425.jpg +data/images/1429.jpg +data/images/1441.jpg +data/images/1443.jpg +data/images/1448.jpg +data/images/1450.jpg +data/images/1454.jpg +data/images/1457.jpg +data/images/1459.jpg +data/images/1465.jpg +data/images/1466.jpg +data/images/1470.jpg +data/images/1480.jpg +data/images/1481.jpg +data/images/1483.jpg +data/images/1485.jpg +data/images/1486.jpg +data/images/1488.jpg +data/images/1489.jpg +data/images/1491.jpg +data/images/1495.jpg +data/images/1499.jpg +data/images/1501.jpg +data/images/1502.jpg +data/images/1509.jpg +data/images/1527.jpg +data/images/1530.jpg +data/images/1535.jpg +data/images/1537.jpg +data/images/1548.jpg +data/images/1552.jpg +data/images/1572.jpg +data/images/1575.jpg +data/images/1591.jpg +data/images/1596.jpg +data/images/1597.jpg +data/images/1600.jpg +data/images/1605.jpg +data/images/1609.jpg +data/images/1622.jpg +data/images/1624.jpg +data/images/1635.jpg +data/images/1637.jpg +data/images/1640.jpg +data/images/1646.jpg +data/images/1651.jpg +data/images/1657.jpg +data/images/1660.jpg +data/images/1666.jpg +data/images/1676.jpg +data/images/1679.jpg +data/images/1681.jpg +data/images/1684.jpg +data/images/1688.jpg +data/images/1691.jpg +data/images/1694.jpg +data/images/1695.jpg +data/images/1696.jpg +data/images/1699.jpg +data/images/1706.jpg +data/images/1712.jpg +data/images/1721.jpg +data/images/1722.jpg +data/images/1734.jpg +data/images/1736.jpg +data/images/1737.jpg +data/images/1739.jpg +data/images/1740.jpg +data/images/1749.jpg +data/images/1758.jpg +data/images/1759.jpg +data/images/1770.jpg +data/images/1772.jpg +data/images/1777.jpg +data/images/1778.jpg +data/images/1783.jpg +data/images/1784.jpg +data/images/1787.jpg +data/images/1798.jpg +data/images/1799.jpg +data/images/1803.jpg +data/images/1805.jpg +data/images/1818.jpg +data/images/1829.jpg +data/images/1830.jpg +data/images/1834.jpg +data/images/1837.jpg +data/images/1857.jpg +data/images/1863.jpg +data/images/1864.jpg +data/images/1886.jpg +data/images/1890.jpg +data/images/1904.jpg +data/images/1909.jpg +data/images/1922.jpg +data/images/1923.jpg +data/images/1924.jpg +data/images/1925.jpg +data/images/1928.jpg +data/images/1933.jpg +data/images/1936.jpg +data/images/1939.jpg +data/images/1950.jpg +data/images/1952.jpg +data/images/1956.jpg +data/images/1965.jpg +data/images/1968.jpg +data/images/1971.jpg +data/images/1986.jpg +data/images/1988.jpg +data/images/1995.jpg +data/images/1996.jpg +data/images/2006.jpg +data/images/2008.jpg +data/images/2009.jpg +data/images/2012.jpg +data/images/2014.jpg +data/images/2023.jpg +data/images/2025.jpg +data/images/2029.jpg +data/images/2030.jpg +data/images/2037.jpg +data/images/2039.jpg +data/images/2055.jpg +data/images/2058.jpg +data/images/2060.jpg +data/images/2061.jpg +data/images/2070.jpg +data/images/2071.jpg +data/images/2073.jpg +data/images/2077.jpg +data/images/2087.jpg +data/images/2089.jpg +data/images/2092.jpg +data/images/2093.jpg +data/images/2098.jpg +data/images/2100.jpg +data/images/2103.jpg +data/images/2109.jpg +data/images/2110.jpg +data/images/2113.jpg +data/images/2116.jpg +data/images/2117.jpg +data/images/2125.jpg +data/images/2131.jpg +data/images/2135.jpg +data/images/2141.jpg +data/images/2144.jpg +data/images/2147.jpg +data/images/2165.jpg +data/images/2166.jpg +data/images/2169.jpg +data/images/2173.jpg +data/images/2176.jpg +data/images/2181.jpg +data/images/2185.jpg +data/images/2187.jpg +data/images/2198.jpg +data/images/2201.jpg +data/images/2207.jpg +data/images/2212.jpg +data/images/2213.jpg +data/images/2219.jpg +data/images/2220.jpg +data/images/2221.jpg +data/images/2229.jpg +data/images/2235.jpg +data/images/2246.jpg +data/images/2249.jpg +data/images/2255.jpg +data/images/2260.jpg +data/images/2261.jpg +data/images/2262.jpg +data/images/2265.jpg +data/images/2271.jpg +data/images/2274.jpg +data/images/2275.jpg +data/images/2276.jpg +data/images/2280.jpg +data/images/2286.jpg +data/images/2290.jpg +data/images/2291.jpg +data/images/2294.jpg +data/images/2299.jpg +data/images/2309.jpg +data/images/2312.jpg +data/images/2316.jpg +data/images/2334.jpg +data/images/2336.jpg +data/images/2351.jpg +data/images/2353.jpg +data/images/2355.jpg +data/images/2357.jpg +data/images/2359.jpg +data/images/2364.jpg +data/images/2366.jpg +data/images/2367.jpg +data/images/2371.jpg +data/images/2377.jpg +data/images/2384.jpg +data/images/2388.jpg +data/images/2394.jpg +data/images/2399.jpg +data/images/2403.jpg +data/images/2404.jpg +data/images/2405.jpg +data/images/2407.jpg +data/images/2411.jpg +data/images/2412.jpg +data/images/2414.jpg +data/images/2416.jpg +data/images/2419.jpg +data/images/2421.jpg +data/images/2422.jpg +data/images/2425.jpg +data/images/2432.jpg +data/images/2433.jpg +data/images/2437.jpg +data/images/2439.jpg +data/images/2441.jpg +data/images/2447.jpg +data/images/2450.jpg +data/images/2451.jpg +data/images/2452.jpg +data/images/2455.jpg +data/images/2456.jpg +data/images/2458.jpg +data/images/2463.jpg +data/images/2474.jpg +data/images/2481.jpg +data/images/2489.jpg +data/images/2498.jpg +data/images/2501.jpg +data/images/2506.jpg +data/images/2514.jpg +data/images/2521.jpg +data/images/2524.jpg +data/images/2526.jpg +data/images/2529.jpg +data/images/2530.jpg +data/images/2532.jpg +data/images/2542.jpg +data/images/2544.jpg +data/images/2545.jpg +data/images/2556.jpg +data/images/2567.jpg +data/images/2570.jpg +data/images/2572.jpg +data/images/2575.jpg +data/images/2579.jpg +data/images/2590.jpg +data/images/2592.jpg +data/images/2597.jpg +data/images/2601.jpg +data/images/2602.jpg +data/images/2612.jpg +data/images/2614.jpg +data/images/2615.jpg +data/images/2616.jpg +data/images/2617.jpg +data/images/2623.jpg +data/images/2624.jpg +data/images/2637.jpg +data/images/2638.jpg +data/images/2641.jpg +data/images/2646.jpg +data/images/2648.jpg +data/images/2652.jpg +data/images/2655.jpg +data/images/2660.jpg +data/images/2665.jpg +data/images/2670.jpg +data/images/2671.jpg +data/images/2672.jpg +data/images/2675.jpg +data/images/2683.jpg +data/images/2689.jpg +data/images/2701.jpg +data/images/2702.jpg +data/images/2703.jpg +data/images/2705.jpg +data/images/2710.jpg +data/images/2717.jpg +data/images/2722.jpg +data/images/2725.jpg +data/images/2728.jpg +data/images/2731.jpg +data/images/2737.jpg +data/images/2741.jpg +data/images/2744.jpg +data/images/2748.jpg +data/images/2752.jpg +data/images/2755.jpg +data/images/2756.jpg +data/images/2762.jpg +data/images/2770.jpg +data/images/2786.jpg +data/images/2788.jpg +data/images/2795.jpg +data/images/2797.jpg +data/images/2798.jpg +data/images/2809.jpg +data/images/2816.jpg +data/images/2828.jpg +data/images/2836.jpg +data/images/2840.jpg +data/images/2849.jpg +data/images/2853.jpg +data/images/2855.jpg +data/images/2864.jpg +data/images/2882.jpg +data/images/2884.jpg +data/images/2887.jpg +data/images/2891.jpg +data/images/2893.jpg +data/images/2900.jpg +data/images/2905.jpg +data/images/2920.jpg +data/images/2923.jpg +data/images/2931.jpg +data/images/2933.jpg +data/images/2936.jpg +data/images/2944.jpg +data/images/2945.jpg +data/images/2950.jpg +data/images/2954.jpg +data/images/2963.jpg +data/images/2967.jpg +data/images/2971.jpg +data/images/2982.jpg +data/images/2988.jpg +data/images/3000.jpg +data/images/3005.jpg +data/images/3010.jpg +data/images/3013.jpg +data/images/3015.jpg +data/images/3017.jpg +data/images/3022.jpg +data/images/3027.jpg +data/images/3029.jpg +data/images/3032.jpg +data/images/3040.jpg +data/images/3041.jpg +data/images/3047.jpg +data/images/3059.jpg +data/images/3066.jpg +data/images/3074.jpg +data/images/3075.jpg +data/images/3077.jpg +data/images/3088.jpg +data/images/3094.jpg +data/images/3096.jpg +data/images/3104.jpg +data/images/3107.jpg +data/images/3108.jpg +data/images/3114.jpg +data/images/3115.jpg +data/images/3117.jpg +data/images/3122.jpg +data/images/3126.jpg +data/images/3128.jpg +data/images/3140.jpg +data/images/3142.jpg +data/images/3143.jpg +data/images/3150.jpg +data/images/3152.jpg +data/images/3157.jpg +data/images/3159.jpg +data/images/3167.jpg +data/images/3174.jpg +data/images/3179.jpg +data/images/3187.jpg +data/images/3188.jpg +data/images/3194.jpg +data/images/3202.jpg +data/images/3205.jpg +data/images/3210.jpg +data/images/3211.jpg +data/images/3219.jpg +data/images/3222.jpg +data/images/3224.jpg +data/images/3233.jpg +data/images/3234.jpg +data/images/3235.jpg +data/images/3245.jpg +data/images/3246.jpg +data/images/3251.jpg +data/images/3253.jpg +data/images/3254.jpg +data/images/3268.jpg +data/images/3269.jpg +data/images/3270.jpg +data/images/3274.jpg +data/images/3292.jpg +data/images/3294.jpg +data/images/3299.jpg +data/images/3304.jpg +data/images/3310.jpg +data/images/3311.jpg +data/images/3319.jpg +data/images/3321.jpg +data/images/3325.jpg +data/images/3328.jpg +data/images/3335.jpg +data/images/3337.jpg +data/images/3338.jpg +data/images/3341.jpg +data/images/3347.jpg +data/images/3351.jpg +data/images/3353.jpg +data/images/3354.jpg +data/images/3363.jpg +data/images/3364.jpg +data/images/3369.jpg +data/images/3375.jpg +data/images/3379.jpg +data/images/3388.jpg +data/images/3394.jpg +data/images/3397.jpg +data/images/3401.jpg +data/images/3408.jpg +data/images/3411.jpg +data/images/3423.jpg +data/images/3425.jpg +data/images/3434.jpg +data/images/3436.jpg +data/images/3440.jpg +data/images/3445.jpg +data/images/3446.jpg +data/images/3449.jpg +data/images/3460.jpg +data/images/3463.jpg +data/images/3464.jpg +data/images/3465.jpg +data/images/3466.jpg +data/images/3467.jpg +data/images/3474.jpg +data/images/3484.jpg +data/images/3492.jpg +data/images/3496.jpg +data/images/3501.jpg +data/images/3505.jpg +data/images/3507.jpg +data/images/3517.jpg +data/images/3523.jpg +data/images/3531.jpg +data/images/3541.jpg +data/images/3549.jpg +data/images/3560.jpg +data/images/3576.jpg +data/images/3578.jpg +data/images/3584.jpg +data/images/3585.jpg +data/images/3589.jpg +data/images/3594.jpg +data/images/3599.jpg +data/images/3600.jpg +data/images/3601.jpg +data/images/3605.jpg +data/images/3610.jpg +data/images/3613.jpg +data/images/3616.jpg +data/images/3617.jpg +data/images/3620.jpg +data/images/3632.jpg +data/images/3634.jpg +data/images/3643.jpg +data/images/3651.jpg +data/images/3653.jpg +data/images/3654.jpg +data/images/3659.jpg +data/images/3661.jpg +data/images/3665.jpg +data/images/3667.jpg +data/images/3668.jpg +data/images/3672.jpg +data/images/3679.jpg +data/images/3685.jpg +data/images/3686.jpg +data/images/3693.jpg +data/images/3699.jpg +data/images/3707.jpg +data/images/3711.jpg +data/images/3718.jpg +data/images/3719.jpg +data/images/3722.jpg +data/images/3723.jpg +data/images/3728.jpg +data/images/3730.jpg +data/images/3733.jpg +data/images/3743.jpg +data/images/3753.jpg +data/images/3759.jpg +data/images/3764.jpg +data/images/3775.jpg +data/images/3781.jpg +data/images/3782.jpg +data/images/3801.jpg +data/images/3803.jpg +data/images/3807.jpg +data/images/3810.jpg +data/images/3815.jpg +data/images/3816.jpg +data/images/3817.jpg +data/images/3820.jpg +data/images/3828.jpg +data/images/3835.jpg +data/images/3837.jpg +data/images/3845.jpg +data/images/3846.jpg +data/images/3847.jpg +data/images/3848.jpg +data/images/3851.jpg +data/images/3856.jpg +data/images/3857.jpg +data/images/3870.jpg +data/images/3878.jpg +data/images/3886.jpg +data/images/3887.jpg +data/images/3890.jpg +data/images/3892.jpg +data/images/3893.jpg +data/images/3895.jpg +data/images/3903.jpg +data/images/3910.jpg +data/images/3929.jpg +data/images/3943.jpg +data/images/3948.jpg +data/images/3963.jpg +data/images/3966.jpg +data/images/3968.jpg +data/images/3970.jpg +data/images/3971.jpg +data/images/3975.jpg +data/images/3978.jpg +data/images/3986.jpg +data/images/3990.jpg +data/images/3991.jpg +data/images/4001.jpg +data/images/4011.jpg +data/images/4012.jpg +data/images/4033.jpg +data/images/4035.jpg +data/images/4041.jpg +data/images/4050.jpg +data/images/4052.jpg +data/images/4054.jpg +data/images/4056.jpg +data/images/4058.jpg +data/images/4067.jpg +data/images/4076.jpg +data/images/4080.jpg +data/images/4081.jpg +data/images/4085.jpg +data/images/4099.jpg +data/images/4103.jpg +data/images/4125.jpg +data/images/4128.jpg +data/images/4155.jpg +data/images/4158.jpg +data/images/4164.jpg +data/images/4166.jpg +data/images/4170.jpg +data/images/4175.jpg +data/images/4189.jpg +data/images/4196.jpg +data/images/4201.jpg +data/images/4203.jpg +data/images/4205.jpg +data/images/4206.jpg +data/images/4208.jpg +data/images/4212.jpg +data/images/4218.jpg +data/images/4223.jpg +data/images/4227.jpg +data/images/4229.jpg +data/images/4231.jpg +data/images/4233.jpg +data/images/4243.jpg +data/images/4246.jpg +data/images/4250.jpg +data/images/4252.jpg +data/images/4269.jpg +data/images/4272.jpg +data/images/4275.jpg +data/images/4276.jpg +data/images/4278.jpg +data/images/4291.jpg +data/images/4301.jpg +data/images/4308.jpg +data/images/4309.jpg +data/images/4316.jpg +data/images/4318.jpg +data/images/4330.jpg +data/images/4332.jpg +data/images/4334.jpg +data/images/4335.jpg +data/images/4341.jpg +data/images/4352.jpg +data/images/4357.jpg +data/images/4366.jpg +data/images/4368.jpg +data/images/4369.jpg +data/images/4370.jpg +data/images/4373.jpg +data/images/4381.jpg +data/images/4388.jpg +data/images/4396.jpg +data/images/4405.jpg +data/images/4413.jpg +data/images/4415.jpg +data/images/4424.jpg +data/images/4430.jpg +data/images/4435.jpg +data/images/4441.jpg +data/images/4445.jpg +data/images/4449.jpg +data/images/4452.jpg +data/images/4459.jpg +data/images/4468.jpg +data/images/4475.jpg +data/images/4477.jpg +data/images/4484.jpg +data/images/4485.jpg +data/images/4496.jpg +data/images/4499.jpg +data/images/4501.jpg +data/images/4502.jpg +data/images/4506.jpg +data/images/4508.jpg +data/images/4509.jpg +data/images/4521.jpg +data/images/4524.jpg +data/images/4526.jpg +data/images/4528.jpg +data/images/4530.jpg +data/images/4536.jpg +data/images/4554.jpg +data/images/4557.jpg +data/images/4558.jpg +data/images/4563.jpg +data/images/4564.jpg +data/images/4573.jpg +data/images/4583.jpg +data/images/4591.jpg +data/images/4593.jpg +data/images/4594.jpg +data/images/4599.jpg +data/images/4609.jpg +data/images/4612.jpg +data/images/4619.jpg +data/images/4629.jpg +data/images/4633.jpg +data/images/4634.jpg +data/images/4645.jpg +data/images/4650.jpg +data/images/4651.jpg +data/images/4653.jpg +data/images/4658.jpg +data/images/4663.jpg +data/images/4665.jpg +data/images/4670.jpg +data/images/4673.jpg +data/images/4674.jpg +data/images/4679.jpg +data/images/4680.jpg +data/images/4685.jpg +data/images/4693.jpg +data/images/4694.jpg +data/images/4701.jpg +data/images/4705.jpg +data/images/4710.jpg +data/images/4711.jpg +data/images/4712.jpg +data/images/4713.jpg +data/images/4715.jpg +data/images/4723.jpg +data/images/4732.jpg +data/images/4733.jpg +data/images/4734.jpg +data/images/4735.jpg +data/images/4737.jpg +data/images/4744.jpg +data/images/4756.jpg +data/images/4759.jpg +data/images/4764.jpg +data/images/4768.jpg +data/images/4770.jpg +data/images/4771.jpg +data/images/4773.jpg +data/images/4774.jpg +data/images/4776.jpg +data/images/4777.jpg +data/images/4779.jpg +data/images/4786.jpg +data/images/4789.jpg +data/images/4794.jpg +data/images/4798.jpg +data/images/4803.jpg +data/images/4807.jpg +data/images/4814.jpg +data/images/4829.jpg +data/images/4834.jpg +data/images/4838.jpg +data/images/4846.jpg +data/images/4847.jpg +data/images/4854.jpg +data/images/4866.jpg +data/images/4873.jpg +data/images/4874.jpg +data/images/4875.jpg +data/images/4877.jpg +data/images/4879.jpg +data/images/4880.jpg +data/images/4885.jpg +data/images/4886.jpg +data/images/4887.jpg +data/images/4894.jpg +data/images/4907.jpg +data/images/4909.jpg +data/images/4920.jpg +data/images/4921.jpg +data/images/4922.jpg +data/images/4924.jpg +data/images/4941.jpg +data/images/4943.jpg +data/images/4944.jpg +data/images/4955.jpg +data/images/4957.jpg +data/images/4964.jpg +data/images/4965.jpg +data/images/4971.jpg +data/images/4974.jpg +data/images/4976.jpg +data/images/4977.jpg +data/images/4979.jpg +data/images/4989.jpg +data/images/4991.jpg +data/images/4996.jpg +data/images/5001.jpg +data/images/5002.jpg +data/images/5007.jpg +data/images/5012.jpg +data/images/5030.jpg +data/images/5031.jpg +data/images/5033.jpg +data/images/5034.jpg +data/images/5039.jpg +data/images/5041.jpg +data/images/5049.jpg +data/images/5051.jpg +data/images/5053.jpg +data/images/5054.jpg +data/images/5055.jpg +data/images/5063.jpg +data/images/5070.jpg +data/images/5071.jpg +data/images/5073.jpg +data/images/5074.jpg +data/images/5075.jpg +data/images/5090.jpg +data/images/5091.jpg +data/images/5096.jpg +data/images/5098.jpg +data/images/5100.jpg +data/images/5104.jpg +data/images/5106.jpg +data/images/5119.jpg +data/images/5122.jpg +data/images/5127.jpg +data/images/5128.jpg +data/images/5136.jpg +data/images/5137.jpg +data/images/5139.jpg +data/images/5142.jpg +data/images/5153.jpg +data/images/5156.jpg +data/images/5157.jpg +data/images/5170.jpg +data/images/5178.jpg +data/images/5182.jpg +data/images/5184.jpg +data/images/5192.jpg +data/images/5203.jpg +data/images/5205.jpg +data/images/5213.jpg +data/images/5220.jpg +data/images/5221.jpg +data/images/5224.jpg +data/images/5226.jpg +data/images/5227.jpg +data/images/5234.jpg +data/images/5235.jpg +data/images/5236.jpg +data/images/5241.jpg +data/images/5243.jpg +data/images/5245.jpg +data/images/5248.jpg +data/images/5251.jpg +data/images/5253.jpg +data/images/5263.jpg +data/images/5266.jpg +data/images/5270.jpg +data/images/5275.jpg +data/images/5280.jpg +data/images/5282.jpg +data/images/5290.jpg +data/images/5297.jpg +data/images/5300.jpg +data/images/5304.jpg +data/images/5310.jpg +data/images/5316.jpg +data/images/5317.jpg +data/images/5324.jpg +data/images/5328.jpg +data/images/5329.jpg +data/images/5332.jpg +data/images/5338.jpg +data/images/5339.jpg +data/images/5340.jpg +data/images/5342.jpg +data/images/5344.jpg +data/images/5345.jpg +data/images/5347.jpg +data/images/5350.jpg +data/images/5357.jpg +data/images/5361.jpg +data/images/5368.jpg +data/images/5369.jpg +data/images/5370.jpg +data/images/5371.jpg +data/images/5376.jpg +data/images/5380.jpg +data/images/5381.jpg +data/images/5391.jpg +data/images/5396.jpg +data/images/5399.jpg +data/images/5401.jpg +data/images/5405.jpg +data/images/5406.jpg +data/images/5414.jpg +data/images/5418.jpg +data/images/5423.jpg +data/images/5427.jpg +data/images/5432.jpg +data/images/5434.jpg +data/images/5446.jpg +data/images/5447.jpg +data/images/5452.jpg +data/images/5455.jpg +data/images/5460.jpg +data/images/5468.jpg +data/images/5478.jpg +data/images/5481.jpg +data/images/5484.jpg +data/images/5485.jpg +data/images/5494.jpg +data/images/5497.jpg +data/images/5499.jpg +data/images/5509.jpg +data/images/5514.jpg +data/images/5525.jpg +data/images/5539.jpg +data/images/5540.jpg +data/images/5544.jpg +data/images/5549.jpg +data/images/5551.jpg +data/images/5561.jpg +data/images/5574.jpg +data/images/5577.jpg +data/images/5579.jpg +data/images/5580.jpg +data/images/5586.jpg +data/images/5587.jpg +data/images/5592.jpg +data/images/5597.jpg +data/images/5600.jpg +data/images/5602.jpg +data/images/5618.jpg +data/images/5622.jpg +data/images/5623.jpg +data/images/5624.jpg +data/images/5625.jpg +data/images/5638.jpg +data/images/5655.jpg +data/images/5658.jpg +data/images/5663.jpg +data/images/5677.jpg +data/images/5680.jpg +data/images/5685.jpg +data/images/5694.jpg +data/images/5715.jpg +data/images/5716.jpg +data/images/5717.jpg +data/images/5720.jpg +data/images/5725.jpg +data/images/5728.jpg +data/images/5729.jpg +data/images/5731.jpg +data/images/5736.jpg +data/images/5739.jpg +data/images/5742.jpg +data/images/5743.jpg +data/images/5746.jpg +data/images/5769.jpg +data/images/5774.jpg +data/images/5776.jpg +data/images/5778.jpg +data/images/5787.jpg +data/images/5789.jpg +data/images/5796.jpg +data/images/5797.jpg +data/images/5808.jpg +data/images/5815.jpg +data/images/5817.jpg +data/images/5824.jpg +data/images/5825.jpg +data/images/5831.jpg +data/images/5845.jpg +data/images/5852.jpg +data/images/5853.jpg +data/images/5863.jpg +data/images/5864.jpg +data/images/5865.jpg +data/images/5866.jpg +data/images/5867.jpg +data/images/5872.jpg +data/images/5876.jpg +data/images/5885.jpg +data/images/5888.jpg +data/images/5889.jpg +data/images/5896.jpg +data/images/5903.jpg +data/images/5904.jpg +data/images/5905.jpg +data/images/5906.jpg +data/images/5912.jpg +data/images/5918.jpg +data/images/5919.jpg +data/images/5920.jpg +data/images/5925.jpg +data/images/5930.jpg +data/images/5945.jpg +data/images/5952.jpg +data/images/5956.jpg +data/images/5958.jpg +data/images/5964.jpg +data/images/5978.jpg +data/images/5979.jpg +data/images/5981.jpg +data/images/5984.jpg +data/images/5986.jpg +data/images/5991.jpg +data/images/5993.jpg +data/images/5995.jpg +data/images/5997.jpg +data/images/5998.jpg +data/images/6001.jpg +data/images/6007.jpg +data/images/6017.jpg +data/images/6020.jpg +data/images/6021.jpg +data/images/6024.jpg +data/images/6025.jpg +data/images/6027.jpg +data/images/6030.jpg +data/images/6035.jpg +data/images/6036.jpg +data/images/6039.jpg +data/images/6040.jpg +data/images/6041.jpg +data/images/6045.jpg +data/images/6055.jpg +data/images/6056.jpg +data/images/6067.jpg +data/images/6074.jpg +data/images/6082.jpg +data/images/6084.jpg +data/images/6089.jpg +data/images/6090.jpg +data/images/6095.jpg +data/images/6097.jpg +data/images/6098.jpg +data/images/6101.jpg +data/images/6109.jpg +data/images/6110.jpg +data/images/6114.jpg +data/images/6124.jpg +data/images/6127.jpg +data/images/6128.jpg +data/images/6129.jpg +data/images/6132.jpg +data/images/6139.jpg +data/images/6145.jpg +data/images/6147.jpg +data/images/6149.jpg +data/images/6153.jpg +data/images/6162.jpg +data/images/6172.jpg +data/images/6174.jpg +data/images/6175.jpg +data/images/6178.jpg +data/images/6183.jpg +data/images/6186.jpg +data/images/6187.jpg +data/images/6189.jpg +data/images/6194.jpg +data/images/6209.jpg +data/images/6211.jpg +data/images/6213.jpg +data/images/6216.jpg +data/images/6220.jpg +data/images/6221.jpg +data/images/6222.jpg +data/images/6226.jpg +data/images/6243.jpg +data/images/6251.jpg +data/images/6267.jpg +data/images/6269.jpg +data/images/6276.jpg +data/images/6278.jpg +data/images/6282.jpg +data/images/6288.jpg +data/images/6298.jpg +data/images/6310.jpg +data/images/6311.jpg +data/images/6317.jpg +data/images/6324.jpg +data/images/6329.jpg +data/images/6336.jpg +data/images/6339.jpg +data/images/6340.jpg +data/images/6342.jpg +data/images/6344.jpg +data/images/6348.jpg +data/images/6350.jpg +data/images/6358.jpg +data/images/6361.jpg +data/images/6365.jpg +data/images/6367.jpg +data/images/6377.jpg +data/images/6390.jpg +data/images/6393.jpg +data/images/6398.jpg +data/images/6399.jpg +data/images/6400.jpg +data/images/6403.jpg +data/images/6405.jpg +data/images/6406.jpg +data/images/6409.jpg +data/images/6410.jpg +data/images/6416.jpg +data/images/6421.jpg +data/images/6427.jpg +data/images/6429.jpg +data/images/6434.jpg +data/images/6435.jpg +data/images/6441.jpg +data/images/6445.jpg +data/images/6449.jpg +data/images/6456.jpg +data/images/6461.jpg +data/images/6466.jpg +data/images/6468.jpg +data/images/6469.jpg +data/images/6472.jpg +data/images/6478.jpg +data/images/6481.jpg +data/images/6488.jpg +data/images/6503.jpg +data/images/6504.jpg +data/images/6505.jpg +data/images/6517.jpg +data/images/6528.jpg +data/images/6531.jpg +data/images/6532.jpg +data/images/6534.jpg +data/images/6548.jpg +data/images/6553.jpg +data/images/6558.jpg +data/images/6563.jpg +data/images/6574.jpg +data/images/6575.jpg +data/images/6577.jpg +data/images/6582.jpg +data/images/6584.jpg +data/images/6586.jpg +data/images/6587.jpg +data/images/6591.jpg +data/images/6596.jpg +data/images/6598.jpg +data/images/6603.jpg +data/images/6606.jpg +data/images/6610.jpg +data/images/6618.jpg +data/images/6627.jpg +data/images/6628.jpg +data/images/6643.jpg +data/images/6645.jpg +data/images/6657.jpg +data/images/6668.jpg +data/images/6677.jpg +data/images/6678.jpg +data/images/6690.jpg +data/images/6725.jpg +data/images/6730.jpg +data/images/6734.jpg +data/images/6746.jpg +data/images/6750.jpg +data/images/6753.jpg +data/images/6757.jpg +data/images/6758.jpg +data/images/6761.jpg +data/images/6769.jpg +data/images/6772.jpg +data/images/6773.jpg +data/images/6774.jpg +data/images/6778.jpg +data/images/6784.jpg +data/images/6785.jpg +data/images/6788.jpg +data/images/6793.jpg +data/images/6799.jpg +data/images/6801.jpg +data/images/6804.jpg +data/images/6808.jpg +data/images/6810.jpg +data/images/6828.jpg +data/images/6829.jpg +data/images/6832.jpg +data/images/6833.jpg +data/images/6836.jpg +data/images/6840.jpg +data/images/6843.jpg +data/images/6851.jpg +data/images/6852.jpg +data/images/6853.jpg +data/images/6857.jpg +data/images/6860.jpg +data/images/6865.jpg +data/images/6866.jpg +data/images/6870.jpg +data/images/6871.jpg +data/images/6876.jpg +data/images/6877.jpg +data/images/6879.jpg +data/images/6881.jpg +data/images/6891.jpg +data/images/6894.jpg +data/images/6901.jpg +data/images/6902.jpg +data/images/6905.jpg +data/images/6906.jpg +data/images/6907.jpg +data/images/6914.jpg +data/images/6916.jpg +data/images/6919.jpg +data/images/6920.jpg +data/images/6923.jpg +data/images/6926.jpg +data/images/6928.jpg +data/images/6939.jpg +data/images/6941.jpg +data/images/6942.jpg +data/images/6945.jpg +data/images/6954.jpg +data/images/6957.jpg +data/images/6963.jpg +data/images/6965.jpg +data/images/6966.jpg +data/images/6970.jpg +data/images/6975.jpg +data/images/6985.jpg +data/images/6987.jpg +data/images/6991.jpg +data/images/6994.jpg +data/images/6998.jpg +data/images/7000.jpg +data/images/7003.jpg +data/images/7017.jpg +data/images/7020.jpg +data/images/7032.jpg +data/images/7037.jpg +data/images/7038.jpg +data/images/7050.jpg +data/images/7052.jpg +data/images/7055.jpg +data/images/7057.jpg +data/images/7060.jpg +data/images/7067.jpg +data/images/7072.jpg +data/images/7079.jpg +data/images/7092.jpg +data/images/7095.jpg +data/images/7096.jpg +data/images/7104.jpg +data/images/7107.jpg +data/images/7109.jpg +data/images/7118.jpg +data/images/7124.jpg +data/images/7126.jpg +data/images/7128.jpg +data/images/7131.jpg +data/images/7136.jpg +data/images/7143.jpg +data/images/7159.jpg +data/images/7161.jpg +data/images/7162.jpg +data/images/7168.jpg +data/images/7169.jpg +data/images/7171.jpg +data/images/7179.jpg +data/images/7187.jpg +data/images/7198.jpg +data/images/7208.jpg +data/images/7223.jpg +data/images/7227.jpg +data/images/7233.jpg +data/images/7234.jpg +data/images/7242.jpg +data/images/7243.jpg +data/images/7248.jpg +data/images/7268.jpg +data/images/7270.jpg +data/images/7282.jpg +data/images/7289.jpg +data/images/7292.jpg +data/images/7293.jpg +data/images/7294.jpg +data/images/7297.jpg +data/images/7298.jpg +data/images/7303.jpg +data/images/7308.jpg +data/images/7312.jpg +data/images/7313.jpg +data/images/7325.jpg +data/images/7327.jpg +data/images/7332.jpg +data/images/7336.jpg +data/images/7339.jpg +data/images/7342.jpg +data/images/7344.jpg +data/images/7348.jpg +data/images/7349.jpg +data/images/7351.jpg +data/images/7360.jpg +data/images/7365.jpg +data/images/7385.jpg +data/images/7386.jpg +data/images/7387.jpg +data/images/7394.jpg +data/images/7395.jpg +data/images/7399.jpg +data/images/7407.jpg +data/images/7409.jpg +data/images/7414.jpg +data/images/7417.jpg +data/images/7428.jpg +data/images/7430.jpg +data/images/7434.jpg +data/images/7435.jpg +data/images/7436.jpg +data/images/7447.jpg +data/images/7448.jpg +data/images/7456.jpg +data/images/7479.jpg +data/images/7480.jpg +data/images/7482.jpg +data/images/7485.jpg +data/images/7491.jpg +data/images/7495.jpg +data/images/7501.jpg +data/images/7502.jpg +data/images/7519.jpg +data/images/7520.jpg +data/images/7521.jpg +data/images/7523.jpg +data/images/7536.jpg +data/images/7541.jpg +data/images/7544.jpg +data/images/7546.jpg +data/images/7552.jpg +data/images/7554.jpg +data/images/7560.jpg +data/images/7564.jpg +data/images/7575.jpg +data/images/7578.jpg +data/images/7579.jpg +data/images/7583.jpg +data/images/7586.jpg +data/images/7588.jpg +data/images/7589.jpg +data/images/7594.jpg +data/images/7603.jpg +data/images/7606.jpg +data/images/7608.jpg +data/images/7613.jpg +data/images/7614.jpg +data/images/7616.jpg +data/images/7619.jpg +data/images/7621.jpg +data/images/7628.jpg +data/images/7631.jpg +data/images/7634.jpg +data/images/7635.jpg +data/images/7637.jpg +data/images/7639.jpg +data/images/7640.jpg +data/images/7649.jpg +data/images/7651.jpg +data/images/7655.jpg +data/images/7661.jpg +data/images/7663.jpg +data/images/7678.jpg +data/images/7685.jpg +data/images/7689.jpg +data/images/7701.jpg +data/images/7704.jpg +data/images/7711.jpg +data/images/7716.jpg +data/images/7727.jpg +data/images/7729.jpg +data/images/7731.jpg +data/images/7734.jpg +data/images/7746.jpg +data/images/7749.jpg +data/images/7754.jpg +data/images/7756.jpg +data/images/7770.jpg +data/images/7771.jpg +data/images/7789.jpg +data/images/7791.jpg +data/images/7793.jpg +data/images/7798.jpg +data/images/7802.jpg +data/images/7805.jpg +data/images/7807.jpg +data/images/7808.jpg +data/images/7813.jpg +data/images/7823.jpg +data/images/7836.jpg +data/images/7840.jpg +data/images/7846.jpg +data/images/7860.jpg +data/images/7861.jpg +data/images/7862.jpg +data/images/7864.jpg +data/images/7865.jpg +data/images/7868.jpg +data/images/7869.jpg +data/images/7870.jpg +data/images/7872.jpg +data/images/7879.jpg +data/images/7883.jpg +data/images/7885.jpg +data/images/7886.jpg +data/images/7901.jpg +data/images/7902.jpg +data/images/7907.jpg +data/images/7918.jpg +data/images/7923.jpg +data/images/7924.jpg +data/images/7929.jpg +data/images/7936.jpg +data/images/7937.jpg +data/images/7964.jpg +data/images/7966.jpg +data/images/7973.jpg +data/images/7974.jpg +data/images/7976.jpg +data/images/7982.jpg +data/images/7985.jpg +data/images/7993.jpg +data/images/7997.jpg +data/images/8002.jpg +data/images/8004.jpg +data/images/8016.jpg +data/images/8018.jpg +data/images/8023.jpg +data/images/8032.jpg +data/images/8036.jpg +data/images/8047.jpg +data/images/8064.jpg +data/images/8071.jpg +data/images/8086.jpg +data/images/8091.jpg +data/images/8097.jpg +data/images/8099.jpg +data/images/8106.jpg +data/images/8108.jpg +data/images/8112.jpg +data/images/8116.jpg +data/images/8122.jpg +data/images/8124.jpg +data/images/8130.jpg +data/images/8131.jpg +data/images/8145.jpg +data/images/8154.jpg +data/images/8161.jpg +data/images/8167.jpg +data/images/8181.jpg +data/images/8182.jpg +data/images/8183.jpg +data/images/8184.jpg +data/images/8199.jpg +data/images/8215.jpg +data/images/8217.jpg +data/images/8228.jpg +data/images/8238.jpg +data/images/8240.jpg +data/images/8252.jpg +data/images/8266.jpg +data/images/8271.jpg +data/images/8272.jpg +data/images/8274.jpg +data/images/8278.jpg +data/images/8281.jpg +data/images/8282.jpg +data/images/8291.jpg +data/images/8295.jpg +data/images/8296.jpg +data/images/8297.jpg +data/images/8314.jpg +data/images/8315.jpg +data/images/8317.jpg +data/images/8318.jpg +data/images/8328.jpg +data/images/8335.jpg +data/images/8344.jpg +data/images/8350.jpg +data/images/8357.jpg +data/images/8359.jpg +data/images/8362.jpg +data/images/8374.jpg +data/images/8378.jpg +data/images/8383.jpg +data/images/8384.jpg +data/images/8387.jpg +data/images/8395.jpg +data/images/8397.jpg +data/images/8398.jpg +data/images/8399.jpg +data/images/8400.jpg +data/images/8404.jpg +data/images/8412.jpg +data/images/8413.jpg +data/images/8419.jpg +data/images/8423.jpg +data/images/8429.jpg +data/images/8439.jpg +data/images/8448.jpg +data/images/8469.jpg +data/images/8476.jpg +data/images/8478.jpg +data/images/8481.jpg +data/images/8485.jpg +data/images/8489.jpg +data/images/8492.jpg +data/images/8501.jpg +data/images/8502.jpg +data/images/8506.jpg +data/images/8518.jpg +data/images/8519.jpg +data/images/8527.jpg +data/images/8532.jpg +data/images/8551.jpg +data/images/8553.jpg +data/images/8558.jpg +data/images/8559.jpg +data/images/8563.jpg +data/images/8564.jpg +data/images/8565.jpg +data/images/8570.jpg +data/images/8572.jpg +data/images/8573.jpg +data/images/8580.jpg +data/images/8592.jpg +data/images/8595.jpg +data/images/8614.jpg +data/images/8616.jpg +data/images/8620.jpg +data/images/8621.jpg +data/images/8626.jpg +data/images/8634.jpg +data/images/8635.jpg +data/images/8645.jpg +data/images/8647.jpg +data/images/8653.jpg +data/images/8656.jpg +data/images/8657.jpg +data/images/8659.jpg +data/images/8667.jpg +data/images/8681.jpg +data/images/8686.jpg +data/images/8687.jpg +data/images/8695.jpg +data/images/8697.jpg +data/images/8698.jpg +data/images/8700.jpg +data/images/8703.jpg +data/images/8706.jpg +data/images/8710.jpg +data/images/8711.jpg +data/images/8712.jpg +data/images/8714.jpg +data/images/8719.jpg +data/images/8721.jpg +data/images/8722.jpg +data/images/8732.jpg +data/images/8739.jpg +data/images/8741.jpg +data/images/8745.jpg +data/images/8759.jpg +data/images/8760.jpg +data/images/8767.jpg +data/images/8772.jpg +data/images/8775.jpg +data/images/8779.jpg +data/images/8780.jpg +data/images/8781.jpg +data/images/8788.jpg +data/images/8790.jpg +data/images/8793.jpg +data/images/8805.jpg +data/images/8810.jpg +data/images/8830.jpg +data/images/8835.jpg +data/images/8837.jpg +data/images/8843.jpg +data/images/8848.jpg +data/images/8855.jpg +data/images/8861.jpg +data/images/8863.jpg +data/images/8867.jpg +data/images/8872.jpg +data/images/8874.jpg +data/images/8889.jpg +data/images/8892.jpg +data/images/8897.jpg +data/images/8908.jpg +data/images/8914.jpg +data/images/8920.jpg +data/images/8922.jpg +data/images/8927.jpg +data/images/8940.jpg +data/images/8941.jpg +data/images/8947.jpg +data/images/8955.jpg +data/images/8965.jpg +data/images/8969.jpg +data/images/8971.jpg +data/images/8977.jpg +data/images/8981.jpg +data/images/8986.jpg +data/images/8993.jpg +data/images/8999.jpg +data/images/9001.jpg +data/images/9013.jpg +data/images/9014.jpg +data/images/9029.jpg +data/images/9033.jpg +data/images/9036.jpg +data/images/9044.jpg +data/images/9052.jpg +data/images/9054.jpg +data/images/9056.jpg +data/images/9057.jpg +data/images/9058.jpg +data/images/9063.jpg +data/images/9073.jpg +data/images/9075.jpg +data/images/9078.jpg +data/images/9082.jpg +data/images/9084.jpg +data/images/9094.jpg +data/images/9115.jpg +data/images/9117.jpg +data/images/9122.jpg +data/images/9124.jpg +data/images/9128.jpg +data/images/9135.jpg +data/images/9137.jpg +data/images/9139.jpg +data/images/9141.jpg +data/images/9144.jpg +data/images/9170.jpg +data/images/9171.jpg +data/images/9182.jpg +data/images/9183.jpg +data/images/9184.jpg +data/images/9188.jpg +data/images/9196.jpg +data/images/9202.jpg +data/images/9206.jpg +data/images/9207.jpg +data/images/9210.jpg +data/images/9213.jpg +data/images/9215.jpg +data/images/9217.jpg +data/images/9218.jpg +data/images/9228.jpg +data/images/9230.jpg +data/images/9234.jpg +data/images/9240.jpg +data/images/9248.jpg +data/images/9249.jpg +data/images/9253.jpg +data/images/9254.jpg +data/images/9255.jpg +data/images/9260.jpg +data/images/9262.jpg +data/images/9264.jpg +data/images/9267.jpg +data/images/9268.jpg +data/images/9270.jpg +data/images/9274.jpg +data/images/9276.jpg +data/images/9278.jpg +data/images/9279.jpg +data/images/9291.jpg +data/images/9296.jpg +data/images/9299.jpg +data/images/9307.jpg +data/images/9315.jpg +data/images/9320.jpg +data/images/9327.jpg +data/images/9328.jpg +data/images/9329.jpg +data/images/9338.jpg +data/images/9339.jpg +data/images/9345.jpg +data/images/9352.jpg +data/images/9357.jpg +data/images/9361.jpg +data/images/9373.jpg +data/images/9380.jpg +data/images/9382.jpg +data/images/9385.jpg +data/images/9390.jpg +data/images/9397.jpg +data/images/9415.jpg +data/images/9424.jpg +data/images/9428.jpg +data/images/9430.jpg +data/images/9433.jpg +data/images/9438.jpg +data/images/9439.jpg +data/images/9440.jpg +data/images/9441.jpg +data/images/9442.jpg +data/images/9454.jpg +data/images/9457.jpg +data/images/9458.jpg +data/images/9466.jpg +data/images/9467.jpg +data/images/9471.jpg +data/images/9474.jpg +data/images/9476.jpg +data/images/9477.jpg +data/images/9481.jpg +data/images/9483.jpg +data/images/9487.jpg +data/images/9492.jpg +data/images/9500.jpg +data/images/9501.jpg +data/images/9502.jpg +data/images/9509.jpg +data/images/9510.jpg +data/images/9512.jpg +data/images/9513.jpg +data/images/9514.jpg +data/images/9518.jpg +data/images/9535.jpg +data/images/9536.jpg +data/images/9542.jpg +data/images/9543.jpg +data/images/9547.jpg +data/images/9548.jpg +data/images/9549.jpg +data/images/9551.jpg +data/images/9570.jpg +data/images/9578.jpg +data/images/9585.jpg +data/images/9586.jpg +data/images/9587.jpg +data/images/9588.jpg +data/images/9590.jpg +data/images/9594.jpg +data/images/9595.jpg +data/images/9599.jpg +data/images/9601.jpg +data/images/9604.jpg +data/images/9608.jpg +data/images/9610.jpg +data/images/9613.jpg +data/images/9616.jpg +data/images/9629.jpg +data/images/9636.jpg +data/images/9640.jpg +data/images/9642.jpg +data/images/9644.jpg +data/images/9651.jpg +data/images/9661.jpg +data/images/9668.jpg +data/images/9671.jpg +data/images/9692.jpg +data/images/9704.jpg +data/images/9705.jpg +data/images/9707.jpg +data/images/9713.jpg +data/images/9720.jpg +data/images/9723.jpg +data/images/9728.jpg +data/images/9732.jpg +data/images/9733.jpg +data/images/9734.jpg +data/images/9737.jpg +data/images/9742.jpg +data/images/9754.jpg +data/images/9756.jpg +data/images/9762.jpg +data/images/9769.jpg +data/images/9779.jpg +data/images/9781.jpg +data/images/9784.jpg +data/images/9787.jpg +data/images/9789.jpg +data/images/9795.jpg +data/images/9796.jpg +data/images/9797.jpg +data/images/9801.jpg +data/images/9810.jpg +data/images/9812.jpg +data/images/9822.jpg +data/images/9824.jpg +data/images/9826.jpg +data/images/9838.jpg +data/images/9843.jpg +data/images/9848.jpg +data/images/9850.jpg +data/images/9852.jpg +data/images/9860.jpg +data/images/9863.jpg +data/images/9877.jpg +data/images/9895.jpg +data/images/9896.jpg +data/images/9899.jpg +data/images/9907.jpg +data/images/9914.jpg +data/images/9915.jpg +data/images/9917.jpg +data/images/9918.jpg +data/images/9919.jpg +data/images/9920.jpg +data/images/9927.jpg +data/images/9937.jpg +data/images/9946.jpg +data/images/9955.jpg +data/images/9957.jpg +data/images/9963.jpg +data/images/9966.jpg +data/images/9972.jpg +data/images/9976.jpg +data/images/9978.jpg +data/images/9985.jpg +data/images/9995.jpg +data/images/9996.jpg \ No newline at end of file diff --git a/data/valid_2000.txt b/data/valid_2000.txt new file mode 100644 index 0000000..da19cb4 --- /dev/null +++ b/data/valid_2000.txt @@ -0,0 +1,410 @@ +data/images/0006.jpg +data/images/0009.jpg +data/images/0010.jpg +data/images/0022.jpg +data/images/0037.jpg +data/images/0039.jpg +data/images/0040.jpg +data/images/0041.jpg +data/images/0044.jpg +data/images/0053.jpg +data/images/0061.jpg +data/images/0066.jpg +data/images/0072.jpg +data/images/0077.jpg +data/images/0078.jpg +data/images/0080.jpg +data/images/0081.jpg +data/images/0086.jpg +data/images/0089.jpg +data/images/0090.jpg +data/images/0095.jpg +data/images/0109.jpg +data/images/0110.jpg +data/images/0120.jpg +data/images/0122.jpg +data/images/0123.jpg +data/images/0124.jpg +data/images/0125.jpg +data/images/0127.jpg +data/images/0135.jpg +data/images/0137.jpg +data/images/0140.jpg +data/images/0141.jpg +data/images/0146.jpg +data/images/0157.jpg +data/images/0159.jpg +data/images/0162.jpg +data/images/0164.jpg +data/images/0165.jpg +data/images/0169.jpg +data/images/0178.jpg +data/images/0183.jpg +data/images/0189.jpg +data/images/0193.jpg +data/images/0196.jpg +data/images/0198.jpg +data/images/0203.jpg +data/images/0214.jpg +data/images/0218.jpg +data/images/0219.jpg +data/images/0223.jpg +data/images/0229.jpg +data/images/0232.jpg +data/images/0244.jpg +data/images/0248.jpg +data/images/0249.jpg +data/images/0256.jpg +data/images/0262.jpg +data/images/0263.jpg +data/images/0280.jpg +data/images/0289.jpg +data/images/0300.jpg +data/images/0306.jpg +data/images/0309.jpg +data/images/0314.jpg +data/images/0316.jpg +data/images/0320.jpg +data/images/0348.jpg +data/images/0355.jpg +data/images/0361.jpg +data/images/0362.jpg +data/images/0365.jpg +data/images/0368.jpg +data/images/0369.jpg +data/images/0376.jpg +data/images/0383.jpg +data/images/0390.jpg +data/images/0396.jpg +data/images/0399.jpg +data/images/0410.jpg +data/images/0419.jpg +data/images/0421.jpg +data/images/0431.jpg +data/images/0435.jpg +data/images/0437.jpg +data/images/0441.jpg +data/images/0451.jpg +data/images/0456.jpg +data/images/0459.jpg +data/images/0462.jpg +data/images/0469.jpg +data/images/0471.jpg +data/images/0472.jpg +data/images/0479.jpg +data/images/0480.jpg +data/images/0482.jpg +data/images/0487.jpg +data/images/0488.jpg +data/images/0490.jpg +data/images/0494.jpg +data/images/0505.jpg +data/images/0506.jpg +data/images/0510.jpg +data/images/0513.jpg +data/images/0521.jpg +data/images/0522.jpg +data/images/0523.jpg +data/images/0526.jpg +data/images/0529.jpg +data/images/0541.jpg +data/images/0547.jpg +data/images/0548.jpg +data/images/0549.jpg +data/images/0556.jpg +data/images/0564.jpg +data/images/0572.jpg +data/images/0577.jpg +data/images/0578.jpg +data/images/0579.jpg +data/images/0584.jpg +data/images/0586.jpg +data/images/0590.jpg +data/images/0596.jpg +data/images/0598.jpg +data/images/0600.jpg +data/images/0603.jpg +data/images/0606.jpg +data/images/0614.jpg +data/images/0615.jpg +data/images/0618.jpg +data/images/0622.jpg +data/images/0625.jpg +data/images/0627.jpg +data/images/0630.jpg +data/images/0631.jpg +data/images/0634.jpg +data/images/0637.jpg +data/images/0649.jpg +data/images/0650.jpg +data/images/0661.jpg +data/images/0663.jpg +data/images/0671.jpg +data/images/0674.jpg +data/images/0679.jpg +data/images/0684.jpg +data/images/0688.jpg +data/images/0690.jpg +data/images/0696.jpg +data/images/0697.jpg +data/images/0712.jpg +data/images/0718.jpg +data/images/0729.jpg +data/images/0739.jpg +data/images/0746.jpg +data/images/0748.jpg +data/images/0750.jpg +data/images/0753.jpg +data/images/0755.jpg +data/images/0756.jpg +data/images/0765.jpg +data/images/0766.jpg +data/images/0772.jpg +data/images/0779.jpg +data/images/0780.jpg +data/images/0782.jpg +data/images/0785.jpg +data/images/0790.jpg +data/images/0791.jpg +data/images/0797.jpg +data/images/0798.jpg +data/images/0809.jpg +data/images/0814.jpg +data/images/0815.jpg +data/images/0825.jpg +data/images/0827.jpg +data/images/0832.jpg +data/images/0852.jpg +data/images/0857.jpg +data/images/0860.jpg +data/images/0865.jpg +data/images/0866.jpg +data/images/0867.jpg +data/images/0873.jpg +data/images/0880.jpg +data/images/0892.jpg +data/images/0896.jpg +data/images/0917.jpg +data/images/0919.jpg +data/images/0924.jpg +data/images/0925.jpg +data/images/0931.jpg +data/images/0934.jpg +data/images/0935.jpg +data/images/0939.jpg +data/images/0945.jpg +data/images/0954.jpg +data/images/0961.jpg +data/images/0966.jpg +data/images/0968.jpg +data/images/0975.jpg +data/images/0976.jpg +data/images/0984.jpg +data/images/0993.jpg +data/images/1003.jpg +data/images/1015.jpg +data/images/1017.jpg +data/images/1018.jpg +data/images/1020.jpg +data/images/1025.jpg +data/images/1027.jpg +data/images/1031.jpg +data/images/1039.jpg +data/images/1041.jpg +data/images/1046.jpg +data/images/1050.jpg +data/images/1056.jpg +data/images/1067.jpg +data/images/1069.jpg +data/images/1071.jpg +data/images/1074.jpg +data/images/1077.jpg +data/images/1083.jpg +data/images/1089.jpg +data/images/1093.jpg +data/images/1095.jpg +data/images/1101.jpg +data/images/1102.jpg +data/images/1105.jpg +data/images/1112.jpg +data/images/1120.jpg +data/images/1124.jpg +data/images/1126.jpg +data/images/1127.jpg +data/images/1129.jpg +data/images/1142.jpg +data/images/1145.jpg +data/images/1149.jpg +data/images/1152.jpg +data/images/1154.jpg +data/images/1157.jpg +data/images/1161.jpg +data/images/1165.jpg +data/images/1166.jpg +data/images/1167.jpg +data/images/1178.jpg +data/images/1179.jpg +data/images/1185.jpg +data/images/1187.jpg +data/images/1189.jpg +data/images/1191.jpg +data/images/1207.jpg +data/images/1208.jpg +data/images/1209.jpg +data/images/1217.jpg +data/images/1218.jpg +data/images/1220.jpg +data/images/1222.jpg +data/images/1227.jpg +data/images/1231.jpg +data/images/1232.jpg +data/images/1236.jpg +data/images/1245.jpg +data/images/1256.jpg +data/images/1273.jpg +data/images/1276.jpg +data/images/1282.jpg +data/images/1290.jpg +data/images/1293.jpg +data/images/1295.jpg +data/images/1297.jpg +data/images/1299.jpg +data/images/1305.jpg +data/images/1315.jpg +data/images/1317.jpg +data/images/1319.jpg +data/images/1336.jpg +data/images/1337.jpg +data/images/1343.jpg +data/images/1344.jpg +data/images/1347.jpg +data/images/1356.jpg +data/images/1362.jpg +data/images/1365.jpg +data/images/1370.jpg +data/images/1372.jpg +data/images/1375.jpg +data/images/1378.jpg +data/images/1383.jpg +data/images/1385.jpg +data/images/1393.jpg +data/images/1398.jpg +data/images/1400.jpg +data/images/1401.jpg +data/images/1409.jpg +data/images/1415.jpg +data/images/1417.jpg +data/images/1419.jpg +data/images/1422.jpg +data/images/1425.jpg +data/images/1429.jpg +data/images/1441.jpg +data/images/1443.jpg +data/images/1448.jpg +data/images/1450.jpg +data/images/1454.jpg +data/images/1457.jpg +data/images/1459.jpg +data/images/1465.jpg +data/images/1466.jpg +data/images/1470.jpg +data/images/1480.jpg +data/images/1481.jpg +data/images/1483.jpg +data/images/1485.jpg +data/images/1486.jpg +data/images/1488.jpg +data/images/1489.jpg +data/images/1491.jpg +data/images/1495.jpg +data/images/1499.jpg +data/images/1501.jpg +data/images/1502.jpg +data/images/1509.jpg +data/images/1527.jpg +data/images/1530.jpg +data/images/1535.jpg +data/images/1537.jpg +data/images/1548.jpg +data/images/1552.jpg +data/images/1572.jpg +data/images/1575.jpg +data/images/1591.jpg +data/images/1596.jpg +data/images/1597.jpg +data/images/1600.jpg +data/images/1605.jpg +data/images/1609.jpg +data/images/1622.jpg +data/images/1624.jpg +data/images/1635.jpg +data/images/1637.jpg +data/images/1640.jpg +data/images/1646.jpg +data/images/1651.jpg +data/images/1657.jpg +data/images/1660.jpg +data/images/1666.jpg +data/images/1676.jpg +data/images/1679.jpg +data/images/1681.jpg +data/images/1684.jpg +data/images/1688.jpg +data/images/1691.jpg +data/images/1694.jpg +data/images/1695.jpg +data/images/1696.jpg +data/images/1699.jpg +data/images/1706.jpg +data/images/1712.jpg +data/images/1721.jpg +data/images/1722.jpg +data/images/1734.jpg +data/images/1736.jpg +data/images/1737.jpg +data/images/1739.jpg +data/images/1740.jpg +data/images/1749.jpg +data/images/1758.jpg +data/images/1759.jpg +data/images/1770.jpg +data/images/1772.jpg +data/images/1777.jpg +data/images/1778.jpg +data/images/1783.jpg +data/images/1784.jpg +data/images/1787.jpg +data/images/1798.jpg +data/images/1799.jpg +data/images/1803.jpg +data/images/1805.jpg +data/images/1818.jpg +data/images/1829.jpg +data/images/1830.jpg +data/images/1834.jpg +data/images/1837.jpg +data/images/1857.jpg +data/images/1863.jpg +data/images/1864.jpg +data/images/1886.jpg +data/images/1890.jpg +data/images/1904.jpg +data/images/1909.jpg +data/images/1922.jpg +data/images/1923.jpg +data/images/1924.jpg +data/images/1925.jpg +data/images/1928.jpg +data/images/1933.jpg +data/images/1936.jpg +data/images/1939.jpg +data/images/1950.jpg +data/images/1952.jpg +data/images/1956.jpg +data/images/1965.jpg +data/images/1968.jpg +data/images/1971.jpg +data/images/1986.jpg +data/images/1988.jpg +data/images/1995.jpg +data/images/1996.jpg \ No newline at end of file diff --git a/debug_utils.py b/debug_utils.py new file mode 100644 index 0000000..7262935 --- /dev/null +++ b/debug_utils.py @@ -0,0 +1,21 @@ +def inspect_lr(optimizer): + cur_lr = optimizer.param_groups[0]['lr'] + print('Current learning rate: %0.6f' % cur_lr) + return cur_lr + +# 将学习率衰减为原来的gamma倍数 +def modify_lr(optimizer, gamma): + cur_lr = inspect_lr(optimizer) + new_lr = cur_lr * gamma + print('Learning rate has been changed from %0.6f to %0.6f' % (cur_lr, new_lr)) + for group in optimizer.param_groups: + group['lr'] = new_lr + return new_lr + +def turn_on_sr(opt): + opt.sr = True + print('Sr has been turned on!') + +def turn_off_sr(opt): + opt.sr = False + print('Sr has been turned off!') \ No newline at end of file diff --git a/models.py b/models.py new file mode 100644 index 0000000..114f7da --- /dev/null +++ b/models.py @@ -0,0 +1,410 @@ +from __future__ import division + +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch.autograd import Variable +import numpy as np + +from utils.parse_config import * +from utils.utils import build_targets, to_cpu, non_max_suppression + +import matplotlib.pyplot as plt +import matplotlib.patches as patches + +# convolutional,maxpool,upsample,route,shortcut,yolo + +def create_modules(module_defs): + """ + Constructs module list of layer blocks from module configuration in module_defs + """ + hyperparams = module_defs.pop(0) + output_filters = [int(hyperparams["channels"])] + module_list = nn.ModuleList() # 一定要用ModuleList()才能被torch识别为module并进行管理,不能用list! + for module_i, module_def in enumerate(module_defs): + modules = nn.Sequential() + + if module_def["type"] == "convolutional": + bn = int(module_def["batch_normalize"]) + filters = int(module_def["filters"]) + kernel_size = int(module_def["size"]) + pad = (kernel_size - 1) // 2 + modules.add_module( + f"conv_{module_i}", + nn.Conv2d( + in_channels=output_filters[-1], + out_channels=filters, + kernel_size=kernel_size, + stride=int(module_def["stride"]), + padding=pad, + bias=not bn, + ), + ) + if bn: + # modules.add_module(f"batch_norm_{module_i}", nn.BatchNorm2d(filters, momentum=0.9, eps=1e-5)) + modules.add_module(f"batch_norm_{module_i}", nn.BatchNorm2d(filters)) + if module_def["activation"] == "leaky": + modules.add_module(f"leaky_{module_i}", nn.LeakyReLU(0.1, inplace=True)) + + # 增加了深度可分离卷积 + elif module_def["type"] == "ds_conv": + bn = int(module_def["batch_normalize"]) + filters = int(module_def["filters"]) + kernel_size = int(module_def["size"]) + pad = int(module_def["pad"]) + # 逐通道 + modules.add_module( + f"ds_conv_d_{module_i}", + nn.Conv2d( + in_channels=output_filters[-1], + out_channels=output_filters[-1], + kernel_size=kernel_size, + stride=int(module_def["stride"]), + padding=pad, + groups=output_filters[-1], # 和in_channels相同 + ), + ) + # 逐点 + modules.add_module( + f"ds_conv_p_{module_i}", + nn.Conv2d( + in_channels=output_filters[-1], + out_channels=filters, + kernel_size=1, + stride=1, + padding=0, + groups=1, + ), + ) + + if bn: + # modules.add_module(f"batch_norm_{module_i}", nn.BatchNorm2d(filters, momentum=0.9, eps=1e-5)) + modules.add_module(f"batch_norm_{module_i}", nn.BatchNorm2d(filters)) + if module_def["activation"] == "leaky": + modules.add_module(f"leaky_{module_i}", nn.LeakyReLU(0.1, inplace=True)) + + + elif module_def["type"] == "maxpool": + kernel_size = int(module_def["size"]) + stride = int(module_def["stride"]) + if kernel_size == 2 and stride == 1: + modules.add_module(f"_debug_padding_{module_i}", nn.ZeroPad2d((0, 1, 0, 1))) + maxpool = nn.MaxPool2d(kernel_size=kernel_size, stride=stride, padding=int((kernel_size - 1) // 2)) + modules.add_module(f"maxpool_{module_i}", maxpool) + + elif module_def["type"] == "upsample": + upsample = Upsample(scale_factor=int(module_def["stride"]), mode="nearest") + modules.add_module(f"upsample_{module_i}", upsample) + + elif module_def["type"] == "route": #路由层进行拼接操作 比如: 输入1:26*26*256 输入2: 26*26*128 输出: 26*26*(256+128) + layers = [int(x) for x in module_def["layers"].split(",")] + filters = sum([output_filters[1:][i] for i in layers]) + modules.add_module(f"route_{module_i}", EmptyLayer()) + + elif module_def["type"] == "shortcut": #残差连接,并不是通道拼接,而是每个通道的特征图逐元素相加,并不会改变通道数量 + filters = output_filters[1:][int(module_def["from"])] + modules.add_module(f"shortcut_{module_i}", EmptyLayer()) + + elif module_def["type"] == "yolo": + anchor_idxs = [int(x) for x in module_def["mask"].split(",")] + # Extract anchors + anchors = [int(x) for x in module_def["anchors"].split(",")] + anchors = [(anchors[i], anchors[i + 1]) for i in range(0, len(anchors), 2)] + anchors = [anchors[i] for i in anchor_idxs] + num_classes = int(module_def["classes"]) + img_size = int(hyperparams["height"]) + # Define detection layer + yolo_layer = YOLOLayer(anchors, num_classes, img_size) + modules.add_module(f"yolo_{module_i}", yolo_layer) + # Register module list and number of output filters + module_list.append(modules) + output_filters.append(filters) # filter保存了输出的维度 + + return hyperparams, module_list + + +class Upsample(nn.Module): + """ nn.Upsample is deprecated """ + + def __init__(self, scale_factor, mode="nearest"): + super(Upsample, self).__init__() + self.scale_factor = scale_factor + self.mode = mode + + def forward(self, x): + x = F.interpolate(x, scale_factor=self.scale_factor, mode=self.mode) + return x + + +class EmptyLayer(nn.Module): # 只是为了占位,以便处理route层和shortcut层 + """Placeholder for 'route' and 'shortcut' layers""" + + def __init__(self): + super(EmptyLayer, self).__init__() + + +class YOLOLayer(nn.Module): + """Detection layer""" + + def __init__(self, anchors, num_classes, img_dim=416): + super(YOLOLayer, self).__init__() + self.anchors = anchors + self.num_anchors = len(anchors) + self.num_classes = num_classes + self.ignore_thres = 0.5 + self.mse_loss = nn.MSELoss() + self.bce_loss = nn.BCELoss() + self.obj_scale = 1 + self.noobj_scale = 100 + self.metrics = {} + self.img_dim = img_dim + self.grid_size = 0 # grid size + + def compute_grid_offsets(self, grid_size, cuda=True): + self.grid_size = grid_size + g = self.grid_size + FloatTensor = torch.cuda.FloatTensor if cuda else torch.FloatTensor + self.stride = self.img_dim / self.grid_size + # Calculate offsets for each grid + self.grid_x = torch.arange(g).repeat(g, 1).view([1, 1, g, g]).type(FloatTensor) + self.grid_y = torch.arange(g).repeat(g, 1).t().view([1, 1, g, g]).type(FloatTensor) + self.scaled_anchors = FloatTensor([(a_w / self.stride, a_h / self.stride) for a_w, a_h in self.anchors]) + self.anchor_w = self.scaled_anchors[:, 0:1].view((1, self.num_anchors, 1, 1)) # anchor_w的范围是[0, grid_size](416下),浮点型数值 + self.anchor_h = self.scaled_anchors[:, 1:2].view((1, self.num_anchors, 1, 1)) + + def forward(self, x, targets=None, img_dim=None): + + # Tensors for cuda support + FloatTensor = torch.cuda.FloatTensor if x.is_cuda else torch.FloatTensor + LongTensor = torch.cuda.LongTensor if x.is_cuda else torch.LongTensor + ByteTensor = torch.cuda.ByteTensor if x.is_cuda else torch.ByteTensor + + self.img_dim = img_dim + num_samples = x.size(0) + grid_size = x.size(2) + + prediction = ( + x.view(num_samples, self.num_anchors, self.num_classes + 5, grid_size, grid_size) + .permute(0, 1, 3, 4, 2) # num_samples, num_anchors, grid_size, grid_size, self.num_classes + 5 + .contiguous() + ) + + # Get outputs + x = torch.sigmoid(prediction[..., 0]) # Center x + y = torch.sigmoid(prediction[..., 1]) # Center y + w = prediction[..., 2] # Width + h = prediction[..., 3] # Height + pred_conf = torch.sigmoid(prediction[..., 4]) # Conf + pred_cls = torch.sigmoid(prediction[..., 5:]) # Cls pred. + + # If grid size does not match current we compute new offsets + if grid_size != self.grid_size: # 不用每次都计算,只有在输入图片大小第一次发生变化时计算 + self.compute_grid_offsets(grid_size, cuda=x.is_cuda) + + # Add offset and scale with anchors + pred_boxes = FloatTensor(prediction[..., :4].shape) # 生成形状与prediction[..., :4]相同的张量 + pred_boxes[..., 0] = x.data + self.grid_x + pred_boxes[..., 1] = y.data + self.grid_y + pred_boxes[..., 2] = torch.exp(w.data) * self.anchor_w # anchor_w的范围是[0,grid_size](416下),浮点型变量 + pred_boxes[..., 3] = torch.exp(h.data) * self.anchor_h + + output = torch.cat( + ( + pred_boxes.view(num_samples, -1, 4) * self.stride, + pred_conf.view(num_samples, -1, 1), + pred_cls.view(num_samples, -1, self.num_classes), # num_samples, num_anchors*grid_size*grid_size, 85 + ), + -1, + ) + + if targets is None: + return output, 0 + else: + iou_scores, class_mask, obj_mask, noobj_mask, tx, ty, tw, th, tcls, tconf = build_targets( + pred_boxes=pred_boxes, + pred_cls=pred_cls, + target=targets, + anchors=self.scaled_anchors, + ignore_thres=self.ignore_thres, + ) + + obj_mask = obj_mask.bool() #将int8转换为bool + noobj_mask = noobj_mask.bool() #将int8转换为bool + + # Loss : Mask outputs to ignore non-existing objects (except with conf. loss) + # TODO:这里没有针对wh的损失进行加权处理 + loss_x = self.mse_loss(x[obj_mask], tx[obj_mask]) + loss_y = self.mse_loss(y[obj_mask], ty[obj_mask]) + loss_w = self.mse_loss(w[obj_mask], tw[obj_mask]) + loss_h = self.mse_loss(h[obj_mask], th[obj_mask]) + loss_conf_obj = self.bce_loss(pred_conf[obj_mask], tconf[obj_mask]) + loss_conf_noobj = self.bce_loss(pred_conf[noobj_mask], tconf[noobj_mask]) + loss_conf = self.obj_scale * loss_conf_obj + self.noobj_scale * loss_conf_noobj + loss_cls = self.bce_loss(pred_cls[obj_mask], tcls[obj_mask]) + total_loss = loss_x + loss_y + loss_w + loss_h + loss_conf + loss_cls + + # Metrics + cls_acc = 100 * class_mask[obj_mask].mean() + conf_obj = pred_conf[obj_mask].mean() + conf_noobj = pred_conf[noobj_mask].mean() + conf50 = (pred_conf > 0.5).float() + iou50 = (iou_scores > 0.5).float() + iou75 = (iou_scores > 0.75).float() + detected_mask = conf50 * class_mask * tconf + precision = torch.sum(iou50 * detected_mask) / (conf50.sum() + 1e-16) + recall50 = torch.sum(iou50 * detected_mask) / (obj_mask.sum() + 1e-16) + recall75 = torch.sum(iou75 * detected_mask) / (obj_mask.sum() + 1e-16) + + self.metrics = { + "loss": to_cpu(total_loss).item(), + "x": to_cpu(loss_x).item(), + "y": to_cpu(loss_y).item(), + "w": to_cpu(loss_w).item(), + "h": to_cpu(loss_h).item(), + "conf": to_cpu(loss_conf).item(), + "cls": to_cpu(loss_cls).item(), + "cls_acc": to_cpu(cls_acc).item(), + "recall50": to_cpu(recall50).item(), + "recall75": to_cpu(recall75).item(), + "precision": to_cpu(precision).item(), + "conf_obj": to_cpu(conf_obj).item(), + "conf_noobj": to_cpu(conf_noobj).item(), + "grid_size": grid_size, + } + + return output, total_loss + + +class Darknet(nn.Module): + """YOLOv3 object detection model""" + + def __init__(self, config_path, img_size=416): + super(Darknet, self).__init__() + + if isinstance(config_path, str): #读取配置文件 + self.module_defs = parse_model_config(config_path) + elif isinstance(config_path, list): + self.module_defs = config_path + + self.hyperparams, self.module_list = create_modules(self.module_defs) #创建模型 + self.yolo_layers = [layer[0] for layer in self.module_list if hasattr(layer[0], "metrics")] # layer是个nn.Sequential() + self.img_size = img_size + self.seen = 0 + self.header_info = np.array([0, 0, 0, self.seen, 0], dtype=np.int32) + + def forward(self, x, targets=None): + img_dim = x.shape[2] # 取决于输入图片的大小,因为是正方形输入,所以只考虑height + loss = 0 + layer_outputs, yolo_outputs = [], [] + for i, (module_def, module) in enumerate(zip(self.module_defs, self.module_list)): + if module_def["type"] in ["convolutional", "upsample", "maxpool", "ds_conv"]: # 增加了"ds_conv" + x = module(x) + elif module_def["type"] == "route": + x = torch.cat([layer_outputs[int(layer_i)] for layer_i in module_def["layers"].split(",")], 1) + elif module_def["type"] == "shortcut": + layer_i = int(module_def["from"]) + # print(f'{layer_i}' + ':' + str(len(layer_outputs[layer_i]))) + # print(f'{layer_i}' + '-layer_outputs:' + str(len(layer_outputs[-1]))) + x = layer_outputs[-1] + layer_outputs[layer_i] + elif module_def["type"] == "yolo": # [82, 94, 106] for yolov3 + x, layer_loss = module[0](x, targets, img_dim) # module是nn.Sequential(),所以要取[0] + loss += layer_loss + yolo_outputs.append(x) + layer_outputs.append(x) # 将每个块的output都保存起来 + yolo_outputs = to_cpu(torch.cat(yolo_outputs, 1)) # 只保存yolo层的output + return yolo_outputs if targets is None else (loss, yolo_outputs) + + def load_darknet_weights(self, weights_path): + """Parses and loads the weights stored in 'weights_path'""" + + # Open the weights file + with open(weights_path, "rb") as f: + header = np.fromfile(f, dtype=np.int32, count=5) # First five are header values + self.header_info = header # Needed to write header when saving weights + self.seen = header[3] # number of images seen during training + weights = np.fromfile(f, dtype=np.float32) # The rest are weights + + # Establish cutoff for loading backbone weights + cutoff = None + if "darknet53.conv.74" in weights_path: + cutoff = 75 + + ptr = 0 + for i, (module_def, module) in enumerate(zip(self.module_defs, self.module_list)): + if i == cutoff: + break + if module_def["type"] == "convolutional": + conv_layer = module[0] + if module_def["batch_normalize"]: + # Load BN bias, weights, running mean and running variance + bn_layer = module[1] + num_b = bn_layer.bias.numel() # Number of biases + # Bias + bn_b = torch.from_numpy(weights[ptr : ptr + num_b]).view_as(bn_layer.bias) + bn_layer.bias.data.copy_(bn_b) + ptr += num_b + # Weight + bn_w = torch.from_numpy(weights[ptr : ptr + num_b]).view_as(bn_layer.weight) + bn_layer.weight.data.copy_(bn_w) + ptr += num_b + # Running Mean + bn_rm = torch.from_numpy(weights[ptr : ptr + num_b]).view_as(bn_layer.running_mean) + bn_layer.running_mean.data.copy_(bn_rm) + ptr += num_b + # Running Var + bn_rv = torch.from_numpy(weights[ptr : ptr + num_b]).view_as(bn_layer.running_var) + bn_layer.running_var.data.copy_(bn_rv) + ptr += num_b + # Load conv. weights + num_w = conv_layer.weight.numel() + conv_w = torch.from_numpy(weights[ptr: ptr + num_w]).view_as(conv_layer.weight) + conv_layer.weight.data.copy_(conv_w) + ptr += num_w + else: + # 对于yolov3.weights,不带bn的卷积层就是YOLO前的卷积层 + if "yolov3.weights" in weights_path: + num_b = 255 + ptr += num_b + num_w = int(self.module_defs[i-1]["filters"]) * 255 + ptr += num_w + else: + # Load conv. bias + num_b = conv_layer.bias.numel() + conv_b = torch.from_numpy(weights[ptr : ptr + num_b]).view_as(conv_layer.bias) + conv_layer.bias.data.copy_(conv_b) + ptr += num_b + # Load conv. weights + num_w = conv_layer.weight.numel() + conv_w = torch.from_numpy(weights[ptr : ptr + num_w]).view_as(conv_layer.weight) + conv_layer.weight.data.copy_(conv_w) + ptr += num_w + # 确保指针到达权重的最后一个位置 + assert ptr == len(weights) + + def save_darknet_weights(self, path, cutoff=-1): + """ + @:param path - path of the new weights file + @:param cutoff - save layers between 0 and cutoff (cutoff = -1 -> all are saved) + """ + fp = open(path, "wb") + self.header_info[3] = self.seen + self.header_info.tofile(fp) + + # Iterate through layers + for i, (module_def, module) in enumerate(zip(self.module_defs[:cutoff], self.module_list[:cutoff])): + if module_def["type"] == "convolutional": + conv_layer = module[0] + # If batch norm, load bn first + if module_def["batch_normalize"]: + bn_layer = module[1] + bn_layer.bias.data.cpu().numpy().tofile(fp) + bn_layer.weight.data.cpu().numpy().tofile(fp) + bn_layer.running_mean.data.cpu().numpy().tofile(fp) + bn_layer.running_var.data.cpu().numpy().tofile(fp) + # Load conv bias + else: + conv_layer.bias.data.cpu().numpy().tofile(fp) + # Load conv weights + conv_layer.weight.data.cpu().numpy().tofile(fp) + + fp.close() diff --git a/test.py b/test.py new file mode 100644 index 0000000..4f6c361 --- /dev/null +++ b/test.py @@ -0,0 +1,116 @@ +from __future__ import division + +from models import * +from utils.utils import * +from utils.datasets import * +from utils.parse_config import * + +import os +import sys +import time +import datetime +import argparse +import tqdm + +import torch +from torch.utils.data import DataLoader +from torchvision import datasets +from torchvision import transforms +from torch.autograd import Variable +import torch.optim as optim +import time + + +def evaluate(model, path, iou_thres, conf_thres, nms_thres, img_size, batch_size): + model.eval() + + # Get dataloader + dataset = ListDataset(path, img_size=img_size, augment=False, multiscale=False) + dataloader = torch.utils.data.DataLoader( + dataset, batch_size=batch_size, shuffle=False, num_workers=1, collate_fn=dataset.collate_fn + ) + + Tensor = torch.cuda.FloatTensor if torch.cuda.is_available() else torch.FloatTensor + + labels = [] + sample_metrics = [] # List of tuples (TP, confs, pred) + for batch_i, (_, imgs, targets) in enumerate(tqdm.tqdm(dataloader, desc="Detecting objects")): + + # Extract labels + labels += targets[:, 1].tolist() + # Rescale target + targets[:, 2:] = xywh2xyxy(targets[:, 2:]) + targets[:, 2:] *= img_size + + imgs = dataset.resize_imgs(imgs) + imgs = Variable(imgs.type(Tensor), requires_grad=False) + + with torch.no_grad(): + outputs = model(imgs) + outputs = non_max_suppression(outputs, conf_thres=conf_thres, nms_thres=nms_thres) + + sample_metrics += get_batch_statistics(outputs, targets, iou_threshold=iou_thres) + + # Concatenate sample statistics + assert sample_metrics != [] + true_positives, pred_scores, pred_labels = [np.concatenate(x, 0) for x in list(zip(*sample_metrics))] + precision, recall, AP, f1, ap_class = ap_per_class(true_positives, pred_scores, pred_labels, labels) + + return precision, recall, AP, f1, ap_class + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--batch_size", type=int, default=8, help="size of each image batch") + parser.add_argument("--model_def", type=str, default="config/yolov3.cfg", help="path to model definition file") + parser.add_argument("--data_config", type=str, default="config/coco.data", help="path to data config file") + parser.add_argument("--weights_path", type=str, default="weights/yolov3.weights", help="path to weights file") + parser.add_argument("--class_path", type=str, default="data/coco.names", help="path to class label file") + parser.add_argument("--iou_thres", type=float, default=0.5, help="iou threshold required to qualify as detected") + parser.add_argument("--conf_thres", type=float, default=0.001, help="object confidence threshold") + parser.add_argument("--nms_thres", type=float, default=0.5, help="iou thresshold for non-maximum suppression") + parser.add_argument("--n_cpu", type=int, default=8, help="number of cpu threads to use during batch generation") + parser.add_argument("--img_size", type=int, default=416, help="size of each image dimension") + opt = parser.parse_args() + print(opt) + + device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + + data_config = parse_data_config(opt.data_config) + valid_path = data_config["valid"] + class_names = load_classes(data_config["names"]) + + # Initiate model + model = Darknet(opt.model_def).to(device) + if opt.weights_path.endswith(".weights"): + # Load darknet weights + model.load_darknet_weights(opt.weights_path) + else: + # Load checkpoint weights + model.load_state_dict(torch.load(opt.weights_path)) + + print("Compute mAP...") + + precision, recall, AP, f1, ap_class = evaluate( + model, + path=valid_path, + iou_thres=opt.iou_thres, + conf_thres=opt.conf_thres, + nms_thres=opt.nms_thres, + img_size=opt.img_size, + batch_size=8, + ) + + obtain_num_parameters = lambda model:sum([param.nelement() for param in model.parameters()]) + parameters = obtain_num_parameters(model) + print("Parameters : ", f"{parameters}") + + print("Average Precisions:") + for i, c in enumerate(ap_class): + print(f"+ Class '{c}' ({class_names[c]}) - AP: {AP[i]}") + print(f"+ Class '{c}' ({class_names[c]}) - precision: {precision[i]}") + print(f"+ Class '{c}' ({class_names[c]}) - recall: {recall[i]}") + print(f"+ Class '{c}' ({class_names[c]}) - f1: {f1[i]}") + + + print(f"mAP: {AP.mean()}") diff --git a/test.sh b/test.sh new file mode 100644 index 0000000..a327f14 --- /dev/null +++ b/test.sh @@ -0,0 +1,4 @@ +#!bash +CARD=0,1 + +CUDA_VISIBLE_DEVICES=$CARD python test.py --model_def config/ds_1w_prune_0.8_xs_min_loss_yolov3-ds-person.cfg --weights_path weights/ds_1w_prune_0.8_xs_min_loss_yolov3_ckpt.pth --data_config config/person.data --class_path data/person.names --conf_thres 0.1 \ No newline at end of file diff --git a/test_prune.py b/test_prune.py new file mode 100644 index 0000000..18dd95b --- /dev/null +++ b/test_prune.py @@ -0,0 +1,277 @@ +from cgi import print_directory +from models import * +from utils.utils import * +import torch +import numpy as np +from copy import deepcopy +from test import evaluate +from terminaltables import AsciiTable +import time +from utils.prune_utils import * + +class opt(): + model_def = "config/yolov3-ds-person.cfg" # yolov3-ds8-person.cfg + data_config = "config/smallperson.data" # smallperson.data + model = 'checkpoints/yolov3_ckpt_99_05181112.pth' # checkpoints/yolov3_ckpt.pth' # res8 yolov3_ckpt_99_06081725.pth # 2*res8+res4 yolov3_ckpt_99_05181112 + + +#%% +device = torch.device("cuda" if torch.cuda.is_available() else "cpu") +model = Darknet(opt.model_def).to(device) #加载模型 +model.load_state_dict(torch.load(opt.model)) #加载权重 +# print(model) +# for name in model.state_dict(): +# print(name) + +data_config = parse_data_config(opt.data_config) +valid_path = data_config["valid"] +class_names = load_classes(data_config["names"]) + +# 用lambda表达式创建函数 +eval_model = lambda model:evaluate(model, path=valid_path, iou_thres=0.5, conf_thres=0.01, + nms_thres=0.1, img_size=model.img_size, batch_size=8) +# print(eval_model) + +obtain_num_parameters = lambda model:sum([param.nelement() for param in model.parameters()]) + +# 获取最初的模型评估和参数量 +origin_model_metric = eval_model(model) +origin_nparameters = obtain_num_parameters(model) + +CBL_idx, Conv_idx, prune_idx= parse_module_defs(model.module_defs) +# print(CBL_idx, Conv_idx, prune_idx) +# CBL_idx = [0, 1, 2, 3, 5, 6, 7, 9, 10, 12, 13, 16, 19, 22, 25, 28, 31, 34, 37, 38, 41, 44, 47, 50, 53, 56, 59, 62, 63, 66, +# 69, 72, 75, 76, 77, 78, 79, 80, 84, 87, 88, 89, 90, 91, 92, 96, 99, 100, 101, 102, 103, 104] +# 问题是 CBL_idx中没有14就是ds_conv那一层 + +# Conv_idx = [81, 93, 105] +# prune_idx = [0, 2, 6, 9, 75, 76, 77, 78, 79, 80, 87, 88, 89, 90, 91, 92, 99, 100, 101, 102, 103, 104] + +#prune_idx = + #[0, 2, 6, 9, 13, 16, 19, 22, 25, 28, 31, 34, 38, 41, 44, 47, 50, 53, 56, 59, 63, 66, 69, 72, 75, + # 76, 77, 78, 79, 80, 87, 88, 89, 90, 91, 92, 99, 100, 101, 102, 103, 104] + +bn_weights = gather_bn_weights(model.module_list, prune_idx) +# print("model.module_list[0]:",model.module_list[0],"---",len(model.module_list[0])) +# print('bn_weights = ' ,bn_weights, "---",len(bn_weights)) + +sorted_bn = torch.sort(bn_weights)[0] # 对bn从小到大排序 +# print('sorted_bn = ' ,sorted_bn) + +# 避免剪掉所有channel的最高阈值(每个BN层的gamma的最大值的最小值即为阈值上限) +highest_thre = [] +for idx in prune_idx: + highest_thre.append(model.module_list[idx][1].weight.data.abs().max().item()) +highest_thre = min(highest_thre) + +# 找到highest_thre对应的下标对应的百分比 +percent_limit = (sorted_bn==highest_thre).nonzero().item()/len(bn_weights) + +print(f'Threshold should be less than {highest_thre:.4f}.') +print(f'The corresponding prune ratio is {percent_limit:.3f}.') + +#%% +def prune_and_eval(model, sorted_bn, percent=.0): + model_copy = deepcopy(model) + thre_index = int(len(sorted_bn) * percent) + # print('thre_index = ', thre_index) #thre_index = 11369 + thre = sorted_bn[thre_index] + # print('thre = ', thre) #thre = tensor(0.0925) + # print(model_copy) + + print(f'Channels with Gamma value less than {thre:.4f} are pruned!') + + remain_num = 0 + for idx in prune_idx: + # prune_idx = [0, 2, 6, 9, 75, 76, 77, 78, 79, 80, 87, 88, 89, 90, 91, 92, 99, 100, 101, 102, 103, 104] + # print("idx:",idx) + bn_module = model_copy.module_list[idx][1] + + mask = obtain_bn_mask(bn_module, thre) #生成mask + # print(idx, ': ', len(mask)) + # print(idx, ':', len(mask), ':', mask) + remain_num += int(mask.sum()) + # BN层的权重(gamma)乘以这个mask,就相当于剪枝了 + bn_module.weight.data.mul_(mask) # 用mask对原始权重进行操作 + # print("remain_num:",remain_num) + # print(model_copy) + # print(bn_module.weight.data) + # model_copy.module_list[0][1] = BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) + # print(model_copy.module_list[0][1].weight.data) + """ + model_copy.module_list[0][1].weight.data = + tensor([ 1.6235, 0.3670, 0.6683, 0.2203, -0.2113, 1.6356, 0.0717, 0.5802, + 0.1437, -0.3640, 0.2322, 0.2651, 0.7316, 0.6135, 1.6100, 0.8620, + 0.1987, 0.5357, 0.2006, 0.2127, 0.7190, -1.1396, -0.2585, -0.4673, + 0.0498, 0.5148, 0.7377, 0.3179, 1.2934, 1.1743, 0.2840, 0.2782], + device='cuda:0') + """ + + mAP = eval_model(model_copy)[2].mean() # 搞明白为什么 剪枝之后sample_metrics = [] 为空列表了 : 剪枝率过高会为空 + # print(mAP) + + print(f'Number of channels has been reduced from {len(sorted_bn)} to {remain_num}') + print(f'Prune ratio: {1-remain_num/len(sorted_bn):.3f}') + print(f'mAP of the pruned model is {mAP:.4f}') + + return thre + +#调用上面的函数 +percent = 0.85 # 0.85 +threshold = prune_and_eval(model, sorted_bn, percent) + +# print(threshold) + +#%% +def obtain_filters_mask(model, thre, CBL_idx, prune_idx): + + pruned = 0 + total = 0 + num_filters = [] + filters_mask = [] + for idx in CBL_idx: + if(model.module_defs[idx]['type'] == 'ds_conv'): + bn_module = model.module_list[idx][2] + else: + bn_module = model.module_list[idx][1] + # print("idx",idx,"--bn_module :",model.module_list[idx][1]) + # 如果idx是在剪枝下标的列表中,就执行剪枝 + if idx in prune_idx: + # prune_idx = [0, 2, 6, 9, 75, 76, 77, 78, 79, 80, 87, 88, 89, 90, 91, 92, 99, 100, 101, 102, 103, 104] + + mask = obtain_bn_mask(bn_module, thre).cpu().numpy() + # 保留的通道数 + remain = int(mask.sum()) + # 剪掉的通道数 + pruned = pruned + mask.shape[0] - remain + + if remain == 0: + print("Channels would be all pruned!") + raise Exception + + print(f'layer index: {idx:>3d} \t total channel: {mask.shape[0]:>4d} \t ' + f'remaining channel: {remain:>4d}') + else: + # 不用剪枝就全部保留 + mask = np.ones(bn_module.weight.data.shape) + remain = mask.shape[0] + + # print("idx:",idx,"--mask:",mask,"--lenofmask",len(mask)) # 怀疑这里因为ds_conv有两个卷积层 可能出现问题 但是14层的ds_conv mask长度是256 因为算的是bn层的mask,所以为256,这里值得注意!!明天来检查一下! + + total += mask.shape[0] + num_filters.append(remain) # 剪枝后还存在的滤波器 + filters_mask.append(mask.copy()) # 剪枝的掩码mask + + # print("num_filters:",len(num_filters),"CBL_idx:", len(CBL_idx)) 都是72 + prune_ratio = pruned / total + print(f'Prune channels: {pruned}\tPrune ratio: {prune_ratio:.3f}') + + return num_filters, filters_mask + +#调用上面的函数 +num_filters, filters_mask = obtain_filters_mask(model, threshold, CBL_idx, prune_idx) +# print("num_filters : ", num_filters) +# num_filters = [29, 64, 29, 64, 128, 59, 128, 61, 128, 256, 128, 256, 128, 256, 128, 256, 128, 256, 128, 256, 128, 256, 128, 256, 128, 256, 512, +# 256, 512, 256, 512, 256, 512, 256, 512, 256, 512, 256, 512, 256, 512, 256, 512, 1024, 512, 1024, 512, 1024, 512, 1024, 512, 1024, +# 264, 422, 237, 441, 263, 139, 256, 226, 352, 179, 278, 137, 215, 128, 111, 182, 90, 140, 54, 220] + +#%% +# 映射成一个字典,idx->mask +CBLidx2mask = {idx: mask for idx, mask in zip(CBL_idx, filters_mask)} +# print("CBLidx2mask:", CBLidx2mask) +# 获得剪枝后的模型 +pruned_model = prune_model_keep_size(model, prune_idx, CBL_idx, CBLidx2mask) +# print("pruned_model:",pruned_model) +# 对剪枝后的模型进行评价 +pruned_model_metric = eval_model(pruned_model) +print("mAP", f'{origin_model_metric[2].mean():.6f}', f'{pruned_model_metric[2].mean():.6f}') +# pruned_nparameters = obtain_num_parameters(pruned_model) +# print("pruned_nparameters:",pruned_nparameters) + +#%% +# 拷贝一份原始模型的参数 +compact_module_defs = deepcopy(model.module_defs) +# 遍历需要剪枝的CBL模块,将通道数设置为剪枝后的通道数 +for idx, num in zip(CBL_idx, num_filters): + # if compact_module_defs[idx]['type'] == 'ds_conv' : + # # continue + # compact_module_defs[idx]['filters'] = str(num) + assert compact_module_defs[idx]['type'] == 'convolutional' or compact_module_defs[idx]['type'] == 'ds_conv' + compact_module_defs[idx]['filters'] = str(num) + # 改了网络结构,在这里相应的更改ds_conv通道数,先试试更改,如果后面不改,就在前面mask那里改改 + # assert compact_module_defs[idx]['type'] == 'ds_conv' + # compact_module_defs[idx]['filters'] = str(num) +# print("compact_module_defs:",compact_module_defs) + +#%% +#compact_model是剪枝之后的网络的真实结构(注意:上面的剪枝网络只是把那些需要剪枝的卷积层/BN层/激活层通道的权重置0了,并没有保存剪枝后的网络) +# print("model.hyperparams:",model.hyperparams) +compact_model = Darknet([model.hyperparams.copy()] + compact_module_defs).to(device) +# compact_model_metric = eval_model(compact_model) +# print("compact_model_metric:", "mAP", f'{compact_model_metric[2].mean():.6f}') +# print("model.hyperparams:",model.hyperparams) +# print("compact_model:", compact_model) +# 计算参数量,MFLOPs +compact_nparameters = obtain_num_parameters(compact_model) +# print("compact_nparameters:", compact_nparameters) 18404269已经是剪完枝后的参数了 +# 为剪枝后的真实网络结构重新复制权重参数 +init_weights_from_loose_model(compact_model, pruned_model, CBL_idx, Conv_idx, CBLidx2mask) +# 对比compact_model 与 prune_model每一层的权重 +# for name, parameters in pruned_model.named_parameters(): +# print(name, '1;', parameters.size()) +# for name, parameters in compact_model.named_parameters(): +# print(name, '2;', parameters.size()) + +# print("pruned_model:",pruned_model.state_dict()) +# print("compact_model:",compact_model.state_dict()) + +#%% +random_input = torch.rand((1, 3, model.img_size, model.img_size)).to(device) + +# 获取模型的推理时间 +def obtain_avg_forward_time(input, model, repeat=200): + + model.eval() + start = time.time() + with torch.no_grad(): + for i in range(repeat): + output = model(input) + avg_infer_time = (time.time() - start) / repeat + + return avg_infer_time, output + +# 分别获取原始模型和剪枝后的模型的推理时间和输出 +pruned_forward_time, pruned_output = obtain_avg_forward_time(random_input, pruned_model) +compact_forward_time, compact_output = obtain_avg_forward_time(random_input, compact_model) +# print("pruned_forward_time:",pruned_forward_time,"---compact_forward_time:", compact_forward_time) +# print("pruned_output:",pruned_output,"---compact_output:", compact_output) +# 计算原始模型推理结果和剪枝后的模型的推理结果,如果差距比较大说明哪里错了 +# 先注释下面几行代码看能不能运行 +diff = (pruned_output-compact_output).abs().gt(0.001).sum().item() +# print("diff:", diff) +if diff > 0: + print('Something wrong with the pruned model!') + +#%% +# 在测试集上测试剪枝后的模型, 并统计模型的参数数量 +compact_model_metric = eval_model(compact_model) + +#%% +# 比较剪枝前后参数数量的变化、指标性能的变化 +metric_table = [ + ["Metric", "Before", "After"], + ["mAP", f'{origin_model_metric[2].mean():.6f}', f'{compact_model_metric[2].mean():.6f}'], + ["Parameters", f"{origin_nparameters}", f"{compact_nparameters}"], + ["Inference", f'{pruned_forward_time:.4f}', f'{compact_forward_time:.4f}'] +] +print(AsciiTable(metric_table).table) + +#%% +# 生成剪枝后的cfg文件并保存模型 +pruned_cfg_name = opt.model_def.replace('/', f'/ds_1w_prune_{percent}_ckpt_99_05181112') +pruned_cfg_file = write_cfg(pruned_cfg_name, [model.hyperparams.copy()] + compact_module_defs) +print(f'Config file has been saved: {pruned_cfg_file}') + +compact_model_name = opt.model.replace('/', f'/ds_1w_prune_{percent}_') +torch.save(compact_model.state_dict(), compact_model_name) +print(f'Compact model has been saved: {compact_model_name}') diff --git a/test_prune.sh b/test_prune.sh new file mode 100644 index 0000000..8f050d9 --- /dev/null +++ b/test_prune.sh @@ -0,0 +1,4 @@ +#!bash +CARD=0,1 + +CUDA_VISIBLE_DEVICES=$CARD python test_prune.py \ No newline at end of file diff --git a/testdict.py b/testdict.py new file mode 100644 index 0000000..56b8cb4 --- /dev/null +++ b/testdict.py @@ -0,0 +1,15 @@ +import torch +from models import * + +class opt(): + model_def = "config/ds_1w_prune_0.5_yolov3-ds-person.cfg" + data_config = "config/smallperson.data" # person.data + model = 'checkpoints/ds_1w_prune_0.5_yolov3_ckpt_99_05181112.pth' # checkpoints/yolov3_ckpt.pth' + +# 加载模型 +device = torch.device("cuda" if torch.cuda.is_available() else "cpu") +model = Darknet(opt.model_def).to(device) #加载模型 +model.load_state_dict(torch.load(opt.model)) #加载权重 + +# 打印参数 +print(model) \ No newline at end of file diff --git a/train.py b/train.py new file mode 100644 index 0000000..7fd6ce3 --- /dev/null +++ b/train.py @@ -0,0 +1,281 @@ +from __future__ import division + +from models import * +from utils.logger import * +from utils.utils import * +from utils.datasets import * +from utils.parse_config import * +from utils.prune_utils import * +from test import evaluate + +# 调试用的模块,reload用于代码热重载 +from importlib import reload +import debug_utils + +from terminaltables import AsciiTable + +import os +import time +import datetime +import argparse + +# import logging + +import torch +from torch.utils.data import DataLoader + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--epochs", type=int, default=100, help="number of epochs") + parser.add_argument("--batch_size", type=int, default=56, help="size of each image batch") # default=16 + parser.add_argument("--model_def", type=str, default="config/yolov3-person.cfg", help="path to model definition file") #default="config/yolov3-hand.cfg" + parser.add_argument("--data_config", type=str, default="config/person.data", help="path to data config file") #default="config/oxfordhand.data" + # parser.add_argument("--pretrained_weights", type=str, default="weights/darknet53.conv.74", + parser.add_argument("--pretrained_weights", '-pre', type=str, + default="weights/yolov3.weights", help="if specified starts from checkpoint model") + parser.add_argument("--n_cpu", type=int, default=4, help="number of cpu threads to use during batch generation") + parser.add_argument("--img_size", type=int, default=416, help="size of each image dimension") + parser.add_argument("--checkpoint_interval", type=int, default=20, help="interval between saving model weights") #default=5 + parser.add_argument("--evaluation_interval", type=int, default=1, help="interval evaluations on validation set") + parser.add_argument("--multiscale_training", default=False, help="allow for multi-scale training") + parser.add_argument("--debug_file", type=str, default="debug", help="enter ipdb if dir exists") + + parser.add_argument('--learning_rate', '-lr', dest='lr', type=float, default=1e-3, help='initial learning rate') + + parser.add_argument('--sparsity-regularization', '-sr', dest='sr', action='store_true', + help='train with channel sparsity regularization') + parser.add_argument('--s', type=float, default=0.01, help='scale sparse rate') + + opt = parser.parse_args() + print(opt) + + logger = Logger("logs") + + # 设置随机数种子 + init_seeds() + + device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + + timestamp = datetime.datetime.fromtimestamp(time.time()).strftime('%m%d%H%M') + + os.makedirs("output", exist_ok=True) + os.makedirs("checkpoints", exist_ok=True) + + # Get data configuration + data_config = parse_data_config(opt.data_config) + train_path = data_config["train"] + valid_path = data_config["valid"] + class_names = load_classes(data_config["names"]) + + # Initiate model + model = Darknet(opt.model_def).to(device) + model.apply(weights_init_normal) + + #打印模型 + # print(model) + + # If specified we start from checkpoint + #是否加载预训练模型 + # if opt.pretrained_weights: + # if opt.pretrained_weights.endswith(".pth"): + # model.load_state_dict(torch.load(opt.pretrained_weights)) + # else: + # model.load_darknet_weights(opt.pretrained_weights) + + _, _, prune_idx= parse_module_defs(model.module_defs) # 剪枝需要的参数S + # prune_idx = \ + # [0, + # 2, + # 6, 9, + # 13, 16, 19, 22, 25, 28, 31, 34, + # 38, 41, 44, 47, 50, 53, 56, 59, + # 63, 66, 69, 72, + # 75, 76, 77, 78, 79, 80, + # #84, + # 87, 88, 89, 90, 91, 92, + # #96, + # 99,100,101,102,103, 104] + + # Get dataloader 导入数据 + dataset = ListDataset(train_path, augment=True, multiscale=opt.multiscale_training) + dataloader = torch.utils.data.DataLoader( + dataset, + batch_size=opt.batch_size, + shuffle=True, + num_workers=opt.n_cpu, + pin_memory=True, + collate_fn=dataset.collate_fn + ) + + optimizer = torch.optim.SGD(model.parameters(), lr=opt.lr, momentum=0.9) + + metrics = [ + "grid_size", + "loss", + "x", "y", "w", "h", + "conf", + "cls", "cls_acc", + "recall50", "recall75", + "precision", + "conf_obj", "conf_noobj", + ] + + + # 配置日志记录器 + # logger = logging.getLogger('my_logger') + # logger.setLevel(logging.INFO) + # handler = logging.FileHandler('log.txt') + # handler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]')) + # logger.addHandler(handler) + + + # TFLOPS = 0 + tmp_loss = 0 + min_loss = 100 + best_mAP = 0 + + for epoch in range(opt.epochs): + + # 进入调试模式 + if os.path.exists(opt.debug_file): + import ipdb + ipdb.set_trace() + + model.train() + start_time = time.time() + + sr_flag = get_sr_flag(epoch, opt.sr) + + obtain_num_parameters = lambda model:sum([param.nelement() for param in model.parameters()]) + origin_nparameters = obtain_num_parameters(model) + print("Parameters : ", f"{origin_nparameters}") + print("Model size:", sum([p.numel() for name, p in model.named_parameters()])) # 输出模型大小 + + for batch_i, (_, imgs, targets) in enumerate(dataloader): + batches_done = len(dataloader) * epoch + batch_i + + imgs = imgs.to(device) + targets = targets.to(device) + + loss, outputs = model(imgs, targets) + + optimizer.zero_grad() + loss.backward() + + BNOptimizer.updateBN(sr_flag, model.module_list, opt.s, prune_idx) + + optimizer.step() + + # acc = (outputs > 0.5).float().mean() + # logger.info('Epoch [{}/{}], Step [{}/{}], Loss: {:.4f}, Acc: {:.4f}'.format(epoch, epoch, i+1, len(dataloader), loss.item(), acc.item())) + + # ---------------- + # Log progress + # ---------------- + + log_str = "\n---- [Epoch %d/%d, Batch %d/%d] ----\n" % (epoch, opt.epochs, batch_i, len(dataloader)) + + metric_table = [["Metrics", *[f"YOLO Layer {i}" for i in range(len(model.yolo_layers))]]] + + # Log metrics at each YOLO layer + formats = {m: "%.6f" for m in metrics} + formats["grid_size"] = "%2d" + formats["cls_acc"] = "%.2f%%" + for metric in metrics: + row_metrics = [formats[metric] % yolo.metrics.get(metric, 0) for yolo in model.yolo_layers] + metric_table += [[metric, *row_metrics]] + + log_str += AsciiTable(metric_table).table + log_str += f"\nTotal loss {loss.item()}" + + #记录每个batch的最后一次loss + tmp_loss = loss.item() + + # Determine approximate time left for epoch + epoch_batches_left = len(dataloader) - (batch_i + 1) + time_left = datetime.timedelta(seconds=epoch_batches_left * (time.time() - start_time) / (batch_i + 1)) + log_str += f"\n---- ETA {time_left}" + + print(log_str) + + # Tensorboard logging + tensorboard_log = [] + for i, yolo in enumerate(model.yolo_layers): + for name, metric in yolo.metrics.items(): + # 选择部分指标写入tensorboard + if name not in {"grid_size", "x", "y", "w", "h", "cls_acc"}: + tensorboard_log += [(f"{name}_{i+1}", metric)] + tensorboard_log += [("loss", loss.item())] + tensorboard_log += [("lr", optimizer.param_groups[0]['lr'])] + logger.list_of_scalars_summary('train', tensorboard_log, batches_done) + + + + if epoch % opt.evaluation_interval == 0: + print("\n---- Evaluating Model ----") + # Evaluate the model on the validation set + precision, recall, AP, f1, ap_class = evaluate( + model, + path=valid_path, + iou_thres=0.5, + conf_thres=0.01, + nms_thres=0.5, + img_size=opt.img_size, + batch_size=8, + ) + evaluation_metrics = [ + ("val_precision", precision.mean()), + ("val_recall", recall.mean()), + ("val_mAP", AP.mean()), + ("val_f1", f1.mean()), + ] + logger.list_of_scalars_summary('valid', evaluation_metrics, epoch) + + # Print class APs and mAP + ap_table = [["Index", "Class name", "AP"]] + for i, c in enumerate(ap_class): + ap_table += [[c, class_names[c], "%.5f" % AP[i]]] + print(AsciiTable(ap_table).table) + print(f"---- mAP {AP.mean()}") + + # 往tensorboard中记录bn权重分布 + bn_weights = gather_bn_weights(model.module_list, prune_idx) + logger.writer.add_histogram('bn_weights/hist', bn_weights.numpy(), epoch, bins='doane') + + if(best_mAP < AP.mean()): + best_mAP = AP.mean() + torch.save(model.state_dict(), f"checkpoints/xs_nopretrain_pt_best_mAP_{epoch}_yolov3_ckpt.pth") # 保存mAP最高的模型 + if(tmp_loss < min_loss): + min_loss = tmp_loss + torch.save(model.state_dict(), f"checkpoints/xs_nopretrain_pt_min_loss_{epoch}_yolov3_ckpt.pth") # 保存loss最低的模型 + + if epoch % opt.checkpoint_interval == 0 or epoch == opt.epochs - 1: + + torch.save(model.state_dict(), f"checkpoints/xs_nopretrain_yolov3_ckpt_{epoch}_{timestamp}.pth") + print(f"model has been saved:checkpoints/xs_nopretrain_yolov3_ckpt_{epoch}_{timestamp}.pth") + + + + # obtain_num_parameters = lambda model:sum([param.nelement() for param in model.parameters()]) + # origin_nparameters = obtain_num_parameters(model) + # print("Parameters : ", f"{origin_nparameters}") + + # GPUs = torch.hub.list_hub_servers() + # flops = [] + # parameters = [] + + # for server in GPUs: + # # device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + # flops.append(torch.Tensor(np.sum(np.square(model.parameters()[:3])).item())) + # parameters.append(torch.Tensor(model.parameters())) + # model.to(device) + # flops = np.array(flops) + # flops = flops.reshape(-1, flops.shape[-1]) + # TFLOPS += flops.item() + # parameters = np.array(parameters) + # parameters = parameters.reshape(-1, parameters.shape[-1]) + # print('GPUs:', GPUs) + # print('FLOPS:', flops.item()) + # print('Params:', parameters.item()) + + # print('TFLOPS:', TFLOPS) diff --git a/train_person.sh b/train_person.sh new file mode 100644 index 0000000..98480e7 --- /dev/null +++ b/train_person.sh @@ -0,0 +1,4 @@ +#!bash +CARD=0,1 + +CUDA_VISIBLE_DEVICES=$CARD python train.py --model_def config/yolov3-person.cfg \ No newline at end of file diff --git a/utils/__pycache__/augmentations.cpython-38.pyc b/utils/__pycache__/augmentations.cpython-38.pyc new file mode 100644 index 0000000..d877464 Binary files /dev/null and b/utils/__pycache__/augmentations.cpython-38.pyc differ diff --git a/utils/__pycache__/augmentations.cpython-39.pyc b/utils/__pycache__/augmentations.cpython-39.pyc new file mode 100644 index 0000000..cb43dc2 Binary files /dev/null and b/utils/__pycache__/augmentations.cpython-39.pyc differ diff --git a/utils/__pycache__/datasets.cpython-38.pyc b/utils/__pycache__/datasets.cpython-38.pyc new file mode 100644 index 0000000..a744c89 Binary files /dev/null and b/utils/__pycache__/datasets.cpython-38.pyc differ diff --git a/utils/__pycache__/datasets.cpython-39.pyc b/utils/__pycache__/datasets.cpython-39.pyc new file mode 100644 index 0000000..6833715 Binary files /dev/null and b/utils/__pycache__/datasets.cpython-39.pyc differ diff --git a/utils/__pycache__/logger.cpython-38.pyc b/utils/__pycache__/logger.cpython-38.pyc new file mode 100644 index 0000000..7f5c5be Binary files /dev/null and b/utils/__pycache__/logger.cpython-38.pyc differ diff --git a/utils/__pycache__/logger.cpython-39.pyc b/utils/__pycache__/logger.cpython-39.pyc new file mode 100644 index 0000000..d9147c1 Binary files /dev/null and b/utils/__pycache__/logger.cpython-39.pyc differ diff --git a/utils/__pycache__/parse_config.cpython-38.pyc b/utils/__pycache__/parse_config.cpython-38.pyc new file mode 100644 index 0000000..92ef568 Binary files /dev/null and b/utils/__pycache__/parse_config.cpython-38.pyc differ diff --git a/utils/__pycache__/parse_config.cpython-39.pyc b/utils/__pycache__/parse_config.cpython-39.pyc new file mode 100644 index 0000000..7b74770 Binary files /dev/null and b/utils/__pycache__/parse_config.cpython-39.pyc differ diff --git a/utils/__pycache__/prune_utils.cpython-38.pyc b/utils/__pycache__/prune_utils.cpython-38.pyc new file mode 100644 index 0000000..7b3fe5d Binary files /dev/null and b/utils/__pycache__/prune_utils.cpython-38.pyc differ diff --git a/utils/__pycache__/utils.cpython-38.pyc b/utils/__pycache__/utils.cpython-38.pyc new file mode 100644 index 0000000..727a326 Binary files /dev/null and b/utils/__pycache__/utils.cpython-38.pyc differ diff --git a/utils/__pycache__/utils.cpython-39.pyc b/utils/__pycache__/utils.cpython-39.pyc new file mode 100644 index 0000000..c9a26f3 Binary files /dev/null and b/utils/__pycache__/utils.cpython-39.pyc differ diff --git a/utils/augmentations.py b/utils/augmentations.py new file mode 100644 index 0000000..a2724d9 --- /dev/null +++ b/utils/augmentations.py @@ -0,0 +1,42 @@ +import torch +import torch.nn.functional as F +import numpy as np +import albumentations as A + +# boxes = (cls, x, y, w, h) +def horizontal_flip(images, boxes): + images = np.flip(images, [-1]) + boxes[:, 1] = 1 - boxes[:, 1] + return images, boxes + +# images[np.unit8], boxes[numpy] = (cls, x, y, w, h) +def augment(image, boxes): + h, w, _ = image.shape + labels, boxes_coord = boxes[:, 0], boxes[:, 1:] + labels = labels.tolist() + boxes_coord = boxes_coord * h # 得到原图尺寸下的坐标(未归一化的坐标) + boxes_coord[:, 0] = np.clip(boxes_coord[:, 0]-boxes_coord[:, 2]/2, a_min=0, a_max=None) # 确保x_min和y_min有效 + boxes_coord[:, 1] = np.clip(boxes_coord[:, 1]-boxes_coord[:, 3]/2, a_min=0, a_max=None) + boxes_coord = boxes_coord.tolist() # [x_min, y_min, width, height] + + # 在这里设置数据增强的方法 + aug = A.Compose([ + A.HorizontalFlip(p=0.5), + # A.HueSaturationValue(hue_shift_limit=10, sat_shift_limit=10, val_shift_limit=10, p=0.5), + # A.ShiftScaleRotate(shift_limit=0.1, scale_limit=0.1, rotate_limit=5, border_mode=0, p=0.5) + ], bbox_params={'format':'coco', 'label_fields': ['category_id']}) + + augmented = aug(image=image, bboxes=boxes_coord, category_id=labels) + + # 经过aug之后,如果把boxes变没了,则返回原来的图片 + if augmented['bboxes']: + image = augmented['image'] + + boxes_coord = np.array(augmented['bboxes']) # x_min, y_min, w, h → x, y, w, h + boxes_coord[:, 0] = boxes_coord[:, 0] + boxes_coord[:, 2]/2 + boxes_coord[:, 1] = boxes_coord[:, 1] + boxes_coord[:, 3]/2 + boxes_coord = boxes_coord / h + labels = np.array(augmented['category_id'])[:, None] + boxes = np.concatenate((labels, boxes_coord), 1) + + return image, boxes \ No newline at end of file diff --git a/utils/datasets.py b/utils/datasets.py new file mode 100644 index 0000000..b5a1492 --- /dev/null +++ b/utils/datasets.py @@ -0,0 +1,173 @@ +import glob +import random +import os +import sys +import numpy as np +from PIL import Image +import torch +import torch.nn.functional as F + +from utils.augmentations import augment +from torch.utils.data import Dataset +import torchvision.transforms as transforms + +# 图像的转换流程:PIL→numpy→pad→transform→tensor + +# 对numpy格式的img进行padding([0,255]) +def pad_to_square(img, pad_value): + h, w, _ = img.shape + dim_diff = np.abs(h - w) + # (upper / left) padding and (lower / right) padding + pad1, pad2 = dim_diff // 2, dim_diff - dim_diff // 2 + # Determine padding + pad = ((pad1, pad2), (0,0), (0,0)) if h <= w else ((0,0), (pad1, pad2), (0,0)) # 分别对应h,w,c的padding + # Add padding + img = np.pad(img, pad, 'constant', constant_values=pad_value) + + return img, (*pad[1], *pad[0]) # 返回w,c的padding + + +# 对tensor格式的img进行resize +def resize(image, size): + image = F.interpolate(image.unsqueeze(0), size=size, mode="nearest").squeeze(0) + return image + + +class ImageFolder(Dataset): + def __init__(self, folder_path, img_size=416): + self.files = sorted(glob.glob("%s/*.*" % folder_path)) + self.img_size = img_size + + def __getitem__(self, index): + img_path = self.files[index % len(self.files)] + + img = Image.open(img_path) + img = np.array(img) + + # Pad to square resolution + img, _ = pad_to_square(img, 0) + + img = transforms.ToTensor()(img) # img为np.uint8格式 + + # Resize + img = resize(img, self.img_size) + + return img_path, img + + def __len__(self): + return len(self.files) + + +class ListDataset(Dataset): + def __init__(self, list_path, img_size=416, augment=True, multiscale=True, normalized_labels=True): + with open(list_path, "r") as file: + self.img_files = file.readlines() + + self.label_files = [ + path.replace("images", "labels").replace(".png", ".txt").replace(".jpg", ".txt") + for path in self.img_files + ] + self.img_size = img_size + self.augment = augment + self.multiscale = multiscale + self.normalized_labels = normalized_labels + self.min_size = self.img_size - 3 * 32 + self.max_size = self.img_size + 3 * 32 + self.batch_count = 0 + + def __getitem__(self, index): + + # --------- + # Image + # --------- + + img_path = self.img_files[index % len(self.img_files)].rstrip() + + img = Image.open(img_path).convert('RGB') + img = np.array(img) + + # Handle images with less than three channels + if len(img.shape) != 3: + img = img[None, :, :] + img = img.repeat(3, 0) + + h, w, _ = img.shape # np格式的img是H*W*C + h_factor, w_factor = (h, w) if self.normalized_labels else (1, 1) + # Pad to square resolution + img, pad = pad_to_square(img, 0) + padded_h, padded_w, _ = img.shape + + # --------- + # Label + # --------- + + label_path = self.label_files[index % len(self.img_files)].rstrip() + # print(label_path) + + assert os.path.exists(label_path) # 确保label_path必定存在,即图片必定存在label + boxes = np.loadtxt(label_path).reshape(-1, 5) + # Extract coordinates for unpadded + unscaled image + x1 = w_factor * (boxes[:, 1] - boxes[:, 3] / 2) + y1 = h_factor * (boxes[:, 2] - boxes[:, 4] / 2) + x2 = w_factor * (boxes[:, 1] + boxes[:, 3] / 2) + y2 = h_factor * (boxes[:, 2] + boxes[:, 4] / 2) + # Adjust for added padding + x1 += pad[0] # pad是从低维到高维的,感觉这样写是有问题的,应该只与pad[0][2]有关,不过一般都是相等的 + y1 += pad[2] + x2 += pad[0] + y2 += pad[2] + # Returns (x, y, w, h) + boxes[:, 1] = ((x1 + x2) / 2) / padded_w + boxes[:, 2] = ((y1 + y2) / 2) / padded_h + boxes[:, 3] *= w_factor / padded_w # 原来的数值是boxw_ori/imgw_ori, 现在变成了(boxw_ori/imgw_ori)*imgw_ori/imgw_pad=boxw_ori/imgw_pad + boxes[:, 4] *= h_factor / padded_h + + # Apply augmentations + # img, 以最长边为标准进行padding得到的uint8图像 + # boxes, (cls, x, y, w, h)都以pad后得到的img的高度进行了归一化 + if self.augment: + img, boxes = augment(img, boxes) + + img = transforms.ToTensor()(img) # ToTensor已经将像素值进行了归一化 + + targets = torch.zeros((len(boxes), 6)) + targets[:, 1:] = torch.from_numpy(boxes) # 0维在collate_fn中是作为idx用了,用于指定target对应的图片 + + return img_path, img, targets + + def collate_fn(self, batch): + paths, imgs, targets = list(zip(*batch)) + # Remove empty placeholder targets + # 确保每一张图片都有box,如果某张图片没有标签就会报错! + for boxes in targets: + assert (boxes is not None) + targets = [boxes for boxes in targets if boxes is not None] # 注意注意!!!这里并没有处理对应的imgs,imgs有可能与targets匹配不上 + # Add sample index to targets + for i, boxes in enumerate(targets): + boxes[:, 0] = i + targets = torch.cat(targets, 0) + # Selects new image size every tenth batch + # 因为多线程并行读取的原因,self.batch_count和self.img_size的操作是不对的, + # 个人觉得更好的处理方法将尺度的变化放到训练阶段,即读取数据之后再做resize + # if self.multiscale: + # self.img_size = random.choice(range(self.min_size, self.max_size + 1, 32)) + # Resize images to input shape + if self.multiscale: + imgs = torch.stack([resize(img, self.max_size) for img in imgs]) # 先将img统一resize到最大值 + else: + imgs = torch.stack([resize(img, self.img_size) for img in imgs]) + return paths, imgs, targets + + def __len__(self): + return len(self.img_files) + + # 重新设置img_size + def select_new_img_size(self): + self.img_size = random.choice(range(self.min_size, self.max_size + 1, 32)) + + # 对tensor格式的img进行resize + def resize_imgs(self, images): + if self.multiscale: + images = F.interpolate(images, size=self.img_size, mode="nearest") + + return images diff --git a/utils/logger.py b/utils/logger.py new file mode 100644 index 0000000..133ca44 --- /dev/null +++ b/utils/logger.py @@ -0,0 +1,32 @@ +# import tensorflow as tf + +# class Logger(object): +# def __init__(self, log_dir): +# """Create a summary writer logging to log_dir.""" +# self.writer = tf.summary.FileWriter(log_dir) +# +# def scalar_summary(self, tag, value, step): +# """Log a scalar variable.""" +# summary = tf.Summary(value=[tf.Summary.Value(tag=tag, simple_value=value)]) +# self.writer.add_summary(summary, step) +# +# def list_of_scalars_summary(self, tag_value_pairs, step): +# """Log scalar variables.""" +# summary = tf.Summary(value=[tf.Summary.Value(tag=tag, simple_value=value) for tag, value in tag_value_pairs]) +# self.writer.add_summary(summary, step) + +from tensorboardX import SummaryWriter +import os +from datetime import datetime +import time + +class Logger(object): + def __init__(self, log_dir): + """Create a summary writer logging to log_dir.""" + timestamp = datetime.fromtimestamp(time.time()).strftime('%m%d-%H:%M') + self.writer = SummaryWriter(os.path.join(log_dir, timestamp)) + + def list_of_scalars_summary(self, prefix, tag_value_pairs, step): + """Log scalar variables.""" + for tag, value in tag_value_pairs: + self.writer.add_scalar(prefix+'/'+tag, value, step) \ No newline at end of file diff --git a/utils/parse_config.py b/utils/parse_config.py new file mode 100644 index 0000000..58f51c1 --- /dev/null +++ b/utils/parse_config.py @@ -0,0 +1,36 @@ + + +def parse_model_config(path): + """Parses the yolo-v3 layer configuration file and returns module definitions""" + file = open(path, 'r') + lines = file.read().split('\n') + lines = [x for x in lines if x and not x.startswith('#')] + lines = [x.rstrip().lstrip() for x in lines] # get rid of fringe whitespaces + module_defs = [] + for line in lines: + if line.startswith('['): # This marks the start of a new block + module_defs.append({}) + module_defs[-1]['type'] = line[1:-1].rstrip() + if module_defs[-1]['type'] == 'convolutional': + module_defs[-1]['batch_normalize'] = 0 + else: + key, value = line.split("=") + value = value.strip() + module_defs[-1][key.rstrip()] = value.strip() + + return module_defs + +def parse_data_config(path): + """Parses the data configuration file""" + options = dict() + # options['gpus'] = '0,1,2,3' + # options['num_workers'] = '10' + with open(path, 'r') as fp: + lines = fp.readlines() + for line in lines: + line = line.strip() + if line == '' or line.startswith('#'): + continue + key, value = line.split('=') + options[key.strip()] = value.strip() + return options diff --git a/utils/prune_utils.py b/utils/prune_utils.py new file mode 100644 index 0000000..8fb0a34 --- /dev/null +++ b/utils/prune_utils.py @@ -0,0 +1,290 @@ +import torch +from terminaltables import AsciiTable +from copy import deepcopy +import numpy as np +import torch.nn.functional as F + + +def get_sr_flag(epoch, sr): + # return epoch >= 5 and sr + return sr + + +def parse_module_defs(module_defs): + + CBL_idx = [] + Conv_idx = [] + for i, module_def in enumerate(module_defs): + # 添加了 or module_def['type'] == 'ds_conv' 将ds_conv也纳入剪枝范围,如果不考虑的话就在下面的不需要剪枝那里添加 + if module_def['type'] == 'convolutional' or module_def['type'] == 'ds_conv': + if module_def['batch_normalize'] == '1': + CBL_idx.append(i) + #CBL_idx= 即为有卷积也有bn的层的idx + #[0, 1, 2, 3, 5, 6, 7, 9, 10, 12, 13, 14, 16, 17, 19, 20, 22, 23, 25, 26, 28, 29, 31, 32, 34, 35, 37, 38, + # 39, 41, 42, 44, 45, 47, 48, 50, 51, 53, 54, 56, 57, 59, 60, 62, 63, 64, 66, 67, 69, 70, 72, 73, 75, 76, 77, + # 78, 79, 80, 84, 87, 88, 89, 90, 91, 92, 96, 99, 100, 101, 102, 103, 104] + else: + #Conv_idx = [81, 93, 105] 即为有卷积没有bn的层的idx + Conv_idx.append(i) + + ignore_idx = set() #哪些层不需要剪枝 + for i, module_def in enumerate(module_defs): + #将ds_conv纳入不剪枝范围 + if module_def['type'] == 'ds_conv': + ignore_idx.add(i-1) + + if module_def['type'] == 'shortcut': + ignore_idx.add(i-1) + identity_idx = (i + int(module_def['from'])) + if module_defs[identity_idx]['type'] == 'convolutional': + ignore_idx.add(identity_idx) + elif module_defs[identity_idx]['type'] == 'shortcut': + ignore_idx.add(identity_idx - 1) + + ignore_idx.add(84) + ignore_idx.add(96) + # print(ignore_idx) + #ignore_idx={1, 3, 5, 7, 10, 12, 14, 17, 20, 23, 26, 29, 32, 35, 37, 39, 42, 45, 48, 51, 54, 57, 60, 62, 64, 67, 70, 73, 84, 96} 改结构前 + # ignore_idx={1, 3, 5, 7, 10, 12, 13, 14, 16, 17, 19, 20, 22, 23, 25, 26, 28, 29, 31, 32, 34, 35, 37, 38, 39, 41, 42, 44, 45, 47, + # 48, 50, 51, 53, 54, 56, 57, 59, 60, 62, 63, 64, 66, 67, 69, 70, 72, 73, 84, 96} + prune_idx = [idx for idx in CBL_idx if idx not in ignore_idx] + #prune_idx =[0, 2, 6, 9, 13, 16, 19, 22, 25, 28, 31, 34, 38, 41, 44, 47, 50, 53, 56, 59, 63, 66, 69, 72, 75, + # 76, 77, 78, 79, 80, 87, 88, 89, 90, 91, 92, 99, 100, 101, 102, 103, 104] 改结构前 + # prune_idx = [0, 2, 6, 9, 75, 76, 77, 78, 79, 80, 87, 88, 89, 90, 91, 92, 99, 100, 101, 102, 103, 104] + # 返回CBL组件的id,单独的Conv层的id,以及需要被剪枝的层的id + return CBL_idx, Conv_idx, prune_idx + + +def gather_bn_weights(module_list, prune_idx): + + size_list = [module_list[idx][1].weight.data.shape[0] for idx in prune_idx] # 存储prune_idx对应层的 filter数量 + # print('module_list[0][1].weight.data.shape[0] = ',module_list[0][1].weight.data.shape[0]) + # print("size_list:",size_list) + # ds_conv对应的size_list [32, 32, 64, 64, 512, 1024, 512, 1024, 512, 1024, 256, 512, 256, 512, 256, 512, 128, 256, 128, 256, 128, 256] + #[32, 32, 64, 64, 128, 128, 128, 128, 128, 128, 128, 128, 256, 256, 256, 256, 256, 256, 256, 256, 512, 512, 512, 512, 512, + # 1024, 512, 1024, 512, 1024, 256, 512, 256, 512, 256, 512, 128, 256, 128, 256, 128, 256] + + bn_weights = torch.zeros(sum(size_list)) + # print('bn_weights = ', bn_weights) + # bn_weights == tensor([0., 0., 0., ..., 0., 0., 0.]) + index = 0 + + for idx, size in zip(prune_idx, size_list): + # print('idx = ' ,idx, ' | size = ',size) + bn_weights[index:(index + size)] = module_list[idx][1].weight.data.abs().clone() + index += size + # print('bn_weights = ' ,bn_weights, ' | index = ',index) + # print('module_list[0][1].weight.data.abs().clone()_len = ',len(module_list[0][1].weight.data.abs().clone())) + # 获取CBL组件的BN层的权重,即Gamma参数,我们会根据这个参数来剪枝 + return bn_weights + + +def write_cfg(cfg_file, module_defs): + + with open(cfg_file, 'w') as f: + for module_def in module_defs: + f.write(f"[{module_def['type']}]\n") + for key, value in module_def.items(): + if key != 'type': + f.write(f"{key}={value}\n") + f.write("\n") + return cfg_file + + +class BNOptimizer(): + + @staticmethod + def updateBN(sr_flag, module_list, s, prune_idx): + if sr_flag: + for idx in prune_idx: + # Squential(Conv, BN, Lrelu) + bn_module = module_list[idx][1] + # 将批标准化模块(bn_module)的权重矩阵的梯度乘以一个缩放因子后添加到该权重矩阵的梯度上。 + bn_module.weight.grad.data.add_(s * torch.sign(bn_module.weight.data)) # L1 + + +def obtain_quantiles(bn_weights, num_quantile=5): + + sorted_bn_weights, i = torch.sort(bn_weights) + total = sorted_bn_weights.shape[0] + quantiles = sorted_bn_weights.tolist()[-1::-total//num_quantile][::-1] + print("\nBN weights quantile:") + quantile_table = [ + [f'{i}/{num_quantile}' for i in range(1, num_quantile+1)], + ["%.3f" % quantile for quantile in quantiles] + ] + print(AsciiTable(quantile_table).table) + + return quantiles + + +def get_input_mask(module_defs, idx, CBLidx2mask): + # print("CBLidx2mask : ", CBLidx2mask) + if idx == 0: + return np.ones(3) + + if module_defs[idx - 1]['type'] == 'convolutional': + return CBLidx2mask[idx - 1] + elif module_defs[idx - 1]['type'] == 'ds_conv': + return CBLidx2mask[idx - 1] + elif module_defs[idx - 1]['type'] == 'shortcut': + return CBLidx2mask[idx - 2] + elif module_defs[idx - 1]['type'] == 'route': + route_in_idxs = [] + for layer_i in module_defs[idx - 1]['layers'].split(","): + if int(layer_i) < 0: + route_in_idxs.append(idx - 1 + int(layer_i)) + else: + route_in_idxs.append(int(layer_i)) + if len(route_in_idxs) == 1: + return CBLidx2mask[route_in_idxs[0]] + elif len(route_in_idxs) == 2: + return np.concatenate([CBLidx2mask[in_idx - 1] for in_idx in route_in_idxs]) + else: + print("Something wrong with route module!") + raise Exception + + +def init_weights_from_loose_model(compact_model, loose_model, CBL_idx, Conv_idx, CBLidx2mask): + + # (14): Sequential( + # (ds_conv_d_14): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128) + # (ds_conv_p_14): Conv2d(128, 256, kernel_size=(1, 1), stride=(1, 1)) + # (batch_norm_14): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) + # (leaky_14): LeakyReLU(negative_slope=0.1, inplace=True) + # ) + + for idx in CBL_idx: + compact_CBL = compact_model.module_list[idx] + loose_CBL = loose_model.module_list[idx] + # print("idx:",idx,"--compact_CBL :", compact_CBL, "--compact_CBL[1] :", compact_CBL[1],"--compact_CBL[2] :", compact_CBL[2]) + # print("idx:",idx,"--loose_CBL :", loose_CBL, "--loose_CBL[1] :", loose_CBL[1],"--loose_CBL[2] :", loose_CBL[2]) + # np.argwhere返回非0元素的索引,X[:,0]是numpy中数组的一种写法,表示对一个二维数组,取该二维数组第一维中的所有数据,第二维中取第0个数据 + out_channel_idx = np.argwhere(CBLidx2mask[idx])[:, 0].tolist() + # print("idx:",idx,"--out_channel_idx:", len(out_channel_idx)) + # if (idx == 14): + # print("idx:",idx,"--out_channel_idx:", out_channel_idx, "--len:",len(out_channel_idx)) + # print("CBLidx2mask[idx] :",CBLidx2mask[idx],"--len:",len(CBLidx2mask[idx])) + # print("loose_model.module_list[idx][1]:",loose_model.module_list[idx][1]) + + + # 获取剪枝后的模型当前BN层的权重 + if(compact_model.module_defs[idx]['type'] == 'ds_conv') : + compact_bn, loose_bn = compact_CBL[2], loose_CBL[2] + else: + compact_bn, loose_bn = compact_CBL[1], loose_CBL[1] + # if idx==14: + # print("compact_bn.weight.data:",compact_bn.weight.data,"--len",len(compact_bn.weight.data)) + # print("loose_bn.weight.data:",loose_bn.weight.data,"--len",len(loose_bn.weight.data)) + # print("loose_bn.weight.data[out_channel_idx]:", loose_bn.weight.data[out_channel_idx],"--len",len(loose_bn.weight.data[out_channel_idx])) + compact_bn.weight.data = loose_bn.weight.data[out_channel_idx].clone() + compact_bn.bias.data = loose_bn.bias.data[out_channel_idx].clone() + compact_bn.running_mean.data = loose_bn.running_mean.data[out_channel_idx].clone() + compact_bn.running_var.data = loose_bn.running_var.data[out_channel_idx].clone() + + # 获取剪枝后的模型当前卷积层的权重,这和上一个卷积层的剪枝情况有关 + # print("idx:",idx) + input_mask = get_input_mask(loose_model.module_defs, idx, CBLidx2mask) + in_channel_idx = np.argwhere(input_mask)[:, 0].tolist() + # if (idx == 14): + # print("idx:",idx,"--in_channel_idx:", in_channel_idx, "--len:",len(in_channel_idx)) + # print("idx:",idx,"--in_channel_idx:",len(in_channel_idx)) + if(compact_model.module_defs[idx]['type'] == 'ds_conv') : + compact_conv, loose_conv = compact_CBL[0], loose_CBL[0] + # compact_conv, loose_conv = compact_CBL[1], loose_CBL[1] + compact_conv2, loose_conv2 = compact_CBL[1], loose_CBL[1] + + # 拷贝权重到剪枝后的模型中去 + # print("loose_conv2.weight.data:",loose_conv2.weight.data,"--len:",len(loose_conv2.weight.data)) + # print("loose_conv2.weight.data[:, in_channel_idx, :, :]:",loose_conv2.weight.data[:, in_channel_idx, :, :],"--len:",len(loose_conv2.weight.data[:, in_channel_idx, :, :])) + # print("compact_conv.weight.data:",compact_conv.weight.data,"--len:",len(compact_conv.weight.data)) + # print("compact_conv2.weight.data:",compact_conv2.weight.data,"--len:",len(compact_conv2.weight.data)) + # print("loose_conv.weight.data:",loose_conv.weight.data,"--len:",len(loose_conv.weight.data)) + # print("loose_conv.weight.data[:, in_channel_idx, :, :]:",loose_conv.weight.data[:, in_channel_idx, :, :],"--len:",len(loose_conv.weight.data[:, in_channel_idx, :, :])) + # tmp1 = loose_conv.weight.data[:, in_channel_idx, :, :].clone() + # compact_conv.weight.data = tmp1[in_channel_idx, :, :, :].clone() + compact_conv.weight.data = loose_conv.weight.data.clone() + compact_conv.bias.data = loose_conv.bias.data.clone() + # tmp2 = loose_conv2.weight.data[:, in_channel_idx, :, :].clone() + # compact_conv2.weight.data = tmp2[out_channel_idx, :, :, :].clone() + compact_conv2.weight.data = loose_conv2.weight.data.clone() + compact_conv2.bias.data = loose_conv2.bias.data.clone() + else: + compact_conv, loose_conv = compact_CBL[0], loose_CBL[0] + # print("idx:",idx,"--compact_CBL[0]:",compact_CBL[0],"--loose_CBL[0]",loose_CBL[0]) #还有一个可能就是ds_conv中有两个卷积层都需要复制权重! + # print("idx:",idx,"--compact_CBL[1]:",compact_CBL[1],"--loose_CBL[0]",loose_CBL[1]) + + # 拷贝权重到剪枝后的模型中去 + tmp = loose_conv.weight.data[:, in_channel_idx, :, :].clone() + compact_conv.weight.data = tmp[out_channel_idx, :, :, :].clone() + + for idx in Conv_idx: + + compact_conv = compact_model.module_list[idx][0] + loose_conv = loose_model.module_list[idx][0] + + # 虽然当前层是不带BN的卷积层,但仍然和上一个层的剪枝情况是相关的 + input_mask = get_input_mask(loose_model.module_defs, idx, CBLidx2mask) + in_channel_idx = np.argwhere(input_mask)[:, 0].tolist() + + # 拷贝权重到剪枝后的模型中去 + compact_conv.weight.data = loose_conv.weight.data[:, in_channel_idx, :, :].clone() + compact_conv.bias.data = loose_conv.bias.data.clone() + + +def prune_model_keep_size(model, prune_idx, CBL_idx, CBLidx2mask): +# 先拷贝一份原始的模型参数 + pruned_model = deepcopy(model) + # 对需要剪枝的层分别处理 + for idx in prune_idx: + # 需要保留的通道 + mask = torch.from_numpy(CBLidx2mask[idx]).cuda() + # 获取BN层的gamma参数,即BN层的权重 + bn_module = pruned_model.module_list[idx][1] + # print("bn_module:", pruned_model.module_list[idx][1]) + + bn_module.weight.data.mul_(mask) + # 获取保留下来的通道产生的激活值,注意是每个通道分别获取的 + activation = F.leaky_relu((1 - mask) * bn_module.bias.data, 0.1) + + # 两个上采样层前的卷积层 + next_idx_list = [idx + 1] + if idx == 79: + next_idx_list.append(84) + elif idx == 91: + next_idx_list.append(96) + + # print("idx:",idx,"--next_idx_list:",next_idx_list) + + # 对下一层进行处理 + for next_idx in next_idx_list: + # 当前层的BN剪枝之后会对下一个卷积层造成影响 + next_conv = pruned_model.module_list[next_idx][0] + # dim=(2,3)即在(w,h)维度上进行求和,因为是通道剪枝,一个通道对应着(w,h)这个矩形 + conv_sum = next_conv.weight.data.sum(dim=(2, 3)) + # 将卷积层的权重和激活值相乘获得剪枝后的每个通道的偏置,以更新下一个BN层或者下一个带偏置的卷积层的偏执(因为单独的卷积层是不会被剪枝的,所以只对偏置有影响 + # print("idx:", {idx} , "| next_idx:" , {next_idx}) + # print("conv_sum :", conv_sum) + # print("activation :", activation) + # print("--------------------------") + offset = conv_sum.matmul(activation.reshape(-1, 1)).reshape(-1) + if next_idx in CBL_idx: + next_bn = pruned_model.module_list[next_idx][1] + next_bn.running_mean.data.sub_(offset) + else: + next_conv.bias.data.add_(offset) + + bn_module.bias.data.mul_(mask) + # 返回剪枝后的模型 + return pruned_model + + +def obtain_bn_mask(bn_module, thre): + + thre = thre.cuda() + # ge(a, b)相当于 a>= b + mask = bn_module.weight.data.abs().ge(thre).float() + # print('thre = ',thre,"| mask = ", mask) + +# 返回通道是否需要剪枝的通道状态 + return mask diff --git a/utils/utils.py b/utils/utils.py new file mode 100644 index 0000000..2f3a088 --- /dev/null +++ b/utils/utils.py @@ -0,0 +1,323 @@ +from __future__ import division +import tqdm +import torch +import numpy as np +import random + + +def init_seeds(seed=0): + random.seed(seed) + np.random.seed(seed) + torch.manual_seed(seed) + torch.cuda.manual_seed(seed) + torch.cuda.manual_seed_all(seed) + + +def to_cpu(tensor): + return tensor.detach().cpu() + + +def load_classes(path): + """ + Loads class labels at 'path' + """ + fp = open(path, "r") + names = fp.read().split("\n")[:-1] + return names + + +def weights_init_normal(m): + classname = m.__class__.__name__ + if classname.find("Conv") != -1: + torch.nn.init.normal_(m.weight.data, 0.0, 0.02) + elif classname.find("BatchNorm2d") != -1: + torch.nn.init.normal_(m.weight.data, 1.0, 0.02) + torch.nn.init.constant_(m.bias.data, 0.0) + + +def rescale_boxes(boxes, current_dim, original_shape): + """ Rescales bounding boxes to the original shape """ + orig_h, orig_w = original_shape + # The amount of padding that was added + pad_x = max(orig_h - orig_w, 0) * (current_dim / max(original_shape)) + pad_y = max(orig_w - orig_h, 0) * (current_dim / max(original_shape)) + # Image height and width after padding is removed + unpad_h = current_dim - pad_y + unpad_w = current_dim - pad_x + # Rescale bounding boxes to dimension of original image + boxes[:, 0] = ((boxes[:, 0] - pad_x // 2) / unpad_w) * orig_w + boxes[:, 1] = ((boxes[:, 1] - pad_y // 2) / unpad_h) * orig_h + boxes[:, 2] = ((boxes[:, 2] - pad_x // 2) / unpad_w) * orig_w + boxes[:, 3] = ((boxes[:, 3] - pad_y // 2) / unpad_h) * orig_h + return boxes + + +def xywh2xyxy(x): + y = x.new(x.shape) + y[..., 0] = x[..., 0] - x[..., 2] / 2 + y[..., 1] = x[..., 1] - x[..., 3] / 2 + y[..., 2] = x[..., 0] + x[..., 2] / 2 + y[..., 3] = x[..., 1] + x[..., 3] / 2 + return y + + +def ap_per_class(tp, conf, pred_cls, target_cls): + """ Compute the average precision, given the recall and precision curves. + Source: https://github.com/rafaelpadilla/Object-Detection-Metrics. + # Arguments + tp: True positives (list). + conf: Objectness value from 0-1 (list). + pred_cls: Predicted object classes (list). + target_cls: True object classes (list). + # Returns + The average precision as computed in py-faster-rcnn. + """ + + # Sort by objectness + i = np.argsort(-conf) + tp, conf, pred_cls = tp[i], conf[i], pred_cls[i] + + # Find unique classes + unique_classes = np.unique(target_cls) + + # Create Precision-Recall curve and compute AP for each class + ap, p, r = [], [], [] + for c in tqdm.tqdm(unique_classes, desc="Computing AP"): + i = pred_cls == c + n_gt = (target_cls == c).sum() # Number of ground truth objects + n_p = i.sum() # Number of predicted objects + + if n_p == 0 and n_gt == 0: + continue + elif n_p == 0 or n_gt == 0: + ap.append(0) + r.append(0) + p.append(0) + else: + # Accumulate FPs and TPs + fpc = (1 - tp[i]).cumsum() + tpc = (tp[i]).cumsum() + + # Recall + recall_curve = tpc / (n_gt + 1e-16) + r.append(recall_curve[-1]) + + # Precision + precision_curve = tpc / (tpc + fpc) + p.append(precision_curve[-1]) + + # AP from recall-precision curve + ap.append(compute_ap(recall_curve, precision_curve)) + + # Compute F1 score (harmonic mean of precision and recall) + p, r, ap = np.array(p), np.array(r), np.array(ap) + f1 = 2 * p * r / (p + r + 1e-16) + + return p, r, ap, f1, unique_classes.astype("int32") + + +def compute_ap(recall, precision): + """ Compute the average precision, given the recall and precision curves. + Code originally from https://github.com/rbgirshick/py-faster-rcnn. + + # Arguments + recall: The recall curve (list). + precision: The precision curve (list). + # Returns + The average precision as computed in py-faster-rcnn. + """ + # correct AP calculation + # first append sentinel values at the end + mrec = np.concatenate(([0.0], recall, [1.0])) + mpre = np.concatenate(([0.0], precision, [0.0])) + + # compute the precision envelope + for i in range(mpre.size - 1, 0, -1): + mpre[i - 1] = np.maximum(mpre[i - 1], mpre[i]) + + # to calculate area under PR curve, look for points + # where X axis (recall) changes value + i = np.where(mrec[1:] != mrec[:-1])[0] + + # and sum (\Delta recall) * prec + ap = np.sum((mrec[i + 1] - mrec[i]) * mpre[i + 1]) + return ap + + +def get_batch_statistics(outputs, targets, iou_threshold): + """ Compute true positives, predicted scores and predicted labels per sample """ + batch_metrics = [] + for sample_i in range(len(outputs)): + + if outputs[sample_i] is None: + continue + + output = outputs[sample_i] # 取出结果 + pred_boxes = output[:, :4] # box + pred_scores = output[:, 4] # 置信度 + pred_labels = output[:, -1]# 类别 + + true_positives = np.zeros(pred_boxes.shape[0]) # 统计postive的值 + + annotations = targets[targets[:, 0] == sample_i][:, 1:] # 取出对应的图片的 标注【label,x,y,w,h】 + target_labels = annotations[:, 0] if len(annotations) else [] # 取出图片内的 label + if len(annotations): + detected_boxes = [] + target_boxes = annotations[:, 1:] # 标注bbox + + for pred_i, (pred_box, pred_label) in enumerate(zip(pred_boxes, pred_labels)): + + # If targets are found break + if len(detected_boxes) == len(annotations): # 完成图片内的目标检测 + break + + # Ignore if label is not one of the target labels + if pred_label not in target_labels: + continue + + iou, box_index = bbox_iou(pred_box.unsqueeze(0), target_boxes).max(0) # 返回列最大值 + if iou >= iou_threshold and box_index not in detected_boxes: # iou>阈值的 + true_positives[pred_i] = 1 + detected_boxes += [box_index] + batch_metrics.append([true_positives, pred_scores, pred_labels]) + return batch_metrics + + +def bbox_wh_iou(wh1, wh2): + wh2 = wh2.t() + w1, h1 = wh1[0], wh1[1] + w2, h2 = wh2[0], wh2[1] + inter_area = torch.min(w1, w2) * torch.min(h1, h2) + union_area = (w1 * h1 + 1e-16) + w2 * h2 - inter_area + return inter_area / union_area + + +def bbox_iou(box1, box2, x1y1x2y2=True): + """ + Returns the IoU of two bounding boxes + """ + if not x1y1x2y2: + # Transform from center and width to exact coordinates + b1_x1, b1_x2 = box1[:, 0] - box1[:, 2] / 2, box1[:, 0] + box1[:, 2] / 2 + b1_y1, b1_y2 = box1[:, 1] - box1[:, 3] / 2, box1[:, 1] + box1[:, 3] / 2 + b2_x1, b2_x2 = box2[:, 0] - box2[:, 2] / 2, box2[:, 0] + box2[:, 2] / 2 + b2_y1, b2_y2 = box2[:, 1] - box2[:, 3] / 2, box2[:, 1] + box2[:, 3] / 2 + else: + # Get the coordinates of bounding boxes + b1_x1, b1_y1, b1_x2, b1_y2 = box1[:, 0], box1[:, 1], box1[:, 2], box1[:, 3] + b2_x1, b2_y1, b2_x2, b2_y2 = box2[:, 0], box2[:, 1], box2[:, 2], box2[:, 3] + + # get the corrdinates of the intersection rectangle + inter_rect_x1 = torch.max(b1_x1, b2_x1) + inter_rect_y1 = torch.max(b1_y1, b2_y1) + inter_rect_x2 = torch.min(b1_x2, b2_x2) + inter_rect_y2 = torch.min(b1_y2, b2_y2) + # Intersection area + inter_area = torch.clamp(inter_rect_x2 - inter_rect_x1 + 1, min=0) * torch.clamp( + inter_rect_y2 - inter_rect_y1 + 1, min=0 + ) + # Union Area + b1_area = (b1_x2 - b1_x1 + 1) * (b1_y2 - b1_y1 + 1) + b2_area = (b2_x2 - b2_x1 + 1) * (b2_y2 - b2_y1 + 1) + + iou = inter_area / (b1_area + b2_area - inter_area + 1e-16) + + return iou + + +def non_max_suppression(prediction, conf_thres=0.5, nms_thres=0.4): + """ + Removes detections with lower object confidence score than 'conf_thres' and performs + Non-Maximum Suppression to further filter detections. + Returns detections with shape: + (x1, y1, x2, y2, object_conf, class_score, class_pred) + """ + + # From (center x, center y, width, height) to (x1, y1, x2, y2) + prediction[..., :4] = xywh2xyxy(prediction[..., :4]) + output = [None for _ in range(len(prediction))] + for image_i, image_pred in enumerate(prediction): + # Filter out confidence scores below threshold + image_pred = image_pred[image_pred[:, 4] >= conf_thres] + # If none are remaining => process next image + if not image_pred.size(0): + continue + # Object confidence times class confidence + score = image_pred[:, 4] * image_pred[:, 5:].max(1)[0] + # Sort by it + image_pred = image_pred[(-score).argsort()] + class_confs, class_preds = image_pred[:, 5:].max(1, keepdim=True) + detections = torch.cat((image_pred[:, :5], class_confs.float(), class_preds.float()), 1) + # Perform non-maximum suppression + keep_boxes = [] + while detections.size(0): + large_overlap = bbox_iou(detections[0, :4].unsqueeze(0), detections[:, :4]) > nms_thres + label_match = detections[0, -1] == detections[:, -1] + # Indices of boxes with lower confidence scores, large IOUs and matching labels + invalid = large_overlap & label_match + weights = detections[invalid, 4:5] + # Merge overlapping bboxes by order of confidence + detections[0, :4] = (weights * detections[invalid, :4]).sum(0) / weights.sum() + keep_boxes += [detections[0]] + detections = detections[~invalid] + if keep_boxes: + output[image_i] = torch.stack(keep_boxes) + + return output + + +def build_targets(pred_boxes, pred_cls, target, anchors, ignore_thres): + + ByteTensor = torch.cuda.ByteTensor if pred_boxes.is_cuda else torch.ByteTensor + FloatTensor = torch.cuda.FloatTensor if pred_boxes.is_cuda else torch.FloatTensor + + nB = pred_boxes.size(0) # num_samples, num_anchors, grid_size, grid_size, 4 + nA = pred_boxes.size(1) + nC = pred_cls.size(-1) # num_samples, num_anchors, grid_size, grid_size, num_classes + nG = pred_boxes.size(2) + + # Output tensors + obj_mask = ByteTensor(nB, nA, nG, nG).fill_(0) + noobj_mask = ByteTensor(nB, nA, nG, nG).fill_(1) + class_mask = FloatTensor(nB, nA, nG, nG).fill_(0) + iou_scores = FloatTensor(nB, nA, nG, nG).fill_(0) + tx = FloatTensor(nB, nA, nG, nG).fill_(0) + ty = FloatTensor(nB, nA, nG, nG).fill_(0) + tw = FloatTensor(nB, nA, nG, nG).fill_(0) + th = FloatTensor(nB, nA, nG, nG).fill_(0) + tcls = FloatTensor(nB, nA, nG, nG, nC).fill_(0) + + # Convert to position relative to box + target_boxes = target[:, 2:6] * nG # target的1维是其对应图片的idx + gxy = target_boxes[:, :2] + gwh = target_boxes[:, 2:] + # Get anchors with best iou + ious = torch.stack([bbox_wh_iou(anchor, gwh) for anchor in anchors]) # anchors*target + best_ious, best_n = ious.max(0) + # Separate target values + b, target_labels = target[:, :2].long().t() # target = [idx, labels, x, y, w, h] + gx, gy = gxy.t() + gw, gh = gwh.t() + gi, gj = gxy.long().t() # long是变成长整型 + # Set masks + obj_mask[b, best_n, gj, gi] = 1 + noobj_mask[b, best_n, gj, gi] = 0 + + # Set noobj mask to zero where iou exceeds ignore threshold + for i, anchor_ious in enumerate(ious.t()): + noobj_mask[b[i], anchor_ious > ignore_thres, gj[i], gi[i]] = 0 + + # Coordinates + tx[b, best_n, gj, gi] = gx - gx.floor() + ty[b, best_n, gj, gi] = gy - gy.floor() + # Width and height + tw[b, best_n, gj, gi] = torch.log(gw / anchors[best_n][:, 0] + 1e-16) + th[b, best_n, gj, gi] = torch.log(gh / anchors[best_n][:, 1] + 1e-16) + # One-hot encoding of label + tcls[b, best_n, gj, gi, target_labels] = 1 + # Compute label correctness and iou at best anchor + class_mask[b, best_n, gj, gi] = (pred_cls[b, best_n, gj, gi].argmax(-1) == target_labels).float() + iou_scores[b, best_n, gj, gi] = bbox_iou(pred_boxes[b, best_n, gj, gi], target_boxes, x1y1x2y2=False) + + tconf = obj_mask.float() + return iou_scores, class_mask, obj_mask, noobj_mask, tx, ty, tw, th, tcls, tconf \ No newline at end of file diff --git a/xs_train.sh b/xs_train.sh new file mode 100644 index 0000000..0d0f74f --- /dev/null +++ b/xs_train.sh @@ -0,0 +1,4 @@ +#!bash +CARD=0,1 + +CUDA_VISIBLE_DEVICES=$CARD python train.py --model_def config/yolov3-person.cfg -sr --s 0.01 \ No newline at end of file