Giter Club home page Giter Club logo

cameranetwork's People

Contributors

addalin avatar scaperex avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

cameranetwork's Issues

Separate Odroid boot from code

Currently:
the only storage for OS, data, code is MicroSD

Planned:
OS & Code on eMMC Storage
captured images on external SSD.

  • Boot from eMMC

  • Mount external SSD

  • Fix paths in code:

    def initPaths(HOME_PATH=None):
    """Delayed settings of paths. This allows settings path locally (on pc) or camera."""
    if HOME_PATH is None:
    HOME_PATH = os.path.expanduser('~')
    global CAPTURE_PATH
    global GENERAL_SETTINGS_PATH
    global CAPTURE_SETTINGS_PATH
    global DEFAULT_LOG_FOLDER
    global MASK_PATH
    global INTRINSIC_SETTINGS_PATH
    global EXTRINSIC_SETTINGS_PATH
    global SUN_POSITIONS_PATH
    global DARK_IMAGES_PATH
    global UPLOAD_CMD
    global VIGNETTING_SETTINGS_PATH
    global RADIOMETRIC_SETTINGS_PATH
    CAPTURE_PATH = os.path.join(HOME_PATH, 'captured_images')
    GENERAL_SETTINGS_PATH = os.path.join(HOME_PATH, '.camera_data.json')
    CAPTURE_SETTINGS_PATH = os.path.join(HOME_PATH, '.capture_data.json')
    VIGNETTING_SETTINGS_PATH = os.path.join(HOME_PATH, VIGNETTING_SETTINGS_FILENAME)
    RADIOMETRIC_SETTINGS_PATH = os.path.join(HOME_PATH, RADIOMETRIC_SETTINGS_FILENAME)
    DEFAULT_LOG_FOLDER = os.path.join(HOME_PATH, 'camera_logs')
    MASK_PATH = os.path.join(HOME_PATH, 'mask_img.mat')
    #
    # Calibration parameters
    #
    INTRINSIC_SETTINGS_PATH = os.path.join(HOME_PATH, INTRINSIC_SETTINGS_FILENAME)
    EXTRINSIC_SETTINGS_PATH = os.path.join(HOME_PATH, EXTRINSIC_SETTINGS_FILENAME)
    SUN_POSITIONS_PATH = os.path.join(HOME_PATH, 'sun_positions')
    DARK_IMAGES_PATH = os.path.join(HOME_PATH, 'dark_images')
    UPLOAD_CMD = os.path.join(HOME_PATH, ".local/bin/dropbox_uploader.sh -k upload {capture_path} {upload_path}")

  • Find and fix any other relevant paths in code

  • Add option to choose between external SSD Storage for captured images or internal. Should probably be configured in setup_camera.py

gui crash on pressing data

to reproduce pressin servers>camera_id>status>Data button in gui

2019-09-03 17:56:39,869 [MainThread  ] [DEBUG]  sending message from:<CameraNetwork.gui.main.ServerModel object at 0x7f5e6c9e7200>
Traceback (most recent call last):
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/site-packages/enaml/qt/qt_abstract_button.py", line 77, in on_clicked
    self.declaration.clicked(checked)
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/site-packages/enaml/core/declarative_meta.py", line 68, in declarative_change_handler
    engine.write(owner, change['name'], change)
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/site-packages/enaml/core/expression_engine.py", line 217, in write
    pair.writer(owner, name, change)
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/site-packages/enaml/core/standard_handlers.py", line 82, in __call__
    call_func(func, (), {}, scope)
  File "/home/shubi/PycharmProjects/cameranetwork/CameraNetwork/gui/enaml_files/docks.enaml", line 107, in f
    popup = MsgDataPopup(msg_data=server_model.reply_data).show()
NameError: name 'MsgDataPopup' is not defined
Aborted (core dumped)

relative log path instead of absolute

Set the following folders "proxy_logs" (in the proxy server), and "camera_logs" (in the camera server), to be created in a specific folder, and not relative to the working directory from where the script is running.

show/ hide map

