In [341]:
import os.path

In [38]:
import numpy as np

In [147]:
import numpy.linalg as LA

In [20]:
from PIL import Image

In [26]:
from random import shuffle

In [19]:
def show_normals(npnorms):
    return Image.fromarray(((npnorms+1)/2*254).astype(np.uint8))

In [339]:
Indices = list(range(1,33));

In [33]:
Indices.remove(8)

In [61]:
shuffle(Indices)

In [324]:
Indices = [1,2,3,4,100,101,102,103,1500,1574,347,90]

In [108]:
bool(len(Indices))


Out[108]:
True

In [140]:
norm = np.asarray(Image.open('./DataSet/NORM/'+str(1).zfill(6)+'.png'))

In [141]:
Image.fromarray(norm)


Out[141]:

In [323]:
def get_batch(batch_size=32):
    
        images = np.zeros([batch_size, 240, 320, 3], dtype=np.float32)
        normals = np.zeros([batch_size, 240, 320, 3], dtype=np.float32)

        for i in range(batch_size):
            if len(Indices): 
                ni = Indices.pop()
                images[i,:,:,:] = np.asarray(Image.open('./DataSet/RGB/'+str(ni).zfill(6)+'.png'))
                normals[i,:,:,:] = np.asarray(Image.open('./DataSet/NORM/'+str(ni).zfill(6)+'.png'))
        # Convert to range [-1,+1]
        normals = ((normals / 254)*2)-1
        # Mask of valid normals
        norml2 = LA.norm(normals,axis=3)
        mask = (norml2 > 0.5).astype(np.float32)
        mask3 = np.repeat(np.expand_dims(mask,3),3,3)
        # Normalise
        normals = np.divide(normals,np.expand_dims(norml2,3))
        normals = np.nan_to_num(normals)
        # Apply mask
        normals = np.multiply(normals,mask3)
        
        return images,normals

In [340]:
img,norm = get_batch(32)


/home/raman/Applications/miniconda3/lib/python3.6/site-packages/ipykernel_launcher.py:18: RuntimeWarning: invalid value encountered in true_divide

In [334]:
img.shape


Out[334]:
(5, 240, 320, 3)

In [338]:
Image.fromarray(img[1].astype(np.uint8))


Out[338]:

In [337]:
show_normals(norm[1])


Out[337]:

In [285]:
norm = np.nan_to_num(np.divide(norm,np.reshape(LA.norm(norm,axis=3), (5,240,320,1))))


