└── traffic-light-detection ├── model ├── mean.npy ├── 0_iter_106500.caffemodel ├── deploy.prototxt └── deploy_BW.prototxt ├── images ├── 0bc85042878d4d63454403f68fee11b9.jpg ├── 0db0c337db0a3a4df796e9eafa6c02ed.jpg ├── 4daea741d48639d20288955ae299d1e0.jpg ├── 6a7aac7ea5435a53d8c5644a5c17fde1.jpg ├── 8f91ad839076f24d6a0e27029f07d2c0.jpg └── a5af6bd86cf1ee6a2ce4a539ace787f8.jpg ├── readme.md └── readme.md~ /traffic-light-detection/model/mean.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nudtfuruigang/traffic-light-detection/HEAD/traffic-light-detection/model/mean.npy -------------------------------------------------------------------------------- /traffic-light-detection/model/0_iter_106500.caffemodel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nudtfuruigang/traffic-light-detection/HEAD/traffic-light-detection/model/0_iter_106500.caffemodel -------------------------------------------------------------------------------- /traffic-light-detection/images/0bc85042878d4d63454403f68fee11b9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nudtfuruigang/traffic-light-detection/HEAD/traffic-light-detection/images/0bc85042878d4d63454403f68fee11b9.jpg -------------------------------------------------------------------------------- /traffic-light-detection/images/0db0c337db0a3a4df796e9eafa6c02ed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nudtfuruigang/traffic-light-detection/HEAD/traffic-light-detection/images/0db0c337db0a3a4df796e9eafa6c02ed.jpg -------------------------------------------------------------------------------- /traffic-light-detection/images/4daea741d48639d20288955ae299d1e0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nudtfuruigang/traffic-light-detection/HEAD/traffic-light-detection/images/4daea741d48639d20288955ae299d1e0.jpg -------------------------------------------------------------------------------- /traffic-light-detection/images/6a7aac7ea5435a53d8c5644a5c17fde1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nudtfuruigang/traffic-light-detection/HEAD/traffic-light-detection/images/6a7aac7ea5435a53d8c5644a5c17fde1.jpg -------------------------------------------------------------------------------- /traffic-light-detection/images/8f91ad839076f24d6a0e27029f07d2c0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nudtfuruigang/traffic-light-detection/HEAD/traffic-light-detection/images/8f91ad839076f24d6a0e27029f07d2c0.jpg -------------------------------------------------------------------------------- /traffic-light-detection/images/a5af6bd86cf1ee6a2ce4a539ace787f8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nudtfuruigang/traffic-light-detection/HEAD/traffic-light-detection/images/a5af6bd86cf1ee6a2ce4a539ace787f8.jpg -------------------------------------------------------------------------------- /traffic-light-detection/readme.md: -------------------------------------------------------------------------------- 1 | ## Recognizing Traffic Lights with Deep Learning 2 | 3 | This repo contains the files used to classify and detect Traffic Light 4 | 5 | ### Dependencies 6 | 7 | [Caffe](https://github.com/BVLC/caffe) with python bindings. 8 | 9 | ### Directory contents: 10 | 11 | `/model`: contain one npy file, one weights file and two caffe prototxt files. 12 | 13 | `/images`: some traffic light examples. 14 | -------------------------------------------------------------------------------- /traffic-light-detection/readme.md~: -------------------------------------------------------------------------------- 1 | ## Recognizing Traffic Lights with Deep Learning 2 | 3 | This repo contains the files used to classify and detect Traffic Light described in 4 | 5 | ### Dependencies 6 | 7 | [Caffe](https://github.com/BVLC/caffe) with python bindings. 8 | 9 | ### Directory contents: 10 | 11 | `/model`: contain one npy file, one weights file and two caffe prototxt files. 12 | 13 | `/images`: some traffic light examples. 14 | -------------------------------------------------------------------------------- /traffic-light-detection/model/deploy.prototxt: -------------------------------------------------------------------------------- 1 | # please cite: 2 | # @article{SqueezeNet, 3 | # Author = {Forrest N. Iandola and Matthew W. Moskewicz and Khalid Ashraf and Song Han and William J. Dally and Kurt Keutzer}, 4 | # Title = {SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and $<$1MB model size}, 5 | # Journal = {arXiv:1602.07360}, 6 | # Year = {2016} 7 | #} 8 | 9 | input: "data" 10 | input_shape { 11 | dim: 1 12 | dim: 3 13 | dim: 227 14 | dim: 227 15 | } 16 | layer { 17 | name: "conv1" 18 | type: "Convolution" 19 | bottom: "data" 20 | top: "conv1" 21 | convolution_param { 22 | num_output: 96 23 | kernel_size: 7 24 | stride: 2 25 | } 26 | } 27 | layer { 28 | name: "relu_conv1" 29 | type: "ReLU" 30 | bottom: "conv1" 31 | top: "conv1" 32 | } 33 | layer { 34 | name: "pool1" 35 | type: "Pooling" 36 | bottom: "conv1" 37 | top: "pool1" 38 | pooling_param { 39 | pool: MAX 40 | kernel_size: 3 41 | stride: 2 42 | } 43 | } 44 | layer { 45 | name: "fire2/squeeze1x1" 46 | type: "Convolution" 47 | bottom: "pool1" 48 | top: "fire2/squeeze1x1" 49 | convolution_param { 50 | num_output: 24 51 | kernel_size: 1 52 | } 53 | } 54 | layer { 55 | name: "fire2/relu_squeeze1x1" 56 | type: "ReLU" 57 | bottom: "fire2/squeeze1x1" 58 | top: "fire2/squeeze1x1" 59 | } 60 | layer { 61 | name: "fire2/expand1x1" 62 | type: "Convolution" 63 | bottom: "fire2/squeeze1x1" 64 | top: "fire2/expand1x1" 65 | convolution_param { 66 | num_output: 64 67 | kernel_size: 1 68 | } 69 | } 70 | layer { 71 | name: "fire2/relu_expand1x1" 72 | type: "ReLU" 73 | bottom: "fire2/expand1x1" 74 | top: "fire2/expand1x1" 75 | } 76 | layer { 77 | name: "fire2/expand3x3" 78 | type: "Convolution" 79 | bottom: "fire2/squeeze1x1" 80 | top: "fire2/expand3x3" 81 | convolution_param { 82 | num_output: 64 83 | pad: 1 84 | kernel_size: 3 85 | } 86 | } 87 | layer { 88 | name: "fire2/relu_expand3x3" 89 | type: "ReLU" 90 | bottom: "fire2/expand3x3" 91 | top: "fire2/expand3x3" 92 | } 93 | layer { 94 | name: "fire2/concat" 95 | type: "Concat" 96 | bottom: "fire2/expand1x1" 97 | bottom: "fire2/expand3x3" 98 | top: "fire2/concat" 99 | } 100 | layer { 101 | name: "fire3/squeeze1x1" 102 | type: "Convolution" 103 | bottom: "fire2/concat" 104 | top: "fire3/squeeze1x1" 105 | convolution_param { 106 | num_output: 16 107 | kernel_size: 1 108 | } 109 | } 110 | layer { 111 | name: "fire3/relu_squeeze1x1" 112 | type: "ReLU" 113 | bottom: "fire3/squeeze1x1" 114 | top: "fire3/squeeze1x1" 115 | } 116 | layer { 117 | name: "fire3/expand1x1" 118 | type: "Convolution" 119 | bottom: "fire3/squeeze1x1" 120 | top: "fire3/expand1x1" 121 | convolution_param { 122 | num_output: 64 123 | kernel_size: 1 124 | } 125 | } 126 | layer { 127 | name: "fire3/relu_expand1x1" 128 | type: "ReLU" 129 | bottom: "fire3/expand1x1" 130 | top: "fire3/expand1x1" 131 | } 132 | layer { 133 | name: "fire3/expand3x3" 134 | type: "Convolution" 135 | bottom: "fire3/squeeze1x1" 136 | top: "fire3/expand3x3" 137 | convolution_param { 138 | num_output: 64 139 | pad: 1 140 | kernel_size: 3 141 | } 142 | } 143 | layer { 144 | name: "fire3/relu_expand3x3" 145 | type: "ReLU" 146 | bottom: "fire3/expand3x3" 147 | top: "fire3/expand3x3" 148 | } 149 | layer { 150 | name: "fire3/concat" 151 | type: "Concat" 152 | bottom: "fire3/expand1x1" 153 | bottom: "fire3/expand3x3" 154 | top: "fire3/concat" 155 | } 156 | layer { 157 | name: "fire4/squeeze1x1" 158 | type: "Convolution" 159 | bottom: "fire3/concat" 160 | top: "fire4/squeeze1x1" 161 | convolution_param { 162 | num_output: 32 163 | kernel_size: 1 164 | } 165 | } 166 | layer { 167 | name: "fire4/relu_squeeze1x1" 168 | type: "ReLU" 169 | bottom: "fire4/squeeze1x1" 170 | top: "fire4/squeeze1x1" 171 | } 172 | layer { 173 | name: "fire4/expand1x1" 174 | type: "Convolution" 175 | bottom: "fire4/squeeze1x1" 176 | top: "fire4/expand1x1" 177 | convolution_param { 178 | num_output: 128 179 | kernel_size: 1 180 | } 181 | } 182 | layer { 183 | name: "fire4/relu_expand1x1" 184 | type: "ReLU" 185 | bottom: "fire4/expand1x1" 186 | top: "fire4/expand1x1" 187 | } 188 | layer { 189 | name: "fire4/expand3x3" 190 | type: "Convolution" 191 | bottom: "fire4/squeeze1x1" 192 | top: "fire4/expand3x3" 193 | convolution_param { 194 | num_output: 128 195 | pad: 1 196 | kernel_size: 3 197 | } 198 | } 199 | layer { 200 | name: "fire4/relu_expand3x3" 201 | type: "ReLU" 202 | bottom: "fire4/expand3x3" 203 | top: "fire4/expand3x3" 204 | } 205 | layer { 206 | name: "fire4/concat" 207 | type: "Concat" 208 | bottom: "fire4/expand1x1" 209 | bottom: "fire4/expand3x3" 210 | top: "fire4/concat" 211 | } 212 | layer { 213 | name: "pool4" 214 | type: "Pooling" 215 | bottom: "fire4/concat" 216 | top: "pool4" 217 | pooling_param { 218 | pool: MAX 219 | kernel_size: 3 220 | stride: 2 221 | } 222 | } 223 | layer { 224 | name: "fire5/squeeze1x1" 225 | type: "Convolution" 226 | bottom: "pool4" 227 | top: "fire5/squeeze1x1" 228 | convolution_param { 229 | num_output: 32 230 | kernel_size: 1 231 | } 232 | } 233 | layer { 234 | name: "fire5/relu_squeeze1x1" 235 | type: "ReLU" 236 | bottom: "fire5/squeeze1x1" 237 | top: "fire5/squeeze1x1" 238 | } 239 | layer { 240 | name: "fire5/expand1x1" 241 | type: "Convolution" 242 | bottom: "fire5/squeeze1x1" 243 | top: "fire5/expand1x1" 244 | convolution_param { 245 | num_output: 128 246 | kernel_size: 1 247 | } 248 | } 249 | layer { 250 | name: "fire5/relu_expand1x1" 251 | type: "ReLU" 252 | bottom: "fire5/expand1x1" 253 | top: "fire5/expand1x1" 254 | } 255 | layer { 256 | name: "fire5/expand3x3" 257 | type: "Convolution" 258 | bottom: "fire5/squeeze1x1" 259 | top: "fire5/expand3x3" 260 | convolution_param { 261 | num_output: 128 262 | pad: 1 263 | kernel_size: 3 264 | } 265 | } 266 | layer { 267 | name: "fire5/relu_expand3x3" 268 | type: "ReLU" 269 | bottom: "fire5/expand3x3" 270 | top: "fire5/expand3x3" 271 | } 272 | layer { 273 | name: "fire5/concat" 274 | type: "Concat" 275 | bottom: "fire5/expand1x1" 276 | bottom: "fire5/expand3x3" 277 | top: "fire5/concat" 278 | } 279 | layer { 280 | name: "fire6/squeeze1x1" 281 | type: "Convolution" 282 | bottom: "fire5/concat" 283 | top: "fire6/squeeze1x1" 284 | convolution_param { 285 | num_output: 48 286 | kernel_size: 1 287 | } 288 | } 289 | layer { 290 | name: "fire6/relu_squeeze1x1" 291 | type: "ReLU" 292 | bottom: "fire6/squeeze1x1" 293 | top: "fire6/squeeze1x1" 294 | } 295 | layer { 296 | name: "fire6/expand1x1" 297 | type: "Convolution" 298 | bottom: "fire6/squeeze1x1" 299 | top: "fire6/expand1x1" 300 | convolution_param { 301 | num_output: 192 302 | kernel_size: 1 303 | } 304 | } 305 | layer { 306 | name: "fire6/relu_expand1x1" 307 | type: "ReLU" 308 | bottom: "fire6/expand1x1" 309 | top: "fire6/expand1x1" 310 | } 311 | layer { 312 | name: "fire6/expand3x3" 313 | type: "Convolution" 314 | bottom: "fire6/squeeze1x1" 315 | top: "fire6/expand3x3" 316 | convolution_param { 317 | num_output: 192 318 | pad: 1 319 | kernel_size: 3 320 | } 321 | } 322 | layer { 323 | name: "fire6/relu_expand3x3" 324 | type: "ReLU" 325 | bottom: "fire6/expand3x3" 326 | top: "fire6/expand3x3" 327 | } 328 | layer { 329 | name: "fire6/concat" 330 | type: "Concat" 331 | bottom: "fire6/expand1x1" 332 | bottom: "fire6/expand3x3" 333 | top: "fire6/concat" 334 | } 335 | layer { 336 | name: "fire7/squeeze1x1" 337 | type: "Convolution" 338 | bottom: "fire6/concat" 339 | top: "fire7/squeeze1x1" 340 | convolution_param { 341 | num_output: 48 342 | kernel_size: 1 343 | } 344 | } 345 | layer { 346 | name: "fire7/relu_squeeze1x1" 347 | type: "ReLU" 348 | bottom: "fire7/squeeze1x1" 349 | top: "fire7/squeeze1x1" 350 | } 351 | layer { 352 | name: "fire7/expand1x1" 353 | type: "Convolution" 354 | bottom: "fire7/squeeze1x1" 355 | top: "fire7/expand1x1" 356 | convolution_param { 357 | num_output: 192 358 | kernel_size: 1 359 | } 360 | } 361 | layer { 362 | name: "fire7/relu_expand1x1" 363 | type: "ReLU" 364 | bottom: "fire7/expand1x1" 365 | top: "fire7/expand1x1" 366 | } 367 | layer { 368 | name: "fire7/expand3x3" 369 | type: "Convolution" 370 | bottom: "fire7/squeeze1x1" 371 | top: "fire7/expand3x3" 372 | convolution_param { 373 | num_output: 192 374 | pad: 1 375 | kernel_size: 3 376 | } 377 | } 378 | layer { 379 | name: "fire7/relu_expand3x3" 380 | type: "ReLU" 381 | bottom: "fire7/expand3x3" 382 | top: "fire7/expand3x3" 383 | } 384 | layer { 385 | name: "fire7/concat" 386 | type: "Concat" 387 | bottom: "fire7/expand1x1" 388 | bottom: "fire7/expand3x3" 389 | top: "fire7/concat" 390 | } 391 | layer { 392 | name: "fire8/squeeze1x1" 393 | type: "Convolution" 394 | bottom: "fire7/concat" 395 | top: "fire8/squeeze1x1" 396 | convolution_param { 397 | num_output: 64 398 | kernel_size: 1 399 | } 400 | } 401 | layer { 402 | name: "fire8/relu_squeeze1x1" 403 | type: "ReLU" 404 | bottom: "fire8/squeeze1x1" 405 | top: "fire8/squeeze1x1" 406 | } 407 | layer { 408 | name: "fire8/expand1x1" 409 | type: "Convolution" 410 | bottom: "fire8/squeeze1x1" 411 | top: "fire8/expand1x1" 412 | convolution_param { 413 | num_output: 256 414 | kernel_size: 1 415 | } 416 | } 417 | layer { 418 | name: "fire8/relu_expand1x1" 419 | type: "ReLU" 420 | bottom: "fire8/expand1x1" 421 | top: "fire8/expand1x1" 422 | } 423 | layer { 424 | name: "fire8/expand3x3" 425 | type: "Convolution" 426 | bottom: "fire8/squeeze1x1" 427 | top: "fire8/expand3x3" 428 | convolution_param { 429 | num_output: 256 430 | pad: 1 431 | kernel_size: 3 432 | } 433 | } 434 | layer { 435 | name: "fire8/relu_expand3x3" 436 | type: "ReLU" 437 | bottom: "fire8/expand3x3" 438 | top: "fire8/expand3x3" 439 | } 440 | layer { 441 | name: "fire8/concat" 442 | type: "Concat" 443 | bottom: "fire8/expand1x1" 444 | bottom: "fire8/expand3x3" 445 | top: "fire8/concat" 446 | } 447 | layer { 448 | name: "pool8" 449 | type: "Pooling" 450 | bottom: "fire8/concat" 451 | top: "pool8" 452 | pooling_param { 453 | pool: MAX 454 | kernel_size: 3 455 | stride: 2 456 | } 457 | } 458 | layer { 459 | name: "fire9/squeeze1x1" 460 | type: "Convolution" 461 | bottom: "pool8" 462 | top: "fire9/squeeze1x1" 463 | convolution_param { 464 | num_output: 64 465 | kernel_size: 1 466 | } 467 | } 468 | layer { 469 | name: "fire9/relu_squeeze1x1" 470 | type: "ReLU" 471 | bottom: "fire9/squeeze1x1" 472 | top: "fire9/squeeze1x1" 473 | } 474 | layer { 475 | name: "fire9/expand1x1" 476 | type: "Convolution" 477 | bottom: "fire9/squeeze1x1" 478 | top: "fire9/expand1x1" 479 | convolution_param { 480 | num_output: 256 481 | kernel_size: 1 482 | } 483 | } 484 | layer { 485 | name: "fire9/relu_expand1x1" 486 | type: "ReLU" 487 | bottom: "fire9/expand1x1" 488 | top: "fire9/expand1x1" 489 | } 490 | layer { 491 | name: "fire9/expand3x3" 492 | type: "Convolution" 493 | bottom: "fire9/squeeze1x1" 494 | top: "fire9/expand3x3" 495 | convolution_param { 496 | num_output: 256 497 | pad: 1 498 | kernel_size: 3 499 | } 500 | } 501 | layer { 502 | name: "fire9/relu_expand3x3" 503 | type: "ReLU" 504 | bottom: "fire9/expand3x3" 505 | top: "fire9/expand3x3" 506 | } 507 | layer { 508 | name: "fire9/concat" 509 | type: "Concat" 510 | bottom: "fire9/expand1x1" 511 | bottom: "fire9/expand3x3" 512 | top: "fire9/concat" 513 | } 514 | layer { 515 | name: "drop9" 516 | type: "Dropout" 517 | bottom: "fire9/concat" 518 | top: "fire9/concat" 519 | dropout_param { 520 | dropout_ratio: 0.5 521 | } 522 | } 523 | layer { 524 | name: "conv10_nexar" 525 | type: "Convolution" 526 | bottom: "fire9/concat" 527 | top: "conv10" 528 | convolution_param { 529 | num_output: 3 530 | pad: 1 531 | kernel_size: 1 532 | } 533 | } 534 | layer { 535 | name: "relu_conv10" 536 | type: "ReLU" 537 | bottom: "conv10" 538 | top: "conv10" 539 | } 540 | layer { 541 | name: "pool10" 542 | type: "Pooling" 543 | bottom: "conv10" 544 | top: "pool10" 545 | pooling_param { 546 | pool: AVE 547 | global_pooling: true 548 | } 549 | } 550 | layer { 551 | name: "prob" 552 | type: "Softmax" 553 | bottom: "pool10" 554 | top: "prob" 555 | } 556 | -------------------------------------------------------------------------------- /traffic-light-detection/model/deploy_BW.prototxt: -------------------------------------------------------------------------------- 1 | # please cite: 2 | # @article{SqueezeNet, 3 | # Author = {Forrest N. Iandola and Matthew W. Moskewicz and Khalid Ashraf and Song Han and William J. Dally and Kurt Keutzer}, 4 | # Title = {SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and $<$1MB model size}, 5 | # Journal = {arXiv:1602.07360}, 6 | # Year = {2016} 7 | #} 8 | 9 | input: "data" 10 | input_shape { 11 | dim: 1 12 | dim: 3 13 | dim: 227 14 | dim: 227 15 | } 16 | force_backward: true 17 | layer { 18 | name: "conv1" 19 | type: "Convolution" 20 | bottom: "data" 21 | top: "conv1" 22 | convolution_param { 23 | num_output: 96 24 | kernel_size: 7 25 | stride: 2 26 | } 27 | } 28 | layer { 29 | name: "relu_conv1" 30 | type: "ReLU" 31 | bottom: "conv1" 32 | top: "conv1" 33 | } 34 | layer { 35 | name: "pool1" 36 | type: "Pooling" 37 | bottom: "conv1" 38 | top: "pool1" 39 | pooling_param { 40 | pool: MAX 41 | kernel_size: 3 42 | stride: 2 43 | } 44 | } 45 | layer { 46 | name: "fire2/squeeze1x1" 47 | type: "Convolution" 48 | bottom: "pool1" 49 | top: "fire2/squeeze1x1" 50 | convolution_param { 51 | num_output: 24 52 | kernel_size: 1 53 | } 54 | } 55 | layer { 56 | name: "fire2/relu_squeeze1x1" 57 | type: "ReLU" 58 | bottom: "fire2/squeeze1x1" 59 | top: "fire2/squeeze1x1" 60 | } 61 | layer { 62 | name: "fire2/expand1x1" 63 | type: "Convolution" 64 | bottom: "fire2/squeeze1x1" 65 | top: "fire2/expand1x1" 66 | convolution_param { 67 | num_output: 64 68 | kernel_size: 1 69 | } 70 | } 71 | layer { 72 | name: "fire2/relu_expand1x1" 73 | type: "ReLU" 74 | bottom: "fire2/expand1x1" 75 | top: "fire2/expand1x1" 76 | } 77 | layer { 78 | name: "fire2/expand3x3" 79 | type: "Convolution" 80 | bottom: "fire2/squeeze1x1" 81 | top: "fire2/expand3x3" 82 | convolution_param { 83 | num_output: 64 84 | pad: 1 85 | kernel_size: 3 86 | } 87 | } 88 | layer { 89 | name: "fire2/relu_expand3x3" 90 | type: "ReLU" 91 | bottom: "fire2/expand3x3" 92 | top: "fire2/expand3x3" 93 | } 94 | layer { 95 | name: "fire2/concat" 96 | type: "Concat" 97 | bottom: "fire2/expand1x1" 98 | bottom: "fire2/expand3x3" 99 | top: "fire2/concat" 100 | } 101 | layer { 102 | name: "fire3/squeeze1x1" 103 | type: "Convolution" 104 | bottom: "fire2/concat" 105 | top: "fire3/squeeze1x1" 106 | convolution_param { 107 | num_output: 16 108 | kernel_size: 1 109 | } 110 | } 111 | layer { 112 | name: "fire3/relu_squeeze1x1" 113 | type: "ReLU" 114 | bottom: "fire3/squeeze1x1" 115 | top: "fire3/squeeze1x1" 116 | } 117 | layer { 118 | name: "fire3/expand1x1" 119 | type: "Convolution" 120 | bottom: "fire3/squeeze1x1" 121 | top: "fire3/expand1x1" 122 | convolution_param { 123 | num_output: 64 124 | kernel_size: 1 125 | } 126 | } 127 | layer { 128 | name: "fire3/relu_expand1x1" 129 | type: "ReLU" 130 | bottom: "fire3/expand1x1" 131 | top: "fire3/expand1x1" 132 | } 133 | layer { 134 | name: "fire3/expand3x3" 135 | type: "Convolution" 136 | bottom: "fire3/squeeze1x1" 137 | top: "fire3/expand3x3" 138 | convolution_param { 139 | num_output: 64 140 | pad: 1 141 | kernel_size: 3 142 | } 143 | } 144 | layer { 145 | name: "fire3/relu_expand3x3" 146 | type: "ReLU" 147 | bottom: "fire3/expand3x3" 148 | top: "fire3/expand3x3" 149 | } 150 | layer { 151 | name: "fire3/concat" 152 | type: "Concat" 153 | bottom: "fire3/expand1x1" 154 | bottom: "fire3/expand3x3" 155 | top: "fire3/concat" 156 | } 157 | layer { 158 | name: "fire4/squeeze1x1" 159 | type: "Convolution" 160 | bottom: "fire3/concat" 161 | top: "fire4/squeeze1x1" 162 | convolution_param { 163 | num_output: 32 164 | kernel_size: 1 165 | } 166 | } 167 | layer { 168 | name: "fire4/relu_squeeze1x1" 169 | type: "ReLU" 170 | bottom: "fire4/squeeze1x1" 171 | top: "fire4/squeeze1x1" 172 | } 173 | layer { 174 | name: "fire4/expand1x1" 175 | type: "Convolution" 176 | bottom: "fire4/squeeze1x1" 177 | top: "fire4/expand1x1" 178 | convolution_param { 179 | num_output: 128 180 | kernel_size: 1 181 | } 182 | } 183 | layer { 184 | name: "fire4/relu_expand1x1" 185 | type: "ReLU" 186 | bottom: "fire4/expand1x1" 187 | top: "fire4/expand1x1" 188 | } 189 | layer { 190 | name: "fire4/expand3x3" 191 | type: "Convolution" 192 | bottom: "fire4/squeeze1x1" 193 | top: "fire4/expand3x3" 194 | convolution_param { 195 | num_output: 128 196 | pad: 1 197 | kernel_size: 3 198 | } 199 | } 200 | layer { 201 | name: "fire4/relu_expand3x3" 202 | type: "ReLU" 203 | bottom: "fire4/expand3x3" 204 | top: "fire4/expand3x3" 205 | } 206 | layer { 207 | name: "fire4/concat" 208 | type: "Concat" 209 | bottom: "fire4/expand1x1" 210 | bottom: "fire4/expand3x3" 211 | top: "fire4/concat" 212 | } 213 | layer { 214 | name: "pool4" 215 | type: "Pooling" 216 | bottom: "fire4/concat" 217 | top: "pool4" 218 | pooling_param { 219 | pool: MAX 220 | kernel_size: 3 221 | stride: 2 222 | } 223 | } 224 | layer { 225 | name: "fire5/squeeze1x1" 226 | type: "Convolution" 227 | bottom: "pool4" 228 | top: "fire5/squeeze1x1" 229 | convolution_param { 230 | num_output: 32 231 | kernel_size: 1 232 | } 233 | } 234 | layer { 235 | name: "fire5/relu_squeeze1x1" 236 | type: "ReLU" 237 | bottom: "fire5/squeeze1x1" 238 | top: "fire5/squeeze1x1" 239 | } 240 | layer { 241 | name: "fire5/expand1x1" 242 | type: "Convolution" 243 | bottom: "fire5/squeeze1x1" 244 | top: "fire5/expand1x1" 245 | convolution_param { 246 | num_output: 128 247 | kernel_size: 1 248 | } 249 | } 250 | layer { 251 | name: "fire5/relu_expand1x1" 252 | type: "ReLU" 253 | bottom: "fire5/expand1x1" 254 | top: "fire5/expand1x1" 255 | } 256 | layer { 257 | name: "fire5/expand3x3" 258 | type: "Convolution" 259 | bottom: "fire5/squeeze1x1" 260 | top: "fire5/expand3x3" 261 | convolution_param { 262 | num_output: 128 263 | pad: 1 264 | kernel_size: 3 265 | } 266 | } 267 | layer { 268 | name: "fire5/relu_expand3x3" 269 | type: "ReLU" 270 | bottom: "fire5/expand3x3" 271 | top: "fire5/expand3x3" 272 | } 273 | layer { 274 | name: "fire5/concat" 275 | type: "Concat" 276 | bottom: "fire5/expand1x1" 277 | bottom: "fire5/expand3x3" 278 | top: "fire5/concat" 279 | } 280 | layer { 281 | name: "fire6/squeeze1x1" 282 | type: "Convolution" 283 | bottom: "fire5/concat" 284 | top: "fire6/squeeze1x1" 285 | convolution_param { 286 | num_output: 48 287 | kernel_size: 1 288 | } 289 | } 290 | layer { 291 | name: "fire6/relu_squeeze1x1" 292 | type: "ReLU" 293 | bottom: "fire6/squeeze1x1" 294 | top: "fire6/squeeze1x1" 295 | } 296 | layer { 297 | name: "fire6/expand1x1" 298 | type: "Convolution" 299 | bottom: "fire6/squeeze1x1" 300 | top: "fire6/expand1x1" 301 | convolution_param { 302 | num_output: 192 303 | kernel_size: 1 304 | } 305 | } 306 | layer { 307 | name: "fire6/relu_expand1x1" 308 | type: "ReLU" 309 | bottom: "fire6/expand1x1" 310 | top: "fire6/expand1x1" 311 | } 312 | layer { 313 | name: "fire6/expand3x3" 314 | type: "Convolution" 315 | bottom: "fire6/squeeze1x1" 316 | top: "fire6/expand3x3" 317 | convolution_param { 318 | num_output: 192 319 | pad: 1 320 | kernel_size: 3 321 | } 322 | } 323 | layer { 324 | name: "fire6/relu_expand3x3" 325 | type: "ReLU" 326 | bottom: "fire6/expand3x3" 327 | top: "fire6/expand3x3" 328 | } 329 | layer { 330 | name: "fire6/concat" 331 | type: "Concat" 332 | bottom: "fire6/expand1x1" 333 | bottom: "fire6/expand3x3" 334 | top: "fire6/concat" 335 | } 336 | layer { 337 | name: "fire7/squeeze1x1" 338 | type: "Convolution" 339 | bottom: "fire6/concat" 340 | top: "fire7/squeeze1x1" 341 | convolution_param { 342 | num_output: 48 343 | kernel_size: 1 344 | } 345 | } 346 | layer { 347 | name: "fire7/relu_squeeze1x1" 348 | type: "ReLU" 349 | bottom: "fire7/squeeze1x1" 350 | top: "fire7/squeeze1x1" 351 | } 352 | layer { 353 | name: "fire7/expand1x1" 354 | type: "Convolution" 355 | bottom: "fire7/squeeze1x1" 356 | top: "fire7/expand1x1" 357 | convolution_param { 358 | num_output: 192 359 | kernel_size: 1 360 | } 361 | } 362 | layer { 363 | name: "fire7/relu_expand1x1" 364 | type: "ReLU" 365 | bottom: "fire7/expand1x1" 366 | top: "fire7/expand1x1" 367 | } 368 | layer { 369 | name: "fire7/expand3x3" 370 | type: "Convolution" 371 | bottom: "fire7/squeeze1x1" 372 | top: "fire7/expand3x3" 373 | convolution_param { 374 | num_output: 192 375 | pad: 1 376 | kernel_size: 3 377 | } 378 | } 379 | layer { 380 | name: "fire7/relu_expand3x3" 381 | type: "ReLU" 382 | bottom: "fire7/expand3x3" 383 | top: "fire7/expand3x3" 384 | } 385 | layer { 386 | name: "fire7/concat" 387 | type: "Concat" 388 | bottom: "fire7/expand1x1" 389 | bottom: "fire7/expand3x3" 390 | top: "fire7/concat" 391 | } 392 | layer { 393 | name: "fire8/squeeze1x1" 394 | type: "Convolution" 395 | bottom: "fire7/concat" 396 | top: "fire8/squeeze1x1" 397 | convolution_param { 398 | num_output: 64 399 | kernel_size: 1 400 | } 401 | } 402 | layer { 403 | name: "fire8/relu_squeeze1x1" 404 | type: "ReLU" 405 | bottom: "fire8/squeeze1x1" 406 | top: "fire8/squeeze1x1" 407 | } 408 | layer { 409 | name: "fire8/expand1x1" 410 | type: "Convolution" 411 | bottom: "fire8/squeeze1x1" 412 | top: "fire8/expand1x1" 413 | convolution_param { 414 | num_output: 256 415 | kernel_size: 1 416 | } 417 | } 418 | layer { 419 | name: "fire8/relu_expand1x1" 420 | type: "ReLU" 421 | bottom: "fire8/expand1x1" 422 | top: "fire8/expand1x1" 423 | } 424 | layer { 425 | name: "fire8/expand3x3" 426 | type: "Convolution" 427 | bottom: "fire8/squeeze1x1" 428 | top: "fire8/expand3x3" 429 | convolution_param { 430 | num_output: 256 431 | pad: 1 432 | kernel_size: 3 433 | } 434 | } 435 | layer { 436 | name: "fire8/relu_expand3x3" 437 | type: "ReLU" 438 | bottom: "fire8/expand3x3" 439 | top: "fire8/expand3x3" 440 | } 441 | layer { 442 | name: "fire8/concat" 443 | type: "Concat" 444 | bottom: "fire8/expand1x1" 445 | bottom: "fire8/expand3x3" 446 | top: "fire8/concat" 447 | } 448 | layer { 449 | name: "pool8" 450 | type: "Pooling" 451 | bottom: "fire8/concat" 452 | top: "pool8" 453 | pooling_param { 454 | pool: MAX 455 | kernel_size: 3 456 | stride: 2 457 | } 458 | } 459 | layer { 460 | name: "fire9/squeeze1x1" 461 | type: "Convolution" 462 | bottom: "pool8" 463 | top: "fire9/squeeze1x1" 464 | convolution_param { 465 | num_output: 64 466 | kernel_size: 1 467 | } 468 | } 469 | layer { 470 | name: "fire9/relu_squeeze1x1" 471 | type: "ReLU" 472 | bottom: "fire9/squeeze1x1" 473 | top: "fire9/squeeze1x1" 474 | } 475 | layer { 476 | name: "fire9/expand1x1" 477 | type: "Convolution" 478 | bottom: "fire9/squeeze1x1" 479 | top: "fire9/expand1x1" 480 | convolution_param { 481 | num_output: 256 482 | kernel_size: 1 483 | } 484 | } 485 | layer { 486 | name: "fire9/relu_expand1x1" 487 | type: "ReLU" 488 | bottom: "fire9/expand1x1" 489 | top: "fire9/expand1x1" 490 | } 491 | layer { 492 | name: "fire9/expand3x3" 493 | type: "Convolution" 494 | bottom: "fire9/squeeze1x1" 495 | top: "fire9/expand3x3" 496 | convolution_param { 497 | num_output: 256 498 | pad: 1 499 | kernel_size: 3 500 | } 501 | } 502 | layer { 503 | name: "fire9/relu_expand3x3" 504 | type: "ReLU" 505 | bottom: "fire9/expand3x3" 506 | top: "fire9/expand3x3" 507 | } 508 | layer { 509 | name: "fire9/concat" 510 | type: "Concat" 511 | bottom: "fire9/expand1x1" 512 | bottom: "fire9/expand3x3" 513 | top: "fire9/concat" 514 | } 515 | layer { 516 | name: "drop9" 517 | type: "Dropout" 518 | bottom: "fire9/concat" 519 | top: "fire9/concat" 520 | dropout_param { 521 | dropout_ratio: 0.5 522 | } 523 | } 524 | layer { 525 | name: "conv10_nexar" 526 | type: "Convolution" 527 | bottom: "fire9/concat" 528 | top: "conv10" 529 | convolution_param { 530 | num_output: 3 531 | pad: 1 532 | kernel_size: 1 533 | } 534 | } 535 | layer { 536 | name: "relu_conv10" 537 | type: "ReLU" 538 | bottom: "conv10" 539 | top: "conv10" 540 | } 541 | layer { 542 | name: "pool10" 543 | type: "Pooling" 544 | bottom: "conv10" 545 | top: "pool10" 546 | pooling_param { 547 | pool: AVE 548 | global_pooling: true 549 | } 550 | } 551 | layer { 552 | name: "score" 553 | type: "InnerProduct" 554 | bottom: "pool10" 555 | top: "score" 556 | inner_product_param { 557 | num_output: 1 558 | } 559 | } 560 | --------------------------------------------------------------------------------