Giter Club home page Giter Club logo

frmodel's Introduction

I am Data Magician Eve-ning! ๐Ÿช„

frmodel's People

Contributors

aaronsng avatar eve-ning avatar

Watchers

 avatar  avatar

frmodel's Issues

GLCM Test

GLCM hasn't been verified to work correctly yet, will need a test with verified workings

GLCM Entropy Bug

As per #19

glcm_view resets at the wrong location

for wi_c in prange(wi_cols, nogil=True, schedule='dynamic'):
	glcm_view[:] = 0
	for w_ch in prange(w_channels, schedule='dynamic'):
		for w_r in prange(w_size, schedule='dynamic'):

should be moved into

for wi_c in prange(wi_cols, nogil=True, schedule='dynamic'):
	for w_ch in prange(w_channels, schedule='dynamic'):
		glcm_view[:] = 0
		for w_r in prange(w_size, schedule='dynamic'):

Every channel has their own glcm_view, currently, the 2nd, 3rd channel is building upon the entropy every cycle

GLCM Correlation Bug

As per #19, I ran a test, and found that

cor = (conv_ab - (conv_ae - conv_be)) / conv_stda * conv_stdb

has bracket error on conv_stda * conv_stdb and (conv_ae - conv_be) should be multiplied by the number of cells due to early convolution broadcasting.

cor = (conv_ab - (conv_ae - conv_be) * (2 * radius + 1) ** 2) / (conv_stda * conv_stdb)

Deprecate Channel2D & GLCM2D

Due to problems with extending np.ndarray, we'll just stuff everything into Frame2D.

While it does look like it's messy, its API so far has been pretty good. I'll keep this in view though.

GLCM Correlation NaN Value Replacement

Currently, I'm defaulting anything that results in a neginf or posinf to be -1, 1 respectively. This is based of the vanilla definition of correlation, where it's bounded by -1 and 1.

Considering the context of GLCM, it is a reasonable replacement?

Kmeans with Manually Classified Clustering

Through labelling certain centroids by professionals, we can construct a n-Dimensional Ellipsoid to Cluster some points.

The ellipsoid shape, instead of a spherical shape, is to account for the axis transformation to emphasize/loosen the strictness of the clustering in a certain axis.

GLCM Triangular Contrast

If we can somehow detect the corners of trees, we may get something interesting

0 0 1
0 1 1
1 1 1

Effectiveness of GLCM with single pixel precision

Currently, GLCM works by offsetting the image by a set step.

Concerns being that the texture analysis in a very small unit may be drastically affected by noise during capturing, possibly reducing effectiveness of GLCM.

There can be tests to determine if scaling down an image produces better GLCM. The scaling can be done using gaussian convolution or just a flat ones convolution.

Proposing this to be explored in 0.0.6 or 0.0.5 if possible

Add Normalized GLCM

GLCM can be just counted, or normalized.

Normalized GLCM is just the count/len. Likely wouldn't add too much algorithmic load on normalization in GLCM2D.

Improve integrity of data selection through explicit separate ndarrays

There's a lot of functions that uses implied indexes such as data_rgb which just takes the first 3 indices.

We can improve this integrity by specifying the underlying datum indices.

Either:

Plan 1

data: np.ndarray
_ixs: dict = {"R": 0, "G": 1, ...}

Plan 2

data_r: np.ndarray
data_g: np.ndarray

Note that Plan 1 may be prone to unintended _ixs editing or bad _ixs. While Plan 2 requires a lot of overhaul in input and output methods.

We'll look into this later

Scaler unexpected behavior

_frame_kmeans.py

        frame_xy_trans = scaler(self.data_flatten()[:, fit_indexes])

doesn't seem right

flatten, then get a 2nd dimension?

Add API for indexable Frame2D

Instead of having to guess which numeric index is which calculated index, we can probably add a small overhead in each Frame to determine the locations

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.