Some of those optimizations become irrelevant (or downright bad) with http2. Inlining CSS ans JS is no longer best practice when you can do a server push of those and avoid sending the extra bytes once the files have been cached by the browser.
Some optimizations can backfire. Adding async to the external JS is a great tip.. unless you have dependencies between your different scripts (i.e. you need one to be loaded before the other one gets executed)
Important note: so-called "live" air quality measurements are in reality never "live" due to the nature of the measuring stations (taking measures takes time) and the way data is compiled and shared by the monitoring agencies. As a result typical delays range from 1 to 6 hours, which means you end up using "old" data or signaling a peak when in reality the pollution peak is already over.
This is solved by using models that predict air quality levels down to the hour. One option is to use https://plume.io
Fun project. Wondering how the contributors classified their training set... by watching all the videos? :)
In any case I know there aren't many good labeled datasets out there. I worked on Sightengine (API to detect nudity and moderate images or videos: https://sightengine.com )
I am David, one of Plume Labs' founders. Thank you for all your feedback!
At Plume Labs we build tools to help people fend off pollution. This starts with an urban weather report (the Plume Air Report) that tells you when pollution will be high for a few hours or more in your city, and what you can do about it – timing your run, biking, activities with children – to take back control of your environment.
The map discussed here is a near realtime visualization of air pollution levels worldwide. The colors and the Plume Index are based on WHO recommendations. (Blue corresponds to levels below the W.H.O. yearly recommendations, light blue is below the W.H.O. daily recommendations etc.) The map takes into account the main pollutants (NO2, O3, PM10, PM2.5) and is based on measurements made in 11,000 monitoring stations worldwide along with air quality models for the areas that are not covered by monitoring stations.
More details as well as pollution predictions are available on the mobile version of the Plume Air Report
Plume Labs - Paris, France - Frontend/Backend developers, Data scientists - On-site
Plume Labs helps people stay ahead of air pollution through innovative software and hardware solutions. We help people stay informed of air quality and protect themselves and their closed ones.
We are a multi-disciplinary team - from design to data science and hardware, and we are based in the heart of Paris. We are growing rapidly and are looking for talented developers (Python, php, javascript) and for data scientists who are familiar with Machine Learning and Modeling.
Positions are full-time and local. Email me at david at plumelabs dot com
We are Plume Labs (plumelabs.com) and we are on a mission to make the air we breathe cleaner. We are a multi-disciplinary team - from design to data science and hardware, and we are based in the heart of Paris. Our products and service are not released yet - the comings months will be key to defining and implementing it all!
We are looking for bright and motivated developers and hardware engineers willing to work in a thrilling environment in the city of light!
Reach out for more details! david at plumelabs dot com
Nice examples, but to be fair these images are still very different from what you would experience in real life:
- The resolution is very low and makes it even harder to see the soldiers
- Depth perception is lacking (again, making it hard to find the soldiers)
- These are still images. In real-life, you could spot anomalies with movement. (e.g. if grass is moving in the wind, you could spot some weird shape that is surprisingly still vs moving grass)
- oh and of course if you have infrared goggles...
I have developed an algorithm to detect such images, based on several articles published by research teams all over the world (it's incredible to see how many teams have tried to solve this problem!).
I found out that no single technique works great. If you want an efficient algorithm, you probably have to blend different ideas and compute a "nudity score" for each image. That's at least what I do.
I'd be happy to discuss how it works. Here are a few techniques used:
- color recognition (as discussed in other comments)
- haar-wavelets to detect specific shapes (that's what Facebook and others use to detect faces for example)
- texture recognition (skin and wood may have the same colors but not the same texture)
- shape/contour recognition (machine learning of course)
- matching with a growing database of NSFW images
The algorithm is open for test here:
http://sightengine.com
It works OK right now but once version 2 is out it should really be great.