Hacker News new | past | comments | ask | show | jobs | submit login
UCLA has published a powerful new image-detection algorithm (pcworld.com)
102 points by kungfudoi on Feb 11, 2016 | hide | past | favorite | 38 comments



It is literally just an arctangent sigmoid (with appropriate normalization) applied to the fourier transform of the image [0]. The thought that ran through my mind is:

"Are you .... kidding me?"

[0] https://github.com/JalaliLabUCLA/Image-feature-detection-usi...

Key lines are line 103/104, some stuff with ffts and iffts surrounding it.


Thanks, that's pretty useful. Next time I'm doing image analysis I'll have try applying a sigmoid transformation in fourier space. Never realized it was this straightforward!

BTW, perhaps it'd be handy to list prior art if it's really a redundant patent.


You don't have to use arctan, either. Probably logistic sigmoid will do just fine, too. I think there's also a low frequency bandpass in this particular implementation. If you think about what that means in Fourier space, why you get the results shown makes a whole lot of sense.


It's sad and annoying - another bunch of academics who can't be satisfied with using public research money to benefit the public.

They just have to go ahead and patent mathematics too. It's pathetic.


The crazier thing is that releasing the source code like this, at least to me, is quite unusual.

I've read a number of academic papers where I had to email the authors and ask nicely for the source code; much of the time not getting a response.

You'd think the academic community would be on the forefront of embracing the new open intellectual movement...


See this comment: https://www.reddit.com/r/MachineLearning/comments/39yj8y/why...

>The code is a mess - Most code is written by grad students, it's often sloppy scripts that are duck taped together to get the numbers and graphs needed for the paper. I know some students who essentially have to rebuild things from scratch if they need to expand on what they did for their thesis. Releasing this type of code is embarrassing to the dept, advisor, and student.

>Don't want to support it - Even with disclaimers, there'll inevitably be someone who downloads the code, and emails asking for help/support. Depending on the quality of the code some may even claim that your results are false because they couldn't get it running on their application. I'm all for peer review and agree that code should be available, and further i know that the scenario is probably a rare occurrence, but still some would rather not publish it to avoid it entirely.

>Simply don't know where or how - granted i'm in the engineering school (not cs) so milage may vary, but you'd be surprised how many students i've talked to that just don't know much about github or repositories (even svn).

> There's no incentive - students are already overworked, what benefits do they gain from publishing their code? It helps academic research, yes. But most just want to finish their phd and move on to the next thing, anything else just takes time away from them accomplishing that goal.

>Funding conflicts - part of the code i use was developed by another student who was funded by a particular grant where a deliverable was required at the end. Thus, anything i release cannot include that code, which inevitably breaks the rest. I do not know the particulars of the grant or why it is not allowed to be released, this is just the response i receive when i ask to put my code online.


That is interesting, but really only the first point is outside the scope of issues that would be addressed or rectified if the academic community as a whole were to embrace an open culture.


The problem is that survival and prestige in the academic community is directly related to publications. Also, journals don't accept non-novel research. So helping someone scoop your current or future research directly hurts you.

Obviously that's not a good thing, but it's a pretty straightforward response to the circumstances of academic papers. It has all kinds of other side-effects too: salami slicing, non-reproducible results, publication bias, etc.


Lets, be honest, it's not like academics is the only place this happens. CS labs are essentially small companies (1 CEO, 2-3 senior members, and 5-10 junior members). The only difference is that the company produces papers, producing usable code that you support is actually very hard and takes away from the work that actually matters. I'm actually much less worried about being scooped by releasing my code, and much more worried about having to answer emails asking me how to get the hacked together code to run on their machine or their dataset.


I think that's changing very quickly. It's happening much more now because software is everywhere, and paper publication lags are still months and sometimes years out.


The University of California is supposed to be copying and freely publishing all output of their researchers.


Moreover, the algorithm is clearly bogus. The same results can be achieved by trivial contrast-enhancing filters.


I don't understand this statement. I recently received a similar reaction after talking about some of my research, so I'm wondering if this is a common approach to new ideas in the startup world.

How is the algorithm bogus (assuming that there isn't a mistake somewhere and that the results are validated)? Just because the output in the examples is similar to other edge detectors doesn't mean the work is 'bogus' or worthless. It's a new algorithm, a new way of doing things. It may have advantages in specific areas over your 'trivial contrast-enhancing filters'. For example, there are many sorting algorithms, but you can get the same results regardless of the algorithm. Does this mean that any sorting algorithm other than the most trivial is 'bogus'?


Sorry, I didn't mean to say "bogus algorithm". What I wanted to say is that the results look equivalent as those that can be obtained by linear filtering and rescaling the input image (a standard retinex-like technique): Compute minus the laplacian of the image, smooth the result using a cauchy kernel, linearly adjust the dynamic range. You can see the interior of the light bulb and the texture of the wall at the same time.

I teach image processing, this is a standard exercice.


Well, in this case, enriquito's intuition is correct. The algorithm is very similar (if not identical[0]) to the algorithm found in the simplest edge-detection filter, which is to do isolate medium-band frequency contributions in phase space.

https://github.com/JalaliLabUCLA/Image-feature-detection-usi...

[0] I would be surprised if no one has ever used this exact arctangent kernel (with maybe different normalization and parametrization) in phase space.



"image detection" isn't a thing. Unless they mean finding subcomponents of images which are themselves images. Which they don't.


But no licence given on the github page. Seems like a trap to later sue someone for patent infringement.


Give them a break. Most academic researchers don't have any motivation to "trap" people using sneaky tactics like that. Furthermore, a lot of people in academia are pretty oblivious to the nuisances between the mind-boggling variety of software licences out there.

I'm not saying it's right to be oblivious, but more than likely some poor sleepless grad student is more worried about his/her thesis, graduating, and getting the whole algorithm published in a journal, having lots of people use it and cite her/him, than trapping and suing people. Doing sneaky stuff on purpose would reflect very poorly on the student, professor, research group, and institution.

If this were the work of a startup, I would have a different opinion, but coming out of UCLA, I'd highly, highly, highly doubt they are deliberately trying to trap you.

Send them a comment on Github and gently remind them to provide licence information.


They did provide a license.

Research purposes only.

Explicit license must be obtained for commercial use directly from UCLA.

I don't think it is a trap either. I think it is exactly what their department's legal advisor told them to put on there or is boilerplate they even put in a printed document of the algorithm or any research paper.

It doesn't need more than that just because it is open source and it doesn't need a well-known OSS license either.

Now, I hope they DO go with a more detailed license that is "more" OSS friendly.


"from UCLA". That might mean the researchers intend to apply for a patent on behalf of the university via their technology licensing office or similar, because most universities don't permit individuals to apply for patents solely in their name for research done using university resources. Whether or not the university actually wants to pursue the patent application it is another story.

It's conceivable that they may want to use said patent to spin-off a startup or do something else with it. However, I agree with you that I do not think it is a trap. As a general rule it's very, very bad to be sneaky in academia and once you publish anything it's pretty standard that you should be open about your intentions regarding already-published work.


It's actually an open solicitation for licenses. The fact that it's patented is right there in the readme.

The real trap is: if you were foolish enough pay money for a license, then when somebody with deep pockets invalidates the patent, you got nothing for your money.


So this essentially looks like a new edge detection algorithm. I wonder what additional properties it has from some of the more traditional methods.


It has been a really long time since I have looked at Matlab code, but I am surprised how few lines of codes are required.

Must study it further, but it shows that not all tech advances requires lots of coding. In this case, the research was the crucial part.


For those who want to play with it and don't have access to MATLAB, I've spent some minutes and ported to Python:

https://github.com/andersonfreitas/pst/blob/master/PST.ipynb


Looks like your run of the mill edge detection filter lol


So, it's an edge detector? What makes it better than existing methods?


Good question, there's an interesting link to a wiki page in their matlab function docstring

https://en.wikipedia.org/wiki/Phase_stretch_transform


My definition of "interesting" for an algorithm would include at least 1 line of the 1 line of math required for implementation.


So instead of wondering how an existing application of edge detection can benefit from this algorithm, HN is discussing the politics of profit in academia?

Let's focus HN-ers. How can this new algorithm be used to build a better "mouse trap"?


If it's currently (or soon to be) patented, then this algorithm can't even be used as a starting point for discussion. Anything that comes from such a discussion would be legally tainted by the patented algorithm. Patenting this renders it utterly useless to anyone but a patent troll, and that is not hyperbole.


Put another way: if someone was going to be developing an algorithm that does anything remotely like what this algorithm does, the legal advice that that person's institution would give them would be to not read anything about this particular algorithm. Like, don't even visit this web page or participate in this thread on HN, because doing so exposes a legal attack surface for future litigation. That's how effed up this is, it's inexcusable.


This new method has zero value, regardless of it's patent status, if it cannot be used to build a better mouse trap. So, let's first see if one can ever use this to enable a superior product first.


"Essentially, a new art-style" :)


Can you call it open-source if it has no explicit license and the README contains this?

PST function is developed in Jalali Lab at University of California, Los Angeles (UCLA). PST is a spin-off from research on the photonic time stretch technique in Jalali lab at UCLA. More information about the technique can be found in our group website: http://www.photonics.ucla.edu This function is provided for research purposes only. A license must be obtained from the University of California, Los Angeles for any commercial applications. The software is protected under a US patent.


Was just about to post the same thing. Probably not worth even clicking this link or following through to the Github if you really do need a good algorithm but aren't comfortable with doing a clean room implementation.


Ok, we replaced "open-sourced" with "published" in the title above.


There's an implied license (of sorts) in the Github ToS:

We claim no intellectual property rights over the material you provide to the Service. Your profile and materials uploaded remain yours. However, by setting your pages to be viewed publicly, you agree to allow others to view your Content. By setting your repositories to be viewed publicly, you agree to allow others to view and fork your repositories.

I'd assume that forking involves modifications and use, but that's not something I'd want to bet on without a lawyer.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: