blob: 71e3bdbfffbabb7dc1012cd082f61b5d10c2ce66 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=emulateIE7" />
<title>Coverage for marvin_image_classification_engine/data_handler/training_preparator.py: 92%</title>
<link rel="stylesheet" href="style.css" type="text/css">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.hotkeys.js"></script>
<script type="text/javascript" src="jquery.isonscreen.js"></script>
<script type="text/javascript" src="coverage_html.js"></script>
<script type="text/javascript">
jQuery(document).ready(coverage.pyfile_ready);
</script>
</head>
<body class="pyfile">
<div id="header">
<div class="content">
<h1>Coverage for <b>marvin_image_classification_engine/data_handler/training_preparator.py</b> :
<span class="pc_cov">92%</span>
</h1>
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
36 statements &nbsp;
<span class="run hide_run shortkey_r button_toggle_run">33 run</span>
<span class="mis shortkey_m button_toggle_mis">3 missing</span>
<span class="exc shortkey_x button_toggle_exc">0 excluded</span>
</h2>
</div>
</div>
<div class="help_panel">
<img id="panel_icon" src="keybd_open.png" alt="Hide keyboard shortcuts" />
<p class="legend">Hot-keys on this page</p>
<div>
<p class="keyhelp">
<span class="key">r</span>
<span class="key">m</span>
<span class="key">x</span>
<span class="key">p</span> &nbsp; toggle line displays
</p>
<p class="keyhelp">
<span class="key">j</span>
<span class="key">k</span> &nbsp; next/prev highlighted chunk
</p>
<p class="keyhelp">
<span class="key">0</span> &nbsp; (zero) top of page
</p>
<p class="keyhelp">
<span class="key">1</span> &nbsp; (one) first highlighted chunk
</p>
</div>
</div>
<div id="source">
<table>
<tr>
<td class="linenos">
<p id="n1" class="pln"><a href="#n1">1</a></p>
<p id="n2" class="pln"><a href="#n2">2</a></p>
<p id="n3" class="pln"><a href="#n3">3</a></p>
<p id="n4" class="stm run hide_run"><a href="#n4">4</a></p>
<p id="n5" class="pln"><a href="#n5">5</a></p>
<p id="n6" class="pln"><a href="#n6">6</a></p>
<p id="n7" class="pln"><a href="#n7">7</a></p>
<p id="n8" class="stm run hide_run"><a href="#n8">8</a></p>
<p id="n9" class="stm run hide_run"><a href="#n9">9</a></p>
<p id="n10" class="stm run hide_run"><a href="#n10">10</a></p>
<p id="n11" class="stm run hide_run"><a href="#n11">11</a></p>
<p id="n12" class="stm run hide_run"><a href="#n12">12</a></p>
<p id="n13" class="stm run hide_run"><a href="#n13">13</a></p>
<p id="n14" class="pln"><a href="#n14">14</a></p>
<p id="n15" class="pln"><a href="#n15">15</a></p>
<p id="n16" class="stm run hide_run"><a href="#n16">16</a></p>
<p id="n17" class="pln"><a href="#n17">17</a></p>
<p id="n18" class="pln"><a href="#n18">18</a></p>
<p id="n19" class="stm run hide_run"><a href="#n19">19</a></p>
<p id="n20" class="pln"><a href="#n20">20</a></p>
<p id="n21" class="pln"><a href="#n21">21</a></p>
<p id="n22" class="stm run hide_run"><a href="#n22">22</a></p>
<p id="n23" class="pln"><a href="#n23">23</a></p>
<p id="n24" class="stm run hide_run"><a href="#n24">24</a></p>
<p id="n25" class="stm run hide_run"><a href="#n25">25</a></p>
<p id="n26" class="stm run hide_run"><a href="#n26">26</a></p>
<p id="n27" class="stm run hide_run"><a href="#n27">27</a></p>
<p id="n28" class="stm mis"><a href="#n28">28</a></p>
<p id="n29" class="stm mis"><a href="#n29">29</a></p>
<p id="n30" class="stm mis"><a href="#n30">30</a></p>
<p id="n31" class="pln"><a href="#n31">31</a></p>
<p id="n32" class="stm run hide_run"><a href="#n32">32</a></p>
<p id="n33" class="stm run hide_run"><a href="#n33">33</a></p>
<p id="n34" class="stm run hide_run"><a href="#n34">34</a></p>
<p id="n35" class="pln"><a href="#n35">35</a></p>
<p id="n36" class="stm run hide_run"><a href="#n36">36</a></p>
<p id="n37" class="stm run hide_run"><a href="#n37">37</a></p>
<p id="n38" class="stm run hide_run"><a href="#n38">38</a></p>
<p id="n39" class="pln"><a href="#n39">39</a></p>
<p id="n40" class="stm run hide_run"><a href="#n40">40</a></p>
<p id="n41" class="stm run hide_run"><a href="#n41">41</a></p>
<p id="n42" class="stm run hide_run"><a href="#n42">42</a></p>
<p id="n43" class="stm run hide_run"><a href="#n43">43</a></p>
<p id="n44" class="stm run hide_run"><a href="#n44">44</a></p>
<p id="n45" class="stm run hide_run"><a href="#n45">45</a></p>
<p id="n46" class="stm run hide_run"><a href="#n46">46</a></p>
<p id="n47" class="stm run hide_run"><a href="#n47">47</a></p>
<p id="n48" class="pln"><a href="#n48">48</a></p>
<p id="n49" class="stm run hide_run"><a href="#n49">49</a></p>
<p id="n50" class="stm run hide_run"><a href="#n50">50</a></p>
<p id="n51" class="pln"><a href="#n51">51</a></p>
<p id="n52" class="stm run hide_run"><a href="#n52">52</a></p>
<p id="n53" class="pln"><a href="#n53">53</a></p>
<p id="n54" class="pln"><a href="#n54">54</a></p>
<p id="n55" class="pln"><a href="#n55">55</a></p>
<p id="n56" class="pln"><a href="#n56">56</a></p>
<p id="n57" class="stm run hide_run"><a href="#n57">57</a></p>
<p id="n58" class="pln"><a href="#n58">58</a></p>
<p id="n59" class="pln"><a href="#n59">59</a></p>
<p id="n60" class="pln"><a href="#n60">60</a></p>
<p id="n61" class="pln"><a href="#n61">61</a></p>
<p id="n62" class="stm run hide_run"><a href="#n62">62</a></p>
</td>
<td class="text">
<p id="t1" class="pln"><span class="com">#!/usr/bin/env python</span><span class="strut">&nbsp;</span></p>
<p id="t2" class="pln"><span class="com"># coding=utf-8</span><span class="strut">&nbsp;</span></p>
<p id="t3" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t4" class="stm run hide_run"><span class="str">"""TrainingPreparator engine action.</span><span class="strut">&nbsp;</span></p>
<p id="t5" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t6" class="pln"><span class="str">Use this module to add the project main code.</span><span class="strut">&nbsp;</span></p>
<p id="t7" class="pln"><span class="str">"""</span><span class="strut">&nbsp;</span></p>
<p id="t8" class="stm run hide_run"><span class="key">import</span> <span class="nam">os</span><span class="strut">&nbsp;</span></p>
<p id="t9" class="stm run hide_run"><span class="key">import</span> <span class="nam">cv2</span><span class="strut">&nbsp;</span></p>
<p id="t10" class="stm run hide_run"><span class="key">from</span> <span class="nam">marvin_python_toolbox</span><span class="op">.</span><span class="nam">common</span><span class="op">.</span><span class="nam">data</span> <span class="key">import</span> <span class="nam">MarvinData</span><span class="strut">&nbsp;</span></p>
<p id="t11" class="stm run hide_run"><span class="key">from</span> <span class="nam">marvin_python_toolbox</span><span class="op">.</span><span class="nam">engine_base</span> <span class="key">import</span> <span class="nam">EngineBaseDataHandler</span><span class="strut">&nbsp;</span></p>
<p id="t12" class="stm run hide_run"><span class="key">from</span> <span class="op">.</span><span class="op">.</span><span class="nam">_compatibility</span> <span class="key">import</span> <span class="nam">six</span><span class="strut">&nbsp;</span></p>
<p id="t13" class="stm run hide_run"><span class="key">from</span> <span class="op">.</span><span class="op">.</span><span class="nam">_logging</span> <span class="key">import</span> <span class="nam">get_logger</span><span class="strut">&nbsp;</span></p>
<p id="t14" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t15" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t16" class="stm run hide_run"><span class="nam">__all__</span> <span class="op">=</span> <span class="op">[</span><span class="str">'TrainingPreparator'</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t17" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t18" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t19" class="stm run hide_run"><span class="nam">logger</span> <span class="op">=</span> <span class="nam">get_logger</span><span class="op">(</span><span class="str">'training_preparator'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t20" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t21" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t22" class="stm run hide_run"><span class="key">class</span> <span class="nam">TrainingPreparator</span><span class="op">(</span><span class="nam">EngineBaseDataHandler</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t23" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t24" class="stm run hide_run"> <span class="key">def</span> <span class="nam">__init__</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="op">**</span><span class="nam">kwargs</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t25" class="stm run hide_run"> <span class="nam">super</span><span class="op">(</span><span class="nam">TrainingPreparator</span><span class="op">,</span> <span class="nam">self</span><span class="op">)</span><span class="op">.</span><span class="nam">__init__</span><span class="op">(</span><span class="op">**</span><span class="nam">kwargs</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t26" class="stm run hide_run"> <span class="nam">self</span><span class="op">.</span><span class="nam">image_path</span> <span class="op">=</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">MarvinData</span><span class="op">.</span><span class="nam">data_path</span><span class="op">,</span> <span class="str">"Images"</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t27" class="stm run hide_run"> <span class="key">if</span> <span class="key">not</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">exists</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">image_path</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t28" class="stm mis"> <span class="nam">os</span><span class="op">.</span><span class="nam">makedirs</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">image_path</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t29" class="stm mis"> <span class="nam">os</span><span class="op">.</span><span class="nam">makedirs</span><span class="op">(</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">image_path</span><span class="op">,</span> <span class="str">'0'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t30" class="stm mis"> <span class="nam">os</span><span class="op">.</span><span class="nam">makedirs</span><span class="op">(</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">image_path</span><span class="op">,</span> <span class="str">'1'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t31" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t32" class="stm run hide_run"> <span class="key">def</span> <span class="nam">convert_images</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">image_path</span><span class="op">,</span> <span class="nam">fnames</span><span class="op">,</span> <span class="nam">w</span><span class="op">=</span><span class="num">150</span><span class="op">,</span> <span class="nam">h</span><span class="op">=</span><span class="num">150</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t33" class="stm run hide_run"> <span class="nam">data</span> <span class="op">=</span> <span class="op">[</span><span class="op">]</span><span class="strut">&nbsp;</span></p>
<p id="t34" class="stm run hide_run"> <span class="nam">logger</span><span class="op">.</span><span class="nam">info</span><span class="op">(</span><span class="str">"Resizing images."</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t35" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t36" class="stm run hide_run"> <span class="key">for</span> <span class="nam">nn</span><span class="op">,</span> <span class="op">(</span><span class="nam">fname</span><span class="op">,</span> <span class="nam">label</span><span class="op">)</span> <span class="key">in</span> <span class="nam">enumerate</span><span class="op">(</span><span class="nam">fnames</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t37" class="stm run hide_run"> <span class="key">if</span> <span class="nam">nn</span> <span class="op">%</span> <span class="num">100</span> <span class="op">==</span> <span class="num">0</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t38" class="stm run hide_run"> <span class="nam">logger</span><span class="op">.</span><span class="nam">info</span><span class="op">(</span><span class="str">"{}/{}"</span><span class="op">.</span><span class="nam">format</span><span class="op">(</span><span class="nam">nn</span><span class="op">,</span> <span class="nam">len</span><span class="op">(</span><span class="nam">fnames</span><span class="op">)</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t39" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t40" class="stm run hide_run"> <span class="nam">label</span> <span class="op">=</span> <span class="num">0</span> <span class="key">if</span> <span class="nam">int</span><span class="op">(</span><span class="nam">label</span><span class="op">)</span> <span class="op">==</span> <span class="op">-</span><span class="num">1</span> <span class="key">else</span> <span class="num">1</span><span class="strut">&nbsp;</span></p>
<p id="t41" class="stm run hide_run"> <span class="nam">imname</span> <span class="op">=</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">self</span><span class="op">.</span><span class="nam">image_path</span><span class="op">,</span> <span class="nam">str</span><span class="op">(</span><span class="nam">label</span><span class="op">)</span><span class="op">,</span> <span class="nam">fname</span> <span class="op">+</span> <span class="str">'.jpg'</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t42" class="stm run hide_run"> <span class="key">if</span> <span class="key">not</span> <span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">exists</span><span class="op">(</span><span class="nam">imname</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t43" class="stm run hide_run"> <span class="nam">image</span> <span class="op">=</span> <span class="nam">cv2</span><span class="op">.</span><span class="nam">imread</span><span class="op">(</span><span class="nam">os</span><span class="op">.</span><span class="nam">path</span><span class="op">.</span><span class="nam">join</span><span class="op">(</span><span class="nam">MarvinData</span><span class="op">.</span><span class="nam">data_path</span><span class="op">,</span> <span class="nam">image_path</span><span class="op">,</span> <span class="nam">fname</span> <span class="op">+</span> <span class="str">'.jpg'</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t44" class="stm run hide_run"> <span class="nam">image</span> <span class="op">=</span> <span class="nam">cv2</span><span class="op">.</span><span class="nam">resize</span><span class="op">(</span><span class="nam">image</span><span class="op">,</span> <span class="op">(</span><span class="nam">w</span><span class="op">,</span> <span class="nam">h</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t45" class="stm run hide_run"> <span class="nam">cv2</span><span class="op">.</span><span class="nam">imwrite</span><span class="op">(</span><span class="nam">imname</span><span class="op">,</span> <span class="nam">image</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t46" class="stm run hide_run"> <span class="nam">data</span><span class="op">.</span><span class="nam">append</span><span class="op">(</span><span class="op">(</span><span class="nam">imname</span><span class="op">,</span> <span class="nam">label</span><span class="op">)</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t47" class="stm run hide_run"> <span class="key">return</span> <span class="nam">data</span><span class="strut">&nbsp;</span></p>
<p id="t48" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t49" class="stm run hide_run"> <span class="key">def</span> <span class="nam">execute</span><span class="op">(</span><span class="nam">self</span><span class="op">,</span> <span class="nam">params</span><span class="op">,</span> <span class="op">**</span><span class="nam">kwargs</span><span class="op">)</span><span class="op">:</span><span class="strut">&nbsp;</span></p>
<p id="t50" class="stm run hide_run"> <span class="nam">train</span><span class="op">,</span> <span class="nam">val</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">marvin_initial_dataset</span><span class="strut">&nbsp;</span></p>
<p id="t51" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t52" class="stm run hide_run"> <span class="nam">training_data</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">convert_images</span><span class="op">(</span><span class="nam">params</span><span class="op">[</span><span class="str">'IMAGES'</span><span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t53" class="pln"> <span class="nam">train</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t54" class="pln"> <span class="nam">w</span><span class="op">=</span><span class="nam">params</span><span class="op">[</span><span class="str">'W'</span><span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t55" class="pln"> <span class="nam">h</span><span class="op">=</span><span class="nam">params</span><span class="op">[</span><span class="str">'H'</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t56" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t57" class="stm run hide_run"> <span class="nam">validation_data</span> <span class="op">=</span> <span class="nam">self</span><span class="op">.</span><span class="nam">convert_images</span><span class="op">(</span><span class="nam">params</span><span class="op">[</span><span class="str">'IMAGES'</span><span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t58" class="pln"> <span class="nam">val</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t59" class="pln"> <span class="nam">w</span><span class="op">=</span><span class="nam">params</span><span class="op">[</span><span class="str">'W'</span><span class="op">]</span><span class="op">,</span><span class="strut">&nbsp;</span></p>
<p id="t60" class="pln"> <span class="nam">h</span><span class="op">=</span><span class="nam">params</span><span class="op">[</span><span class="str">'H'</span><span class="op">]</span><span class="op">)</span><span class="strut">&nbsp;</span></p>
<p id="t61" class="pln"><span class="strut">&nbsp;</span></p>
<p id="t62" class="stm run hide_run"> <span class="nam">self</span><span class="op">.</span><span class="nam">marvin_dataset</span> <span class="op">=</span> <span class="op">{</span><span class="str">'train'</span><span class="op">:</span> <span class="nam">training_data</span><span class="op">,</span> <span class="str">'val'</span><span class="op">:</span> <span class="nam">validation_data</span><span class="op">}</span><span class="strut">&nbsp;</span></p>
</td>
</tr>
</table>
</div>
<div id="footer">
<div class="content">
<p>
<a class="nav" href="index.html">&#xab; index</a> &nbsp; &nbsp; <a class="nav" href="https://coverage.readthedocs.io">coverage.py v4.5.1</a>,
created at 2018-06-27 11:51
</p>
</div>
</div>
</body>
</html>