Add option to show/hide the map from the view (similarly to beta and other staff in visualization in the 3D ) .
this is for debugging issues of reconstructions

Correctly flash eMMC with image

booting with eMMC
Apparently booting from eMMC is not exactly the same as from SD, therefore requires or to create working environment on eMMC and create an image of it, or transfer smartly the data from SD image to eMMC image.

Dump Labeled Data (including cloud weights) at export

/VISL2_net/addalin/efs/SHDOM/exports/2017_05_19/2017_05_19_10_30_00_no_rad_hdr_copyfordbg/

add option to export to dump labeleddata.pkl.
Includes:
Image, Mask, Sunmask, Sunshader Mask, Cloud weights.

/VISL2_net/addalin/code/pyshdom_C2/shdom/sensors.py

class RGBSensorNetwork(Sensor):
"""A network of cameras based on the 'real' camera network.

Args:
    data_dir (str): Path to reconstruction data.
    measurements (list of arrays): The measurements. These are currently used only
        for masking nan pixels.
    ignore_angles (optional, bool): Ignore the THETA/PHI pixel angles.
    ignore_sunblock (optional, bool): Ignore the (gaussian) sun mask.
    subsample (optional, int): Subsampling period.
    eleveation_weight (optional, float): Weight down the horizon.
    mask_measurement (optional, float): Mask measurements higher than this value.
    erode_mask (optional, int): Erode the mask.
    weights_color (tuple): Weight colors differently.
"""
def __init__(
        self,
        data_dir,
        indices=None,
        measurements=None,
        ignore_angles=False,
        ignore_sunblock=False,
        subsample=-1,
        elevation_weight=-1,
        mask_measurement=-1,
        erode_mask=-1,
        weights_color=(1, 1, 1),
        *args,
        **kwds):

    super(RGBSensorNetwork, self).__init__(*args, **kwds)

    with open(os.path.join(data_dir, 'export_data.pkl'), 'rb') as f:
        datas = cPickle.load(f)

    if subsample < 1:
        #
        # For some strange reason, if I don't subsample (even by 1),
        # then all shadom directions are transposed.
        #
        subsample = 1
        logging.warn("Subsampling by 1 to avoid strange bug in directions.")

    camera_ids = sorted(datas.keys())

    if indices is None:
        indices = range(len(camera_ids))

    for id_index in indices:
        cam_id = camera_ids[id_index]
        for color_channel in range(3):
            data = datas[cam_id]
            extra_data = data["extra_data"]

            if ignore_angles:
                Y_shdom, X_shdom = np.meshgrid(
                    np.linspace(-1, 1, 301),
                    np.linspace(-1, 1, 301)
                )
                PHI = math.pi + np.arctan2(Y_shdom, X_shdom)
                PSI = -math.pi + math.pi/2 * np.sqrt(X_shdom**2 + Y_shdom**2)
            else:
                PHI = data['PHI']
                PSI = data['PSI']

            #
            # Prepare the MASK (erode it if requested).
            #
            MASK = data["MASK"].astype(np.uint8)
            MASK[MASK<1] = 0
            MASK[MASK>1] = 1
            if erode_mask > 0:
                kernel = np.ones((3, 3), np.uint8)
                MASK = cv2.erode(MASK, kernel, iterations=erode_mask)
            MASK = MASK.astype(np.bool)

            SUN_MASK = data["SUN_MASK"]

            #
            # In case of forward simulation there are no measurements.
            # Use zeros to simplify the implementation of the code.
            #
            if measurements is not None:
                #
                # Mask high measurements (sun region).
                # Note:
                # The masking is done on all channels together
                # so that all channels will have the same mask.
                #
                if mask_measurement > 0:
                    values_mask = measurements[id_index] < mask_measurement
                    values_mask = values_mask.min(axis=-1)
                    MASK = MASK & values_mask

                measurement = measurements[id_index][..., color_channel]
            else:
                measurement = np.zeros_like(PHI)

            if subsample > 0:
                logging.info(
                    "Subsampling the measurements by {}".format(subsample)
                )

                #
                # Subsample the sensor smoothly.
                #
                PHI, PSI, SUN_MASK, measurement = \
                    subsampleSensor(subsample, PHI, PSI, SUN_MASK, measurement)

                #
                # The mask is sampled "not" smoothly.
                #
                MASK = MASK[::subsample, ::subsample]

            shape = PHI.shape

            self.measurements.append(measurement)
            self.shape_array.append(shape)
            self.phi_array.append(PHI)
            self.psi_array.append(PSI)
            self.x_array.append(extra_data["x"]*np.ones(shape=shape)/1000.0)
            self.y_array.append(extra_data["y"]*np.ones(shape=shape)/1000.0)
            self.z_array.append(extra_data["z"]*np.ones(shape=shape)/1000.0)

            #
            # Mask any nan values in the images.
            #
            nan_mask = ~np.isnan(measurement)
            self.mask_array.append(MASK & nan_mask)

            #
            # Scale by view angle.
            #
            if elevation_weight > 0:
                eps = 1e-8
                angle_scaling = -np.cos(PSI)
                angle_scaling[angle_scaling<eps] = eps
                angle_scaling = angle_scaling**elevation_weight
            else:
                angle_scaling = np.ones_like(PSI)

            #
            # Weight the scaling by channel.
            # This is used for putting more weights on the Blue channel in
            # hope to improve the reconstruction of the clouds.
            #
            angle_scaling = angle_scaling * weights_color[color_channel]
            if ignore_sunblock:
                self.weights_array.append(angle_scaling)
            else:
                self.weights_array.append(SUN_MASK*angle_scaling)

    #
    # SHDOM cant handle negative heights
    # move the origin to the lowest camera position
    #
    minz = np.min(map(lambda x: x.min(), self.z_array))
    self.z_array = map(lambda x: x-minz, self.z_array)

    #
    # Prepare perturbation.
    #
    if self.perturbate:
        self._prepare_camera_perturbation()

    #
    # Flatten the data arrays.
    #
    self._flatten_arrays()

/home/addalin/code/pyshdom_C2/scripts/camera_array_cloud_retrieval_RGB.py
take imports from above and sensors, on visl 135, pyshdom_new conda env

radiometric_calibration = dict(
may=np.array([0.00243353, 0.00214622, 0.00221308]),
sep=np.array([0.00394748, 0.0036557, 0.00418327]),
)

    # Load measurements
    # Note:
    # I scale the measurements by the SHDOM_COEFF. Theoretically it would
    # make sense to apply this to the solarflux input to the SHDOM algorithm.
    # This would simplify handling real measurements and simulated images
    # in the same way. Practically this is less stable SHDOM wise.
    #
    measured_images = loadRGBmeasurements(
        base_path,
        scaling=radiometric_calibration[radiometric_set]
    )

radiometric_set= 'sep'

#
# Initialize Cameras.
#
camera_network = RGBSensorNetwork(
    data_dir=base_path,
    indices=camera_ids,
    measurements=measured_images,
    ignore_sunblock=ignore_sunblock,
    subsample=subsample,
    elevation_weight=elevation_weight,
    weights_color=(0.5, 0.5, 2.) if args.weight_blue else (1, 1, 1)
) 	

EXPORT

/home/shubi/PycharmProjects/cameranetwork/CameraNetwork/export.py

Find a better way to run in the proxy server

the following command:
python ./code/cameranetwork/scripts_proxy/start_proxy.py --log_level debug &

Such that the server keeps alive in the background, and doesn't shut down when the ssh is disconnected or in sleep mode.

GUI - seek problem 2

Describe the bug
seek button trouble relates to #28

To Reproduce
Steps to reproduce the behavior:

  1. seek tab
  2. click on : update dates --> chose data --> fore read (True) --> Query --> chose time to show (pick HDR) --> push seek
  3. Click on '....'
  4. See error
Server cam_116L raised an error
===============================

Calling the cmd handler caused an error:
Traceback (most recent call last):
  File "C:\Users\addalin\Dropbox\cloud CT\cameranetwork\CameraNetwork\server.py", line 414, in _on_request
    answer = yield cb(*args, **kwds)
  File "C:\ProgramData\Anaconda2\envs\cn_client\lib\site-packages\tornado\gen.py", line 1055, in run
    value = future.result()
  File "C:\ProgramData\Anaconda2\envs\cn_client\lib\site-packages\tornado\concurrent.py", line 238, in result
    raise_exc_info(self._exc_info)
  File "C:\ProgramData\Anaconda2\envs\cn_client\lib\site-packages\tornado\gen.py", line 292, in wrapper
    result = func(*args, **kwargs)
  File "C:\Users\addalin\Dropbox\cloud CT\cameranetwork\CameraNetwork\server.py", line 992, in handle_seek
    timedelta_threshold=timedelta_threshold
  File "C:\Users\addalin\Dropbox\cloud CT\cameranetwork\CameraNetwork\controller.py", line 1381, in seekImageArray
    ignore_date_extrinsic
  File "C:\Users\addalin\Dropbox\cloud CT\cameranetwork\CameraNetwork\controller.py", line 1490, in preprocess_array
    img_array = self._vignetting.applyVignetting(img_array)
AttributeError: 'Controller' object has no attribute '_vignetting'

Expected behavior
Show images of the expected time

Screenshots
image

GUI: ImportError: No module named indexes.base

In the GUI on pressing 'Query'

2019-09-24 16:18:43,463 [Thread-1    ] [ERROR]  Uncaught exception in ZMQStream callback
Traceback (most recent call last):
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/site-packages/zmq/eventloop/zmqstream.py", line 438, in _run_callback
    callback(*args, **kwargs)
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/site-packages/tornado/stack_context.py", line 277, in null_wrapper
    return fn(*args, **kwargs)
  File "/home/shubi/PycharmProjects/cameranetwork/CameraNetwork/mdp/client.py", line 190, in _on_message
    self.on_message(msg)
  File "/home/shubi/PycharmProjects/cameranetwork/CameraNetwork/client.py", line 163, in on_message
    status, cmd, args, kwds = cPickle.loads(msg[0])
ImportError: No module named indexes.base

Possibly related to pandas version mismatch.
From stackoverflow:
This error can be caused by a version mismatch between the version of pandas used to save the dataframe and the version of pandas used to load it.

more rebust linux / windows solution + remove absolute path

# TODO more rebust linux / windows solution + remove absolute path
relpath = os.path.dirname(os.path.realpath(__file__))
if platform.system()=='Windows':
path1 = os.path.abspath(os.path.join(relpath , r"..\data\reconstructions\N32E034.hgt"))
path2 = os.path.abspath(os.path.join(relpath , r"..\data\reconstructions\N32E035.hgt"))
path3 = os.path.abspath(os.path.join(relpath , r"..\data\reconstructions\haifa_map.jpg"))
if platform.system()=='Linux':
path1 = os.path.abspath(os.path.join(relpath, r"../data/reconstructions/N32E034.hgt"))
path2 = os.path.abspath(os.path.join(relpath, r"../data/reconstructions/N32E035.hgt"))
path3 = os.path.abspath(os.path.join(relpath, r"../data/reconstructions/haifa_map.jpg"))

SSH-->Putty in GUI

Describe the bug
GUI Crashes on putty click

2019-10-22 19:06:28,009 [MainThread  ] [DEBUG]  sending message from:<CameraNetwork.gui.main.ServerModel object at 0x7f0808088dd0>
Traceback (most recent call last):
  File "/home/shubi/.conda/envs/cn_client/lib/python2.7/site-packages/enaml/qt/q_deferred_caller.py", line 42, in customEvent
    event.callback(*event.args, **event.kwargs)
  File "/home/shubi/PycharmProjects/cameranetwork/CameraNetwork/gui/main.py", line 1682, in receive_message
    self.servers_dict[server_id].handle_reply(status, cmd, args, kwds)
  File "/home/shubi/PycharmProjects/cameranetwork/CameraNetwork/gui/main.py", line 1977, in handle_reply
    cb(*args, **kwds)
  File "/home/shubi/PycharmProjects/cameranetwork/CameraNetwork/gui/main.py", line 1993, in reply_tunnel_details
    subprocess.Popen(putty_cmd)
  File "/home/shubi/.conda/envs/cn_client/lib/python2.7/subprocess.py", line 394, in __init__
    errread, errwrite)
  File "/home/shubi/.conda/envs/cn_client/lib/python2.7/subprocess.py", line 1047, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

To Reproduce
Steps to reproduce the behavior:

  1. Go to GUI
  2. Click on camera_id
  3. Scroll down to SSH-->Putty
  4. See error

Expected behavior
open terminal with camera

Desktop (please complete the following information):

  • OS: linux

warning `make html`

After running make html:

/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/site-packages/scipy/ndimage/measurements.py:36: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject                                          
  from . import _ni_label
reading sources... [100%] usage                                                                                                                                                                                                                                          
WARNING: autodoc: failed to import module u'controller' from module u'CameraNetwork'; the following exception was raised:
No module named fisheye
/home/shubi/PycharmProjects/cameranetwork/CameraNetwork/export.py:docstring of CameraNetwork.export.extraReconstructionData:10: WARNING: Unexpected indentation.
/home/shubi/PycharmProjects/cameranetwork/docs/source/index.rst:4: WARNING: toctree contains reference to nonexisting document 

pandas inconsistent version

Describe the bug

ERROR:root:Error while loading past sun measurements:
Traceback (most recent call last):
  File "/home/shubi/PycharmProjects/cameranetwork/CameraNetwork/controller.py", line 467, in loadSunMeasurements
    self.sunshader_angles_df = pd.concat(angles, axis=1, sort=True).mean(axis=1).to_frame(name='angle')
TypeError: concat() got an unexpected keyword argument 'sort'

To Reproduce

python start_local.py -d "/home/shubi/Desktop/experiment_23_09_2019"

Expected behavior
No error..

Installing client_env fails on windows 10

Running conda env create -f client_venv.yml fails on a Windows machine.

Note: before running I changed the "prefix" name according to anaconda location on the local machine. i.e. "C:\ProgramData\Anaconda2\envs\<env_name>"

TODO :

  • Check if the "dependencies" are similar/different than in Linux?

  • Create client_env.yml for Windows - if different.

  • Update 'Installation - Client' section in install.rst accordingly, see 9beab0e

TypeError: only size-1 arrays can be converted to Python scalars

In client gui: Arrays→Capture Settings→Capture

2019-09-04 14:00:46,922 [MainThread  ] [DEBUG]  Creating the 3D map view.
2019-09-04 14:00:46,923 [MainThread  ] [DEBUG]  Clearing 3D view.
2019-09-04 14:00:47,041 [MainThread  ] [DEBUG]  Threading the map projection.
Exception in thread Thread-2:
Traceback (most recent call last):
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/shubi/PycharmProjects/cameranetwork/CameraNetwork/gui/main.py", line 185, in createMapProjection
    alt0=alt0,
  File "/home/shubi/PycharmProjects/cameranetwork/CameraNetwork/visualization.py", line 97, in convertMapData
    lat0=lat0, lon0=lon0, h0=alt0)
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/site-packages/pymap3d/math/ned.py", line 225, in geodetic2ned
    e, n, u = geodetic2enu(lat, lon, h, lat0, lon0, h0, ell, deg=deg)
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/site-packages/pymap3d/math/enu.py", line 169, in geodetic2enu
    x1, y1, z1 = geodetic2ecef(lat, lon, h, ell, deg=deg)
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/site-packages/pymap3d/math/ecef.py", line 47, in geodetic2ecef
    lat = radians(lat)
TypeError: only size-1 arrays can be converted to Python scalars

2019-09-04 14:00:47,234 [MainThread  ] [DEBUG]  Drawing the 3D Grid.
2019-09-04 14:00:47,268 [MainThread  ] [DEBUG]  Broadcasting message: array
2019-09-04 14:00:49,297 [MainThread  ] [INFO ]  Creating new item for server 236
2019-09-04 14:00:49,308 [MainThread  ] [DEBUG]  32.775776 35.024963 229.0 2019-09-04 11:00:47.363374
2019-09-04 14:00:49,309 [MainThread  ] [DEBUG]  Sun altitude 58:09:51.2, azimuth 221:02:47.7 at time 2019-09-04 11:00:47.363374
2019-09-04 14:00:49,309 [MainThread  ] [DEBUG]  32.775776 35.024963 229.0 2019-09-04 11:00:47.363374
2019-09-04 14:00:49,309 [MainThread  ] [DEBUG]  Sun altitude 58:09:51.2, azimuth 221:02:47.7 at time 2019-09-04 11:00:47.363374
Creating default grid 2D
Updating the GRID_ECEF
2019-09-04 14:00:49,320 [MainThread  ] [INFO ]  Adding new view of server 236
2019-09-04 14:00:49,658 [MainThread  ] [DEBUG]  Initializing the sun position: [[115.53807505 110.35075685]].
2019-09-04 14:00:49,661 [MainThread  ] [DEBUG]  Arrays LOS updated. Will update the map.
2019-09-04 14:00:49,662 [MainThread  ] [DEBUG]  Creating the LOS vectors.
2019-09-04 14:01:10,691 [MainThread  ] [INFO ]  Calculating LOS.
2019-09-04 14:01:10,692 [MainThread  ] [DEBUG]  Arrays LOS updated. Will update the map.

Add a config file for export

@scaperex
It is very essential to know what parameters were chosen in the GUI before doing export (from reconstruction tab).
can you try to write a config file that contains the following parameters:

  • image type: hdr or jpg
  • applied radiometric calibration: true or false
  • ignore date extrinsic: true or false
  • gamma correction: true or false
  • path to ROI (if it was saved)

Fix reboot from gui not working properly

reproduce by connecting to camera and pressing reboot on gui - camera shuts down but doesn't seem to reload properly.

(Check if exists good (working) reboot, if not - start_tunnel python process kill, start_camera python process kill, sudo reboot in bash bin)

Large log files

proxy log file with debug flag is ~50MB per day. For long term, maybe change --log_level debug
to --log_level info? What is the size then?
Another option is to switch log files, or perform server restart.

Make the docs look nice

Is your feature request related to a problem? Please describe.
Docs don't look nice.

Describe the solution you'd like
Docs that look nice.

Describe alternatives you've considered
Keeping it the way it is now.

Additional context
Like many readthedocs sites out there. not something extremely fancy.

sklearn version compatibility

Describe the bug

/home/shubi/.conda/envs/cn_client_pd_fix3/lib/python2.7/site-packages/sklearn/base.py:253: UserWarning: Trying to unpickle estimator LinearRegression from version pre-0.18 when using version 0.20.3. This might lead to breaking code or invalid results. Use at your own risk.
  UserWarning)

To Reproduce
Steps to reproduce the behavior:
python start_local.py -d "/home/shubi/Desktop/experiment_23_09_2019"
Play around in GUI

Expected behavior
No warning

Failed loading sky mask.

Describe the bug
A clear and concise description of what the bug is.

Traceback (most recent call last):
  File "/VISL2_net/addalin/code/cameranetwork/CameraNetwork/controller.py", line 216, in __init__
    self.sky_mask_base = sio.loadmat(gs.MASK_PATH)['mask_base']
  File "/home/addalin/anaconda2/envs/cn_client/lib/python2.7/site-packages/scipy/io/matlab/mio.py", line 208, in loadmat
    matfile_dict = MR.get_variables(variable_names)
  File "/home/addalin/anaconda2/envs/cn_client/lib/python2.7/site-packages/scipy/io/matlab/mio5.py", line 292, in get_variables
    res = self.read_var_array(hdr, process)
  File "/home/addalin/anaconda2/envs/cn_client/lib/python2.7/site-packages/scipy/io/matlab/mio5.py", line 252, in read_var_array
    return self._matrix_reader.array_from_header(header, process)
  File "mio5_utils.pyx", line 675, in scipy.io.matlab.mio5_utils.VarReader5.array_from_header
  File "mio5_utils.pyx", line 705, in scipy.io.matlab.mio5_utils.VarReader5.array_from_header
  File "mio5_utils.pyx", line 778, in scipy.io.matlab.mio5_utils.VarReader5.read_real_complex
  File "mio5_utils.pyx", line 450, in scipy.io.matlab.mio5_utils.VarReader5.read_numeric
  File "mio5_utils.pyx", line 355, in scipy.io.matlab.mio5_utils.VarReader5.read_element
  File "streams.pyx", line 195, in scipy.io.matlab.streams.ZlibInputStream.read_string
  File "streams.pyx", line 188, in scipy.io.matlab.streams.ZlibInputStream.read_into
IOError: could not read bytes
ERROR:root:None

To Reproduce
cd /code/cameranetwork$ cd scripts_client/
python start_local.py -d "/VISL2_net/amitibo/experiment_2017_02-03/"

On VISL machine

Torndo ioloop – uses jitter as handle and not float/int

Exectuing /home/shubi/PycharmProjects/cameranetwork/scripts_client/camera_client.py
results in (line 111)

# Start the ioloop.
#
time.sleep(delay_start)
ioloop.PeriodicCallback(
partial(self.send_mmi, service=MDP.MMI_SERVICES, msg=[]), self.mmi_period, self.loop
).start()
self.loop.start()

throwing the following error

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/shubi/PycharmProjects/cameranetwork/CameraNetwork/client.py", line 112, in start
    partial(self.send_mmi, service=MDP.MMI_SERVICES, msg=[]), self.mmi_period, self.loop
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/site-packages/tornado/ioloop.py", line 1209, in start
    self._schedule_next()
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/site-packages/tornado/ioloop.py", line 1237, in _schedule_next
    self._update_next(self.io_loop.time())
  File "/home/shubi/.conda/envs/cvenv2.7/lib/python2.7/site-packages/tornado/ioloop.py", line 1244, in _update_next
    callback_time_sec *= 1 + (self.jitter * (random.random() - 0.5))
TypeError: unsupported operand type(s) for *: 'ZMQIOLoop' and 'float'

Sphinx - no module named numfig

extensions = [
'numfig',

Causes extension error

/docs$ make latexpdf
Running Sphinx v1.8.5

Extension error:
Could not import extension numfig (exception: No module named numfig)


/docs$ make html
Running Sphinx v1.8.5

Extension error:
Could not import extension numfig (exception: No module named numfig)
Makefile:19: recipe for target 'html' failed
make: *** [html] Error 2

workaround is to comment out numfig

    # 'numfig',

Loading previous export

When viewing a time sample, I want to be able to view any previous export if there was any for that timestamp.

Such a thing is partially possible when loading ROI However I am not sure it happening with the cloud weights and the masks.

This feature could save a lot of time!

Recover pre-processing functionalities:

  • ROI

  • Radiometric correction

  • Geometric correction ( undistort )

  • Vignetting correction

  • Extrinsic calibration

  • Phase function calculation

  • dark_image subtraction

  • normalization

  • HDR

  • Space carving

  • Masking

SSH-->local from GUI

Describe the bug

Server 236 raised an error
==========================

Calling the cmd handler caused an error:
Traceback (most recent call last):
  File "/home/odroid/code/cameranetwork/CameraNetwork/server.py", line 414, in _on_request
    answer = yield cb(*args, **kwds)
  File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 1133, in run
    value = future.result()
  File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 261, in result
    raise_exc_info(self._exc_info)
  File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 307, in wrapper
    result = func(*args, **kwargs)
  File "/home/odroid/code/cameranetwork/CameraNetwork/server.py", line 1305, in handle_local_ip
    ip = re.compile('inet addr:([\d.]+)').search(eth0).group(1)
AttributeError: 'NoneType' object has no attribute 'group'

To Reproduce
Steps to reproduce the behavior:

  1. Go to GUI
  2. Click on camera_id
  3. Scroll down to local
  4. See error

Maybe because camera is connected via modem?

Desktop (please complete the following information):

  • OS: linux

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.