Skip to content

Commit 522a307

Browse files
committed
docs for v0.1.0
1 parent 91e8967 commit 522a307

37 files changed

+242
-193
lines changed
1.61 KB
Binary file not shown.
542 Bytes
Binary file not shown.
1.13 KB
Binary file not shown.
1.42 KB
Binary file not shown.

docs/_build/doctrees/training.doctree

1.87 KB
Binary file not shown.

docs/_build/html/.buildinfo

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Sphinx build info version 1
22
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3-
config: 0305af20906d6896821bb9bc0bb6deb4
3+
config: 4d8dcf2e89c6db216a76d6f7b3564598
44
tags: 645f666f9bcd5a90fca523b33c5a78b7

docs/_build/html/_modules/deepforest/cli.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
<meta name="viewport" content="width=device-width, initial-scale=1.0">
1010

11-
<title>deepforest.cli &mdash; DeepForest 0.0.3 documentation</title>
11+
<title>deepforest.cli &mdash; DeepForest 0.1.0 documentation</title>
1212

1313

1414

@@ -59,7 +59,7 @@
5959

6060

6161
<div class="version">
62-
0.0.3
62+
0.1.0
6363
</div>
6464

6565

docs/_build/html/_modules/deepforest/deepforest.html

+21-13
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
<meta name="viewport" content="width=device-width, initial-scale=1.0">
1010

11-
<title>deepforest.deepforest &mdash; DeepForest 0.0.3 documentation</title>
11+
<title>deepforest.deepforest &mdash; DeepForest 0.1.0 documentation</title>
1212

1313

1414

@@ -59,7 +59,7 @@
5959

6060

6161
<div class="version">
62-
0.0.3
62+
0.1.0
6363
</div>
6464

6565

@@ -166,6 +166,7 @@ <h1>Source code for deepforest.deepforest</h1><div class="highlight"><pre>
166166
<span class="sd">&quot;&quot;&quot;</span>
167167
<span class="kn">import</span> <span class="nn">os</span>
168168
<span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
169+
<span class="kn">import</span> <span class="nn">tensorflow</span> <span class="k">as</span> <span class="nn">tf</span>
169170
<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
170171
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
171172
<span class="kn">from</span> <span class="nn">matplotlib</span> <span class="k">import</span> <span class="n">pyplot</span> <span class="k">as</span> <span class="n">plt</span>
@@ -246,9 +247,12 @@ <h1>Source code for deepforest.deepforest</h1><div class="highlight"><pre>
246247
<span class="sd"> model (object): A trained keras model</span>
247248
<span class="sd"> &#39;&#39;&#39;</span>
248249
<span class="c1">#Download latest model from github release</span>
249-
<span class="n">weights</span> <span class="o">=</span> <span class="n">utilities</span><span class="o">.</span><span class="n">use_release</span><span class="p">()</span>
250+
<span class="n">release_tag</span><span class="p">,</span> <span class="n">weights</span> <span class="o">=</span> <span class="n">utilities</span><span class="o">.</span><span class="n">use_release</span><span class="p">()</span>
251+
252+
<span class="c1">#load saved model and tag release</span>
253+
<span class="bp">self</span><span class="o">.</span><span class="n">__release_version__</span> <span class="o">=</span> <span class="n">release_tag</span>
254+
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Loading pre-built model: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">release_tag</span><span class="p">))</span>
250255

251-
<span class="c1">#load saved model</span>
252256
<span class="bp">self</span><span class="o">.</span><span class="n">weights</span> <span class="o">=</span> <span class="n">weights</span>
253257
<span class="bp">self</span><span class="o">.</span><span class="n">model</span> <span class="o">=</span> <span class="n">utilities</span><span class="o">.</span><span class="n">read_model</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">weights</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
254258
<span class="bp">self</span><span class="o">.</span><span class="n">prediction_model</span> <span class="o">=</span> <span class="n">convert_model</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="p">)</span></div>
@@ -299,8 +303,8 @@ <h1>Source code for deepforest.deepforest</h1><div class="highlight"><pre>
299303

300304
<span class="c1">#name columns and return box data</span>
301305
<span class="n">boxes_output</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">concat</span><span class="p">(</span><span class="n">boxes_output</span><span class="p">)</span>
302-
<span class="n">boxes_output</span><span class="o">.</span><span class="n">columns</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;xmin&quot;</span><span class="p">,</span><span class="s2">&quot;ymin&quot;</span><span class="p">,</span><span class="s2">&quot;xmax&quot;</span><span class="p">,</span><span class="s2">&quot;ymax&quot;</span><span class="p">,</span><span class="s2">&quot;plot_name&quot;</span><span class="p">]</span>
303-
<span class="n">boxes_output</span> <span class="o">=</span> <span class="n">boxes_output</span><span class="o">.</span><span class="n">reindex</span><span class="p">(</span><span class="n">columns</span><span class="o">=</span> <span class="p">[</span><span class="s2">&quot;plot_name&quot;</span><span class="p">,</span><span class="s2">&quot;xmin&quot;</span><span class="p">,</span><span class="s2">&quot;ymin&quot;</span><span class="p">,</span><span class="s2">&quot;xmax&quot;</span><span class="p">,</span><span class="s2">&quot;ymax&quot;</span><span class="p">])</span>
306+
<span class="n">boxes_output</span><span class="o">.</span><span class="n">columns</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;xmin&quot;</span><span class="p">,</span><span class="s2">&quot;ymin&quot;</span><span class="p">,</span><span class="s2">&quot;xmax&quot;</span><span class="p">,</span><span class="s2">&quot;ymax&quot;</span><span class="p">,</span><span class="s2">&quot;score&quot;</span><span class="p">,</span><span class="s2">&quot;label&quot;</span><span class="p">,</span><span class="s2">&quot;plot_name&quot;</span><span class="p">]</span>
307+
<span class="n">boxes_output</span> <span class="o">=</span> <span class="n">boxes_output</span><span class="o">.</span><span class="n">reindex</span><span class="p">(</span><span class="n">columns</span><span class="o">=</span> <span class="p">[</span><span class="s2">&quot;plot_name&quot;</span><span class="p">,</span><span class="s2">&quot;xmin&quot;</span><span class="p">,</span><span class="s2">&quot;ymin&quot;</span><span class="p">,</span><span class="s2">&quot;xmax&quot;</span><span class="p">,</span><span class="s2">&quot;ymax&quot;</span><span class="p">,</span><span class="s2">&quot;score&quot;</span><span class="p">,</span><span class="s2">&quot;label&quot;</span><span class="p">])</span>
304308

305309
<span class="k">return</span> <span class="n">boxes_output</span></div>
306310

@@ -370,7 +374,7 @@ <h1>Source code for deepforest.deepforest</h1><div class="highlight"><pre>
370374
<span class="sd"> return_plot: Whether to return image with annotations overlaid, or just a numpy array of boxes</span>
371375
<span class="sd"> </span>
372376
<span class="sd"> Returns:</span>
373-
<span class="sd"> predictions (array): if return_plot, an image. Otherwise a numpy array of predicted bounding boxes</span>
377+
<span class="sd"> predictions (array): if return_plot, an image. Otherwise a numpy array of predicted bounding boxes, with scores and labels</span>
374378
<span class="sd"> &quot;&quot;&quot;</span>
375379

376380
<span class="c1">#Check for model save</span>
@@ -397,7 +401,7 @@ <h1>Source code for deepforest.deepforest</h1><div class="highlight"><pre>
397401
<span class="sd"> return_plot: Should the image be returned with the predictions drawn?</span>
398402
<span class="sd"> </span>
399403
<span class="sd"> Returns:</span>
400-
<span class="sd"> boxes (array): if return_plot, an image. Otherwise a numpy array of predicted bounding boxes</span>
404+
<span class="sd"> boxes (array): if return_plot, an image. Otherwise a numpy array of predicted bounding boxes, scores and labels</span>
401405
<span class="sd"> &quot;&quot;&quot;</span>
402406

403407
<span class="c1">#Load raster as image</span>
@@ -421,7 +425,6 @@ <h1>Source code for deepforest.deepforest</h1><div class="highlight"><pre>
421425

422426
<span class="c1">#transform coordinates to original system</span>
423427
<span class="n">xmin</span><span class="p">,</span> <span class="n">ymin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">ymax</span> <span class="o">=</span> <span class="n">windows</span><span class="p">[</span><span class="n">index</span><span class="p">]</span><span class="o">.</span><span class="n">getRect</span><span class="p">()</span>
424-
<span class="n">boxes</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">(</span><span class="n">boxes</span><span class="p">,</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;xmin&quot;</span><span class="p">,</span><span class="s2">&quot;ymin&quot;</span><span class="p">,</span><span class="s2">&quot;xmax&quot;</span><span class="p">,</span><span class="s2">&quot;ymax&quot;</span><span class="p">])</span>
425428
<span class="n">boxes</span><span class="o">.</span><span class="n">xmin</span> <span class="o">=</span> <span class="n">boxes</span><span class="o">.</span><span class="n">xmin</span> <span class="o">+</span> <span class="n">xmin</span>
426429
<span class="n">boxes</span><span class="o">.</span><span class="n">xmax</span> <span class="o">=</span> <span class="n">boxes</span><span class="o">.</span><span class="n">xmax</span> <span class="o">+</span> <span class="n">xmin</span>
427430
<span class="n">boxes</span><span class="o">.</span><span class="n">ymin</span> <span class="o">=</span> <span class="n">boxes</span><span class="o">.</span><span class="n">ymin</span> <span class="o">+</span> <span class="n">ymin</span>
@@ -431,16 +434,21 @@ <h1>Source code for deepforest.deepforest</h1><div class="highlight"><pre>
431434

432435
<span class="n">predicted_boxes</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">concat</span><span class="p">(</span><span class="n">predicted_boxes</span><span class="p">)</span>
433436

434-
<span class="c1">#TODO overlapping box supression</span>
435-
437+
<span class="c1">#Non-max supression for overlapping boxes among window </span>
438+
<span class="k">with</span> <span class="n">tf</span><span class="o">.</span><span class="n">Session</span><span class="p">()</span> <span class="k">as</span> <span class="n">sess</span><span class="p">:</span>
439+
<span class="n">new_boxes</span><span class="p">,</span> <span class="n">new_scores</span><span class="p">,</span> <span class="n">new_labels</span> <span class="o">=</span> <span class="n">predict</span><span class="o">.</span><span class="n">non_max_suppression</span><span class="p">(</span><span class="n">sess</span><span class="p">,</span> <span class="n">predicted_boxes</span><span class="p">[[</span><span class="s2">&quot;xmin&quot;</span><span class="p">,</span><span class="s2">&quot;ymin&quot;</span><span class="p">,</span><span class="s2">&quot;xmax&quot;</span><span class="p">,</span><span class="s2">&quot;ymax&quot;</span><span class="p">]]</span><span class="o">.</span><span class="n">values</span><span class="p">,</span> <span class="n">predicted_boxes</span><span class="o">.</span><span class="n">score</span><span class="o">.</span><span class="n">values</span><span class="p">,</span> <span class="n">predicted_boxes</span><span class="o">.</span><span class="n">label</span><span class="o">.</span><span class="n">values</span><span class="p">)</span>
440+
<span class="n">image_detections</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">([</span><span class="n">new_boxes</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">expand_dims</span><span class="p">(</span><span class="n">new_scores</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">),</span> <span class="n">np</span><span class="o">.</span><span class="n">expand_dims</span><span class="p">(</span><span class="n">new_labels</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)],</span> <span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
441+
<span class="n">mosaic_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">(</span><span class="n">image_detections</span><span class="p">,</span><span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;xmin&quot;</span><span class="p">,</span><span class="s2">&quot;ymin&quot;</span><span class="p">,</span><span class="s2">&quot;xmax&quot;</span><span class="p">,</span><span class="s2">&quot;ymax&quot;</span><span class="p">,</span><span class="s2">&quot;score&quot;</span><span class="p">,</span><span class="s2">&quot;label&quot;</span><span class="p">])</span>
442+
<span class="n">mosaic_df</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="n">mosaic_df</span><span class="o">.</span><span class="n">label</span><span class="o">.</span><span class="n">str</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s2">&quot;utf-8&quot;</span><span class="p">)</span>
443+
436444
<span class="k">if</span> <span class="n">return_plot</span><span class="p">:</span>
437445
<span class="c1">#Draw predictions</span>
438-
<span class="k">for</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">predicted_boxes</span><span class="o">.</span><span class="n">values</span><span class="p">:</span>
446+
<span class="k">for</span> <span class="n">box</span> <span class="ow">in</span> <span class="n">mosaic_df</span><span class="p">[[</span><span class="s2">&quot;xmin&quot;</span><span class="p">,</span><span class="s2">&quot;ymin&quot;</span><span class="p">,</span><span class="s2">&quot;xmax&quot;</span><span class="p">,</span><span class="s2">&quot;ymax&quot;</span><span class="p">]]</span><span class="o">.</span><span class="n">values</span><span class="p">:</span>
439447
<span class="n">draw_box</span><span class="p">(</span><span class="n">numpy_image</span><span class="p">,</span> <span class="n">box</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">255</span><span class="p">])</span>
440448

441449
<span class="k">return</span> <span class="n">numpy_image</span>
442450
<span class="k">else</span><span class="p">:</span>
443-
<span class="k">return</span> <span class="n">predicted_boxes</span></div></div>
451+
<span class="k">return</span> <span class="n">mosaic_df</span></div></div>
444452
</pre></div>
445453

446454
</div>

0 commit comments

Comments
 (0)