/home/raman/Applications/miniconda3/lib/python3.6/site-packages/ipykernel_launcher.py:1: RuntimeWarning: invalid value encountered in true_divide
  """Entry point for launching an IPython kernel.

In [204]:
np.unique(norm)


Out[204]:
array([-1.        , -0.99996585, -0.99992937, ...,  0.99996901,
        0.99996948,  1.        ], dtype=float32)

In [299]:
np.unique(LA.norm(norm,axis=3))


Out[299]:
array([ 0.        ,  0.99999982,  0.99999988,  0.99999994,  1.        ,
        1.00000012], dtype=float32)

In [281]:
mask = (LA.norm(norm,axis=3) > 0.5).astype(np.float)

In [282]:
mask3 = np.repeat(np.expand_dims(mask,3),3,3)

In [287]:
temp = np.multiply(norm,mask3)

In [288]:
show_normals(temp[2])


Out[288]:

In [353]:
def init():
    Indices = []
    for i in range(3000):
        rgb = './DataSet/RGB/'+str(i).zfill(6)+'.png'
        norm = './DataSet/NORM/'+str(i).zfill(6)+'.png'
        if os.path.isfile(rgb) and os.path.isfile(norm):
            Indices.append(i)
        else:
            print(str(i),' MISSING')
    return Indices

In [354]:
ii = init()


0  MISSING
1748  MISSING
1749  MISSING
1750  MISSING
1751  MISSING
1752  MISSING
1753  MISSING
1754  MISSING
1755  MISSING
1756  MISSING
1757  MISSING
1758  MISSING
1759  MISSING
1760  MISSING
1761  MISSING
1762  MISSING
1763  MISSING
1764  MISSING
1765  MISSING
1766  MISSING
1767  MISSING
1768  MISSING
1769  MISSING
1770  MISSING
1771  MISSING
1772  MISSING
1773  MISSING
1774  MISSING
1775  MISSING
1776  MISSING
1777  MISSING
1778  MISSING
1779  MISSING
1780  MISSING
1781  MISSING
1782  MISSING
1783  MISSING
1784  MISSING
1785  MISSING
1786  MISSING
1787  MISSING
1788  MISSING
1789  MISSING
1790  MISSING
1791  MISSING
1792  MISSING
1793  MISSING
1794  MISSING
1795  MISSING
1796  MISSING
1797  MISSING
1798  MISSING
1799  MISSING
1800  MISSING
1801  MISSING
1802  MISSING
1803  MISSING
1804  MISSING
1805  MISSING
1806  MISSING
1807  MISSING
1808  MISSING
1809  MISSING
1810  MISSING
1811  MISSING
1812  MISSING
1813  MISSING
1814  MISSING
1815  MISSING
1816  MISSING
1817  MISSING
1818  MISSING
1819  MISSING
1820  MISSING
1821  MISSING
1822  MISSING
1823  MISSING
1824  MISSING
1825  MISSING
1826  MISSING
1827  MISSING
1828  MISSING
1829  MISSING
1830  MISSING
1831  MISSING
1832  MISSING
1833  MISSING
1834  MISSING
1835  MISSING
1836  MISSING
1837  MISSING
1838  MISSING
1839  MISSING
1840  MISSING
1841  MISSING
1842  MISSING
1843  MISSING
1844  MISSING
1845  MISSING
1846  MISSING
1847  MISSING
1848  MISSING
1849  MISSING
1850  MISSING
1851  MISSING
1852  MISSING
1853  MISSING
1854  MISSING
1855  MISSING
1856  MISSING
1857  MISSING
1858  MISSING
1859  MISSING
1860  MISSING
1861  MISSING
1862  MISSING
1863  MISSING
1864  MISSING
1865  MISSING
1866  MISSING
1867  MISSING
1868  MISSING
1869  MISSING
1870  MISSING
1871  MISSING
1872  MISSING
1873  MISSING
1874  MISSING
1875  MISSING
1876  MISSING
1877  MISSING
1878  MISSING
1879  MISSING
1880  MISSING
1881  MISSING
1882  MISSING
1883  MISSING
1884  MISSING
1885  MISSING
1886  MISSING
1887  MISSING
1888  MISSING
1889  MISSING
1890  MISSING
1891  MISSING
1892  MISSING
1893  MISSING
1894  MISSING
1895  MISSING
1896  MISSING
1897  MISSING
1898  MISSING
1899  MISSING
1900  MISSING
1901  MISSING
1902  MISSING
1903  MISSING
1904  MISSING
1905  MISSING
1906  MISSING
1907  MISSING
1908  MISSING
1909  MISSING
1910  MISSING
1911  MISSING
1912  MISSING
1913  MISSING
1914  MISSING
1915  MISSING
1916  MISSING
1917  MISSING
1918  MISSING
1919  MISSING
1920  MISSING
1921  MISSING
1922  MISSING
1923  MISSING
1924  MISSING
1925  MISSING
1926  MISSING
1927  MISSING
1928  MISSING
1929  MISSING
1930  MISSING
1931  MISSING
1932  MISSING
1933  MISSING
1934  MISSING
1935  MISSING
1936  MISSING
1937  MISSING
1938  MISSING
1939  MISSING
1940  MISSING
1941  MISSING
1942  MISSING
1943  MISSING
1944  MISSING
1945  MISSING
1946  MISSING
1947  MISSING
1948  MISSING
1949  MISSING
1950  MISSING
1951  MISSING
1952  MISSING
1953  MISSING
1954  MISSING
1955  MISSING
1956  MISSING
1957  MISSING
1958  MISSING
1959  MISSING
1960  MISSING
1961  MISSING
1962  MISSING
1963  MISSING
1964  MISSING
1965  MISSING
1966  MISSING
1967  MISSING
1968  MISSING
1969  MISSING
1970  MISSING
1971  MISSING
1972  MISSING
1973  MISSING
1974  MISSING
1975  MISSING
1976  MISSING
1977  MISSING
1978  MISSING
1979  MISSING
1980  MISSING
1981  MISSING
1982  MISSING
1983  MISSING
1984  MISSING
1985  MISSING
1986  MISSING
1987  MISSING
1988  MISSING
1989  MISSING
1990  MISSING
1991  MISSING
1992  MISSING
1993  MISSING
1994  MISSING
1995  MISSING
1996  MISSING
1997  MISSING
1998  MISSING
1999  MISSING
2000  MISSING
2001  MISSING
2002  MISSING
2003  MISSING
2004  MISSING
2005  MISSING
2006  MISSING
2007  MISSING
2008  MISSING
2009  MISSING
2010  MISSING
2011  MISSING
2012  MISSING
2013  MISSING
2014  MISSING
2015  MISSING
2016  MISSING
2017  MISSING
2018  MISSING
2019  MISSING
2020  MISSING
2021  MISSING
2022  MISSING
2023  MISSING
2024  MISSING
2025  MISSING
2026  MISSING
2027  MISSING
2028  MISSING
2029  MISSING
2030  MISSING
2031  MISSING
2032  MISSING
2033  MISSING
2034  MISSING
2035  MISSING
2036  MISSING
2037  MISSING
2038  MISSING
2039  MISSING
2040  MISSING
2041  MISSING
2042  MISSING
2043  MISSING
2044  MISSING
2045  MISSING
2046  MISSING
2047  MISSING
2048  MISSING
2049  MISSING
2050  MISSING
2051  MISSING
2052  MISSING
2053  MISSING
2054  MISSING
2055  MISSING
2056  MISSING
2057  MISSING
2058  MISSING
2059  MISSING
2060  MISSING
2061  MISSING
2062  MISSING
2063  MISSING
2064  MISSING
2065  MISSING
2066  MISSING
2067  MISSING
2068  MISSING
2069  MISSING
2070  MISSING
2071  MISSING
2072  MISSING
2073  MISSING
2074  MISSING
2075  MISSING
2076  MISSING
2077  MISSING
2078  MISSING
2079  MISSING
2080  MISSING
2081  MISSING
2082  MISSING
2083  MISSING
2084  MISSING
2085  MISSING
2086  MISSING
2087  MISSING
2088  MISSING
2089  MISSING
2090  MISSING
2091  MISSING
2092  MISSING
2093  MISSING
2094  MISSING
2095  MISSING
2096  MISSING
2097  MISSING
2098  MISSING
2099  MISSING
2100  MISSING
2101  MISSING
2102  MISSING
2103  MISSING
2104  MISSING
2105  MISSING
2106  MISSING
2107  MISSING
2108  MISSING
2109  MISSING
2110  MISSING
2111  MISSING
2112  MISSING
2113  MISSING
2114  MISSING
2115  MISSING
2116  MISSING
2117  MISSING
2118  MISSING
2119  MISSING
2120  MISSING
2121  MISSING
2122  MISSING
2123  MISSING
2124  MISSING
2125  MISSING
2126  MISSING
2127  MISSING
2128  MISSING
2129  MISSING
2130  MISSING
2131  MISSING
2132  MISSING
2133  MISSING
2134  MISSING
2135  MISSING
2136  MISSING
2137  MISSING
2138  MISSING
2139  MISSING
2140  MISSING
2141  MISSING
2142  MISSING
2143  MISSING
2144  MISSING
2145  MISSING
2146  MISSING
2147  MISSING
2148  MISSING
2149  MISSING
2150  MISSING
2151  MISSING
2152  MISSING
2153  MISSING
2154  MISSING
2155  MISSING
2156  MISSING
2157  MISSING
2158  MISSING
2159  MISSING
2160  MISSING
2161  MISSING
2162  MISSING
2163  MISSING
2164  MISSING
2165  MISSING
2166  MISSING
2167  MISSING
2168  MISSING
2169  MISSING
2170  MISSING
2171  MISSING
2172  MISSING
2173  MISSING
2174  MISSING
2175  MISSING
2176  MISSING
2177  MISSING
2178  MISSING
2179  MISSING
2180  MISSING
2181  MISSING
2182  MISSING
2183  MISSING
2184  MISSING
2185  MISSING
2186  MISSING
2187  MISSING
2188  MISSING
2189  MISSING
2190  MISSING
2191  MISSING
2192  MISSING
2193  MISSING
2194  MISSING
2195  MISSING
2196  MISSING
2197  MISSING
2198  MISSING
2199  MISSING
2200  MISSING
2201  MISSING
2202  MISSING
2203  MISSING
2204  MISSING
2205  MISSING
2206  MISSING
2207  MISSING
2208  MISSING
2209  MISSING
2210  MISSING
2211  MISSING
2212  MISSING
2213  MISSING
2214  MISSING
2215  MISSING
2216  MISSING
2217  MISSING
2218  MISSING
2219  MISSING
2220  MISSING
2221  MISSING
2222  MISSING
2223  MISSING
2224  MISSING
2225  MISSING
2226  MISSING
2227  MISSING
2228  MISSING
2229  MISSING
2230  MISSING
2231  MISSING
2232  MISSING
2233  MISSING
2234  MISSING
2235  MISSING
2236  MISSING
2237  MISSING
2238  MISSING
2239  MISSING
2240  MISSING
2241  MISSING
2242  MISSING
2243  MISSING
2244  MISSING
2245  MISSING
2246  MISSING
2247  MISSING
2248  MISSING
2249  MISSING
2250  MISSING
2251  MISSING
2252  MISSING
2253  MISSING
2254  MISSING
2255  MISSING
2256  MISSING
2257  MISSING
2258  MISSING
2259  MISSING
2260  MISSING
2261  MISSING
2262  MISSING
2263  MISSING
2264  MISSING
2265  MISSING
2266  MISSING
2267  MISSING
2268  MISSING
2269  MISSING
2270  MISSING
2271  MISSING
2272  MISSING
2273  MISSING
2274  MISSING
2275  MISSING
2276  MISSING
2277  MISSING
2278  MISSING
2279  MISSING
2280  MISSING
2281  MISSING
2282  MISSING
2283  MISSING
2284  MISSING
2285  MISSING
2286  MISSING
2287  MISSING
2288  MISSING
2289  MISSING
2290  MISSING
2291  MISSING
2292  MISSING
2293  MISSING
2294  MISSING
2295  MISSING
2296  MISSING
2297  MISSING
2298  MISSING
2299  MISSING
2300  MISSING
2301  MISSING
2302  MISSING
2303  MISSING
2304  MISSING
2305  MISSING
2306  MISSING
2307  MISSING
2308  MISSING
2309  MISSING
2310  MISSING
2311  MISSING
2312  MISSING
2313  MISSING
2314  MISSING
2315  MISSING
2316  MISSING
2317  MISSING
2318  MISSING
2319  MISSING
2320  MISSING
2321  MISSING
2322  MISSING
2323  MISSING
2324  MISSING
2325  MISSING
2326  MISSING
2327  MISSING
2328  MISSING
2329  MISSING
2330  MISSING
2331  MISSING
2332  MISSING
2333  MISSING
2334  MISSING
2335  MISSING
2336  MISSING
2337  MISSING
2338  MISSING
2339  MISSING
2340  MISSING
2341  MISSING
2342  MISSING
2343  MISSING
2344  MISSING
2345  MISSING
2346  MISSING
2347  MISSING
2348  MISSING
2349  MISSING
2350  MISSING
2351  MISSING
2352  MISSING
2353  MISSING
2354  MISSING
2355  MISSING
2356  MISSING
2357  MISSING
2358  MISSING
2359  MISSING
2360  MISSING
2361  MISSING
2362  MISSING
2363  MISSING
2364  MISSING
2365  MISSING
2366  MISSING
2367  MISSING
2368  MISSING
2369  MISSING
2370  MISSING
2371  MISSING
2372  MISSING
2373  MISSING
2374  MISSING
2375  MISSING
2376  MISSING
2377  MISSING
2378  MISSING
2379  MISSING
2380  MISSING
2381  MISSING
2382  MISSING
2383  MISSING
2384  MISSING
2385  MISSING
2386  MISSING
2387  MISSING
2388  MISSING
2389  MISSING
2390  MISSING
2391  MISSING
2392  MISSING
2393  MISSING
2394  MISSING
2395  MISSING
2396  MISSING
2397  MISSING
2398  MISSING
2399  MISSING
2400  MISSING
2401  MISSING
2402  MISSING
2403  MISSING
2404  MISSING
2405  MISSING
2406  MISSING
2407  MISSING
2408  MISSING
2409  MISSING
2410  MISSING
2411  MISSING
2412  MISSING
2413  MISSING
2414  MISSING
2415  MISSING
2416  MISSING
2417  MISSING
2418  MISSING
2419  MISSING
2420  MISSING
2421  MISSING
2422  MISSING
2423  MISSING
2424  MISSING
2425  MISSING
2426  MISSING
2427  MISSING
2428  MISSING
2429  MISSING
2430  MISSING
2431  MISSING
2432  MISSING
2433  MISSING
2434  MISSING
2435  MISSING
2436  MISSING
2437  MISSING
2438  MISSING
2439  MISSING
2440  MISSING
2441  MISSING
2442  MISSING
2443  MISSING
2444  MISSING
2445  MISSING
2446  MISSING
2447  MISSING
2448  MISSING
2449  MISSING
2450  MISSING
2451  MISSING
2452  MISSING
2453  MISSING
2454  MISSING
2455  MISSING
2456  MISSING
2457  MISSING
2458  MISSING
2459  MISSING
2460  MISSING
2461  MISSING
2462  MISSING
2463  MISSING
2464  MISSING
2465  MISSING
2466  MISSING
2467  MISSING
2468  MISSING
2469  MISSING
2470  MISSING
2471  MISSING
2472  MISSING
2473  MISSING
2474  MISSING
2475  MISSING
2476  MISSING
2477  MISSING
2478  MISSING
2479  MISSING
2480  MISSING
2481  MISSING
2482  MISSING
2483  MISSING
2484  MISSING
2485  MISSING
2486  MISSING
2487  MISSING
2488  MISSING
2489  MISSING
2490  MISSING
2491  MISSING
2492  MISSING
2493  MISSING
2494  MISSING
2495  MISSING
2496  MISSING
2497  MISSING
2498  MISSING
2499  MISSING
2500  MISSING
2501  MISSING
2502  MISSING
2503  MISSING
2504  MISSING
2505  MISSING
2506  MISSING
2507  MISSING
2508  MISSING
2509  MISSING
2510  MISSING
2511  MISSING
2512  MISSING
2513  MISSING
2514  MISSING
2515  MISSING
2516  MISSING
2517  MISSING
2518  MISSING
2519  MISSING
2520  MISSING
2521  MISSING
2522  MISSING
2523  MISSING
2524  MISSING
2525  MISSING
2526  MISSING
2527  MISSING
2528  MISSING
2529  MISSING
2530  MISSING
2531  MISSING
2532  MISSING
2533  MISSING
2534  MISSING
2535  MISSING
2536  MISSING
2537  MISSING
2538  MISSING
2539  MISSING
2540  MISSING
2541  MISSING
2542  MISSING
2543  MISSING
2544  MISSING
2545  MISSING
2546  MISSING
2547  MISSING
2548  MISSING
2549  MISSING
2550  MISSING
2551  MISSING
2552  MISSING
2553  MISSING
2554  MISSING
2555  MISSING
2556  MISSING
2557  MISSING
2558  MISSING
2559  MISSING
2560  MISSING
2561  MISSING
2562  MISSING
2563  MISSING
2564  MISSING
2565  MISSING
2566  MISSING
2567  MISSING
2568  MISSING
2569  MISSING
2570  MISSING
2571  MISSING
2572  MISSING
2573  MISSING
2574  MISSING
2575  MISSING
2576  MISSING
2577  MISSING
2578  MISSING
2579  MISSING
2580  MISSING
2581  MISSING
2582  MISSING
2583  MISSING
2584  MISSING
2585  MISSING
2586  MISSING
2587  MISSING
2588  MISSING
2589  MISSING
2590  MISSING
2591  MISSING
2592  MISSING
2593  MISSING
2594  MISSING
2595  MISSING
2596  MISSING
2597  MISSING
2598  MISSING
2599  MISSING
2600  MISSING
2601  MISSING
2602  MISSING
2603  MISSING
2604  MISSING
2605  MISSING
2606  MISSING
2607  MISSING
2608  MISSING
2609  MISSING
2610  MISSING
2611  MISSING
2612  MISSING
2613  MISSING
2614  MISSING
2615  MISSING
2616  MISSING
2617  MISSING
2618  MISSING
2619  MISSING
2620  MISSING
2621  MISSING
2622  MISSING
2623  MISSING
2624  MISSING
2625  MISSING
2626  MISSING
2627  MISSING
2628  MISSING
2629  MISSING
2630  MISSING
2631  MISSING
2632  MISSING
2633  MISSING
2634  MISSING
2635  MISSING
2636  MISSING
2637  MISSING
2638  MISSING
2639  MISSING
2640  MISSING
2641  MISSING
2642  MISSING
2643  MISSING
2644  MISSING
2645  MISSING
2646  MISSING
2647  MISSING
2648  MISSING
2649  MISSING
2650  MISSING
2651  MISSING
2652  MISSING
2653  MISSING
2654  MISSING
2655  MISSING
2656  MISSING
2657  MISSING
2658  MISSING
2659  MISSING
2660  MISSING
2661  MISSING
2662  MISSING
2663  MISSING
2664  MISSING
2665  MISSING
2666  MISSING
2667  MISSING
2668  MISSING
2669  MISSING
2670  MISSING
2671  MISSING
2672  MISSING
2673  MISSING
2674  MISSING
2675  MISSING
2676  MISSING
2677  MISSING
2678  MISSING
2679  MISSING
2680  MISSING
2681  MISSING
2682  MISSING
2683  MISSING
2684  MISSING
2685  MISSING
2686  MISSING
2687  MISSING
2688  MISSING
2689  MISSING
2690  MISSING
2691  MISSING
2692  MISSING
2693  MISSING
2694  MISSING
2695  MISSING
2696  MISSING
2697  MISSING
2698  MISSING
2699  MISSING
2700  MISSING
2701  MISSING
2702  MISSING
2703  MISSING
2704  MISSING
2705  MISSING
2706  MISSING
2707  MISSING
2708  MISSING
2709  MISSING
2710  MISSING
2711  MISSING
2712  MISSING
2713  MISSING
2714  MISSING
2715  MISSING
2716  MISSING
2717  MISSING
2718  MISSING
2719  MISSING
2720  MISSING
2721  MISSING
2722  MISSING
2723  MISSING
2724  MISSING
2725  MISSING
2726  MISSING
2727  MISSING
2728  MISSING
2729  MISSING
2730  MISSING
2731  MISSING
2732  MISSING
2733  MISSING
2734  MISSING
2735  MISSING
2736  MISSING
2737  MISSING
2738  MISSING
2739  MISSING
2740  MISSING
2741  MISSING
2742  MISSING
2743  MISSING
2744  MISSING
2745  MISSING
2746  MISSING
2747  MISSING
2748  MISSING
2749  MISSING
2750  MISSING
2751  MISSING
2752  MISSING
2753  MISSING
2754  MISSING
2755  MISSING
2756  MISSING
2757  MISSING
2758  MISSING
2759  MISSING
2760  MISSING
2761  MISSING
2762  MISSING
2763  MISSING
2764  MISSING
2765  MISSING
2766  MISSING
2767  MISSING
2768  MISSING
2769  MISSING
2770  MISSING
2771  MISSING
2772  MISSING
2773  MISSING
2774  MISSING
2775  MISSING
2776  MISSING
2777  MISSING
2778  MISSING
2779  MISSING
2780  MISSING
2781  MISSING
2782  MISSING
2783  MISSING
2784  MISSING
2785  MISSING
2786  MISSING
2787  MISSING
2788  MISSING
2789  MISSING
2790  MISSING
2791  MISSING
2792  MISSING
2793  MISSING
2794  MISSING
2795  MISSING
2796  MISSING
2797  MISSING
2798  MISSING
2799  MISSING
2800  MISSING
2801  MISSING
2802  MISSING
2803  MISSING
2804  MISSING
2805  MISSING
2806  MISSING
2807  MISSING
2808  MISSING
2809  MISSING
2810  MISSING
2811  MISSING
2812  MISSING
2813  MISSING
2814  MISSING
2815  MISSING
2816  MISSING
2817  MISSING
2818  MISSING
2819  MISSING
2820  MISSING
2821  MISSING
2822  MISSING
2823  MISSING
2824  MISSING
2825  MISSING
2826  MISSING
2827  MISSING
2828  MISSING
2829  MISSING
2830  MISSING
2831  MISSING
2832  MISSING
2833  MISSING
2834  MISSING
2835  MISSING
2836  MISSING
2837  MISSING
2838  MISSING
2839  MISSING
2840  MISSING
2841  MISSING
2842  MISSING
2843  MISSING
2844  MISSING
2845  MISSING
2846  MISSING
2847  MISSING
2848  MISSING
2849  MISSING
2850  MISSING
2851  MISSING
2852  MISSING
2853  MISSING
2854  MISSING
2855  MISSING
2856  MISSING
2857  MISSING
2858  MISSING
2859  MISSING
2860  MISSING
2861  MISSING
2862  MISSING
2863  MISSING
2864  MISSING
2865  MISSING
2866  MISSING
2867  MISSING
2868  MISSING
2869  MISSING
2870  MISSING
2871  MISSING
2872  MISSING
2873  MISSING
2874  MISSING
2875  MISSING
2876  MISSING
2877  MISSING
2878  MISSING
2879  MISSING
2880  MISSING
2881  MISSING
2882  MISSING
2883  MISSING
2884  MISSING
2885  MISSING
2886  MISSING
2887  MISSING
2888  MISSING
2889  MISSING
2890  MISSING
2891  MISSING
2892  MISSING
2893  MISSING
2894  MISSING
2895  MISSING
2896  MISSING
2897  MISSING
2898  MISSING
2899  MISSING
2900  MISSING
2901  MISSING
2902  MISSING
2903  MISSING
2904  MISSING
2905  MISSING
2906  MISSING
2907  MISSING
2908  MISSING
2909  MISSING
2910  MISSING
2911  MISSING
2912  MISSING
2913  MISSING
2914  MISSING
2915  MISSING
2916  MISSING
2917  MISSING
2918  MISSING
2919  MISSING
2920  MISSING
2921  MISSING
2922  MISSING
2923  MISSING
2924  MISSING
2925  MISSING
2926  MISSING
2927  MISSING
2928  MISSING
2929  MISSING
2930  MISSING
2931  MISSING
2932  MISSING
2933  MISSING
2934  MISSING
2935  MISSING
2936  MISSING
2937  MISSING
2938  MISSING
2939  MISSING
2940  MISSING
2941  MISSING
2942  MISSING
2943  MISSING
2944  MISSING
2945  MISSING
2946  MISSING
2947  MISSING
2948  MISSING
2949  MISSING
2950  MISSING
2951  MISSING
2952  MISSING
2953  MISSING
2954  MISSING
2955  MISSING
2956  MISSING
2957  MISSING
2958  MISSING
2959  MISSING
2960  MISSING
2961  MISSING
2962  MISSING
2963  MISSING
2964  MISSING
2965  MISSING
2966  MISSING
2967  MISSING
2968  MISSING
2969  MISSING
2970  MISSING
2971  MISSING
2972  MISSING
2973  MISSING
2974  MISSING
2975  MISSING
2976  MISSING
2977  MISSING
2978  MISSING
2979  MISSING
2980  MISSING
2981  MISSING
2982  MISSING
2983  MISSING
2984  MISSING
2985  MISSING
2986  MISSING
2987  MISSING
2988  MISSING
2989  MISSING
2990  MISSING
2991  MISSING
2992  MISSING
2993  MISSING
2994  MISSING
2995  MISSING
2996  MISSING
2997  MISSING
2998  MISSING
2999  MISSING

In [358]:
shuffle(ii)

In [360]:
ii.pop()


Out[360]:
412

In [22]:
%%writefile ../Code/DataSets/NYURaw.py
import os.path
import random
import numpy as np
import numpy.linalg as LA
from PIL import Image

path = '../Code/DataSets/NYURaw/'

class Dataset:
    
    def __init__(self,subset=1.0):    
        self.Indices = []
        for i in range(1,252885):
            rgb = path+'RGB/'+str(i).zfill(6)+'.png'
            norm = path+'NORM/'+str(i).zfill(6)+'.png'
            if os.path.isfile(rgb) and os.path.isfile(norm):
                self.Indices.append(i)
            #else:
            # print('Frame No. ',str(i),' IS MISSING')
        random.seed(7)
        random.shuffle(self.Indices)
        self.size = int(subset*len(self.Indices))
    
    def get_batch(self,batch_size=32):
        # Initialisation
        images = np.zeros([batch_size, 240, 320, 3], dtype=np.float32)
        normals = np.zeros([batch_size, 240, 320, 3], dtype=np.float32)
        # Loading images
        for i in range(batch_size):
            if len(self.Indices): 
                ni = self.Indices.pop()
                images[i,:,:,:] = np.asarray(Image.open(path+'RGB/'+str(ni).zfill(6)+'.png'))
                normals[i,:,:,:] = np.asarray(Image.open(path+'NORM/'+str(ni).zfill(6)+'.png'))
        
        # Convert to range [-1,+1]
        normals = ((normals / 254)*2)-1
        # Mask of valid normals
        norml2 = LA.norm(normals,axis=3)
        mask = (norml2 > 0.5).astype(np.float32)
        mask3 = np.repeat(np.expand_dims(mask,3),3,3)
        # Normalise
        normals = np.divide(normals,np.expand_dims(norml2,3))
        normals = np.nan_to_num(normals)
        # Apply mask
        normals = np.multiply(normals,mask3)
        
        return images,normals


Writing ../Code/DataSets/NYURaw.py

In [11]:
dataset = Dataset()

In [12]:
len(dataset.Indices)


Out[12]:
99

In [13]:
dataset.size


Out[13]:
99

In [14]:
from math import ceil

In [15]:
ceil(dataset.size/32)


Out[15]:
4

In [23]:
7903*32


Out[23]:
252896

In [16]:
img, norm = dataset.get_batch()


/usr/local/lib/python3.6/site-packages/ipykernel_launcher.py:42: RuntimeWarning: invalid value encountered in true_divide

In [17]:
Image.fromarray(img[0].astype(np.uint8))


Out[17]:

In [21]:
show_normals(norm[0])


Out[21]:

In [26]:
list(range(1,int(5*0.5)))


Out[26]:
[1]

In [ ]: