├── .idea ├── Imagefusion_deepfuse.iml ├── inspectionProfiles │ └── profiles_settings.xml ├── misc.xml ├── modules.xml ├── vcs.xml └── workspace.xml ├── README.md ├── __pycache__ ├── decoder.cpython-36.pyc ├── deep_fuse_net.cpython-36.pyc ├── encoder.cpython-36.pyc ├── generate.cpython-36.pyc ├── ssim_loss_function.cpython-36.pyc ├── strategy.cpython-36.pyc ├── train_recons.cpython-36.pyc └── utils.cpython-36.pyc ├── decoder.py ├── deep_fuse_net.py ├── encoder.py ├── figure └── framework.png ├── generate.py ├── images ├── IV_images │ ├── IR1.png │ ├── IR10.png │ ├── IR11.png │ ├── IR12.png │ ├── IR13.png │ ├── IR14.png │ ├── IR15.png │ ├── IR16.png │ ├── IR17.png │ ├── IR18.png │ ├── IR19.png │ ├── IR2.png │ ├── IR20.png │ ├── IR21.png │ ├── IR3.png │ ├── IR4.png │ ├── IR5.png │ ├── IR6.png │ ├── IR7.png │ ├── IR8.png │ ├── IR9.png │ ├── VIS1.jpg │ ├── VIS1.png │ ├── VIS10.png │ ├── VIS11.png │ ├── VIS12.png │ ├── VIS13.png │ ├── VIS14.png │ ├── VIS15.png │ ├── VIS16.png │ ├── VIS17.png │ ├── VIS18.png │ ├── VIS19.png │ ├── VIS2.jpg │ ├── VIS2.png │ ├── VIS20.png │ ├── VIS21.png │ ├── VIS3.jpg │ ├── VIS3.png │ ├── VIS4.jpg │ ├── VIS4.png │ ├── VIS5.jpg │ ├── VIS5.png │ ├── VIS6.png │ ├── VIS7.png │ ├── VIS8.png │ └── VIS9.png └── multifocus_images │ ├── image10_left.png │ ├── image10_right.png │ ├── image11_left.png │ ├── image11_right.png │ ├── image12_left.png │ ├── image12_right.png │ ├── image13_left.png │ ├── image13_right.png │ ├── image14_left.png │ ├── image14_right.png │ ├── image15_left.png │ ├── image15_right.png │ ├── image16_left.png │ ├── image16_right.png │ ├── image17_left.png │ ├── image17_right.png │ ├── image18_left.png │ ├── image18_right.png │ ├── image19_left.png │ ├── image19_right.png │ ├── image1_left.png │ ├── image1_right.png │ ├── image20_left.png │ ├── image20_right.png │ ├── image2_left.png │ ├── image2_right.png │ ├── image3_left.png │ ├── image3_right.png │ ├── image4_left.png │ ├── image4_right.png │ ├── image5_left.png │ ├── image5_right.png │ ├── image6_left.png │ ├── image6_right.png │ ├── image7_left.png │ ├── image7_right.png │ ├── image8_left.png │ ├── image8_right.png │ ├── image9_left.png │ └── image9_right.png ├── log.txt ├── main.py ├── models ├── deepfuse_models │ ├── checkpoint │ ├── deepfuse_model.ckpt.data-00000-of-00001 │ ├── deepfuse_model.ckpt.index │ ├── deepfuse_model.ckpt.meta │ ├── deepfuse_model_batch_size_2.ckpt.data-00000-of-00001 │ ├── deepfuse_model_batch_size_2.ckpt.index │ ├── deepfuse_model_batch_size_2.ckpt.meta │ ├── deepfuse_model_bs2_epoch2_all.ckpt.data-00000-of-00001 │ ├── deepfuse_model_bs2_epoch2_all.ckpt.index │ ├── deepfuse_model_bs2_epoch2_all.ckpt.meta │ ├── deepfuse_model_bs2_epoch4_all.ckpt.data-00000-of-00001 │ ├── deepfuse_model_bs2_epoch4_all.ckpt.index │ └── deepfuse_model_bs2_epoch4_all.ckpt.meta └── test │ ├── checkpoint │ ├── deepfuse_model_bs2_epoch4_all.ckpt.data-00000-of-00001 │ ├── deepfuse_model_bs2_epoch4_all.ckpt.index │ └── deepfuse_model_bs2_epoch4_all.ckpt.meta ├── outputs ├── fused │ ├── fused10_deepfuse_bs2_epoch2.png │ ├── fused11_deepfuse_bs2_epoch2.png │ ├── fused12_deepfuse_bs2_epoch2.png │ ├── fused13_deepfuse_bs2_epoch2.png │ ├── fused14_deepfuse_bs2_epoch2.png │ ├── fused15_deepfuse_bs2_epoch2.png │ ├── fused16_deepfuse_bs2_epoch2.png │ ├── fused17_deepfuse_bs2_epoch2.png │ ├── fused18_deepfuse_bs2_epoch2.png │ ├── fused19_deepfuse_bs2_epoch2.png │ ├── fused1_deepfuse_bs2_epoch2.png │ ├── fused20_deepfuse_bs2_epoch2.png │ ├── fused21_deepfuse_bs2_epoch2.png │ ├── fused2_deepfuse_bs2_epoch2.png │ ├── fused3_deepfuse_bs2_epoch2.png │ ├── fused4_deepfuse_bs2_epoch2.png │ ├── fused5_deepfuse_bs2_epoch2.png │ ├── fused6_deepfuse_bs2_epoch2.png │ ├── fused7_deepfuse_bs2_epoch2.png │ ├── fused8_deepfuse_bs2_epoch2.png │ └── fused9_deepfuse_bs2_epoch2.png ├── fused_all │ ├── fused10_deepfuse_bs2_epoch2.png │ ├── fused11_deepfuse_bs2_epoch2.png │ ├── fused12_deepfuse_bs2_epoch2.png │ ├── fused13_deepfuse_bs2_epoch2.png │ ├── fused14_deepfuse_bs2_epoch2.png │ ├── fused15_deepfuse_bs2_epoch2.png │ ├── fused16_deepfuse_bs2_epoch2.png │ ├── fused17_deepfuse_bs2_epoch2.png │ ├── fused18_deepfuse_bs2_epoch2.png │ ├── fused19_deepfuse_bs2_epoch2.png │ ├── fused1_deepfuse_bs2_epoch2.png │ ├── fused20_deepfuse_bs2_epoch2.png │ ├── fused21_deepfuse_bs2_epoch2.png │ ├── fused2_deepfuse_bs2_epoch2.png │ ├── fused3_deepfuse_bs2_epoch2.png │ ├── fused4_deepfuse_bs2_epoch2.png │ ├── fused5_deepfuse_bs2_epoch2.png │ ├── fused6_deepfuse_bs2_epoch2.png │ ├── fused7_deepfuse_bs2_epoch2.png │ ├── fused8_deepfuse_bs2_epoch2.png │ └── fused9_deepfuse_bs2_epoch2.png ├── fused_deepfuse_bs2_epoch2_focus │ ├── fused10_deepfuse_bs2_epoch2.png │ ├── fused11_deepfuse_bs2_epoch2.png │ ├── fused12_deepfuse_bs2_epoch2.png │ ├── fused13_deepfuse_bs2_epoch2.png │ ├── fused14_deepfuse_bs2_epoch2.png │ ├── fused15_deepfuse_bs2_epoch2.png │ ├── fused16_deepfuse_bs2_epoch2.png │ ├── fused17_deepfuse_bs2_epoch2.png │ ├── fused18_deepfuse_bs2_epoch2.png │ ├── fused19_deepfuse_bs2_epoch2.png │ ├── fused1_deepfuse_bs2_epoch2.png │ ├── fused20_deepfuse_bs2_epoch2.png │ ├── fused2_deepfuse_bs2_epoch2.png │ ├── fused3_deepfuse_bs2_epoch2.png │ ├── fused4_deepfuse_bs2_epoch2.png │ ├── fused5_deepfuse_bs2_epoch2.png │ ├── fused6_deepfuse_bs2_epoch2.png │ ├── fused7_deepfuse_bs2_epoch2.png │ ├── fused8_deepfuse_bs2_epoch2.png │ └── fused9_deepfuse_bs2_epoch2.png └── fused_deepfuse_bs2_epoch4_all │ ├── fused10_deepfuse_bs2_epoch2.png │ ├── fused11_deepfuse_bs2_epoch2.png │ ├── fused12_deepfuse_bs2_epoch2.png │ ├── fused13_deepfuse_bs2_epoch2.png │ ├── fused14_deepfuse_bs2_epoch2.png │ ├── fused15_deepfuse_bs2_epoch2.png │ ├── fused16_deepfuse_bs2_epoch2.png │ ├── fused17_deepfuse_bs2_epoch2.png │ ├── fused18_deepfuse_bs2_epoch2.png │ ├── fused19_deepfuse_bs2_epoch2.png │ ├── fused1_deepfuse_bs2_epoch2.png │ ├── fused20_deepfuse_bs2_epoch2.png │ ├── fused21_deepfuse_bs2_epoch2.png │ ├── fused2_deepfuse_bs2_epoch2.png │ ├── fused3_deepfuse_bs2_epoch2.png │ ├── fused4_deepfuse_bs2_epoch2.png │ ├── fused5_deepfuse_bs2_epoch2.png │ ├── fused6_deepfuse_bs2_epoch2.png │ ├── fused7_deepfuse_bs2_epoch2.png │ ├── fused8_deepfuse_bs2_epoch2.png │ └── fused9_deepfuse_bs2_epoch2.png ├── ssim_loss_function.py ├── strategy.py ├── train_recons.py └── utils.py /.idea/Imagefusion_deepfuse.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/workspace.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 93 | 94 | 95 | 105 | 106 | 107 | 108 | 109 | true 110 | DEFINITION_ORDER 111 | 112 | 113 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 145 | 146 | 149 | 150 | 151 | 152 | 155 | 156 | 159 | 160 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 184 | 185 | 186 | 187 | 205 | 206 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 255 | 256 | 269 | 270 | 288 | 289 | 301 | 302 | project 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 337 | 338 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 366 | 367 | 368 | 369 | 1514813103773 370 | 374 | 375 | 1514813369036 376 | 381 | 382 | 1520949138895 383 | 388 | 389 | 1520949224031 390 | 395 | 396 | 1520949317709 397 | 402 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 434 | 435 | 437 | 438 | 439 | 440 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Deepfuse - Tensorflow 2 | 3 | Python>=3.0, TensorFlow=1.8.0 4 | 5 | The loss function and training strategy are differences whit DeepFuse. I will fix these in the near feature. 6 | 7 | This code is based on [K. Ram Prabhakar, V Sai Srikar, R. Venkatesh Babu. DeepFuse: A Deep Unsupervised Approach for Exposure Fusion with Extreme 8 | Exposure Image Pairs. ICCV2017, pp. 4714-4722](http://openaccess.thecvf.com/content_iccv_2017/html/Prabhakar_DeepFuse_A_Deep_ICCV_2017_paper.html) 9 | 10 | ![](https://github.com/hli1221/Imagefusion_deepfuse/blob/master/figure/framework.png) 11 | In this code, for all conv layers, the filter size is 3\*3. And this code is not a complete version for DeepFuse, we just implement one channel fusion method which use CNN network. 12 | 13 | This code is not exactlly same with paper in ICCV2017. The aim of the training process is to reconstruct the input image by this network. The encoder(C1, C2) is used to extract image features and decoder(C3, C4, C5) is a reconstruct tool. The fusion strategy( Tensor addition) is only used in testing process. 14 | 15 | We train this network using [Microsoft COCO dataset](http://msvocds.blob.core.windows.net/coco2014/train2014.zip)(T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollar, and C. L. Zitnick. Microsoft coco: Common objects in context. In ECCV, 2014. 3-5.) as input images which contains 80000 images and all resize to 256×256 and RGB images are transformed to gray ones. 16 | 17 | # Citation 18 | ``` 19 | @misc{li2017deepfuse, 20 | author = {Hui Li}, 21 |    title = {CODE: Image Fusion based on Deepfuse}, 22 | year = {2018}, 23 | publisher = {GitHub}, 24 | journal = {GitHub repository}, 25 | howpublished = {\url{https://github.com/hli1221/Imagefusion_deepfuse}} 26 | } 27 | ``` 28 | -------------------------------------------------------------------------------- /__pycache__/decoder.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/__pycache__/decoder.cpython-36.pyc -------------------------------------------------------------------------------- /__pycache__/deep_fuse_net.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/__pycache__/deep_fuse_net.cpython-36.pyc -------------------------------------------------------------------------------- /__pycache__/encoder.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/__pycache__/encoder.cpython-36.pyc -------------------------------------------------------------------------------- /__pycache__/generate.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/__pycache__/generate.cpython-36.pyc -------------------------------------------------------------------------------- /__pycache__/ssim_loss_function.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/__pycache__/ssim_loss_function.cpython-36.pyc -------------------------------------------------------------------------------- /__pycache__/strategy.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/__pycache__/strategy.cpython-36.pyc -------------------------------------------------------------------------------- /__pycache__/train_recons.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/__pycache__/train_recons.cpython-36.pyc -------------------------------------------------------------------------------- /__pycache__/utils.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/__pycache__/utils.cpython-36.pyc -------------------------------------------------------------------------------- /decoder.py: -------------------------------------------------------------------------------- 1 | 2 | import tensorflow as tf 3 | from tensorflow.python import pywrap_tensorflow 4 | 5 | WEIGHT_INIT_STDDEV = 0.1 6 | 7 | 8 | class Decoder(object): 9 | 10 | def __init__(self, model_pre_path): 11 | self.weight_vars = [] 12 | self.model_pre_path = model_pre_path 13 | 14 | with tf.variable_scope('decoder'): 15 | self.weight_vars.append(self._create_variables(32, 32, 3, scope='conv2_1')) 16 | self.weight_vars.append(self._create_variables(32, 16, 3, scope='conv2_2')) 17 | self.weight_vars.append(self._create_variables(16, 1, 3, scope='conv2_3')) 18 | 19 | def _create_variables(self, input_filters, output_filters, kernel_size, scope): 20 | 21 | if self.model_pre_path: 22 | reader = pywrap_tensorflow.NewCheckpointReader(self.model_pre_path) 23 | with tf.variable_scope(scope): 24 | kernel = tf.Variable(reader.get_tensor('encoder/' + scope + '/kernel'), name='kernel') 25 | bias = tf.Variable(reader.get_tensor('encoder/' + scope + '/bias'), name='bias') 26 | else: 27 | with tf.variable_scope(scope): 28 | shape = [kernel_size, kernel_size, input_filters, output_filters] 29 | kernel = tf.Variable(tf.truncated_normal(shape, stddev=WEIGHT_INIT_STDDEV), name='kernel') 30 | bias = tf.Variable(tf.zeros([output_filters]), name='bias') 31 | return (kernel, bias) 32 | 33 | def decode(self, image): 34 | final_layer_idx = len(self.weight_vars) - 1 35 | 36 | out = image 37 | for i in range(len(self.weight_vars)): 38 | kernel, bias = self.weight_vars[i] 39 | 40 | if i == final_layer_idx: 41 | out = conv2d(out, kernel, bias, use_relu=False) 42 | else: 43 | out = conv2d(out, kernel, bias) 44 | # print('decoder ', i) 45 | # print('decoder out:', out.shape) 46 | return out 47 | 48 | 49 | def conv2d(x, kernel, bias, use_relu=True): 50 | # padding image with reflection mode 51 | x_padded = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]], mode='REFLECT') 52 | 53 | # conv and add bias 54 | out = tf.nn.conv2d(x_padded, kernel, strides=[1, 1, 1, 1], padding='VALID') 55 | out = tf.nn.bias_add(out, bias) 56 | 57 | if use_relu: 58 | out = tf.nn.relu(out) 59 | 60 | return out 61 | 62 | -------------------------------------------------------------------------------- /deep_fuse_net.py: -------------------------------------------------------------------------------- 1 | # Style Transfer Network 2 | # Encoder -> AdaIN -> Decoder 3 | 4 | import tensorflow as tf 5 | 6 | from encoder import Encoder 7 | from decoder import Decoder 8 | from strategy import Strategy 9 | 10 | class DeepFuseNet(object): 11 | 12 | def __init__(self, model_pre_path): 13 | self.encoder = Encoder(model_pre_path) 14 | self.decoder = Decoder(model_pre_path) 15 | 16 | def transform_addition(self, img1, img2): 17 | # encode image 18 | enc_1 = self.encoder.encode(img1) 19 | enc_2 = self.encoder.encode(img2) 20 | target_features = Strategy(enc_1, enc_2) 21 | # target_features = enc_c 22 | self.target_features = target_features 23 | print('target_features:', target_features.shape) 24 | # decode target features back to image 25 | generated_img = self.decoder.decode(target_features) 26 | return generated_img 27 | 28 | def transform_recons(self, img): 29 | # encode image 30 | enc = self.encoder.encode(img) 31 | target_features = enc 32 | self.target_features = target_features 33 | generated_img = self.decoder.decode(target_features) 34 | return generated_img 35 | 36 | 37 | def transform_encoder(self, img): 38 | # encode image 39 | enc = self.encoder.encode(img) 40 | return enc 41 | 42 | def transform_decoder(self, feature): 43 | # decode image 44 | generated_img = self.decoder.decode(feature) 45 | return generated_img 46 | 47 | -------------------------------------------------------------------------------- /encoder.py: -------------------------------------------------------------------------------- 1 | 2 | import tensorflow as tf 3 | from tensorflow.python import pywrap_tensorflow 4 | 5 | WEIGHT_INIT_STDDEV = 0.1 6 | 7 | 8 | class Encoder(object): 9 | def __init__(self, model_pre_path): 10 | self.weight_vars = [] 11 | self.model_pre_path = model_pre_path 12 | 13 | with tf.variable_scope('encoder'): 14 | self.weight_vars.append(self._create_variables(1, 16, 3, scope='conv1_1')) 15 | self.weight_vars.append(self._create_variables(16, 32, 3, scope='conv1_2')) 16 | 17 | def _create_variables(self, input_filters, output_filters, kernel_size, scope): 18 | 19 | if self.model_pre_path: 20 | reader = pywrap_tensorflow.NewCheckpointReader(self.model_pre_path) 21 | with tf.variable_scope(scope): 22 | kernel = tf.Variable(reader.get_tensor('encoder/' + scope + '/kernel'), name='kernel') 23 | bias = tf.Variable(reader.get_tensor('encoder/' + scope + '/bias'), name='bias') 24 | else: 25 | with tf.variable_scope(scope): 26 | shape = [kernel_size, kernel_size, input_filters, output_filters] 27 | kernel = tf.Variable(tf.truncated_normal(shape, stddev=WEIGHT_INIT_STDDEV), name='kernel') 28 | bias = tf.Variable(tf.zeros([output_filters]), name='bias') 29 | return (kernel, bias) 30 | 31 | def encode(self, image): 32 | final_layer_idx = len(self.weight_vars) - 1 33 | 34 | out = image 35 | for i in range(len(self.weight_vars)): 36 | kernel, bias = self.weight_vars[i] 37 | 38 | if i == final_layer_idx: 39 | out = conv2d(out, kernel, bias, use_relu=False) 40 | else: 41 | out = conv2d(out, kernel, bias) 42 | # print('encoder ', i) 43 | # print('encoder out:', out.shape) 44 | return out 45 | 46 | 47 | def conv2d(x, kernel, bias, use_relu=True): 48 | # padding image with reflection mode 49 | x_padded = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]], mode='REFLECT') 50 | 51 | # conv and add bias 52 | out = tf.nn.conv2d(x_padded, kernel, strides=[1, 1, 1, 1], padding='VALID') 53 | out = tf.nn.bias_add(out, bias) 54 | 55 | if use_relu: 56 | out = tf.nn.relu(out) 57 | 58 | return out 59 | 60 | -------------------------------------------------------------------------------- /figure/framework.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/figure/framework.png -------------------------------------------------------------------------------- /generate.py: -------------------------------------------------------------------------------- 1 | # Use a trained DeepFuse Net to generate 2 | 3 | import tensorflow as tf 4 | import numpy as np 5 | 6 | from deep_fuse_net import DeepFuseNet 7 | from utils import get_images, save_images, get_train_images 8 | 9 | def generate(content_path, style_path, model_path, model_pre_path, index, output_path=None): 10 | 11 | outputs = _handler(content_path, style_path, model_path, model_pre_path, index, output_path=output_path) 12 | return list(outputs) 13 | 14 | 15 | def _handler(content_name, style_name, model_path, model_pre_path, index, output_path=None): 16 | content_path = content_name 17 | style_path = style_name 18 | 19 | content_img = get_train_images(content_path, flag=False) 20 | style_img = get_train_images(style_path, flag=False) 21 | dimension = content_img.shape 22 | 23 | content_img = content_img.reshape([1, dimension[0], dimension[1], dimension[2]]) 24 | style_img = style_img.reshape([1, dimension[0], dimension[1], dimension[2]]) 25 | 26 | content_img = np.transpose(content_img, (0, 2, 1, 3)) 27 | style_img = np.transpose(style_img, (0, 2, 1, 3)) 28 | print('content_img shape final:', content_img.shape) 29 | 30 | with tf.Graph().as_default(), tf.Session() as sess: 31 | 32 | # build the dataflow graph 33 | content = tf.placeholder( 34 | tf.float32, shape=content_img.shape, name='content') 35 | style = tf.placeholder( 36 | tf.float32, shape=style_img.shape, name='style') 37 | 38 | dfn = DeepFuseNet(model_pre_path) 39 | 40 | output_image = dfn.transform_addition(content,style) 41 | # output_image = dfn.transform_recons(style) 42 | # output_image = dfn.transform_recons(content) 43 | 44 | # restore the trained model and run the style transferring 45 | saver = tf.train.Saver() 46 | saver.restore(sess, model_path) 47 | 48 | output = sess.run(output_image, feed_dict={content: content_img, style: style_img}) 49 | save_images(content_path, output, output_path, 50 | prefix='fused' + str(index), suffix='_deepfuse_bs2_epoch2') 51 | 52 | return output 53 | -------------------------------------------------------------------------------- /images/IV_images/IR1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR1.png -------------------------------------------------------------------------------- /images/IV_images/IR10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR10.png -------------------------------------------------------------------------------- /images/IV_images/IR11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR11.png -------------------------------------------------------------------------------- /images/IV_images/IR12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR12.png -------------------------------------------------------------------------------- /images/IV_images/IR13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR13.png -------------------------------------------------------------------------------- /images/IV_images/IR14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR14.png -------------------------------------------------------------------------------- /images/IV_images/IR15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR15.png -------------------------------------------------------------------------------- /images/IV_images/IR16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR16.png -------------------------------------------------------------------------------- /images/IV_images/IR17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR17.png -------------------------------------------------------------------------------- /images/IV_images/IR18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR18.png -------------------------------------------------------------------------------- /images/IV_images/IR19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR19.png -------------------------------------------------------------------------------- /images/IV_images/IR2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR2.png -------------------------------------------------------------------------------- /images/IV_images/IR20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR20.png -------------------------------------------------------------------------------- /images/IV_images/IR21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR21.png -------------------------------------------------------------------------------- /images/IV_images/IR3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR3.png -------------------------------------------------------------------------------- /images/IV_images/IR4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR4.png -------------------------------------------------------------------------------- /images/IV_images/IR5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR5.png -------------------------------------------------------------------------------- /images/IV_images/IR6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR6.png -------------------------------------------------------------------------------- /images/IV_images/IR7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR7.png -------------------------------------------------------------------------------- /images/IV_images/IR8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR8.png -------------------------------------------------------------------------------- /images/IV_images/IR9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/IR9.png -------------------------------------------------------------------------------- /images/IV_images/VIS1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS1.jpg -------------------------------------------------------------------------------- /images/IV_images/VIS1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS1.png -------------------------------------------------------------------------------- /images/IV_images/VIS10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS10.png -------------------------------------------------------------------------------- /images/IV_images/VIS11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS11.png -------------------------------------------------------------------------------- /images/IV_images/VIS12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS12.png -------------------------------------------------------------------------------- /images/IV_images/VIS13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS13.png -------------------------------------------------------------------------------- /images/IV_images/VIS14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS14.png -------------------------------------------------------------------------------- /images/IV_images/VIS15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS15.png -------------------------------------------------------------------------------- /images/IV_images/VIS16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS16.png -------------------------------------------------------------------------------- /images/IV_images/VIS17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS17.png -------------------------------------------------------------------------------- /images/IV_images/VIS18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS18.png -------------------------------------------------------------------------------- /images/IV_images/VIS19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS19.png -------------------------------------------------------------------------------- /images/IV_images/VIS2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS2.jpg -------------------------------------------------------------------------------- /images/IV_images/VIS2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS2.png -------------------------------------------------------------------------------- /images/IV_images/VIS20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS20.png -------------------------------------------------------------------------------- /images/IV_images/VIS21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS21.png -------------------------------------------------------------------------------- /images/IV_images/VIS3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS3.jpg -------------------------------------------------------------------------------- /images/IV_images/VIS3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS3.png -------------------------------------------------------------------------------- /images/IV_images/VIS4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS4.jpg -------------------------------------------------------------------------------- /images/IV_images/VIS4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS4.png -------------------------------------------------------------------------------- /images/IV_images/VIS5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS5.jpg -------------------------------------------------------------------------------- /images/IV_images/VIS5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS5.png -------------------------------------------------------------------------------- /images/IV_images/VIS6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS6.png -------------------------------------------------------------------------------- /images/IV_images/VIS7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS7.png -------------------------------------------------------------------------------- /images/IV_images/VIS8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS8.png -------------------------------------------------------------------------------- /images/IV_images/VIS9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/IV_images/VIS9.png -------------------------------------------------------------------------------- /images/multifocus_images/image10_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image10_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image10_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image10_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image11_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image11_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image11_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image11_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image12_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image12_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image12_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image12_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image13_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image13_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image13_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image13_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image14_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image14_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image14_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image14_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image15_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image15_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image15_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image15_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image16_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image16_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image16_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image16_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image17_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image17_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image17_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image17_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image18_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image18_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image18_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image18_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image19_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image19_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image19_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image19_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image1_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image1_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image1_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image1_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image20_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image20_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image20_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image20_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image2_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image2_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image2_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image2_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image3_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image3_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image3_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image3_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image4_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image4_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image4_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image4_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image5_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image5_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image5_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image5_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image6_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image6_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image6_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image6_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image7_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image7_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image7_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image7_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image8_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image8_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image8_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image8_right.png -------------------------------------------------------------------------------- /images/multifocus_images/image9_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image9_left.png -------------------------------------------------------------------------------- /images/multifocus_images/image9_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/images/multifocus_images/image9_right.png -------------------------------------------------------------------------------- /log.txt: -------------------------------------------------------------------------------- 1 | 2 | Begin to train the network ... 3 | 4 | EPOCHES : 1 5 | BATCH_SIZE: 1 6 | Train images number 100. 7 | 8 | Train images samples 100.0. 9 | 10 | source : (1, 256, 256, 1) 11 | original: (1, 256, 256, 1) 12 | generate: (1, 256, 256, 1) 13 | 14 | Elapsed time for preprocessing before actually train the model: 0:00:02.273016 15 | Now begin to train the model... 16 | 17 | step: 100, total loss: 0.496588, elapsed time: 0:00:06.394891 18 | ssim_loss: 0.503412 19 | Done training! Elapsed time: 0:00:07.410595 20 | Model is saved to: ./models/deepfuse_models/deepfuse_model_bs2_epoch4_all.ckpt 21 | 22 | Successfully! Done training... 23 | 24 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | # Demo - train the DeepFuse network & use it to generate an image 2 | 3 | from __future__ import print_function 4 | 5 | import time 6 | 7 | from train_recons import train_recons 8 | from generate import generate 9 | from utils import list_images 10 | import os 11 | 12 | # os.environ["CUDA_VISIBLE_DEVICES"] = "1" 13 | 14 | # IS_TRAINING = True 15 | IS_TRAINING = False 16 | 17 | BATCH_SIZE = 2 18 | EPOCHES = 4 19 | 20 | MODEL_SAVE_PATH = './models/deepfuse_models/deepfuse_model_bs2_epoch4_all.ckpt' 21 | 22 | # model_pre_path is just a pre-train model and not necessary. It is set as None when you want to train your own model. 23 | # model_pre_path = 'your own pre-train model' 24 | model_pre_path = None 25 | 26 | def main(): 27 | 28 | if IS_TRAINING: 29 | 30 | original_imgs_path = list_images('D:/ImageDatabase/Image_fusion_MSCOCO/original/') 31 | 32 | print('\nBegin to train the network ...\n') 33 | train_recons(original_imgs_path, MODEL_SAVE_PATH, model_pre_path, EPOCHES, BATCH_SIZE, debug=True) 34 | 35 | print('\nSuccessfully! Done training...\n') 36 | else: 37 | 38 | output_save_path = 'outputs' 39 | # sourceA_name = 'image' 40 | # sourceB_name = 'image' 41 | sourceA_name = 'IR' 42 | sourceB_name = 'VIS' 43 | print('\nBegin to generate pictures ...\n') 44 | 45 | content_name = 'images/IV_images/' + sourceA_name 46 | style_name = 'images/IV_images/' + sourceB_name 47 | 48 | for i in range(1): 49 | index = i + 1 50 | content_path = content_name + str(index) + '.png' 51 | style_path = style_name + str(index) + '.png' 52 | 53 | # content_path = content_name + str(index) + '_left.png' 54 | # style_path = style_name + str(index) + '_right.png' 55 | generate(content_path, style_path, MODEL_SAVE_PATH, model_pre_path, index, output_path=output_save_path) 56 | 57 | # print('\ntype(generated_images):', type(generated_images)) 58 | # print('\nlen(generated_images):', len(generated_images), '\n') 59 | 60 | 61 | if __name__ == '__main__': 62 | main() 63 | 64 | -------------------------------------------------------------------------------- /models/deepfuse_models/checkpoint: -------------------------------------------------------------------------------- 1 | model_checkpoint_path: "deepfuse_model_bs2_epoch2_all.ckpt" 2 | all_model_checkpoint_paths: "deepfuse_model_bs2_epoch2_all.ckpt" 3 | -------------------------------------------------------------------------------- /models/deepfuse_models/deepfuse_model.ckpt.data-00000-of-00001: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/deepfuse_models/deepfuse_model.ckpt.data-00000-of-00001 -------------------------------------------------------------------------------- /models/deepfuse_models/deepfuse_model.ckpt.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/deepfuse_models/deepfuse_model.ckpt.index -------------------------------------------------------------------------------- /models/deepfuse_models/deepfuse_model.ckpt.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/deepfuse_models/deepfuse_model.ckpt.meta -------------------------------------------------------------------------------- /models/deepfuse_models/deepfuse_model_batch_size_2.ckpt.data-00000-of-00001: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/deepfuse_models/deepfuse_model_batch_size_2.ckpt.data-00000-of-00001 -------------------------------------------------------------------------------- /models/deepfuse_models/deepfuse_model_batch_size_2.ckpt.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/deepfuse_models/deepfuse_model_batch_size_2.ckpt.index -------------------------------------------------------------------------------- /models/deepfuse_models/deepfuse_model_batch_size_2.ckpt.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/deepfuse_models/deepfuse_model_batch_size_2.ckpt.meta -------------------------------------------------------------------------------- /models/deepfuse_models/deepfuse_model_bs2_epoch2_all.ckpt.data-00000-of-00001: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/deepfuse_models/deepfuse_model_bs2_epoch2_all.ckpt.data-00000-of-00001 -------------------------------------------------------------------------------- /models/deepfuse_models/deepfuse_model_bs2_epoch2_all.ckpt.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/deepfuse_models/deepfuse_model_bs2_epoch2_all.ckpt.index -------------------------------------------------------------------------------- /models/deepfuse_models/deepfuse_model_bs2_epoch2_all.ckpt.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/deepfuse_models/deepfuse_model_bs2_epoch2_all.ckpt.meta -------------------------------------------------------------------------------- /models/deepfuse_models/deepfuse_model_bs2_epoch4_all.ckpt.data-00000-of-00001: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/deepfuse_models/deepfuse_model_bs2_epoch4_all.ckpt.data-00000-of-00001 -------------------------------------------------------------------------------- /models/deepfuse_models/deepfuse_model_bs2_epoch4_all.ckpt.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/deepfuse_models/deepfuse_model_bs2_epoch4_all.ckpt.index -------------------------------------------------------------------------------- /models/deepfuse_models/deepfuse_model_bs2_epoch4_all.ckpt.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/deepfuse_models/deepfuse_model_bs2_epoch4_all.ckpt.meta -------------------------------------------------------------------------------- /models/test/checkpoint: -------------------------------------------------------------------------------- 1 | model_checkpoint_path: "deepfuse_model_bs2_epoch2_all.ckpt" 2 | all_model_checkpoint_paths: "deepfuse_model_bs2_epoch2_all.ckpt" 3 | -------------------------------------------------------------------------------- /models/test/deepfuse_model_bs2_epoch4_all.ckpt.data-00000-of-00001: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/test/deepfuse_model_bs2_epoch4_all.ckpt.data-00000-of-00001 -------------------------------------------------------------------------------- /models/test/deepfuse_model_bs2_epoch4_all.ckpt.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/test/deepfuse_model_bs2_epoch4_all.ckpt.index -------------------------------------------------------------------------------- /models/test/deepfuse_model_bs2_epoch4_all.ckpt.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/models/test/deepfuse_model_bs2_epoch4_all.ckpt.meta -------------------------------------------------------------------------------- /outputs/fused/fused10_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused10_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused11_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused11_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused12_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused12_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused13_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused13_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused14_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused14_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused15_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused15_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused16_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused16_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused17_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused17_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused18_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused18_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused19_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused19_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused1_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused1_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused20_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused20_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused21_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused21_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused2_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused2_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused3_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused3_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused4_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused4_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused5_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused5_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused6_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused6_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused7_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused7_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused8_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused8_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused/fused9_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused/fused9_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused10_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused10_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused11_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused11_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused12_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused12_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused13_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused13_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused14_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused14_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused15_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused15_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused16_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused16_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused17_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused17_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused18_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused18_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused19_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused19_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused1_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused1_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused20_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused20_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused21_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused21_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused2_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused2_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused3_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused3_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused4_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused4_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused5_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused5_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused6_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused6_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused7_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused7_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused8_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused8_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_all/fused9_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_all/fused9_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused10_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused10_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused11_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused11_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused12_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused12_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused13_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused13_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused14_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused14_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused15_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused15_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused16_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused16_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused17_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused17_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused18_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused18_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused19_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused19_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused1_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused1_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused20_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused20_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused2_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused2_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused3_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused3_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused4_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused4_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused5_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused5_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused6_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused6_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused7_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused7_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused8_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused8_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch2_focus/fused9_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch2_focus/fused9_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused10_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused10_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused11_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused11_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused12_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused12_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused13_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused13_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused14_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused14_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused15_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused15_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused16_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused16_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused17_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused17_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused18_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused18_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused19_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused19_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused1_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused1_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused20_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused20_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused21_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused21_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused2_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused2_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused3_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused3_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused4_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused4_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused5_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused5_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused6_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused6_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused7_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused7_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused8_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused8_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /outputs/fused_deepfuse_bs2_epoch4_all/fused9_deepfuse_bs2_epoch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hli1221/Imagefusion_deepfuse/19dd37082fa1efb454b275b8cede2be1aea4d0f6/outputs/fused_deepfuse_bs2_epoch4_all/fused9_deepfuse_bs2_epoch2.png -------------------------------------------------------------------------------- /ssim_loss_function.py: -------------------------------------------------------------------------------- 1 | import tensorflow as tf 2 | import numpy as np 3 | 4 | def _tf_fspecial_gauss(size, sigma): 5 | """Function to mimic the 'fspecial' gaussian MATLAB function 6 | """ 7 | x_data, y_data = np.mgrid[-size//2 + 1:size//2 + 1, -size//2 + 1:size//2 + 1] 8 | 9 | x_data = np.expand_dims(x_data, axis=-1) 10 | x_data = np.expand_dims(x_data, axis=-1) 11 | 12 | y_data = np.expand_dims(y_data, axis=-1) 13 | y_data = np.expand_dims(y_data, axis=-1) 14 | 15 | x = tf.constant(x_data, dtype=tf.float32) 16 | y = tf.constant(y_data, dtype=tf.float32) 17 | 18 | g = tf.exp(-((x**2 + y**2)/(2.0*sigma**2))) 19 | return g / tf.reduce_sum(g) 20 | 21 | 22 | def SSIM_LOSS(img1, img2, size=11, sigma=1.5): 23 | window = _tf_fspecial_gauss(size, sigma) # window shape [size, size] 24 | K1 = 0.01 25 | K2 = 0.03 26 | L = 1 # depth of image (255 in case the image has a differnt scale) 27 | C1 = (K1*L)**2 28 | C2 = (K2*L)**2 29 | mu1 = tf.nn.conv2d(img1, window, strides=[1,1,1,1], padding='VALID') 30 | mu2 = tf.nn.conv2d(img2, window, strides=[1,1,1,1],padding='VALID') 31 | mu1_sq = mu1*mu1 32 | mu2_sq = mu2*mu2 33 | mu1_mu2 = mu1*mu2 34 | sigma1_sq = tf.nn.conv2d(img1*img1, window, strides=[1,1,1,1],padding='VALID') - mu1_sq 35 | sigma2_sq = tf.nn.conv2d(img2*img2, window, strides=[1,1,1,1],padding='VALID') - mu2_sq 36 | sigma12 = tf.nn.conv2d(img1*img2, window, strides=[1,1,1,1],padding='VALID') - mu1_mu2 37 | 38 | value = (2.0*sigma12 + C2)/(sigma1_sq + sigma2_sq + C2) 39 | value = tf.reduce_mean(value) 40 | return value -------------------------------------------------------------------------------- /strategy.py: -------------------------------------------------------------------------------- 1 | # Addition 2 | 3 | def Strategy(content, style): 4 | # return tf.reduce_sum(content, style) 5 | return content+style 6 | 7 | -------------------------------------------------------------------------------- /train_recons.py: -------------------------------------------------------------------------------- 1 | # Train the DeepFuse Net 2 | 3 | from __future__ import print_function 4 | 5 | import scipy.io as scio 6 | import numpy as np 7 | import tensorflow as tf 8 | import matplotlib.pyplot as plt 9 | 10 | from ssim_loss_function import SSIM_LOSS 11 | from deep_fuse_net import DeepFuseNet 12 | from utils import get_train_images 13 | 14 | STYLE_LAYERS = ('relu1_1', 'relu2_1', 'relu3_1', 'relu4_1') 15 | 16 | TRAINING_IMAGE_SHAPE = (256, 256, 1) # (height, width, color_channels) 17 | TRAINING_IMAGE_SHAPE_OR = (256, 256, 1) # (height, width, color_channels) 18 | 19 | LEARNING_RATE = 1e-4 20 | EPSILON = 1e-5 21 | 22 | def train_recons(original_imgs_path, save_path, model_pre_path, EPOCHES_set, BATCH_SIZE, debug=False, logging_period=100): 23 | if debug: 24 | from datetime import datetime 25 | start_time = datetime.now() 26 | EPOCHS = EPOCHES_set 27 | print("EPOCHES : ", EPOCHS) 28 | print("BATCH_SIZE: ", BATCH_SIZE) 29 | num_imgs = len(original_imgs_path) 30 | # num_imgs = 100 31 | original_imgs_path = original_imgs_path[:num_imgs] 32 | mod = num_imgs % BATCH_SIZE 33 | 34 | print('Train images number %d.\n' % num_imgs) 35 | print('Train images samples %s.\n' % str(num_imgs / BATCH_SIZE)) 36 | 37 | if mod > 0: 38 | print('Train set has been trimmed %d samples...\n' % mod) 39 | original_imgs_path = original_imgs_path[:-mod] 40 | 41 | # get the traing image shape 42 | HEIGHT, WIDTH, CHANNELS = TRAINING_IMAGE_SHAPE 43 | INPUT_SHAPE = (BATCH_SIZE, HEIGHT, WIDTH, CHANNELS) 44 | 45 | HEIGHT_OR, WIDTH_OR, CHANNELS_OR = TRAINING_IMAGE_SHAPE_OR 46 | INPUT_SHAPE_OR = (BATCH_SIZE, HEIGHT_OR, WIDTH_OR, CHANNELS_OR) 47 | 48 | # create the graph 49 | with tf.Graph().as_default(), tf.Session() as sess: 50 | original = tf.placeholder(tf.float32, shape=INPUT_SHAPE_OR, name='original') 51 | source = original 52 | 53 | print('source :', source.shape) 54 | print('original:', original.shape) 55 | 56 | # create the deepfuse net (encoder and decoder) 57 | dfn = DeepFuseNet(model_pre_path) 58 | 59 | generated_img = dfn.transform_recons(source) 60 | 61 | print('generate:', generated_img.shape) 62 | 63 | ssim_loss = SSIM_LOSS(original, generated_img) 64 | 65 | loss = 1-ssim_loss 66 | train_op = tf.train.AdamOptimizer(LEARNING_RATE).minimize(loss) 67 | 68 | sess.run(tf.global_variables_initializer()) 69 | 70 | # saver = tf.train.Saver() 71 | saver = tf.train.Saver(keep_checkpoint_every_n_hours=1) 72 | 73 | # ** Start Training ** 74 | step = 0 75 | count_loss = 0 76 | n_batches = int(len(original_imgs_path) // BATCH_SIZE) 77 | 78 | if debug: 79 | elapsed_time = datetime.now() - start_time 80 | print('\nElapsed time for preprocessing before actually train the model: %s' % elapsed_time) 81 | print('Now begin to train the model...\n') 82 | start_time = datetime.now() 83 | 84 | Loss_all = [i for i in range(EPOCHS * n_batches)] 85 | for epoch in range(EPOCHS): 86 | 87 | np.random.shuffle(original_imgs_path) 88 | 89 | for batch in range(n_batches): 90 | # retrive a batch of content and style images 91 | 92 | original_path = original_imgs_path[batch*BATCH_SIZE:(batch*BATCH_SIZE + BATCH_SIZE)] 93 | original_batch = get_train_images(original_path, crop_height=HEIGHT, crop_width=WIDTH, flag=False) 94 | original_batch = original_batch.reshape([BATCH_SIZE, 256, 256, 1]) 95 | 96 | # print('original_batch shape final:', original_batch.shape) 97 | 98 | # run the training step 99 | sess.run(train_op, feed_dict={original: original_batch}) 100 | step += 1 101 | # if step % 1000 == 0: 102 | # saver.save(sess, save_path, global_step=step) 103 | if debug: 104 | is_last_step = (epoch == EPOCHS - 1) and (batch == n_batches - 1) 105 | 106 | if is_last_step or step % logging_period == 0: 107 | elapsed_time = datetime.now() - start_time 108 | _ssim_loss, _loss = sess.run([ssim_loss, loss], feed_dict={original: original_batch}) 109 | Loss_all[count_loss] = _loss 110 | count_loss += 1 111 | print('Deep fuse==>>step: %d, total loss: %s, elapsed time: %s' % (step, _loss, elapsed_time)) 112 | print('ssim_loss: %s ' % (_ssim_loss)) 113 | 114 | # ** Done Training & Save the model ** 115 | saver.save(sess, save_path) 116 | 117 | loss_data = Loss_all[:count_loss] 118 | scio.savemat('D:/project/GitHub/ImageFusion/Imagefusion_deepfuse/DeepFuseLossData.mat', {'loss': loss_data}) 119 | 120 | # iter_index = [i for i in range(count_loss)] 121 | # plt.plot(iter_index, Loss_all[:count_loss]) 122 | # plt.show() 123 | 124 | if debug: 125 | elapsed_time = datetime.now() - start_time 126 | print('Done training! Elapsed time: %s' % elapsed_time) 127 | print('Model is saved to: %s' % save_path) 128 | 129 | -------------------------------------------------------------------------------- /utils.py: -------------------------------------------------------------------------------- 1 | # Utility 2 | 3 | import numpy as np 4 | 5 | from os import listdir, mkdir, sep 6 | from os.path import join, exists, splitext 7 | from scipy.misc import imread, imsave, imresize 8 | import skimage 9 | import skimage.io 10 | import skimage.transform 11 | import tensorflow as tf 12 | from PIL import Image 13 | from functools import reduce 14 | 15 | def list_images(directory): 16 | images = [] 17 | for file in listdir(directory): 18 | name = file.lower() 19 | if name.endswith('.png'): 20 | images.append(join(directory, file)) 21 | elif name.endswith('.jpg'): 22 | images.append(join(directory, file)) 23 | elif name.endswith('.jpeg'): 24 | images.append(join(directory, file)) 25 | return images 26 | 27 | 28 | def get_train_images(paths, resize_len=512, crop_height=256, crop_width=256, flag = True): 29 | if isinstance(paths, str): 30 | paths = [paths] 31 | 32 | images = [] 33 | ny = 0 34 | nx = 0 35 | for path in paths: 36 | image = imread(path, mode='L') 37 | 38 | if flag: 39 | image = np.stack(image, axis=0) 40 | image = np.stack((image, image, image), axis=-1) 41 | else: 42 | image = np.stack(image, axis=0) 43 | image = np.stack(image, axis=-1) 44 | 45 | images.append(image) 46 | images = np.stack(images, axis=-1) 47 | 48 | return images 49 | 50 | 51 | def get_images(paths, height=None, width=None): 52 | if isinstance(paths, str): 53 | paths = [paths] 54 | 55 | images = [] 56 | for path in paths: 57 | image = imread(path, mode='RGB') 58 | 59 | if height is not None and width is not None: 60 | image = imresize(image, [height, width], interp='nearest') 61 | 62 | images.append(image) 63 | 64 | images = np.stack(images, axis=0) 65 | print('images shape gen:', images.shape) 66 | return images 67 | 68 | 69 | def save_images(paths, datas, save_path, prefix=None, suffix=None): 70 | if isinstance(paths, str): 71 | paths = [paths] 72 | 73 | assert(len(paths) == len(datas)) 74 | 75 | if not exists(save_path): 76 | mkdir(save_path) 77 | 78 | if prefix is None: 79 | prefix = '' 80 | if suffix is None: 81 | suffix = '' 82 | 83 | for i, path in enumerate(paths): 84 | data = datas[i] 85 | # print('data ==>>\n', data) 86 | data = data.reshape([data.shape[0], data.shape[1]]) 87 | # print('data reshape==>>\n', data) 88 | 89 | name, ext = splitext(path) 90 | name = name.split(sep)[-1] 91 | 92 | path = join(save_path, prefix + suffix + ext) 93 | print('data path==>>', path) 94 | 95 | 96 | # new_im = Image.fromarray(data) 97 | # new_im.show() 98 | 99 | imsave(path, data) 100 | 101 | def get_l2_norm_loss(diffs): 102 | shape = diffs.get_shape().as_list() 103 | size = reduce(lambda x, y: x * y, shape) ** 2 104 | sum_of_squared_diffs = tf.reduce_sum(tf.square(diffs)) 105 | return sum_of_squared_diffs / size --------------------------------------------------------------------------------