Switch to side-by-side view

--- a
+++ b/darkflow/net/yolov2/predict.py
@@ -0,0 +1,78 @@
+import numpy as np
+import math
+import cv2
+import os
+import json
+# from scipy.special import expit
+# from utils.box import BoundBox, box_iou, prob_compare
+# from utils.box import prob_compare2, box_intersection
+from ...utils.box import BoundBox
+from ...cython_utils.cy_yolo2_findboxes import box_constructor
+
+
+def expit(x):
+    return 1. / (1. + np.exp(-x))
+
+
+def _softmax(x):
+    e_x = np.exp(x - np.max(x))
+    out = e_x / e_x.sum()
+    return out
+
+
+def findboxes(self, net_out):
+    # meta
+    meta = self.meta
+    boxes = list()
+    boxes = box_constructor(meta, net_out)
+    return boxes
+
+
+def postprocess(self, net_out, im, save=True):
+    """
+    Takes net output, draw net_out, save to disk
+    """
+    boxes = self.findboxes(net_out)
+
+    # meta
+    meta = self.meta
+    threshold = meta['thresh']
+    colors = meta['colors']
+    labels = meta['labels']
+    if type(im) is not np.ndarray:
+        imgcv = cv2.imread(im)
+    else:
+        imgcv = im
+    h, w, _ = imgcv.shape
+
+    resultsForJSON = []
+    for b in boxes:
+        boxResults = self.process_box(b, h, w, threshold)
+        if boxResults is None:
+            continue
+        left, right, top, bot, mess, max_indx, confidence = boxResults
+        thick = int((h + w) // 300)
+        if self.FLAGS.json:
+            resultsForJSON.append(
+                {"label": mess, "confidence": float('%.2f' % confidence), "topleft": {"x": left, "y": top},
+                 "bottomright": {"x": right, "y": bot}})
+            continue
+
+        cv2.rectangle(imgcv,
+                      (left, top), (right, bot),
+                      colors[max_indx], thick)
+        cv2.putText(imgcv, mess, (left, top - 12),
+                    0, 1e-3 * h, colors[max_indx], thick // 3)
+
+    if not save: return imgcv
+
+    outfolder = os.path.join(self.FLAGS.imgdir, 'out')
+    img_name = os.path.join(outfolder, os.path.basename(im))
+    if self.FLAGS.json:
+        textJSON = json.dumps(resultsForJSON)
+        textFile = os.path.splitext(img_name)[0] + ".json"
+        with open(textFile, 'w') as f:
+            f.write(textJSON)
+        return
+
+    cv2.imwrite(img_name, imgcv)