Convert ASCII art numbers to integers Inspired by this game

Challenge:

Given an ASCII art string representing a number, output that number.
Example:

Input:

  &amp;&amp;&amp;&amp;      #####    .====..    .&amp;&amp;&amp;
 $$$$$.    %%   %%   %    % .   +. .
   @@@  .      @@ .  = .  =   . ????
   +++.    &amp;&amp;   &amp;&amp;.  %    %     =   =
   $$$    . @@@@@    #    #  .  ===.
 .$$$$$              .????.

Output: 1306


Input:

  ====     .$$..      &amp;&amp;&amp;&amp;&amp;&amp;.    .@@@@    ?????
 +++++     &amp;. &amp;           $$    %%   %%  &amp;&amp;   &amp;&amp;
   $$$     .==.          @@ .   @@   @@ .    ??
.  ### .   @  @  .      ==     $$$$$$$$  ??. .??
. .@@@.    .%%.        ==           .$$   &amp;&amp;&amp;&amp;&amp;  .
  $$$$$. .            .%        .    @@ .

Output: 18743


Periods are interference, you can ignore them

The complete list of numbers:

 &amp;&amp;&amp;&amp; 
%    %
=    =
%    %
#    #
 ????

 &amp;&amp;&amp;&amp;
$$$$$
  @@@
  +++
  $$$
 $$$$$


 #####
++   ++
 #  ##
   @@
  @@    
???????


 #####
%%   %%
    @@
&amp;&amp;   &amp;&amp;
 @@@@@  


   @@@@
 %%   %%
 @@   @@
$$$$$$$$
      $$
      @@ 


###### 
$  
#### 
    + 
    ? 
$$$$$ 


 &amp;&amp;&amp;
+ 
????
=   =
===

&amp;&amp;&amp;&amp;&amp;&amp;
    $$
   @@
  ==
 ==
 %

 $$
&amp;  &amp;
 ==
@  @
 %%


 &amp;&amp;&amp;&amp;
@    @
 &amp;&amp;&amp;&amp;
    $
    &amp;
  + 



Rules:


Your input is a string unless your language doesn't have a string type.
The input is guaranteed to be exactly 6 characters "high." Numbers such as 8 and 3 have a whitespace buffer UNDER the number.
If you write a function, it MUST return a numerical type.
The ASCII art can be composed of ANY printable characters in no particular order (remember, you can ignore periods).
No standard loopholes.
Your program must handle any arbitrary ASCII number of reasonable length (as long as the result fits within a 32-bit signed integer).
Input is guaranteed valid, undefined behavior is allowed with bad input.
This is code-golf, shortest program wins.


More tests:


  $$$$     ######     @@@@  . .  .%%%%    #####
 #####     $ .       =====..  . ##   ##  ++   ++
   +++     ####.       +++.     ==   ==   #  ##
   ===     .   +       ###  .  ========.    @@
  .&amp;&amp;&amp;    .  . ?   . . @@@           ##    @@    .
  %%%%%    $$$$$      #####          @@  ???????

&gt; 15142

 .&amp;&amp;&amp;&amp;.    ??????     @@@@@      .++++
 @    @    + .       ==   ==    %%   %%
 .&amp;&amp;&amp;&amp;.    ####..     =  == .   ++   ++
  .. $         &amp;        $$     $$$$$$$$.
 .   &amp;.      . #       &amp;&amp; .          ##
   +.   .  #####     $$$$$$$        .==

&gt; 9524
Jelly, 35 33 34 bytes

Ỵe€€⁾ .¬ZḄṣ0§ḟ0%29“h½sØ?X’ḃ26¤iⱮ’Ḍ


Try it online!

When I started writing this, The question didn’t specify that the width of digits was fixed, so my answer doesn’t make that assumption. 

Input is now a string (which costs a byte over having a list of strings). Output is an integer. 

Explanation:

Ỵ                         | split at new lines
e€€⁾ .                    | For each character check whether it is a
                          | full stop/space or something else
      ¬                   | invert this
       Z                  | transpose
        Ḅ                 | convert from binary to decimal (one number per column of input)
         ṣ0               | split at zeroes (blank columns)
§                         | take the sum of each digit
 ḟ0                       | filter out remaining blank columns
   %29                    | take this number mod 29
      “h½sØ?X’ḃ26¤iⱮ      | look each digit up in a compressed list
                          | [18, 23, 6, 5, 1, 19, 13, 21, 8, 25]
                    ’     | subtract one
                     Ḍ    | convert to decimal